]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/string.cpp
Blind bug fix to bug reported by Angel Kry.
[wxWidgets.git] / src / common / string.cpp
index c95d6729e8859d4726c3c18b1ad84ed9c600c91b..d5c51592e0b77e436290a116c905de5ec8f9760f 100644 (file)
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-  #pragma implementation "string.h"
-#endif
-
 /*
  * About ref counting:
  *  1) all empty strings use g_strEmpty, nRefs = -1 (set in Init())
@@ -1796,46 +1792,43 @@ wxString wxString::FormatV(const wxChar *pszFormat, va_list argptr)
 
 int wxString::Printf(const wxChar *pszFormat, ...)
 {
-  va_list argptr;
-  va_start(argptr, pszFormat);
+    va_list argptr;
+    va_start(argptr, pszFormat);
 
-  int iLen = PrintfV(pszFormat, argptr);
+    int iLen = PrintfV(pszFormat, argptr);
 
-  va_end(argptr);
+    va_end(argptr);
 
-  return iLen;
+    return iLen;
 }
 
 int wxString::PrintfV(const wxChar* pszFormat, va_list argptr)
 {
     int size = 1024;
-    int len;
 
     for ( ;; )
     {
-        {
-            wxStringBuffer tmp(*this, size + 1);
-            wxChar* buf = tmp;
-
-            if ( !buf )
-            {
-                // out of memory
-                return -1;
-            }
+        wxStringBuffer tmp(*this, size + 1);
+        wxChar* buf = tmp;
 
-            // wxVsnprintf() may modify the original arg pointer, so pass it
-            // only a copy
-            va_list argptrcopy;
-            wxVaCopy(argptrcopy, argptr);
-            len = wxVsnprintf(buf, size, pszFormat, argptrcopy);
-            va_end(argptrcopy);
-
-            // some implementations of vsnprintf() don't NUL terminate
-            // the string if there is not enough space for it so
-            // always do it manually
-            buf[size] = _T('\0');
+        if ( !buf )
+        {
+            // out of memory
+            return -1;
         }
 
+        // wxVsnprintf() may modify the original arg pointer, so pass it
+        // only a copy
+        va_list argptrcopy;
+        wxVaCopy(argptrcopy, argptr);
+        int len = wxVsnprintf(buf, size, pszFormat, argptrcopy);
+        va_end(argptrcopy);
+
+        // some implementations of vsnprintf() don't NUL terminate
+        // the string if there is not enough space for it so
+        // always do it manually
+        buf[size] = _T('\0');
+
         // vsnprintf() may return either -1 (traditional Unix behaviour) or the
         // total number of characters which would have been written if the
         // buffer were large enough