]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/string.cpp
now compiles with USE_XPM_IN_MSW on
[wxWidgets.git] / src / common / string.cpp
index 0de23bf158390d539c652322212b9acf4d9513e1..10e64bad12762504489c2aa6672d2b2f119192e9 100644 (file)
@@ -569,7 +569,7 @@ wxString wxString::Right(char ch) const
   if ( iPos == NOT_FOUND )
     str = *this;
   else
-    str = c_str() + iPos;
+    str = c_str() + iPos + 1;
 
   return str;
 }
@@ -603,7 +603,7 @@ wxString wxString::Before(char ch) const
   wxString str;
   int iPos = Find(ch, TRUE);
   if ( iPos != NOT_FOUND && iPos != 0 )
-    str = wxString(c_str(), iPos - 1);
+    str = wxString(c_str(), iPos);
 
   return str;
 }
@@ -837,7 +837,7 @@ int wxString::Find(const char *pszSub) const
 }
 
 // ---------------------------------------------------------------------------
-// formatted output
+// formatted input/output
 // ---------------------------------------------------------------------------
 int wxString::Printf(const char *pszFormat, ...)
 {
@@ -853,7 +853,7 @@ int wxString::Printf(const char *pszFormat, ...)
 
 int wxString::PrintfV(const char* pszFormat, va_list argptr)
 {
-  static char s_szScratch[1024];
+  static char s_szScratch[1024]; // @@@@ shouldn't use fixed-size buffer!
 
   int iLen = vsprintf(s_szScratch, pszFormat, argptr);
   AllocBeforeWrite(iLen);
@@ -862,6 +862,23 @@ int wxString::PrintfV(const char* pszFormat, va_list argptr)
   return iLen;
 }
 
+int wxString::Scanf(const char *pszFormat, ...) const
+{
+  va_list argptr;
+  va_start(argptr, pszFormat);
+
+  int iLen = ScanfV(pszFormat, argptr);
+
+  va_end(argptr);
+
+  return iLen;
+}
+
+int wxString::ScanfV(const char *pszFormat, va_list argptr) const
+{
+  return vsscanf(c_str(), pszFormat, argptr);
+}
+
 // ---------------------------------------------------------------------------
 // standard C++ library string functions
 // ---------------------------------------------------------------------------