]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/xpmdecod.cpp
Reverted due to Darwin conflict.
[wxWidgets.git] / src / common / xpmdecod.cpp
index cc0e2bad48366147fd31b9f99f46dd9b64e392c3..e1b62cf09d63c21de40bed0f01b84057a3616567 100644 (file)
@@ -178,7 +178,10 @@ wxImage wxXPMDecoder::ReadFile(wxInputStream& stream)
             if ( (*q == '*') && (*(q + 1) == '/') )
                 break;
         }
-        strcpy(p, q + 2);
+
+        // memmove allows overlaps (unlike strcpy):
+        size_t cpylen = strlen(q + 2) + 1;
+        memmove(p, q + 2, cpylen);
     }
 
     /*
@@ -236,11 +239,7 @@ wxImage wxXPMDecoder::ReadFile(wxInputStream& stream)
      */
     wxImage img = ReadData(xpm_lines);
 
-#ifdef __WIN16__
-    delete[] (char**) xpm_lines;
-#else
     delete[] xpm_lines;
-#endif
 
     return img;
 }
@@ -551,7 +550,7 @@ static bool GetRGBFromName(const char *inname, bool *isNone,
         return true;
     }
 
-    name = strdup(inname);
+    name = wxStrdupA(inname);
 
     // theRGBRecords[] has no names with spaces, and no grey, but a
     // lot of gray...
@@ -677,7 +676,7 @@ wxImage wxXPMDecoder::ReadData(const char **xpm_data)
     /*
      *  Read hints and initialize structures:
      */
-     
+
     count = sscanf(xpm_data[0], "%u %u %u %u",
                    &width, &height, &colors_cnt, &chars_per_pixel);
     if ( count != 4 || width * height * colors_cnt == 0 )
@@ -763,7 +762,7 @@ wxImage wxXPMDecoder::ReadData(const char **xpm_data)
     unsigned char *img_data = img.GetData();
     wxXPMColourMap::iterator entry;
     wxXPMColourMap::iterator end = clr_tbl.end();
-    
+
     for (j = 0; j < height; j++)
     {
         for (i = 0; i < width; i++, img_data += 3)