Age | Commit message (Collapse) | Author |
|
Which has a backing core C++ class, unlike table columns.
Change-Id: Iebc546b8c3424f976043deceee8307eae764bbb1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131914
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
by a search for Frames, Images, and OLE objects
Fixes the search wrapped message being unnoticeably shown before the
search not found message when nothing is found by a search for Frames,
Images, and OLE objects. Also fixes a possible search wrapped message
being shown when SwFEShell::GetBestObject is used by
SwTextShell::ExecMoveMisc for SID_FM_TOGGLECONTROLFOCUS case.
Change-Id: I57e518163d9b61dcf9838e5552a0de53f48faa0f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131638
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
|
|
Tracked insertion/deletion of comments were shown as
plain text insertion/deletion in that case, too, when
there is no other text change in the redline (only
the invisible placeholder character CH_TXTATR_INWORD
of the comment). This was fixed by the new action
icons of the Manage Changes dialog window before,
but for better accessibility, now redline of a newly
inserted/deleted comment gets also a redline comment
"Comment added"/"Comment deleted", shown in Manage
Changes dialog window with the Comment added/Comment
deleted action icons, as suggested by Heiko Tietze.
Note: because the redline comment (at least the
tracked insertions) are stored in the document,
this is a back-compatible solution.
Follow-up to commit 128d3b454467e34538903b2eab45e866f976b314
"tdf#73125 sw: add Insert/Delete Comment Manage Changes action icons".
Change-Id: I7a9e82ae1b9519e4883956f69de0aafc289f7f99
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131659
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
That these are only flagged when building against libc++ and not against
libstdc++ is a consequence of the plugin's dependence on implementation details
of the relevant classes, but so be it.
Change-Id: I6b96f81939edab2b8e618aa53c9fe23492edfbbd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131562
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
this reverts
commit 563af8fd15aa37e75af8882cccbdf8914ebe8e61
Author: Noel Grandin <noelgrandin@gmail.com>
Date: Fri Jan 7 22:50:29 2022 +0200
tdf#144890 Invalid selection area when text in LTR run
and
commit ec50b9e5eaec7c94df35617676077ef0d65cecc7
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Thu May 27 11:16:11 2021 +0200
no need to allocate Sw2LinesPos separately on heap
No idea why the commits caused trouble, clearing there is some
"interesting" interaction going on.
Change-Id: I606768403db777b61554f378d3f69f9b4d33d493
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131533
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I95b86fc081847da01e06f50a1b2c7e7f5456c638
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131529
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Iaaf63c49ce94987ab9c4ebc68e963cc3054a3c34
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131342
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
If the listed redline change contains only a comment.
Note: filter actions haven't been extended, because tracked
comments are still handled as text insertion/deletion, and
their redlines joined with the tracked text changes around
their placeholder character, i.e. not all tracked comments
got new action icons.
Change-Id: Ie78e18a48b9a71c3789fca1406e5d87ab95952bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131387
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
Change-Id: I5f184f93dbdb414514855c85c9dc1624e7ec8636
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131337
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
look for potentially trivial destructors that can then be elided
Change-Id: I435c251bd4291b5864c20d68f88676faac7c43fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131318
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This attribute is needed when a numbering is built using multiple,
independent <text:list> elements. In that case the markup to connect
these are either:
<text:list text:style-name="L1">
</text:list>
...
<text:list text:continue-numbering="true" text:style-name="L1">
</text:list>
In case there is no other list in-between, or:
<text:list xml:id="..." text:style-name="L1">
</text:list>
...
<text:list text:continue-list="..." text:style-name="L1">
</text:list>
In case there are other lists in-between.
This means that at least in case all the text nodes of the numbering are
after each other, then the random value in xml:id="..." is never
referenced, so it can be omitted.
This helps deterministic ODF output when the input is HTML, where there
are never text:continue-list="..." attributes that would refer to these
xml:id="..." attributes.
Change-Id: Ice69422a12d4229879f89f3a4a24ed926c6d43af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131322
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
This occurs 2500 times in CppunitTest logs.
Change-Id: I946ed240d978f1588ca3bc51c82407cba85e8e1a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131316
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
See tdf#42949 for motivation
Change-Id: I99558e6b6952b3f2c1ee32dd07354ff659ad9cd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131183
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
.. and SwEditWinUIObject.
These need to work with TextFrameIndex. Add some functions to
SwCursorShell to make it possible.
Change-Id: I884c4822a0e7ecf254ea09a893762e1e6d539534
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131042
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
It's set for every cell with value.
Change-Id: Ie46617a621e6eb16b5f67d92e85bf2155e650fb1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131072
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Which is how UNO API clients (e.g. ODT export) will be able to read
RES_TXTATR_LINEBREAK.
Change-Id: I44d2058fd8b4a4fefce3dacc49d3bb3da6060756
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130903
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: Icec7a62a7b2987ffe9c0f74e2b49993bd2b9bfbd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130821
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Groups which are in Diagram mode should not be entered, to
do so disable at UI and - for security reasons - also at
the executing mehod.
Groups in Diagram mode can still be UnGrouped (which will
remove the Diagram status & data)
Adapted testRegenerateDiagram() to directly act on the
model data to test the same as before. Using triggering
of UI events to enter the diagram group object needs
reorganization, but model op's will always be possible
Change-Id: I199f3821c2a8308a6f015997ce9eaef87623c46a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130541
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
- if (character) properties are specified when the text content itself
is inserted, then format the anchor ("dummy") character like that
- add the ability to specify a clear type (none/left/right/all) on the
line break object itself before insertion
Change-Id: I219a1031e53c2e0368ff329d45b7e3fff0934038
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130818
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: Ieb93f9525d0cc5b3a23e013f30ddaad6f44890ed
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130796
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This only allows the clear=all break type, the others are not yet
handled.
Change-Id: Id4981b3cc0a8faca2166ad93827ae547f5539095
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130741
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
which resulted lost (invisible) text content before
implementing its support now.
Cleanup to SwTextBoxHelper by removing its unneeded functions.
testFDO78590 was commented out temporarily because it has a
pure VML groupshape inside and it's converted to WPG during
the test run resulting crash on reopening, because lack of
its support in DocumentContentOperationsManager, trying to
convert the content to a text frame inside a text frame.
Regression from commit 2951cbdf3a6e2b62461665546b47e1d253fcb834
"tdf#143574 OOXML export/import of textboxes in group shapes".
Change-Id: Ic6ce3549d390ae763044f54e991f390677704396
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129627
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
This is meant to represent clearing breaks, as in HTML's <br
clear="..."> and DOCX's <w:br w:type="textWrapping" w:clear="...">.
The new pool item is in the RES_TXTATR_NOEND section as this property
can be only specified on a single document model position: linebreak
characters.
Change-Id: I6c86097a049e489e1292f42fc8446eb7282c816a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130687
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
ever since
commit 7b0b5cdfeed656b279bc32cd929630d5fc25878b
Date: Mon Sep 18 16:15:01 2000 +0000
initial import
Change-Id: I65b6af6ba02bf99e0884694c8a776af4e0d5e49b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130656
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
ever since
commit dec81fe5aa2200b9b351240209fde9434a830c5d
Date: Tue May 15 09:03:55 2001 +0000
#86986# SfxFileDialog/SvxImportGraphicDialog removed
Change-Id: I5d75770dc86e40870abcc8dfe7b62f6711d6aa9c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130655
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
we want to work with SvxMacroTableDtor and we are unnecessarily
wrapping it in SvxMacroItem. Just use SvxMacroTableDtor directly.
And remove FN_INET_FIELD_MACRO which is now unused.
Change-Id: I83c0c7b0ecd02b996ddad1a03a0fc0dec6c38c10
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130654
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
since
commit 3514ad82c4200be292ef6eaa1e94c5c6a41884e4
Date: Mon Dec 10 10:02:46 2012 +0100
sw: unused SwRTFParser
Change-Id: Ib437a3b3a59883869aaec35f3c70403d04bcd950
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130653
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Reorganized and streamlined, use IDiagramHelper as main interface
now also for existing code.
Had to adapt oox::Shape && Diagram handling since there the
import gets handled very different. This ensures that a Diagram
is detected at export and that the same happens for now as before
Had to add a detection that resetting the GrabBag is meant to
disable the Diagam functionality. That is very indirect, but
has to stay for compaibility reasons for now
Change-Id: I620b7d61cd84b5f9dd8ae4dc890ebf70ce779cdf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130389
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
Change-Id: I6ab3ca829bc08e672736dd8dd41ba714d7172090
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130498
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
which is faster since we can skip the UNO_QUERY.
Change-Id: Id95ad9f3568213e974bd13659d92d4ea94dbfbd6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130282
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Also make it a bit more clear that GetCharRect() and
GetModelPositionForViewPoint() are the opposite of each other.
Change-Id: I1ec2b57c047522e98c2fde0a4b698d5816884dea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130304
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
And drop the 'SET_PARA' typedef which was no longer
referring to a set by now anyway.
Change-Id: I303b335cd3276562ed02e668a912895f78dc506c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130140
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
Delete tables and rows removed also tables and table rows
with tracked row deletion/insertion. This resulted not only
lost change tracking, but a crashing Undo.
Crash regression from commit 99059a1ececa3621c2fe46fabdd79eed9d626c42
"tdf#143359 sw: track deletion of empty table rows".
Non-tracked deletion of the tracked row changes was a
temporary solution for the missing UI of tracked
row changes, implemented in commit 05366b8e6683363688de8708a3d88cf144c7a2bf
"tdf#60382 sw offapi: add change tracking of table/row deletion".
Note: UI was added in commit f348440e17debacbcba9153e238e010e8c020bdc
"tdf#146120 sw: show tracked table changes with different color",
commit 95c003d75e0f8b255344715a35358072b5eba99d
"tdf#146145 sw: 1-click Accept/Reject of table row changes",
commit 84fbb3398f7486f00e7b7dea415e1ea2510a9535
"tdf#146144 sw: add tooltip to table rows with change tracking",
commit eebe4747d2d13545004937bb0267ccfc8ab9d63f
"tdf#144270 sw: manage tracked table (row) deletion/insertion",
commit f481c2c8e74bded11fac754e493560391229dbcd
"tdf#144057 sw track changes: hide deleted table rows" and
commit 23846867ea32667ccf328c36142394dd6aaee8ba
"tdf#147182 sw: accept/reject all changes of a table selection".
Change-Id: I384b750b0d3626fa8b3f256c7eaf5b93f382e4e5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129958
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
This has nothing to do with group shapes, even if it's next to
DrawUndoGuard.
Change-Id: I2e4608cb2941142f05ba633911709143eb3f9800
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129924
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
... SwXViewSettings
See tdf#94879 for motivation.
Change-Id: I68f647d13edf156cfc471a54f247ac686cd6cd06
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129893
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
...which could never succeed.
I became aware of this when Clang 15 trunk -std=c++2b, implementing
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1328r1.html> "Making
std::type_info::operator== constexpr", pointed at two of the broken comparisons
with
> sw/source/uibase/app/docsh2.cxx:478:25: error: code will never be executed [-Werror,-Wunreachable-code]
> pTmpFrame->GetFrame().Appear();
> ^~~~~~~~~
> sw/source/uibase/app/docsh2.cxx:475:33: error: code will never be executed [-Werror,-Wunreachable-code]
> bOnly = false;
> ^~~~~
(It didn't emit warnings pointing at any of the other broken comparisons,
though.)
All of these broken comparisons were regressions introduced with
89d39bc100aabf5dccbe77c0b5c0c85736e85b39 "tdf#94559: 4th step to remove
rtti.hxx", replacing uses of the IS_TYPE macro (from include/tools/rtti.hxx,
meanwhile removed with d64e535fe9a00b671cf1be3eb5632c0d5f4b8bea "Remove unused
rtti.hxx").
I now added loplugin:typeidcomparison to also find the other broken comparisons
introduced by that commit. (The remaining cases where that commit replaced uses
of TYPE_INFO with typeid comparisons were correct and/or have meanwhile been
replaced with code not using typeid, see
553ee72041d6f66e26156eb1ad0d9e3c13457f7a "simplify some use of typeid" and
d656da9bc4f2df0bb99c65a288847e3fdd43a37c "~SwModify: do not silently tolerate
clients registered past death".)
The original IS_TYPE macro made sure not to dereference null pointers,
> #define IS_TYPE(T,pObj) \
> ( pObj && (pObj)->Type() == TYPE(T) )
I don't know if any of the pointers now dereferenced in those typeid expressions
can legitimately be null. But to be on the safe side, I replicated that check
in the newly introduced isType (sw/inc/istype.hxx).
(It is interesting to note that none of the static analysis that we routinely
employ seems to have noticed these broken comparisons.)
Change-Id: I65baffdd27bac1abf744283ff98c2dc864fa63b4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129865
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
(*) rename the enum to make it's purpose more obvious
(*) remove the enum header - it belongs to this class, no need to have
it somewhere else
(*) return property name by const&, no need to copy here
(*) use a o3tl::enumarray instead of a std::unordered_map - there are
only 3 entries here, and two of them are ALWAYS used, so just flatten
the data structure.
Change-Id: Ic496bd5220d55be1209a3243c095d461df0a02ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129788
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I6401dcf2507ac53a71dbe4de4ba774aed905961e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129731
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I17183f45dfad71cb306c31d4e70d8dcbeda5cb48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129672
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
|
|
Change-Id: I62c0d54c9e1dc89c5684210075219c1eeee9f942
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129602
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I36ba3e0c6793b6a566e839e8d1c314606a4e0d38
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129520
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
renderShapeSelection callback is used to render
image previews which are later used during
eg. rotation.
Do not render preview with original size which
slows down app a lot. Use 1280x720 max.
Change-Id: Ia8365a67d87cea869ef74cb70ce4830439a523b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129376
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129497
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
|
|
Change-Id: I1425fbbe843534adba8b87f9c7b23461cc6049c2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129375
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129489
Tested-by: Jenkins
|
|
Change-Id: Ia7e3cc32c067afa0f376e52e0eb5cdc83ca2e4b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129082
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
|
|
Always write an index concordance file using the utf8 encoding and read
the index entries using the appropriate character set which is either
utf8 or the os thread encoding.
Change-Id: I5b30f4749f635bd51d8f0933ce5029d5303aef3f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128745
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
|
|
to act as an extra check that we have the association of Item and
TypedWhichId annotations correct.
(*) requires that I add an upcasting constructor to TypedWhichId
(*) Make the field dialog stuff in writer use a new item id
FN_FIELD_DIALOG_DOC_PROPS instead of abusing the
existing SID_DOCINFO
Change-Id: Ica4aea930c80124609a063768c9af5a189df1c27
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129098
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Promote Chapter = Move Chapter Up
Demote Chapter = Move Chapter Down
Promote Level = Promote Outline Level
Demote Level = Demote Outline Level
Promote/Demote List Level reversed (promote to left,
demote right)
Change-Id: Ia119d311b1cf99d1b07e008e54a3bd070b87410c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128722
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
|
|
Change-Id: I34838bee7ad27bfd60d92c26af7eb2de508686b9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128974
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
This patch reworks the "Manage Changes" dialog (In Writer, Edit > Track Changes > Manage) so that the buttons "Accept", "Accept all", "Reject", "Reject all" and "Undo" only appear in the List tab, since they're not needed in the Filter tab.
A help button is also added and HID constants are defined for both tabs.
Change-Id: I12da7811635dfc142d5d0a66d3275d3d170692e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128563
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
|
|
when field is in header/footer
Change-Id: Ic11f020655a863d05e638e55db6ab150ce4ad7c2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128752
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
|