[Libreoffice-commits] .: 6 commits - svl/inc svl/source

Eike Rathke erack at kemper.freedesktop.org
Mon Apr 30 04:21:37 PDT 2012


 svl/inc/svl/nfversi.hxx         |   64 +++---
 svl/inc/svl/zforlist.hxx        |   24 +-
 svl/source/numbers/zforlist.cxx |  377 ++++++++++++++--------------------------
 3 files changed, 182 insertions(+), 283 deletions(-)

New commits:
commit dba0aed4ca39b2b40c6609ff336384dcc75c6914
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 30 13:20:07 2012 +0200

    some changes for new fixed fraction built-in formats
    
    Moved new fixed fraction built-in formats into the fixed set so they keep
    their relative key position when switching system locale.

diff --git a/svl/inc/svl/nfversi.hxx b/svl/inc/svl/nfversi.hxx
index bd1fd3f..65fe521 100644
--- a/svl/inc/svl/nfversi.hxx
+++ b/svl/inc/svl/nfversi.hxx
@@ -31,19 +31,20 @@
 
 //      file IDs
 
-#define SV_NUMBERFORMATTER_VERSION_SYSTORE      0x0004
-#define SV_NUMBERFORMATTER_VERSION_KEYWORDS     0x0005
-#define SV_NUMBERFORMATTER_VERSION_NEWSTANDARD  0x0006
-#define SV_NUMBERFORMATTER_VERSION_NF_TIME_HH_MMSS00    0x0007
-#define SV_NUMBERFORMATTER_VERSION_NF_DATE_WW   0x0008
-#define SV_NUMBERFORMATTER_VERSION_NEW_CURR     0x0009
-#define SV_NUMBERFORMATTER_VERSION_YEAR2000     0x000a
-#define SV_NUMBERFORMATTER_VERSION_TWODIGITYEAR 0x000b
+#define SV_NUMBERFORMATTER_VERSION_SYSTORE                  0x0004
+#define SV_NUMBERFORMATTER_VERSION_KEYWORDS                 0x0005
+#define SV_NUMBERFORMATTER_VERSION_NEWSTANDARD              0x0006
+#define SV_NUMBERFORMATTER_VERSION_NF_TIME_HH_MMSS00        0x0007
+#define SV_NUMBERFORMATTER_VERSION_NF_DATE_WW               0x0008
+#define SV_NUMBERFORMATTER_VERSION_NEW_CURR                 0x0009
+#define SV_NUMBERFORMATTER_VERSION_YEAR2000                 0x000a
+#define SV_NUMBERFORMATTER_VERSION_TWODIGITYEAR             0x000b
 #define SV_NUMBERFORMATTER_VERSION_NF_DATETIME_SYS_DDMMYYYY_HHMMSS  0x000c
-#define SV_NUMBERFORMATTER_VERSION_CALENDAR     0x000d
+#define SV_NUMBERFORMATTER_VERSION_CALENDAR                 0x000d
 #define SV_NUMBERFORMATTER_VERSION_ADDITIONAL_I18N_FORMATS  0x000e
+#define SV_NUMBERFORMATTER_VERSION_FIXED_FRACTION           0x000f
 
-#define SV_NUMBERFORMATTER_VERSION              0x000e
+#define SV_NUMBERFORMATTER_VERSION                          0x000f
 
 // 1 to 1996-01-18
 // 2    1996-01-19 added TT.MM.JJJJ
@@ -64,6 +65,8 @@
 // C    ????-??-?? date/time format of system variables
 // D    2000-11-23 new calendar
 // E    2001-01-19 additional formats provided by i18n
+// F    2012-04-27 fixed fraction formats ?/4 and ??/100, actually added
+//                  already 2010/2011 but without versioning
 
 #endif
 
diff --git a/svl/inc/svl/zforlist.hxx b/svl/inc/svl/zforlist.hxx
index fd3a7b9..96a8955 100644
--- a/svl/inc/svl/zforlist.hxx
+++ b/svl/inc/svl/zforlist.hxx
@@ -101,6 +101,9 @@ namespace rtl {
     <li>DIN: all settings hard coded as DIN (Deutsche Industrie Norm) and EN (European Norm) require.
     <li>all other: hard coded
     </ul>
+
+    Do NOT insert any new values!
+    The values here correspond with those in offapi/com/sun/star/i18n/NumberFormatIndex.idl
  */
 enum NfIndexTableOffset
 {
@@ -182,6 +185,13 @@ enum NfIndexTableOffset
 
     NF_BOOLEAN,                             // BOOLEAN
     NF_TEXT,                                // @
+
+    // From here on are values of new built-in formats that are not in the
+    // original NumberFormatIndex.idl
+
+    NF_FRACTION_3,                          // # ?/4
+    NF_FRACTION_4,                          // # ?/100
+
     NF_INDEX_TABLE_ENTRIES
 };
 
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index 2b067cf..c09d14e 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -2545,6 +2545,7 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bNoAdditio
 
     // Fraction number (no default option)
     i18n::NumberFormatCode aSingleFormatCode;
+    aSingleFormatCode.Usage = i18n::KNumberFormatUsage::FRACTION_NUMBER;
 
      // # ?/?
     aSingleFormatCode.Code = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "# ?/?" ) );
@@ -2557,6 +2558,20 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bNoAdditio
     ImpInsertFormat( aSingleFormatCode,
         CLOffset + SetIndexTable( NF_FRACTION_2, ZF_STANDARD_FRACTION+1 ));
 
+    // # ?/4
+    aSingleFormatCode.Code = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "# ?/4" ) );
+    ImpInsertNewStandardFormat( aSingleFormatCode,
+        CLOffset + SetIndexTable( NF_FRACTION_3, ZF_STANDARD_FRACTION+2 ),
+        SV_NUMBERFORMATTER_VERSION_FIXED_FRACTION );
+
+    // # ??/100
+    aSingleFormatCode.Code = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "# ?\?/100" ) );
+    ImpInsertNewStandardFormat( aSingleFormatCode,
+        CLOffset + SetIndexTable( NF_FRACTION_4, ZF_STANDARD_FRACTION+3 ),
+        SV_NUMBERFORMATTER_VERSION_FIXED_FRACTION );
+
+
+
     // Week of year   must be appended here because of nNewExtended
     const NfKeywordTable & rKeyword = pFormatScanner->GetKeywords();
     aSingleFormatCode.Code = rKeyword[NF_KEY_WW];
@@ -2565,7 +2580,6 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bNoAdditio
         SV_NUMBERFORMATTER_VERSION_NF_DATE_WW );
 
 
-
     bIndexTableInitialized = true;
     DBG_ASSERT( nNewExtended <= ZF_STANDARD_NEWEXTENDEDMAX,
         "ImpGenerateFormats: overflow of nNewExtended standard formats" );
@@ -2575,18 +2589,6 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bNoAdditio
     if ( !bNoAdditionalFormats )
         ImpGenerateAdditionalFormats( CLOffset, aNumberFormatCode, false );
 
-    sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey();
-
-    aSingleFormatCode.Code = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "# ?/4" ) );
-    ImpInsertNewStandardFormat( aSingleFormatCode, nPos+1, SV_NUMBERFORMATTER_VERSION_ADDITIONAL_I18N_FORMATS );
-    nPos++;
-
-    aSingleFormatCode.Code = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "# ?\?/100" ) );
-    ImpInsertNewStandardFormat( aSingleFormatCode, nPos+1, SV_NUMBERFORMATTER_VERSION_ADDITIONAL_I18N_FORMATS );
-    nPos++;
-
-    pStdFormat->SetLastInsertKey( (sal_uInt16)(nPos - CLOffset) );
-
     if (bOldConvertMode)
         pFormatScanner->SetConvertMode(true);
 }
