[Libreoffice-commits] core.git: 4 commits - svl/inc svl/source

Eike Rathke erack at redhat.com
Fri Mar 15 11:34:30 PDT 2013


 svl/inc/svl/zformat.hxx         |   14 +++++++++++++-
 svl/source/numbers/zforfind.cxx |    4 ++--
 svl/source/numbers/zformat.cxx  |    9 +++++----
 3 files changed, 20 insertions(+), 7 deletions(-)

New commits:
commit 2ded844730e178b71183988e9078881a8c43dded
Author: Eike Rathke <erack at redhat.com>
Date:   Fri Mar 15 19:33:03 2013 +0100

    clarify logic
    
    Change-Id: Idc223daa6034b359ac62693ce8dfebed846d5789

diff --git a/svl/inc/svl/zformat.hxx b/svl/inc/svl/zformat.hxx
index ba56235..6b0a054 100644
--- a/svl/inc/svl/zformat.hxx
+++ b/svl/inc/svl/zformat.hxx
@@ -328,12 +328,11 @@ public:
     bool IsFirstSubformatRealNegative() const
         {
             return fLimit1 == 0.0 && fLimit2 == 0.0 &&
-            ( (eOp2 == NUMBERFORMAT_OP_GT && eOp1 == NUMBERFORMAT_OP_LT) ||
-              (eOp2 == NUMBERFORMAT_OP_EQ && eOp1 == NUMBERFORMAT_OP_LT) ||
-              (eOp2 == NUMBERFORMAT_OP_GE && eOp1 == NUMBERFORMAT_OP_LT) ||
-              (eOp2 == NUMBERFORMAT_OP_NO && eOp1 == NUMBERFORMAT_OP_LT) ||
-              (eOp2 == NUMBERFORMAT_OP_NO && eOp1 == NUMBERFORMAT_OP_LE) ||
-              (eOp2 == NUMBERFORMAT_OP_GT && eOp1 == NUMBERFORMAT_OP_LE));
+                ((eOp1 == NUMBERFORMAT_OP_LT &&
+                  (eOp2 == NUMBERFORMAT_OP_GT || eOp2 == NUMBERFORMAT_OP_EQ ||
+                   eOp2 == NUMBERFORMAT_OP_GE || eOp2 == NUMBERFORMAT_OP_NO)) ||
+                 (eOp1 == NUMBERFORMAT_OP_LE &&
+                  (eOp2 == NUMBERFORMAT_OP_NO || eOp2 == NUMBERFORMAT_OP_GT)));
         }
 
     // Whether the negative format is without a sign or not
commit 6c6c70df543dd34229c8ac98f39073ca3c3bcf4d
Author: Eike Rathke <erack at redhat.com>
Date:   Fri Mar 15 17:57:11 2013 +0100

    rename methods to something meaningful
    
    Change-Id: I92f5b3cb637b7cc6152d118505b69e762047f78b

diff --git a/svl/inc/svl/zformat.hxx b/svl/inc/svl/zformat.hxx
index d4bbef7..ba56235 100644
--- a/svl/inc/svl/zformat.hxx
+++ b/svl/inc/svl/zformat.hxx
@@ -315,16 +315,17 @@ public:
 
     // Whether the second subformat code is really for negative numbers
     // or another limit set.
-    bool IsNegativeRealNegative() const
+    bool IsSecondSubformatRealNegative() const
         {
             return fLimit1 == 0.0 && fLimit2 == 0.0 &&
             ( (eOp1 == NUMBERFORMAT_OP_GE && eOp2 == NUMBERFORMAT_OP_NO) ||
               (eOp1 == NUMBERFORMAT_OP_GT && eOp2 == NUMBERFORMAT_OP_LT) ||
               (eOp1 == NUMBERFORMAT_OP_NO && eOp2 == NUMBERFORMAT_OP_NO) );
         }
+
     // Whether the first subformat code is really for negative numbers
     // or another limit set.
