X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/842215bbb7b87bd3800f95f3d633da0690e18b76..40e32bca6c12a7068cded7cf5a39381e78b1b6b1:/src/common/longlong.cpp diff --git a/src/common/longlong.cpp b/src/common/longlong.cpp index f0dad06d38..e3d6a56586 100644 --- a/src/common/longlong.cpp +++ b/src/common/longlong.cpp @@ -27,6 +27,7 @@ #if wxUSE_LONGLONG #include "wx/longlong.h" +#include "wx/math.h" // for fabs() #if defined(__MWERKS__) && defined(__WXMSW__) #include // for memset() @@ -34,8 +35,6 @@ #include // for memset() #endif -#include // for fabs() - // ============================================================================ // implementation // ============================================================================ @@ -752,7 +751,7 @@ wxULongLongWx& wxULongLongWx::operator*=(const wxULongLongWx& ll) m_hi = m_lo = 0; #ifdef wxLONGLONG_TEST_MODE - unsigned wxLongLong_t llOld = m_ll; + wxULongLong_t llOld = m_ll; m_ll = 0; #endif // wxLONGLONG_TEST_MODE @@ -1093,21 +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 ) \ - { \ - result.Prepend((wxChar)(_T('0') + (ll % 10).ToLong())); \ - ll /= 10; \ + while ( ll != 0 ) \ + { \ + long digit = (ll % 10).ToLong(); \ + result.Prepend((wxChar)(_T('0') + digit)); \ + ll /= 10; \ + } \ } \ \ if ( result.empty() ) \ @@ -1151,11 +1153,13 @@ void *wxULongLongWx::asArray(void) const #if wxUSE_STD_IOSTREAM // input/output +WXDLLIMPEXP_BASE wxSTD ostream& operator<< (wxSTD ostream& o, const wxLongLong& ll) { return o << ll.ToString(); } +WXDLLIMPEXP_BASE wxSTD ostream& operator<< (wxSTD ostream& o, const wxULongLong& ll) { return o << ll.ToString(); @@ -1163,4 +1167,14 @@ wxSTD ostream& operator<< (wxSTD ostream& o, const wxULongLong& ll) #endif // wxUSE_STD_IOSTREAM +WXDLLIMPEXP_BASE wxString& operator<< (wxString& s, const wxLongLong& ll) +{ + return s << ll.ToString(); +} + +WXDLLIMPEXP_BASE wxString& operator<< (wxString& s, const wxULongLong& ll) +{ + return s << ll.ToString(); +} + #endif // wxUSE_LONGLONG