summaryrefslogtreecommitdiff
path: root/xmloff/source/style/xmlnumfe.cxx
AgeCommit message (Collapse)AuthorFilesLines
2025-08-29Use RepeatedUChar in vcl and xmloffMike Kaganski1-3/+3
Change-Id: I4c59d50766f6c695ae0b492f458f3ad152598020 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190345 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2025-03-22tdf#141415 reduce time spent loading language dataNoel Grandin1-8/+5
cache LocaleDataWrapper because otherwise we spend quite a bit of time doing function-pointer-symbol lookups. Change-Id: Ic1bd07dabac95a2e1bdad70cffbc2b4cabdc62ed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183221 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-05-15loplugin:ostr in xmloffNoel Grandin1-3/+3
Change-Id: I24f5626e57e03217e4bcf77289c785e255b9f904 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167667 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-03-22Related: tdf#160056 refactor SvNumberFormatterCaolán McNamara1-1/+1
to split it into two constituent parts SvNFFormatData which is the data store for number formats it generally operates on. SvNFLanguageData for data around the current language in use. and then a SvNFEngine which implements the interaction between those parts SvNFEngine has two policies, the typical RW mode and a new RO mode where the SvNFFormatData doesn't change, all formats needed in this mode must already exist. Change-Id: I56b070ccd2e556a0cb1fe609a2fae28e18277c8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165146 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-03-21Related: tdf#160056 this can be staticCaolán McNamara1-1/+1
Change-Id: I1172854a1bf00e74adbe350c54e4e98ea38b0b35 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165072 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-11-01tdf#156449 Preserve '0' or '?' in exponentLaurent Balland1-3/+17
Exponent in scientific number may use '?' as blank like in format "0.00E+?0" This change: - adds interpreatation of '0' and '?' in exponent - adds "blank-exponent-digits" attribute to scientific number for import and export to ODF - prevents using exponent with only '?'. There must be at least one '0' in exponent - adds QA test of such format and test import/export/import to ODF and OOXML - corrects one basic test Change-Id: If52edc632a161f842270bb2fd77af535e2b978d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154986 Tested-by: Jenkins Reviewed-by: Laurent Balland <laurent.balland@mailo.fr>
2023-11-01tdf#153993 Extend ODF: lowercase for exponent charLaurent Balland1-2/+22
In scientific format, user may want to have clearer format such as: 0.000" "000" "e+" "0 This change - adds "exponent-lowercase" boolean attribute to scientific-number format to preserve "e" or "E" char - includes all positions up to exponent for embedded text of scientific number Add QA test Change-Id: Ie263f4ecf30a1a8dcd8046e1e048767020e54dc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153824 Tested-by: Jenkins Reviewed-by: Laurent Balland <laurent.balland@mailo.fr>
2023-08-25tdf#152724 Extend ODF for blank width "_x"Laurent Balland1-22/+85
Number format code "_x" is currently saved as a text string containing a number of spaces corresponding to the width of character "x". It may be confusing for user if its format code is modified. This change introduces a new XML tag XML_BLANK_WIDTH_CHAR to replace the previous text string if ODF version is extended <number:text> and <number:embedded-text>: the attribute is composed of a string containing the used character and its position in the text string (if position is 0, it is omitted). Several blank code characters are separated by '_'. Replacement blanks in the text string are preserved to enable compatibility. Example: format code "foo"_M_I_N"!"???,???.000_.000"!"_) is saved as: <number:number-style style:name="N173"> <number:text loext:blank-width-char="M3_I6_N7">foo !</number:text> <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="6" loext:max-blank-integer-digits="6" number:grouping="true"> <number:embedded-text number:position="-4" loext:blank-width-char="."> </number:embedded-text> </number:number> <number:text loext:blank-width-char=")1">! </number:text> </number:number-style> Add QA test Change-Id: I785e1a14ecccc900e9fd5af88dd7b743fefcc48c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146582 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2023-06-27related tdf#153993 Embedded text in scientific numbersLaurent Balland1-30/+43
Embedded text was limited to number:number. But scientific notation may require embedded text like 0.000" "000E+00 This change extend ODF format to support embedded text in number:scientific-number also Change-Id: I4e3220b06efbd9228d722bf518e137d7707ccf4f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150804 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2023-05-26tdf#150028 Treat decimal separator after [SS]Laurent Balland1-3/+5
Only decimal separator after S or SS was treated This change adds [S] and [SS] to treat formats like [SS].00 Update: correct export to XML Add QA unit tests Change-Id: I97ce4084d3caab2fcd18f1c70cd4221596290563 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151823 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2023-04-17xmloff: prefix members of SvXMLNumFmtExportMiklos Vajna1-141/+141
See tdf#94879 for motivation. Change-Id: I8aa01371f310bf928cb78f149ea25bf0835cd6aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150465 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-03-30loplugin:stringadd in xmloffNoel Grandin1-9/+4
when applying my upcoming patch to also consider O[U]StringBuffer Change-Id: Id38d983e59386554c61e9bdcd9333554bbf4665c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149756 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-01-30tdf#118324 Treat blank ? in integerLaurent Balland1-49/+52
Restore and update change 56352 Test of https://cgit.freedesktop.org/libreoffice/core/commit/?id=8ca6468f0f4900d4d3bb45e0e938fe35c308512c is now ok Add disambiguation between '0' and '?' in integer part XML_MAX_BLANK_INTEGER_DIGITS is added for the number of '?' XML_MIN_INTEGER_DIGITS is the number of '?' and '0' This preserve compatibility with previous versions: in previous versions '?' will be transformed in '0' It also applies to scientific and fraction numbers. Integer part for number, scientific and fraction are treated the same way Include QA unit test Change-Id: Iab3127bf07223caac60e409306a1bee2edc37428 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145932 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2022-12-18crashtesting: assert seen with forum-mso-en4-747641.xlsx with LCID F6E0BCaolán McNamara1-1/+2
see on export to ods input .xlsx contains a LCID of F6E0B <numFmt numFmtId="169" formatCode="_-[$£-F6E0B]* #,##0.00_-;\-[$£-F6E0B]* #,##0.00_-;_-[$£-F6E0B]* &quot;-&quot;??_-;_-@_-"/> Change-Id: I543164dba4cc8b1c86508a3e3e39b43900c06484 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144321 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-11-07xmloff: write transliteration-spellout only in extended ODFLászló Németh1-2/+2
Follow-up to commit 7c20c3c2a9fc85c66dad9d09908b257beeedd78d "xmloff: ODF export: adapt all checks of ODFSVER_012 etc.". Reported by Eike Rathke. See also b7d53247eb2fab04f5f6d82d405f1ac0c73542b2 "tdf#115007 i18npool: add NatNum12 formats to locales" and 2a1d2d42af7f365330479f4032ddfdd9eeba7c1d "tdf#115007 add NatNum12 number format list items, fix title case". Change-Id: Idb25a37ffcad0a0fb05276b972561abf929cd81b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142373 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2022-07-12tdf#96723 Number format: embedded text in decimalLaurent BP1-2/+11
Embedded text in decimal part is represented by negative position Use number:position as it is defined as integer in schema [1] Add Unit test to import XLSX file with embedded text in decimal and export to ODS [1] https://opengrok.libreoffice.org/xref/core/schema/odf1.3/OpenDocument-v1.3-schema.rng?r=7f3c9da5#7142 Change-Id: Ic68471a071ccbb1c3bec442bfcbe21d84f41ebd8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135918 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2022-07-12clang-tidy modernize-pass-by-value in xmloffNoel Grandin1-4/+5
Change-Id: Ica07e393763343d0f5caaad6a89fa3378f6ad344 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136995 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-10new loplugin:moveitNoel Grandin1-2/+2
look for local variables that can be std::move'd to parameters off by default, since it doesn't do proper data flow analysis Change-Id: I3403a0fcffd165bdea6a772528bc53995c5fdb40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135527 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-08Related: tdf#149484 Write proper <number:boolean-style> with <number:text>Eike Rathke1-0/+31
Change-Id: I46b7987dde25840ae0b6e5871b14e3806c6e4ac8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135508 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-04-13loplugin:stringviewparam whitelist some more functionsNoel Grandin1-5/+6
for which we have o3tl:: equivalents Change-Id: I4670fd8b703ac47214be213f41e88d1c6ede7032 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132913 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-19Use MsLangId::getConfiguredSystemLanguage()Eike Rathke1-2/+2
Change-Id: I298f762ac7f3298aa9cb9621ad1f8cae50527b24 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123790 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-10-14Avoid COW overhead using css::uno::SequenceMike Kaganski1-1/+1
The scenarios are: 1. Calling sequence's begin() and end() in pairs to pass to algorithms (both calls use getArray(), which does the COW checks) 2. In addition to #1, calling end() again when checking result of find algorithms, and/or begin() to calculate result's distance 3. Using non-const sequences in range-based for loops, which internally do #1 4. Assigning sequence to another sequence variable, and then modifying one of them In many cases, the sequences could be made const, or treated as const for the purposes of the algorithms (using std::as_const, std::cbegin, and std::cend). Where algorithm modifies the sequence, it was changed to only call getArray() once. For that, css::uno::toNonConstRange was introduced, which returns a struct (sublclass of std::pair) with two iterators [begin, end], that are calculated using one call to begin() and one call to getLength(). To handle #4, css::uno::Sequence::swap was introduced, that swaps the internal pointer to uno_Sequence. So when a local Sequence variable should be assigned to another variable, and the latter will be modified further, it's now possible to use swap instead, so the two sequences are kept independent. The modified places were found by temporarily removing non-const end(). Change-Id: I8fe2787f200eecb70744e8b77fbdf7a49653f628 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123542 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-17no need to store a CharClass in SvXMLNumFmtExportNoel Grandin1-8/+1
we only use it at one site, and at that site we can use the CharClass inside the formatter whose locale we just updated. Spotted by erack. Change-Id: I049c6fc399e62cfe83f3ae396ea8d0e7497e673f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122250 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2021-09-17speedup toUpperCase when called in parallelNoel Grandin1-1/+1
by removing locking from CharClass, which means we need to make it an immutable class Since SharedStringPool in sc/ stores a pointer to the CharClass in use, we have to tweak SvtSysLocale so that the object does not change location. Change-Id: I2c62d354fa542ebc04e755ce5b9b9e2ddff76a64 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122185 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 1Mike Kaganski1-2/+2
The header got some changes: 1. Move UnoTunnelIdInit and isUnoTunnelId into 'comphelper' namespace 2. Rename UnoTunnelIdInit to UnoIdInit, as a precondition to replace of uses of OImplementationId with it, including in XTypeProvider 3. Introduce convenience functions 'getSomething_cast' to cast between sal_Int64 and object pointers uniformly. 4. Rename getUnoTunnelImplementation to getFromUnoTunnel, both to make it a bit shorter, and to reflect its function better. Templatize it to take also css::uno::Any for convenience. 5. Introduce getSomethingImpl, inspired by sw::UnoTunnelImpl; allow it handle cases both with and without fallback to parent. 6. Adjust UNO3_GETIMPLEMENTATION_* macros TODO (in separate commits): - Drop sw::UnoTunnelImpl and sw::UnoTunnelGetImplementation - Replace all uses of OImplementationId in core with UnoIdInit - Deprecate OImplementationId in <cppuhelper/typeprovider.hxx> - Change implementations of getSomething to use getSomethingImpl - Revise uses of getSomething to use getFromUnoTunnel Change-Id: If4a3cb024130f1f552f988f0479589da1cd066e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122022 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-22Resolves: tdf#143979 Write and read empty text element in number formatsEike Rathke1-3/+13
... as they may be significant as separators between keywords of same letters. Also strip trailing empty text as meaningless, except if the only element. >General;General< earlier both General were written as <number:number-style style:name="N111P0" style:volatile="true"> <number:number number:min-integer-digits="1"/> <number:text/> </number:number-style> for which now <number:text> is not. Change-Id: I4809b1c784667994303b49d8e4ab0e857367e2cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120856 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-08-13split SvNumberFormatter into it's own headerNoel Grandin1-0/+1
so I can make changes without running into cyclic dependencies between header files Change-Id: I98a91c7cc66002ba745cdb8239e5cc267922a45c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120412 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-02tdf#79049 speed up OOXML workbook load (4)Noel Grandin1-1/+2
Optimise LocaleDataWrapper for reads by initialising the data we in the constructor, so we don't need any kind of locking Reduces load time from 34s to 28s. Change-Id: I4bd3bddb30b70ba015fe5b1372534f9507762b74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114960 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-12ODF save: write explicit "gregorian" calendar, not empty if defaultEike Rathke1-2/+2
Other implementations may have different opinions about default calendars and the context here is to switch to Gregorian. Change-Id: I14a27826e627f890911adaf01935c58b43ad766a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112354 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-03-11ODF save: handle implicit other calendar and switch to Gregorian for YYYYEike Rathke1-2/+16
In preparation for https://gerrit.libreoffice.org/c/core/+/108532 to add dual calendar mixed formats. Change-Id: Ibc9294af3ad294c702ee6597b1a8831dec39b948 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112285 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-01-29loplugin:stringviewparam extend to new..Noel1-4/+4
O[U]StringBuffer methods Change-Id: I0ffbc33d54ae7c98b5652434f3370ee4f819f6f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110090 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-12New loplugin:stringviewparamStephan Bergmann1-1/+2
...to "Find functions that take rtl::O[U]String parameters that can be generalized to take std::[u16]string_view instead." (Which in turn can avoid costly O[U]String constructions, see e.g. loplugin:stringview and subView.) Some of those functions' call sites, passing plain char string literals, needed to be adapted when converting them. Change-Id: I644ab546d7a0ce9e470ab9b3196e3e60d1e812bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105622 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-10-01loplugin:reducevarscope in xmloffNoel1-1/+1
Change-Id: Ib67311f84a6a7a490afb392e642d74693fde3113 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103747 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-08-14rename xmlnmspe -> xmlnamespaceNoel Grandin1-1/+1
Change-Id: I8fdf9833dede6f4c9ba4bbb76b9ab9b6b419f155 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100722 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-08-06loplugin:flatten in xmloff/styleNoel Grandin1-73/+73
Change-Id: I8a9f939e799f8aeb119a56e33d5291177135b3ab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100196 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-12xmloff: ODF export: adapt to ODF 1.3Michael Stahl1-7/+7
* OFFICE-3883 legend svg:width/svg:height * OFFICE-3928 chart:coordinate-region * OFFICE-3943 draw:mime-type * OFFICE-3765 number:fill-character, number:text * OFFICE-3860 number:min-decimal-places, number:forced-exponent-sign * OFFICE-1828 number:exponent-interval * OFFICE-3695 number:max-denominator-value * OFFICE-3941 text:index-entry-link-start/text:index-entry-link-end * OFFICE-3776 meta:creator-initials * OFFICE-3789 style:header-first/style:footer-first Change-Id: I78c79231c0708c3ae9943097d162898fab71988f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92873 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-05-09xmloff: ODF export: adapt all checks of ODFSVER_012 etc.Michael Stahl1-5/+5
Most of these actually want to check ODFSVER_EXTENDED because the extension didn't get into ODF 1.3. Change-Id: I1b625a329f7a3d146c616c62c15b56e2c314c2c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92872 Reviewed-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Jenkins
2020-05-07replace ODFDefaultVersion usage with ODFSaneDefaultVersionMichael Stahl1-1/+1
Compare with ODFSVER_012 mostly works the same, except for places where namespaces are defined where the ODFSVER_EXTENDED bit should be checked. Change-Id: I86469b763bc2f903632976bc9d6ec04d543d705e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92727 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-04-17loplugin:buriedassign in tools..xmloffNoel Grandin1-3/+4
Change-Id: I31df6c4fd82c6f6d15bbe5228e92e5171cacba51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92410 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-03-16Revert "loplugin:constfields in xmloff"Noel Grandin1-3/+3
This reverts commit 0302c9b192c3b7ba10daabed61d6864c24c14070. Change-Id: Ib919429e22ad039d6a82fe081f4e5421fe08905d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90549 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-02-22Resolves: tdf#130563 Add predefined 4-digit year date+time formatEike Rathke1-1/+2
Add a predefined NF_DATETIME_SYS_DDMMYYYY_HHMM format code with formatindex="50" to all locale data files, which shifts all reserved area internally generated built-in formats up by one. Reserved area was filled already so that boundary has to be increased as well. Add some flexibility for future additions by setting the new boundary to 65, free first format index to be used by additional locale data formats is 66 now. Adapt all locales to the new boundary. The existing predefined NF_DATETIME_SYSTEM_SHORT_HHMM format code with formatindex="46" mostly was and is used with 2-digit years (stemming back from the old binary format and Excel compatibility), some locales that don't use 2-digit years at all already defined it to 4-digit years. Keep those but move the default="true" attribute (if so) to the new "50" format. Modify populating the format list such that resulting duplicates will be suppressed there as well. Also try to match the new format in ODF import if a long year was requested with date+time. Finally set the new format as default for all *_IT locales. In future changing the default date+time format to 4-digit year is just a matter of moving the default="true" attribute to the new format. Change-Id: Ib16aa9fda0e71b2d03f78e3dd013785de03cd288 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89265 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2019-11-22Extend loplugin:external to warn about classesStephan Bergmann1-0/+4
...following up on 314f15bff08b76bf96acf99141776ef64d2f1355 "Extend loplugin:external to warn about enums". Cases where free functions were moved into an unnamed namespace along with a class, to not break ADL, are in: filter/source/svg/svgexport.cxx sc/source/filter/excel/xelink.cxx sc/source/filter/excel/xilink.cxx svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx All other free functions mentioning moved classes appear to be harmless and not give rise to (silent, even) ADL breakage. (One remaining TODO in compilerplugins/clang/external.cxx is that derived classes are not covered by computeAffectedTypes, even though they could also be affected by ADL-breakage--- but don't seem to be in any acutal case across the code base.) For friend declarations using elaborate type specifiers, like class C1 {}; class C2 { friend class C1; }; * If C2 (but not C1) is moved into an unnamed namespace, the friend declaration must be changed to not use an elaborate type specifier (i.e., "friend C1;"; see C++17 [namespace.memdef]/3: "If the name in a friend declaration is neither qualified nor a template-id and the declaration is a function or an elaborated-type-specifier, the lookup to determine whether the entity has been previously declared shall not consider any scopes outside the innermost enclosing namespace.") * If C1 (but not C2) is moved into an unnamed namespace, the friend declaration must be changed too, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71882> "elaborated-type-specifier friend not looked up in unnamed namespace". Apart from that, to keep changes simple and mostly mechanical (which should help avoid regressions), out-of-line definitions of class members have been left in the enclosing (named) namespace. But explicit specializations of class templates had to be moved into the unnamed namespace to appease <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598> "explicit specialization of template from unnamed namespace using unqualified-id in enclosing namespace". Also, accompanying declarations (of e.g. typedefs or static variables) that could arguably be moved into the unnamed namespace too have been left alone. And in some cases, mention of affected types in blacklists in other loplugins needed to be adapted. And sc/qa/unit/mark_test.cxx uses a hack of including other .cxx, one of which is sc/source/core/data/segmenttree.cxx where e.g. ScFlatUInt16SegmentsImpl is not moved into an unnamed namespace (because it is declared in sc/inc/segmenttree.hxx), but its base ScFlatSegmentsImpl is. GCC warns about such combinations with enabled-by-default -Wsubobject-linkage, but "The compiler doesn’t give this warning for types defined in the main .C file, as those are unlikely to have multiple definitions." (<https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Warning-Options.html>) The warned-about classes also don't have multiple definitions in the given test, so disable the warning when including the .cxx. Change-Id: Ib694094c0d8168be68f8fe90dfd0acbb66a3f1e4 Reviewed-on: https://gerrit.libreoffice.org/83239 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-02tdf#42949 Fix IWYU warnings in xmloff/source/[s-x]*/*cxxGabor Kelemen1-3/+0
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I986ba9f661854d1b5fafc337ec109b0ee558a86a Reviewed-on: https://gerrit.libreoffice.org/79904 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-09-03loplugin:constmethod in xmloffNoel Grandin1-3/+3
Change-Id: I79ff1001a3ac8fde10de1ab391772e2bfeb6a314 Reviewed-on: https://gerrit.libreoffice.org/78546 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-17Add comphelper::getUnoTunnelImplementation templateArkadiy Illarionov1-2/+2
Use it instead of classname::getImplementation from UNO3_GETIMPLEMENTATION_* Change-Id: Ifcc8cfcd6369c576250008c76ce31ba79ea3a596 Reviewed-on: https://gerrit.libreoffice.org/74107 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-06-11Simplify Sequence iterations in xmloff/source/{style..xforms}Arkadiy Illarionov1-14/+6
Use range-based loops or replace with comphelper or STL functions Change-Id: Ie268d80b9c01d38c745c14a81c219d9930860562 Reviewed-on: https://gerrit.libreoffice.org/72189 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-12-08Remove obsolete SAL_FALLTHROUGH completelyStephan Bergmann1-1/+1
...after 7ffdd830d5fb52f2ca25aa80277d22ea6d89970b "HAVE_CPP_ATTRIBUTE_FALLTHROUGH is always true now" Change-Id: I54e5ff4e036a6bb3e5774d1c0524158aae18e937 Reviewed-on: https://gerrit.libreoffice.org/64800 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-10tdf#120703 PVS: V547 Expression is always true/falseMike Kaganski1-11/+2
Change-Id: I0b3c407331bfa1fa0c5003250d327d4f26de3643 Reviewed-on: https://gerrit.libreoffice.org/63235 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-10-26tdf#42949 Fix IWYU warnings in include/unotools/*Gabor Kelemen1-0/+1
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I444c43b9d549977039f25bec2b5bf666c3e15e0e Reviewed-on: https://gerrit.libreoffice.org/62041 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-10-20pvs-studio: loop-variable-too-smallCaolán McNamara1-4/+4
Change-Id: Ie4aafecd17cf53ab3cbab2003b59da374d06e06b Reviewed-on: https://gerrit.libreoffice.org/62058 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>