-    sal_Bool IsNegativeRealNegative2() const
+    bool IsFirstSubformatRealNegative() const
         {
             return fLimit1 == 0.0 && fLimit2 == 0.0 &&
             ( (eOp2 == NUMBERFORMAT_OP_GT && eOp1 == NUMBERFORMAT_OP_LT) ||
diff --git a/svl/source/numbers/zforfind.cxx b/svl/source/numbers/zforfind.cxx
index a6a3f20..2ce5097 100644
--- a/svl/source/numbers/zforfind.cxx
+++ b/svl/source/numbers/zforfind.cxx
@@ -2826,7 +2826,7 @@ bool ImpSvNumberInputScan::ScanStringNumFor( const OUString& rString,          /
     if ( !bFound )
     {
         if ( !bDontDetectNegation && (nString == 0) &&
-             !bFirst && (nSign < 0) && pFormat->IsNegativeRealNegative() )
+             !bFirst && (nSign < 0) && pFormat->IsSecondSubformatRealNegative() )
         {
             // simply negated twice? --1
             aString = comphelper::string::remove(aString, ' ');
@@ -2843,7 +2843,7 @@ bool ImpSvNumberInputScan::ScanStringNumFor( const OUString& rString,          /
         }
     }
     else if ( !bDontDetectNegation && (nSub == 1) &&
-              pFormat->IsNegativeRealNegative() )
+              pFormat->IsSecondSubformatRealNegative() )
     {
         // negative
         if ( nStringScanSign < 0 )
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index 1ded02f..889f394 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -2522,8 +2522,8 @@ bool SvNumberformat::GetOutputString(double fNumber,
             }
         }
         if (fNumber < 0.0 &&
-                ((nIx == 0 && IsNegativeRealNegative2()) ||     // 1st, usually positive subformat
-                 (nIx == 1 && IsNegativeRealNegative())))       // 2nd, usually negative subformat
+                ((nIx == 0 && IsFirstSubformatRealNegative()) ||    // 1st, usually positive subformat
+                 (nIx == 1 && IsSecondSubformatRealNegative())))    // 2nd, usually negative subformat
         {
             fNumber = -fNumber;                 // eliminate sign
         }
@@ -4874,7 +4874,7 @@ short SvNumberformat::GetNumForType( sal_uInt16 nNumFor, sal_uInt16 nPos,
 
 bool SvNumberformat::IsNegativeWithoutSign() const
 {
-    if ( IsNegativeRealNegative() )
+    if ( IsSecondSubformatRealNegative() )
     {
         const OUString* pStr = GetNumForString( 1, 0, true );
         if ( pStr )
commit 7c66e99f1d1f2e640157b079088aba35b33e0fc0
Author: Eike Rathke <erack at redhat.com>
Date:   Fri Mar 15 17:52:15 2013 +0100

    simplify logic
    
    Change-Id: I60726b445712cc15f8453812ce6313167314a8df

diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index eca7005..1ded02f 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -2521,14 +2521,12 @@ bool SvNumberformat::GetOutputString(double fNumber,
                 nIx = 2;
             }
         }
-        if (nIx == 1 && fNumber < 0.0 &&        // negatives Format
-            IsNegativeRealNegative() )      // ohne Vorzeichen
+        if (fNumber < 0.0 &&
+                ((nIx == 0 && IsNegativeRealNegative2()) ||     // 1st, usually positive subformat
+                 (nIx == 1 && IsNegativeRealNegative())))       // 2nd, usually negative subformat
         {
-            fNumber = -fNumber;                 // Vorzeichen eliminieren
+            fNumber = -fNumber;                 // eliminate sign
         }
-        if(nIx == 0 &&
-                IsNegativeRealNegative2() && fNumber < 0.0)
-            fNumber = -fNumber;
         *ppColor = NumFor[nIx].GetColor();
         const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
         const sal_uInt16 nAnz = NumFor[nIx].GetCount();
commit 5c6dd7a8438f17f768c069f0bcc52d6420aa3e3e
Author: Wang Lei <leiw at apache.org>
Date:   Thu Jun 21 06:27:18 2012 +0000

    i#119964 - Number displays different from MS with the same format code
    
    Patch by: Zhang Lu
    Review by: Wang Lei
    Conflicts:
    	svl/source/numbers/zformat.cxx
    
    Change-Id: Id1ce742dc829a7aa8056e3be50e315ea4499ecc6

diff --git a/svl/inc/svl/zformat.hxx b/svl/inc/svl/zformat.hxx
index ddb1535..d4bbef7 100644
--- a/svl/inc/svl/zformat.hxx
+++ b/svl/inc/svl/zformat.hxx
@@ -322,6 +322,18 @@ public:
               (eOp1 == NUMBERFORMAT_OP_GT && eOp2 == NUMBERFORMAT_OP_LT) ||
               (eOp1 == NUMBERFORMAT_OP_NO && eOp2 == NUMBERFORMAT_OP_NO) );
         }
+    // Whether the first subformat code is really for negative numbers
+    // or another limit set.
+    sal_Bool IsNegativeRealNegative2() const
+        {
+            return fLimit1 == 0.0 && fLimit2 == 0.0 &&
+            ( (eOp2 == NUMBERFORMAT_OP_GT && eOp1 == NUMBERFORMAT_OP_LT) ||
+              (eOp2 == NUMBERFORMAT_OP_EQ && eOp1 == NUMBERFORMAT_OP_LT) ||
+              (eOp2 == NUMBERFORMAT_OP_GE && eOp1 == NUMBERFORMAT_OP_LT) ||
+              (eOp2 == NUMBERFORMAT_OP_NO && eOp1 == NUMBERFORMAT_OP_LT) ||
+              (eOp2 == NUMBERFORMAT_OP_NO && eOp1 == NUMBERFORMAT_OP_LE) ||
+              (eOp2 == NUMBERFORMAT_OP_GT && eOp1 == NUMBERFORMAT_OP_LE));
+        }
 
     // Whether the negative format is without a sign or not
     bool IsNegativeWithoutSign() const;
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index 45c1f29..eca7005 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -2526,6 +2526,9 @@ bool SvNumberformat::GetOutputString(double fNumber,
         {
             fNumber = -fNumber;                 // Vorzeichen eliminieren
         }
+        if(nIx == 0 &&
+                IsNegativeRealNegative2() && fNumber < 0.0)
+            fNumber = -fNumber;
         *ppColor = NumFor[nIx].GetColor();
         const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
         const sal_uInt16 nAnz = NumFor[nIx].GetCount();


More information about the Libreoffice-commits mailing list