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);
}
/*
*/
wxImage img = ReadData(xpm_lines);
-#ifdef __WIN16__
- delete[] (char**) xpm_lines;
-#else
delete[] xpm_lines;
-#endif
return img;
}
return true;
}
- name = strdup(inname);
+ name = wxStrdupA(inname);
// theRGBRecords[] has no names with spaces, and no grey, but a
// lot of gray...
/*
* 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 )
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)