]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/imagxpm.cpp
Further wxUniv fixes
[wxWidgets.git] / src / common / imagxpm.cpp
index 39689e1f5f53b35defe24846ff5d739a05b15725..7d3bced364b6307a1b5170759f4d51fb2824e038 100644 (file)
@@ -77,7 +77,6 @@ license is as follows:
 #  include "wx/defs.h"
 #endif
 
-#if wxUSE_IMAGE && wxUSE_XPM
 
 #include "wx/imagxpm.h"
 #include "wx/wfstream.h"
@@ -96,7 +95,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxXPMHandler,wxImageHandler)
 
 bool wxXPMHandler::LoadFile(wxImage *image,
                             wxInputStream& stream,
-                            bool verbose, int WXUNUSED(index))
+                            bool WXUNUSED(verbose), int WXUNUSED(index))
 {
     wxXPMDecoder decoder;
 
@@ -128,12 +127,16 @@ bool wxXPMHandler::SaveFile(wxImage * image,
         chars_per_pixel++;
 
     // 2. write the header:
-    tmp.Printf("/* XPM */\n"
+    char tmpbuf[200];
+    // VS: 200b is safe upper bound for anything produced by sprintf bellow
+    //     (101 bytes the string, neither %i can expand into more than 10 chars)
+    sprintf(tmpbuf, 
+               "/* XPM */\n"
                "static char *xpm_data[] = {\n"
                "/* columns rows colors chars-per-pixel */\n"
                "\"%i %i %i %i\",\n",
                image->GetWidth(), image->GetHeight(), cols, chars_per_pixel);
-    stream.Write(tmp.mb_str(), tmp.Length());
+    stream.Write(tmpbuf, strlen(tmpbuf));
 
     // 3. create color symbols table:
     wxHashTable table(wxKEY_INTEGER);
@@ -218,4 +221,3 @@ bool wxXPMHandler::DoCanRead(wxInputStream& stream)
 
 #endif  // wxUSE_STREAMS
 
-#endif // wxUSE_XPM && wxUSE_IMAGE