From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Mon, 28 Feb 2005 00:13:38 +0000 (+0000)
Subject: fixed last commit to not break ToString() for negative numbers but still fix it for... 
X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/21b9b5e2925776b0b63a4f44558d325351013a0b

fixed last commit to not break ToString() for negative numbers but still fix it for wxLongLong(LONG_MIN, 0) for which Negate() doesn't work


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---

diff --git a/src/common/longlong.cpp b/src/common/longlong.cpp
index aa40465563..e3d6a56586 100644
--- a/src/common/longlong.cpp
+++ b/src/common/longlong.cpp
@@ -1092,24 +1092,24 @@ void *wxULongLongWx::asArray(void) const
                                                                      \
         name ll = *this;                                             \
                                                                      \
-        bool neg;                                                    \
-        if ( ll < 0 )                                                \
+        bool neg = ll < 0;                                           \
+        if ( neg )                                                   \
         {                                                            \
-            ll.Negate();                                             \
-            neg = true;                                              \
+            while ( ll != 0 )                                        \
+            {                                                        \
+                long digit = (ll % 10).ToLong();                     \
+                result.Prepend((wxChar)(_T('0') - digit));           \
+                ll /= 10;                                            \
+            }                                                        \
         }                                                            \
         else                                                         \
         {                                                            \
-            neg = false;                                             \
-        }                                                            \
-                                                                     \
-        while ( ll != 0 )                                            \
-        {                                                            \
-            long digit = (ll % 10).ToLong();                         \
-            if ( neg )                                               \
-                digit = -digit;                                      \
-            result.Prepend((wxChar)(_T('0') + digit));               \
-            ll /= 10;                                                \
+            while ( ll != 0 )                                        \
+            {                                                        \
+                long digit = (ll % 10).ToLong();                     \
+                result.Prepend((wxChar)(_T('0') + digit));           \
+                ll /= 10;                                            \
+            }                                                        \
         }                                                            \
                                                                      \
         if ( result.empty() )                                        \