commit 09bd7fdb92e848f777ab3311bcee0fb6b9f6bad9
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 30 13:20:06 2012 +0200

    get rid of dead binary file format legacy cruft in number formatter
    
    The only code that uses the binary storage format of SvNumberFormatter is the
    SvNumberFormatsSupplierServiceObject for the NumberFormatsSupplier service
    during streaming of forms' formatted fields with OFormattedFieldWrapper. That
    certainly does not need access to files created before the year 2000 ... so
    slice off that awful compatibility cruft.

diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index a83d5de..2b067cf 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -678,12 +678,12 @@ bool SvNumberFormatter::Load( SvStream& rStream )
     rStream >> nVersion;
     SvNumberformat* pEntry;
     sal_uInt32 nPos;
-    LanguageType eSaveSysLang, eLoadSysLang;
     sal_uInt16 nSysOnStore, eLge, eDummy;       // Dummy for compatible format
     rStream >> nSysOnStore >> eLge;             // system language from document
 
-    eSaveSysLang = (nVersion < SV_NUMBERFORMATTER_VERSION_SYSTORE ?
-        LANGUAGE_SYSTEM : (LanguageType) nSysOnStore);
+    SAL_WARN_IF( nVersion < SV_NUMBERFORMATTER_VERSION_CALENDAR, "svl.numbers", "SvNumberFormatter::Load: where does this unsupported old data come from?!?");
+
+    LanguageType eSaveSysLang = (LanguageType) nSysOnStore;
     LanguageType eLnge = (LanguageType) eLge;
     ImpChangeSysCL( eLnge, true );
 
@@ -696,132 +696,20 @@ bool SvNumberFormatter::Load( SvStream& rStream )
 
         sal_uInt32 nOffset = nPos % SV_COUNTRY_LANGUAGE_OFFSET;     // relativIndex
         bool bUserDefined = (nOffset > SV_MAX_ANZ_STANDARD_FORMATE);
-        //! HACK! ER 29.07.97 15:15
-        // SaveLang wurde bei SYSTEM nicht gespeichert sondern war auch SYSTEM,
-        // erst ab 364i Unterscheidung moeglich
-        bool bConversionHack;
-        if ( eLnge == LANGUAGE_SYSTEM )
-        {
-            if ( nVersion < SV_NUMBERFORMATTER_VERSION_SYSTORE )
-            {
-                bConversionHack = bUserDefined;
-                eLoadSysLang = eSaveSysLang;
-            }
-            else
-            {
-                bConversionHack = false;
-                eLoadSysLang = eSysLang;
-            }
-        }
-        else
-        {
-            bConversionHack = false;
-            eLoadSysLang = eSaveSysLang;
-        }
 
         pEntry = new SvNumberformat(*pFormatScanner, eLnge);
