- char *imageDimensions = copystring(GetArgData());
- char buf1[50];
- strcpy(buf1, imageDimensions);
- char *tok1 = strtok(buf1, ";:");
- char *tok2 = strtok(NULL, ";:");
- // Convert points to TWIPS (1 twip = 1/20th of point)
- imageWidth = (int)(20*(tok1 ? ParseUnitArgument(tok1) : 0));
- imageHeight = (int)(20*(tok2 ? ParseUnitArgument(tok2) : 0));
+ wxChar *imageDimensions = copystring(GetArgData());
+
+ // imageWidth - Convert points to TWIPS (1 twip = 1/20th of point)
+ wxStringTokenizer tok(imageDimensions, _T(";:"), wxTOKEN_STRTOK);
+ if(tok.HasMoreTokens())
+ {
+ wxString token = tok.GetNextToken();
+ imageWidth = (int)(20*ParseUnitArgument((wxChar*)token.c_str()));
+ }
+ else
+ {
+ imageWidth = 0;
+ }
+
+ // imageHeight - Convert points to TWIPS (1 twip = 1/20th of point)
+ if(tok.HasMoreTokens())
+ {
+ wxString token = tok.GetNextToken();
+ imageHeight = (int)(20*ParseUnitArgument((wxChar*)token.c_str()));
+ }
+ else
+ {
+ imageHeight = 0;
+ }
+
+ if (imageDimensions) // glt
+ delete [] imageDimensions;