-        if ( bConversionHack )
-        {   // SYSTEM
-            // nVersion < SV_NUMBERFORMATTER_VERSION_SYSTORE
-            // nVersion < SV_NUMBERFORMATTER_VERSION_KEYWORDS
-            if ( !pConverter )
-                pConverter = new SvNumberFormatter( xServiceManager, eSysLang );
-            NfHackConversion eHackConversion = pEntry->Load(
-                rStream, aHdr, pConverter, *pStringScanner );
-            switch ( eHackConversion )
-            {
-                case NF_CONVERT_GERMAN_ENGLISH :
-                    pEntry->ConvertLanguage( *pConverter,
-                        LANGUAGE_ENGLISH_US, eSysLang, true );
-                break;
-                case NF_CONVERT_ENGLISH_GERMAN :
-                    switch ( eSysLang )
-                    {
-                        case LANGUAGE_GERMAN:
-                        case LANGUAGE_GERMAN_SWISS:
-                        case LANGUAGE_GERMAN_AUSTRIAN:
-                        case LANGUAGE_GERMAN_LUXEMBOURG:
-                        case LANGUAGE_GERMAN_LIECHTENSTEIN:
-                            // alles beim alten
-                        break;
-                        default:
-                            pEntry->ConvertLanguage( *pConverter,
-                                LANGUAGE_GERMAN, eSysLang, true );
-                    }
-                break;
-                case NF_CONVERT_NONE :
-                break;  // -Wall not handled.
-            }
-
-        }
-        else
+        pEntry->Load( rStream, aHdr, NULL, *pStringScanner );
+        if ( !bUserDefined )
+            bUserDefined = (pEntry->GetNewStandardDefined() > SV_NUMBERFORMATTER_VERSION);
+        if ( bUserDefined )
         {
-            pEntry->Load( rStream, aHdr, NULL, *pStringScanner );
-            if ( !bUserDefined )
-                bUserDefined = (pEntry->GetNewStandardDefined() > SV_NUMBERFORMATTER_VERSION);
-            if ( bUserDefined )
-            {
-                if ( eSaveSysLang != eLoadSysLang )
-                {   // different SYSTEM locale
-                    if ( !pConverter )
-                        pConverter = new SvNumberFormatter( xServiceManager, eSysLang );
-                    if ( nVersion < SV_NUMBERFORMATTER_VERSION_KEYWORDS )
-                    {
-                        switch ( eSaveSysLang )
-                        {
-                            case LANGUAGE_GERMAN:
-                            case LANGUAGE_GERMAN_SWISS:
-                            case LANGUAGE_GERMAN_AUSTRIAN:
-                            case LANGUAGE_GERMAN_LUXEMBOURG:
-                            case LANGUAGE_GERMAN_LIECHTENSTEIN:
-                                // these stay the same
-                                pEntry->ConvertLanguage( *pConverter,
-                                    eSaveSysLang, eLoadSysLang, true );
-                            break;
-                            default:
-                                // old English to new other
-                                pEntry->ConvertLanguage( *pConverter,
-                                    LANGUAGE_ENGLISH_US, eLoadSysLang, true );
-                        }
-                    }
-                    else
-                        pEntry->ConvertLanguage( *pConverter,
-                            eSaveSysLang, eLoadSysLang, true );
-                }
-                else
-                {   // not SYSTEM or same SYSTEM
-                    if ( nVersion < SV_NUMBERFORMATTER_VERSION_KEYWORDS )
-                    {
-                        LanguageType eLoadLang;
-                        bool bSystem;
-                        if ( eLnge == LANGUAGE_SYSTEM )
-                        {
-                            eLoadLang = eSysLang;
-                            bSystem = true;
-                        }
-                        else
-                        {
-                            eLoadLang = eLnge;
-                            bSystem = false;
-                        }
-                        switch ( eLoadLang )
-                        {
-                            case LANGUAGE_GERMAN:
-                            case LANGUAGE_GERMAN_SWISS:
-                            case LANGUAGE_GERMAN_AUSTRIAN:
-                            case LANGUAGE_GERMAN_LUXEMBOURG:
-                            case LANGUAGE_GERMAN_LIECHTENSTEIN:
-                                // these stay the same
-                            break;
-                            default:
-                                // old English to new other
-                                if ( !pConverter )
-                                    pConverter = new SvNumberFormatter( xServiceManager, eSysLang );
-                                pEntry->ConvertLanguage( *pConverter,
-                                    LANGUAGE_ENGLISH_US, eLoadLang, bSystem );
-                        }
-                    }
-                }
+            LanguageType eLoadSysLang = (eLnge == LANGUAGE_SYSTEM ? eSysLang : eSaveSysLang);
+            if ( eSaveSysLang != eLoadSysLang )
+            {   // different SYSTEM locale
+                if ( !pConverter )
+                    pConverter = new SvNumberFormatter( xServiceManager, eSysLang );
+                pEntry->ConvertLanguage( *pConverter,
+                        eSaveSysLang, eLoadSysLang, true );
             }
         }
         if ( nOffset == 0 )     // Standard/General format
commit b7c51cf8c748badc809ec0ac052099a48353a843
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 30 13:20:05 2012 +0200

    translated German comments

diff --git a/svl/inc/svl/nfversi.hxx b/svl/inc/svl/nfversi.hxx
index fbe4d3d..bd1fd3f 100644
--- a/svl/inc/svl/nfversi.hxx
+++ b/svl/inc/svl/nfversi.hxx
@@ -29,7 +29,7 @@
 #ifndef NF_NFVERSI_HXX
 #define NF_NFVERSI_HXX
 
-//      file ID's
+//      file IDs
 
 #define SV_NUMBERFORMATTER_VERSION_SYSTORE      0x0004
 #define SV_NUMBERFORMATTER_VERSION_KEYWORDS     0x0005
@@ -45,26 +45,25 @@
 
 #define SV_NUMBERFORMATTER_VERSION              0x000e
 
-// 1 bis 18.01.96
-// 2 ab  19.01.96, TT.MM.JJJJ dazu
-// 3 ab  13.02.96 (nicht emergency) #.##0,00 CCC dazu
-// 4 ab  30.07.97 364i speichern, was SYSTEM wirklich war (vorhandenes
-//                  Dummy-Feld wird benutzt, keine File-Format Aenderung)
-// 5 ab  07.08.97 nicht-deutsch ist nicht immer englisch
-//                  aeltere nicht-deutsche benutzerdefinierte Formate onLoad
-//                  konvertieren
-// 6 ab  17.10.97 neu: Keyword NNN fuer langen Wochentag ohne Separator,
-//                  wird in aelteren Versionen nicht ausgewertet!
-//                  Neue Standard Datumformate, DIN etc.
-// 7 ab  25.05.98 StandardFormat [HH]:MM:SS,00 (NF_TIME_HH_MMSS00) fuer
-//                  automatische Eingabe-Erkennung von 100stel Sekunden mit Stunden
-// 8 ab  19.06.98 StandardFormat WW (NF_DATE_WW) fuer Kalenderwoche
-// 9 ab  17.12.98 neue Waehrungsformate [$DM-xxx]
-// A ab  25.01.99 Year2000 speichern/laden
-// B ab  12.02.99 Year2000 ist allgemeines TwoDigitYearStart
-// C     ??.??.?? date/time format of system variables
-// D     23.11.00 new calendar
-// E     19.01.01 additional formats provided by i18n
+// 1 to 1996-01-18
+// 2    1996-01-19 added TT.MM.JJJJ
+// 3    1996-02-13 (not emergency) added #.##0,00 CCC
+// 4    1997-07-30 364i store what SYSTEM actually was (using existing
+//                  Dummy field, no change of file format)
+// 5    1997-08-07 non-German is not always English
+//                  convert older non-German user defined formats on load
+// 6    1997-10-17 new keyword NNN for long weekday without separator
+//                  not evaluated in older versions!
+//                  New standard date formats, DIN, EN etc.
+// 7    1998-05-25 Standard format [HH]:MM:SS,00 (NF_TIME_HH_MMSS00) for
+//                  automatic input recognition of 100th seconds with hours
+// 8    1998-06-10 Standard format WW (NF_DATE_WW) for calendar week
+// 9    1998-12-17 new currency formats [$DM-xxx]
+// A    1999-01-25 store/load Year2000
+// B    1999-02-12 Year2000 is general TwoDigitYearStart
+// C    ????-??-?? date/time format of system variables
+// D    2000-11-23 new calendar
+// E    2001-01-19 additional formats provided by i18n
 
 #endif
 
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index e26475b..a83d5de 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -183,7 +183,8 @@ sal_uInt16 SvNumberFormatter::nSystemCurrencyPosition = 0;
 SV_IMPL_PTRARR( NfCurrencyTable, NfCurrencyEntry* );
 SV_IMPL_PTRARR( NfWSStringsDtor, String* );
 
-// ob das BankSymbol immer am Ende ist (1 $;-1 $) oder sprachabhaengig
+// Whether BankSymbol (not CurrencySymbol!) is always at the end (1 $;-1 $) or
+// language dependent.
 #define NF_BANKSYMBOL_FIX_POSITION 1
 
 
@@ -470,20 +471,20 @@ bool SvNumberFormatter::IsTextFormat(sal_uInt32 F_Index) const
 bool SvNumberFormatter::PutEntry(String& rString,
                                  xub_StrLen& nCheckPos,
                                  short& nType,
-                                 sal_uInt32& nKey,          // Formatnummer
+                                 sal_uInt32& nKey,      // format key
                                  LanguageType eLnge)
 {
     nKey = 0;
-    if (rString.Len() == 0)                             // keinen Leerstring
+    if (rString.Len() == 0)                             // empty string
     {
-        nCheckPos = 1;                                  // -> Fehler
+        nCheckPos = 1;                                  // -> Error
         return false;
     }
     if (eLnge == LANGUAGE_DONTKNOW)
         eLnge = IniLnge;
 
-    ChangeIntl(eLnge);                                  // ggfs. austauschen
-    LanguageType eLge = eLnge;                          // Umgehung const fuer ConvertMode
+    ChangeIntl(eLnge);                                  // change locale if necessary
+    LanguageType eLge = eLnge;                          // non-const for ConvertMode
     bool bCheck = false;
     SvNumberformat* p_Entry = new SvNumberformat(rString,
                                                  pFormatScanner,
@@ -491,7 +492,7 @@ bool SvNumberFormatter::PutEntry(String& rString,
                                                  nCheckPos,
                                                  eLge);
     if (nCheckPos == 0)                         // Format ok
-    {                                           // Typvergleich:
+    {                                           // Type comparison:
         short eCheckType = p_Entry->GetType();
         if ( eCheckType != NUMBERFORMAT_UNDEFINED)
         {
@@ -503,10 +504,10 @@ bool SvNumberFormatter::PutEntry(String& rString,
             p_Entry->SetType(NUMBERFORMAT_DEFINED);
             nType = NUMBERFORMAT_DEFINED;
         }
-        sal_uInt32 CLOffset = ImpGenerateCL(eLge);              // ggfs. neu Standard-
-                                                        // formate anlegen
+        sal_uInt32 CLOffset = ImpGenerateCL(eLge);  // create new standard formats if necessary
+
         nKey = ImpIsEntry(p_Entry->GetFormatstring(),CLOffset, eLge);
-        if (nKey != NUMBERFORMAT_ENTRY_NOT_FOUND)               // schon vorhanden
+        if (nKey != NUMBERFORMAT_ENTRY_NOT_FOUND)   // already present
             delete p_Entry;
         else
         {
@@ -678,9 +679,9 @@ bool SvNumberFormatter::Load( SvStream& rStream )
     SvNumberformat* pEntry;
     sal_uInt32 nPos;
     LanguageType eSaveSysLang, eLoadSysLang;
-    sal_uInt16 nSysOnStore, eLge, eDummy;           // Dummy fuer kompatibles Format
-    rStream >> nSysOnStore >> eLge;             // Systemeinstellung aus
-                                                // Dokument
+    sal_uInt16 nSysOnStore, eLge, eDummy;       // Dummy for compatible format
+    rStream >> nSysOnStore >> eLge;             // system language from document
+
     eSaveSysLang = (nVersion < SV_NUMBERFORMATTER_VERSION_SYSTORE ?
         LANGUAGE_SYSTEM : (LanguageType) nSysOnStore);
     LanguageType eLnge = (LanguageType) eLge;
@@ -691,7 +692,7 @@ bool SvNumberFormatter::Load( SvStream& rStream )
     {
         rStream >> eDummy >> eLge;
         eLnge = (LanguageType) eLge;
-        ImpGenerateCL( eLnge, true );           // ggfs. neue Standardformate anlegen
+        ImpGenerateCL( eLnge, true );           // create new standard formats if necessary
 
         sal_uInt32 nOffset = nPos % SV_COUNTRY_LANGUAGE_OFFSET;     // relativIndex
         bool bUserDefined = (nOffset > SV_MAX_ANZ_STANDARD_FORMATE);
@@ -761,7 +762,7 @@ bool SvNumberFormatter::Load( SvStream& rStream )
             if ( bUserDefined )
             {
                 if ( eSaveSysLang != eLoadSysLang )
-                {   // SYSTEM verschieden
+                {   // different SYSTEM locale
                     if ( !pConverter )
                         pConverter = new SvNumberFormatter( xServiceManager, eSysLang );
                     if ( nVersion < SV_NUMBERFORMATTER_VERSION_KEYWORDS )
@@ -773,12 +774,12 @@ bool SvNumberFormatter::Load( SvStream& rStream )
                             case LANGUAGE_GERMAN_AUSTRIAN:
                             case LANGUAGE_GERMAN_LUXEMBOURG:
                             case LANGUAGE_GERMAN_LIECHTENSTEIN:
-                                // alles beim alten
+                                // these stay the same
                                 pEntry->ConvertLanguage( *pConverter,
                                     eSaveSysLang, eLoadSysLang, true );
                             break;
                             default:
-                                // alte english nach neuem anderen
+                                // old English to new other
                                 pEntry->ConvertLanguage( *pConverter,
                                     LANGUAGE_ENGLISH_US, eLoadSysLang, true );
                         }
@@ -788,7 +789,7 @@ bool SvNumberFormatter::Load( SvStream& rStream )
                             eSaveSysLang, eLoadSysLang, true );
                 }
                 else
-                {   // nicht SYSTEM oder gleiches SYSTEM
+                {   // not SYSTEM or same SYSTEM
                     if ( nVersion < SV_NUMBERFORMATTER_VERSION_KEYWORDS )
                     {
                         LanguageType eLoadLang;
@@ -810,10 +811,10 @@ bool SvNumberFormatter::Load( SvStream& rStream )
                             case LANGUAGE_GERMAN_AUSTRIAN:
                             case LANGUAGE_GERMAN_LUXEMBOURG:
                             case LANGUAGE_GERMAN_LIECHTENSTEIN:
-                                // alles beim alten
+                                // these stay the same
                             break;
                             default:
-                                // alte english nach neuem anderen
+                                // old English to new other
                                 if ( !pConverter )
                                     pConverter = new SvNumberFormatter( xServiceManager, eSysLang );
                                 pEntry->ConvertLanguage( *pConverter,
@@ -823,7 +824,7 @@ bool SvNumberFormatter::Load( SvStream& rStream )
                 }
             }
         }
-        if ( nOffset == 0 )     // StandardFormat
+        if ( nOffset == 0 )     // Standard/General format
         {
             SvNumberformat* pEnt = GetFormatEntry(nPos);
             if (pEnt)
@@ -834,7 +835,7 @@ bool SvNumberFormatter::Load( SvStream& rStream )
         rStream >> nPos;
     }
 
-    // ab SV_NUMBERFORMATTER_VERSION_YEAR2000
+    // as of SV_NUMBERFORMATTER_VERSION_YEAR2000
     if ( nVersion >= SV_NUMBERFORMATTER_VERSION_YEAR2000 )
     {
         aHdr.StartEntry();
@@ -843,7 +844,7 @@ bool SvNumberFormatter::Load( SvStream& rStream )
             sal_uInt16 nY2k;
             rStream >> nY2k;
             if ( nVersion < SV_NUMBERFORMATTER_VERSION_TWODIGITYEAR && nY2k < 100 )
-                nY2k += 1901;       // war vor src513e: 29, jetzt: 1930
+                nY2k += 1901;       // was before src513e: 29, now: 1930
             SetYear2000( nY2k );
         }
         aHdr.EndEntry();
@@ -875,7 +876,8 @@ bool SvNumberFormatter::Load( SvStream& rStream )
 bool SvNumberFormatter::Save( SvStream& rStream ) const
 {
     ImpSvNumMultipleWriteHeader aHdr( rStream );
-    // ab 364i wird gespeichert was SYSTEM wirklich war, vorher hart LANGUAGE_SYSTEM
+    // As of 364i we store what SYSTEM locale really was, before it was hard
+    // coded LANGUAGE_SYSTEM.
     rStream << (sal_uInt16) SV_NUMBERFORMATTER_VERSION;
     rStream << (sal_uInt16) SvtSysLocale().GetLanguage() << (sal_uInt16) IniLnge;
     const SvNumberFormatTable* pTable = &aFTable;
@@ -883,9 +885,9 @@ bool SvNumberFormatter::Save( SvStream& rStream ) const
     while (it != pTable->end())
     {
         SvNumberformat* pEntry = it->second;
-        // Gespeichert werden alle markierten, benutzerdefinierten Formate und
-        // jeweils das Standardformat zu allen angewaehlten CL-Kombinationen
-        // sowie NewStandardDefined
+        // Stored are all marked user defined formats and for each active
+        // (selected) locale the Standard/General format and
+        // NewStandardDefined.
         if ( pEntry->GetUsed() || (pEntry->GetType() & NUMBERFORMAT_DEFINED) ||
                 pEntry->GetNewStandardDefined() ||
                 (it->first % SV_COUNTRY_LANGUAGE_OFFSET == 0) )
@@ -897,9 +899,9 @@ bool SvNumberFormatter::Save( SvStream& rStream ) const
         }
         ++it;
     }
-    rStream << NUMBERFORMAT_ENTRY_NOT_FOUND;                // EndeKennung
+    rStream << NUMBERFORMAT_ENTRY_NOT_FOUND;                // end marker
 
-    // ab SV_NUMBERFORMATTER_VERSION_YEAR2000
+    // as of SV_NUMBERFORMATTER_VERSION_YEAR2000
     aHdr.StartEntry();
     rStream << (sal_uInt16) GetYear2000();
     aHdr.EndEntry();
@@ -993,14 +995,13 @@ SvNumberFormatTable& SvNumberFormatter::GetFirstEntryTable(
                                                       LanguageType& rLnge)
 {
     short eTypetmp = eType;
-    if (eType == NUMBERFORMAT_ALL)                  // Leere Zelle oder don't care
+    if (eType == NUMBERFORMAT_ALL)                  // empty cell or don't care
         rLnge = IniLnge;
     else
     {
         SvNumberformat* pFormat = GetFormatEntry(FIndex);
         if (!pFormat)
         {
-//          OSL_FAIL("SvNumberFormatter:: Unbekanntes altes Zahlformat (1)");
             rLnge = IniLnge;
             eType = NUMBERFORMAT_ALL;
             eTypetmp = eType;
@@ -1417,7 +1418,7 @@ sal_uInt32 SvNumberFormatter::GetStandardFormat( double fNumber, sal_uInt32 nFIn
                 bSign = false;
             double fSeconds = fNumber * 86400;
             if ( floor( fSeconds + 0.5 ) * 100 != floor( fSeconds * 100 + 0.5 ) )
-            {   // mit 100stel Sekunden
+            {   // with 100th seconds
                 if ( bSign || fSeconds >= 3600 )
                     return GetFormatIndex( NF_TIME_HH_MMSS00, eLnge );
                 else
@@ -1512,7 +1513,7 @@ void SvNumberFormatter::GetInputLineString(const double& fOutNumber,
                                      || eType == NUMBERFORMAT_SCIENTIFIC
                                      || eType == NUMBERFORMAT_FRACTION)
     {
-        if (eType != NUMBERFORMAT_PERCENT)  // spaeter Sonderbehandlung %
+        if (eType != NUMBERFORMAT_PERCENT)  // special treatment of % later
             eType = NUMBERFORMAT_NUMBER;
         ChangeStandardPrec(INPUTSTRING_PRECISION);
         bPrecChanged = true;
@@ -1638,14 +1639,14 @@ bool SvNumberFormatter::GetPreviewString(const String& sFormatString,
                                          Color** ppColor,
                                          LanguageType eLnge)
 {
-    if (sFormatString.Len() == 0)                       // keinen Leerstring
+    if (sFormatString.Len() == 0)                       // no empty string
         return false;
 
     xub_StrLen nCheckPos = STRING_NOTFOUND;
     sal_uInt32 nKey;
     if (eLnge == LANGUAGE_DONTKNOW)
         eLnge = IniLnge;
-    ChangeIntl(eLnge);                          // ggfs. austauschen
+    ChangeIntl(eLnge);                          // change locale if necessary
     eLnge = ActLnge;
     String sTmpString = sFormatString;
     SvNumberformat* p_Entry = new SvNumberformat(sTmpString,
@@ -1655,10 +1656,9 @@ bool SvNumberFormatter::GetPreviewString(const String& sFormatString,
                                                  eLnge);
     if (nCheckPos == 0)                                 // String ok
     {
-        sal_uInt32 CLOffset = ImpGenerateCL(eLnge);             // ggfs. neu Standard-
-                                                        // formate anlegen
+        sal_uInt32 CLOffset = ImpGenerateCL(eLnge);     // create new standard formats if necessary
         nKey = ImpIsEntry(p_Entry->GetFormatstring(),CLOffset, eLnge);
-        if (nKey != NUMBERFORMAT_ENTRY_NOT_FOUND)               // schon vorhanden
+        if (nKey != NUMBERFORMAT_ENTRY_NOT_FOUND)       // already present
             GetOutputString(fPreviewNumber,nKey,sOutString,ppColor);
         else
             p_Entry->GetOutputString(fPreviewNumber,sOutString, ppColor);
@@ -1678,7 +1678,7 @@ bool SvNumberFormatter::GetPreviewStringGuess( const String& sFormatString,
                                          Color** ppColor,
                                          LanguageType eLnge )
 {
-    if (sFormatString.Len() == 0)                       // keinen Leerstring
+    if (sFormatString.Len() == 0)                       // no empty string
         return false;
 
     if (eLnge == LANGUAGE_DONTKNOW)
@@ -1758,7 +1758,7 @@ bool SvNumberFormatter::GetPreviewStringGuess( const String& sFormatString,
 
     if (nCheckPos == 0)                                 // String ok
     {
-        ImpGenerateCL( eLnge );     // ggfs. neu Standardformate anlegen
+        ImpGenerateCL( eLnge );     // create new standard formats if necessary
         pEntry->GetOutputString( fPreviewNumber, sOutString, ppColor );
         delete pEntry;
         return true;
@@ -1822,13 +1822,13 @@ bool SvNumberFormatter::GetPreviewString( const String& sFormatString,
 sal_uInt32 SvNumberFormatter::TestNewString(const String& sFormatString,
                                       LanguageType eLnge)
 {
-    if (sFormatString.Len() == 0)                       // keinen Leerstring
+    if (sFormatString.Len() == 0)                       // no empty string
         return NUMBERFORMAT_ENTRY_NOT_FOUND;
 
     xub_StrLen nCheckPos = STRING_NOTFOUND;
     if (eLnge == LANGUAGE_DONTKNOW)
         eLnge = IniLnge;
-    ChangeIntl(eLnge);                                  // ggfs. austauschen
+    ChangeIntl(eLnge);                                  // change locale if necessary
     eLnge = ActLnge;
     sal_uInt32 nRes;
     String sTmpString = sFormatString;
@@ -1839,10 +1839,9 @@ sal_uInt32 SvNumberFormatter::TestNewString(const String& sFormatString,
                                                 eLnge);
     if (nCheckPos == 0)                                 // String ok
     {
-        sal_uInt32 CLOffset = ImpGenerateCL(eLnge);             // ggfs. neu Standard-
-                                                        // formate anlegen
+        sal_uInt32 CLOffset = ImpGenerateCL(eLnge);     // create new standard formats if necessary
         nRes = ImpIsEntry(pEntry->GetFormatstring(),CLOffset, eLnge);
-                                                        // schon vorhanden ?
+                                                        // already present?
     }
     else
         nRes = NUMBERFORMAT_ENTRY_NOT_FOUND;
@@ -2044,7 +2043,7 @@ sal_uInt32 SvNumberFormatter::GetFormatSpecialInfo( const String& rFormatString,
     xub_StrLen nCheckPos = 0;
     if (eLnge == LANGUAGE_DONTKNOW)
         eLnge = IniLnge;
-    ChangeIntl(eLnge);                                  // ggfs. austauschen
+    ChangeIntl(eLnge);                                  // change locale if necessary
     eLnge = ActLnge;
     String aTmpStr( rFormatString );
     SvNumberformat* pFormat = new SvNumberformat( aTmpStr,
@@ -2806,8 +2805,7 @@ void SvNumberFormatter::GenerateFormat(String& sString,
         eLnge = IniLnge;
     short eType = GetType(nIndex);
     sal_uInt16 i;
-    ImpGenerateCL(eLnge);               // ggfs. neu Standard-
-                                    // formate anlegen
+    ImpGenerateCL(eLnge);           // create new standard formats if necessary
     sString.Erase();
 
     utl::DigitGroupingIterator aGrouping( xLocaleData->getDigitGrouping());
@@ -2952,8 +2950,7 @@ bool SvNumberFormatter::IsUserDefined(const String& sStr,
 {
     if (eLnge == LANGUAGE_DONTKNOW)
         eLnge = IniLnge;
-    sal_uInt32 CLOffset = ImpGenerateCL(eLnge);             // ggfs. neu Standard-
-                                                    // formate anlegen
+    sal_uInt32 CLOffset = ImpGenerateCL(eLnge);     // create new standard formats if necessary
     eLnge = ActLnge;
     sal_uInt32 nKey = ImpIsEntry(sStr, CLOffset, eLnge);
     if (nKey == NUMBERFORMAT_ENTRY_NOT_FOUND)
@@ -2969,8 +2966,7 @@ sal_uInt32 SvNumberFormatter::GetEntryKey(const String& sStr,
 {
     if (eLnge == LANGUAGE_DONTKNOW)
         eLnge = IniLnge;
-    sal_uInt32 CLOffset = ImpGenerateCL(eLnge);             // ggfs. neu Standard-
-                                                    // formate anlegen
+    sal_uInt32 CLOffset = ImpGenerateCL(eLnge);     // create new standard formats if necessary
     return ImpIsEntry(sStr, CLOffset, eLnge);
 }
 
@@ -3018,33 +3014,33 @@ SvNumberFormatterIndexTable* SvNumberFormatter::MergeFormatter(SvNumberFormatter
     {
         SvNumberformat* pFormat = it->second;
         nOldKey = it->first;
-        nOffset = nOldKey % SV_COUNTRY_LANGUAGE_OFFSET;     // relativIndex
-        if (nOffset == 0)                                   // 1. Format von CL
+        nOffset = nOldKey % SV_COUNTRY_LANGUAGE_OFFSET;     // relative index
+        if (nOffset == 0)                                   // 1st format of CL
             nCLOffset = ImpGenerateCL(pFormat->GetLanguage());
 
         if (nOffset <= SV_MAX_ANZ_STANDARD_FORMATE)     // Std.form.
         {
             nNewKey = nCLOffset + nOffset;
-            if (aFTable.find( nNewKey) == aFTable.end())                  // noch nicht da
+            if (aFTable.find( nNewKey) == aFTable.end())    // not already present
             {
-//              pNewEntry = new SvNumberformat(*pFormat);   // Copy reicht nicht !!!
+//              pNewEntry = new SvNumberformat(*pFormat);   // Copy is not sufficient!
                 pNewEntry = new SvNumberformat( *pFormat, *pFormatScanner );
                 if (!aFTable.insert(make_pair( nNewKey, pNewEntry)).second)
                     delete pNewEntry;
             }
-            if (nNewKey != nOldKey)                     // neuer Index
+            if (nNewKey != nOldKey)                     // new index
             {
                 (*pMergeTable)[nOldKey] = nNewKey;
             }
         }
-        else                                            // benutzerdef.
+        else                                            // user defined
         {
-//          pNewEntry = new SvNumberformat(*pFormat);   // Copy reicht nicht !!!
+//          pNewEntry = new SvNumberformat(*pFormat);   // Copy is not sufficient!
             pNewEntry = new SvNumberformat( *pFormat, *pFormatScanner );
             nNewKey = ImpIsEntry(pNewEntry->GetFormatstring(),
                               nCLOffset,
                               pFormat->GetLanguage());
-            if (nNewKey != NUMBERFORMAT_ENTRY_NOT_FOUND) // schon vorhanden
+            if (nNewKey != NUMBERFORMAT_ENTRY_NOT_FOUND) // already present
                 delete pNewEntry;
             else
             {
@@ -3063,7 +3059,7 @@ SvNumberFormatterIndexTable* SvNumberFormatter::MergeFormatter(SvNumberFormatter
                 else
                     pStdFormat->SetLastInsertKey((sal_uInt16) (nNewKey - nCLOffset));
             }
-            if (nNewKey != nOldKey)                     // neuer Index
+            if (nNewKey != nOldKey)                     // new index
             {
                 (*pMergeTable)[nOldKey] = nNewKey;
             }
@@ -3096,11 +3092,11 @@ sal_uInt32 SvNumberFormatter::GetFormatForLanguageIfBuiltIn( sal_uInt32 nFormat,
     if ( eLnge == LANGUAGE_DONTKNOW )
         eLnge = IniLnge;
     if ( nFormat < SV_COUNTRY_LANGUAGE_OFFSET && eLnge == IniLnge )
-        return nFormat;     // es bleibt wie es ist
-    sal_uInt32 nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET;      // relativIndex
+        return nFormat;     // it stays as it is
+    sal_uInt32 nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET;  // relative index
     if ( nOffset > SV_MAX_ANZ_STANDARD_FORMATE )
-        return nFormat;                 // kein eingebautes Format
-    sal_uInt32 nCLOffset = ImpGenerateCL(eLnge);        // ggbf. generieren
+        return nFormat;    // not a built-in format
+    sal_uInt32 nCLOffset = ImpGenerateCL(eLnge);    // create new standard formats if necessary
     return nCLOffset + nOffset;
 }
 
@@ -3113,16 +3109,16 @@ sal_uInt32 SvNumberFormatter::GetFormatIndex( NfIndexTableOffset nTabOff,
         return NUMBERFORMAT_ENTRY_NOT_FOUND;
     if ( eLnge == LANGUAGE_DONTKNOW )
         eLnge = IniLnge;
-    sal_uInt32 nCLOffset = ImpGenerateCL(eLnge);        // ggbf. generieren
+    sal_uInt32 nCLOffset = ImpGenerateCL(eLnge);    // create new standard formats if necessary
     return nCLOffset + theIndexTable[nTabOff];
 }
 
 
 NfIndexTableOffset SvNumberFormatter::GetIndexTableOffset( sal_uInt32 nFormat ) const
 {
-    sal_uInt32 nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET;      // relativIndex
+    sal_uInt32 nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET;      // relative index
     if ( nOffset > SV_MAX_ANZ_STANDARD_FORMATE )
-        return NF_INDEX_TABLE_ENTRIES;      // kein eingebautes Format
+        return NF_INDEX_TABLE_ENTRIES;      // not a built-in format
     for ( sal_uInt16 j = 0; j < NF_INDEX_TABLE_ENTRIES; j++ )
     {
         if ( theIndexTable[j] == nOffset )
@@ -3450,7 +3446,7 @@ bool SvNumberFormatter::GetNewCurrencySymbolString( sal_uInt32 nFormat,
                 }
             }
             if ( !rStr.Len() )
-            {   // analog zu BuildSymbolString
+            {   // analog to BuildSymbolString
                 rStr  = '[';
                 rStr += '$';
                 if ( aSymbol.Search( '-' ) != STRING_NOTFOUND ||
@@ -3774,7 +3770,8 @@ sal_uInt16 SvNumberFormatter::GetCurrencyFormatStrings( NfWSStringsDtor& rStrArr
 {
     sal_uInt16 nDefault = 0;
     if ( bBank )
-    {   // nur Bankensymbole
+    {
+        // Only bank symbols.
         String aPositiveBank, aNegativeBank;
         rCurr.BuildPositiveFormatString( aPositiveBank, true, *xLocaleData, 1 );
         rCurr.BuildNegativeFormatString( aNegativeBank, true, *xLocaleData, 1 );
@@ -3797,8 +3794,9 @@ sal_uInt16 SvNumberFormatter::GetCurrencyFormatStrings( NfWSStringsDtor& rStrArr
         nDefault = rStrArr.Count() - 1;
     }
     else
-    {   // gemischte Formate wie in SvNumberFormatter::ImpGenerateFormats
-        // aber keine doppelten, wenn keine Nachkommastellen in Waehrung
+    {
+        // Mixed formats like in SvNumberFormatter::ImpGenerateFormats() but no
+        // duplicates if no decimals in currency.
         String aPositive, aNegative, aPositiveNoDec, aNegativeNoDec,
             aPositiveDashed, aNegativeDashed;
         WSStringPtr pFormat1, pFormat2, pFormat3, pFormat4, pFormat5;
@@ -4161,7 +4159,7 @@ sal_uInt16 NfCurrencyEntry::GetEffectivePositiveFormat(
 }
 
 
-// nur aufrufen, wenn nCurrFormat wirklich mit Klammern ist
+//! Call this only if nCurrFormat is really with parentheses!
 sal_uInt16 lcl_MergeNegativeParenthesisFormat( sal_uInt16 nIntlFormat, sal_uInt16 nCurrFormat )
 {
     short nSign = 0;        // -1:=Klammer 0:=links, 1:=mitte, 2:=rechts
@@ -4393,8 +4391,8 @@ sal_Char NfCurrencyEntry::GetEuroSymbol( rtl_TextEncoding eTextEncoding )
 #if WNT
             return '\x80';
 #elif UNX
-//          return '\xA4';      // #56121# 0xA4 waere korrekt fuer iso-8859-15
-            return '\x80';      // aber Windoze-Code fuer die konvertierten TrueType-Fonts
+//          return '\xA4';      // #56121# 0xA4 would be correct for iso-8859-15
+            return '\x80';      // but Windows code for the converted TrueType fonts
 #else
 #error EuroSymbol is what?
             return '\x80';
commit 7bb409a7dfa67370b7bcd7104a1bb20a6bc8bb9b
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 30 13:20:04 2012 +0200

    compare iterators with notequal

diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index 2084706..e26475b 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -136,7 +136,7 @@ SvNumberFormatterRegistry_Impl::~SvNumberFormatterRegistry_Impl()
 SvNumberFormatter* SvNumberFormatterRegistry_Impl::Remove( SvNumberFormatter* pThis )
 {
     for (SvNumberFormatterList_impl::iterator it = aFormatters.begin();
-            it < aFormatters.end(); ++it)
+            it != aFormatters.end(); ++it)
     {
         if ( *it == pThis )
         {
commit 332cc04cbbe069baa5a72e4e1be9de10c64e2e56
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 30 13:20:04 2012 +0200

    straighten confusing brackets

diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index 1f443c8..2084706 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -135,12 +135,11 @@ SvNumberFormatterRegistry_Impl::~SvNumberFormatterRegistry_Impl()
 
 SvNumberFormatter* SvNumberFormatterRegistry_Impl::Remove( SvNumberFormatter* pThis )
 {
-    for(
-        SvNumberFormatterList_impl::iterator it = aFormatters.begin();
-        it < aFormatters.end();
-        ++it
-    ) {
-        if ( *it == pThis ) {
+    for (SvNumberFormatterList_impl::iterator it = aFormatters.begin();
+            it < aFormatters.end(); ++it)
+    {
+        if ( *it == pThis )
+        {
             aFormatters.erase( it );
             break;
         }
@@ -150,8 +149,8 @@ SvNumberFormatter* SvNumberFormatterRegistry_Impl::Remove( SvNumberFormatter* pT
 
 void SvNumberFormatterRegistry_Impl::ConfigurationChanged(
     utl::ConfigurationBroadcaster*,
-    sal_uInt32 nHint
-) {
+    sal_uInt32 nHint)
+{
         if ( nHint & SYSLOCALEOPTIONS_HINT_LOCALE )
         {
             ::osl::MutexGuard aGuard( SvNumberFormatter::GetMutex() );
commit 850497d72193704192f9f036425ea51b42cc68cd
Author: Eike Rathke <erack at redhat.com>
Date:   Mon Apr 30 13:20:03 2012 +0200

    get rid of confusing *LoadingSO5 names

diff --git a/svl/inc/svl/zforlist.hxx b/svl/inc/svl/zforlist.hxx
index 7f2a7ff..fd3a7b9 100644
--- a/svl/inc/svl/zforlist.hxx
+++ b/svl/inc/svl/zforlist.hxx
@@ -851,29 +851,29 @@ private:
 
     // Changes initialized language/country, clears the entries and generates
     // new ones, may ONLY be called by the binary file format load
-    SVL_DLLPRIVATE void ImpChangeSysCL( LanguageType eLnge, bool bLoadingSO5 );
+    SVL_DLLPRIVATE void ImpChangeSysCL( LanguageType eLnge, bool bNoAdditionalFormats );
 
     // Generate builtin formats provided by i18n behind CLOffset,
-    // if bLoadingSO5==false also generate additional i18n formats.
-    SVL_DLLPRIVATE void ImpGenerateFormats( sal_uInt32 CLOffset, bool bLoadingSO5 );
+    // if bNoAdditionalFormats==false also generate additional i18n formats.
+    SVL_DLLPRIVATE void ImpGenerateFormats( sal_uInt32 CLOffset, bool bNoAdditionalFormats );
 
     // Generate additional formats provided by i18n
     SVL_DLLPRIVATE void ImpGenerateAdditionalFormats(
                 sal_uInt32 CLOffset,
                 NumberFormatCodeWrapper& rNumberFormatCode,
-                bool bAfterLoadingSO5 );
+                bool bAfterChangingSystemCL );
 
     SVL_DLLPRIVATE SvNumberformat* ImpInsertFormat(
                 const ::com::sun::star::i18n::NumberFormatCode& rCode,
                 sal_uInt32 nPos,
-                bool bAfterLoadingSO5 = false,
+                bool bAfterChangingSystemCL = false,
                 sal_Int16 nOrgIndex = 0 );
     // ImpInsertNewStandardFormat for new (since version ...) builtin formats
     SVL_DLLPRIVATE SvNumberformat* ImpInsertNewStandardFormat(
                 const ::com::sun::star::i18n::NumberFormatCode& rCode,
                 sal_uInt32 nPos,
                 sal_uInt16 nVersion,
-                bool bAfterLoadingSO5 = false,
+                bool bAfterChangingSystemCL = false,
                 sal_Int16 nOrgIndex = 0 );
 
     // Return CLOffset or (MaxCLOffset + SV_COUNTRY_LANGUAGE_OFFSET) if new language/country
@@ -886,7 +886,7 @@ private:
                         LanguageType eLnge );
 
     // Create builtin formats for language/country if necessary, return CLOffset
-    SVL_DLLPRIVATE sal_uInt32 ImpGenerateCL( LanguageType eLnge, bool bLoadingSO5 = false );
+    SVL_DLLPRIVATE sal_uInt32 ImpGenerateCL( LanguageType eLnge, bool bNoAdditionalFormats = false );
 
     // Build negative currency format, old compatibility style
     SVL_DLLPRIVATE void ImpGetNegCurrFormat( String& sNegStr, const String& rCurrSymbol );
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index 83a1232..1f443c8 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -349,7 +349,7 @@ sal_uInt16 SvNumberFormatter::GetStandardPrec()
     return pFormatScanner->GetStandardPrec();
 }
 
-void SvNumberFormatter::ImpChangeSysCL( LanguageType eLnge, bool bLoadingSO5 )
+void SvNumberFormatter::ImpChangeSysCL( LanguageType eLnge, bool bNoAdditionalFormats )
 {
     if (eLnge == LANGUAGE_DONTKNOW)
         eLnge = UNKNOWN_SUBSTITUTE;
@@ -361,9 +361,9 @@ void SvNumberFormatter::ImpChangeSysCL( LanguageType eLnge, bool bLoadingSO5 )
         for (SvNumberFormatTable::iterator it = aFTable.begin(); it != aFTable.end(); ++it)
             delete it->second;
         aFTable.clear();
-        ImpGenerateFormats( 0, bLoadingSO5 );   // new standard formats
+        ImpGenerateFormats( 0, bNoAdditionalFormats );   // new standard formats
     }
-    else if ( bLoadingSO5 )
+    else if ( bNoAdditionalFormats )
     {   // delete additional standard formats
         sal_uInt32 nKey;
         SvNumberFormatTable::iterator it = aFTable.find( SV_MAX_ANZ_STANDARD_FORMATE + 1 );
@@ -1028,7 +1028,7 @@ SvNumberFormatTable& SvNumberFormatter::GetFirstEntryTable(
     return GetEntryTable(eTypetmp, FIndex, rLnge);
 }
 
-sal_uInt32 SvNumberFormatter::ImpGenerateCL( LanguageType eLnge, bool bLoadingSO5 )
+sal_uInt32 SvNumberFormatter::ImpGenerateCL( LanguageType eLnge, bool bNoAdditionalFormats )
 {
     ChangeIntl(eLnge);
     sal_uInt32 CLOffset = ImpGetCLOffset(ActLnge);
@@ -1090,7 +1090,7 @@ sal_uInt32 SvNumberFormatter::ImpGenerateCL( LanguageType eLnge, bool bLoadingSO
         }
 
         MaxCLOffset += SV_COUNTRY_LANGUAGE_OFFSET;
-        ImpGenerateFormats( MaxCLOffset, bLoadingSO5 );
+        ImpGenerateFormats( MaxCLOffset, bNoAdditionalFormats );
         CLOffset = MaxCLOffset;
     }
     return CLOffset;
@@ -1853,7 +1853,7 @@ sal_uInt32 SvNumberFormatter::TestNewString(const String& sFormatString,
 
 SvNumberformat* SvNumberFormatter::ImpInsertFormat(
             const ::com::sun::star::i18n::NumberFormatCode& rCode,
-            sal_uInt32 nPos, bool bAfterLoadingSO5, sal_Int16 nOrgIndex )
+            sal_uInt32 nPos, bool bAfterChangingSystemCL, sal_Int16 nOrgIndex )
 {
     String aCodeStr( rCode.Code );
     if ( rCode.Index < NF_INDEX_TABLE_ENTRIES &&
@@ -1904,29 +1904,29 @@ SvNumberformat* SvNumberFormatter::ImpInsertFormat(
         sal_uInt32 nKey = ImpIsEntry( aCodeStr, nCLOffset, ActLnge );
         if ( nKey != NUMBERFORMAT_ENTRY_NOT_FOUND )
         {
-            if (LocaleDataWrapper::areChecksEnabled())
+            // If bAfterChangingSystemCL there will definitely be some dups,
+            // don't cry then.
+            if (LocaleDataWrapper::areChecksEnabled() && !bAfterChangingSystemCL)
             {
+                // Test for duplicate indexes in locale data.
                 switch ( nOrgIndex )
                 {
-                    // These may be dupes of integer versions for locales where
+                    // These may be dups of integer versions for locales where
                     // currencies have no decimals like Italian Lira.
                     case NF_CURRENCY_1000DEC2 :         // NF_CURRENCY_1000INT
                     case NF_CURRENCY_1000DEC2_RED :     // NF_CURRENCY_1000INT_RED
                     case NF_CURRENCY_1000DEC2_DASHED :  // NF_CURRENCY_1000INT_RED
-                    break;
+                        break;
                     default:
-                        if ( !bAfterLoadingSO5 )
-                        {   // If bAfterLoadingSO5 there will definitely be some dupes,
-                            // don't cry. But we need this test for verification of locale
-                            // data if not loading old SO5 documents.
-                            String aMsg( RTL_CONSTASCII_USTRINGPARAM(
-                                        "SvNumberFormatter::ImpInsertFormat: dup format code, index "));
-                            aMsg += String::CreateFromInt32( rCode.Index );
-                            aMsg += '\n';
-                            aMsg += String( rCode.Code );
-                            LocaleDataWrapper::outputCheckMessage(
-                                    xLocaleData->appendLocaleInfo( aMsg));
-                        }
+                    {
+                        String aMsg( RTL_CONSTASCII_USTRINGPARAM(
+                                    "SvNumberFormatter::ImpInsertFormat: dup format code, index "));
+                        aMsg += String::CreateFromInt32( rCode.Index );
+                        aMsg += '\n';
+                        aMsg += String( rCode.Code );
+                        LocaleDataWrapper::outputCheckMessage(
+                                xLocaleData->appendLocaleInfo( aMsg));
+                    }
                 }
             }
             delete pFormat;
@@ -1974,11 +1974,11 @@ SvNumberformat* SvNumberFormatter::ImpInsertFormat(
 
 SvNumberformat* SvNumberFormatter::ImpInsertNewStandardFormat(
             const ::com::sun::star::i18n::NumberFormatCode& rCode,
-            sal_uInt32 nPos, sal_uInt16 nVersion, bool bAfterLoadingSO5,
+            sal_uInt32 nPos, sal_uInt16 nVersion, bool bAfterChangingSystemCL,
             sal_Int16 nOrgIndex )
 {
     SvNumberformat* pNewFormat = ImpInsertFormat( rCode, nPos,
-        bAfterLoadingSO5, nOrgIndex );
+        bAfterChangingSystemCL, nOrgIndex );
     if (pNewFormat)
         pNewFormat->SetNewStandardDefined( nVersion );
         // so that it gets saved, displayed properly, and converted by old versions
@@ -2258,7 +2258,7 @@ const SvNumberformat* SvNumberFormatter::GetEntry( sal_uInt32 nKey ) const
     return 0;
 }
 
-void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bLoadingSO5 )
+void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bNoAdditionalFormats )
 {
     using namespace ::com::sun::star;
 
@@ -2685,8 +2685,8 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bLoadingSO
         "ImpGenerateFormats: overflow of nNewExtended standard formats" );
 
     // Now all additional format codes provided by I18N, but only if not
-    // loading from old SO5 file format, then they are appended last.
-    if ( !bLoadingSO5 )
+    // changing SystemCL, then they are appended last after user defined.
+    if ( !bNoAdditionalFormats )
         ImpGenerateAdditionalFormats( CLOffset, aNumberFormatCode, false );
 
     sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey();
@@ -2707,7 +2707,7 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bLoadingSO
 
 
 void SvNumberFormatter::ImpGenerateAdditionalFormats( sal_uInt32 CLOffset,
-            NumberFormatCodeWrapper& rNumberFormatCode, bool bAfterLoadingSO5 )
+            NumberFormatCodeWrapper& rNumberFormatCode, bool bAfterChangingSystemCL )
 {
     using namespace ::com::sun::star;
 
@@ -2747,7 +2747,7 @@ void SvNumberFormatter::ImpGenerateAdditionalFormats( sal_uInt32 CLOffset,
             aFormatSeq[j].Default = false;
             if ( ImpInsertNewStandardFormat( pFormatArr[j], nPos+1,
                     SV_NUMBERFORMATTER_VERSION_ADDITIONAL_I18N_FORMATS,
-                    bAfterLoadingSO5, nOrgIndex ) )
+                    bAfterChangingSystemCL, nOrgIndex ) )
                 nPos++;
             pFormatArr[j].Index = nOrgIndex;
             aFormatSeq[j].Default = bDefault;
@@ -2774,7 +2774,7 @@ void SvNumberFormatter::ImpGenerateAdditionalFormats( sal_uInt32 CLOffset,
             if ( pFormatArr[j].Index >= NF_INDEX_TABLE_ENTRIES )
                 if ( ImpInsertNewStandardFormat( pFormatArr[j], nPos+1,
                         SV_NUMBERFORMATTER_VERSION_ADDITIONAL_I18N_FORMATS,
-                        bAfterLoadingSO5 ) )
+                        bAfterChangingSystemCL ) )
                     nPos++;
         }
     }


More information about the Libreoffice-commits mailing list