summaryrefslogtreecommitdiff
path: root/src/interface.c
diff options
context:
space:
mode:
authorCracker64 <cracker642@gmail.com>2011-02-04 06:00:03 (GMT)
committer Cracker64 <cracker642@gmail.com>2011-02-04 06:00:03 (GMT)
commit9064cabf288be8ecb2fbc1c15bb4071cf3df1c22 (patch)
treee19413ebf90d2958069b4d108e61983fbe3638c3 /src/interface.c
parentb6f1ba977cd1b33cf857816ede4dca883a989561 (diff)
downloadpowder-9064cabf288be8ecb2fbc1c15bb4071cf3df1c22.zip
powder-9064cabf288be8ecb2fbc1c15bb4071cf3df1c22.tar.gz
merge jacksonmj's and much better string parsing because of a function i found.
Diffstat (limited to 'src/interface.c')
-rw-r--r--src/interface.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/src/interface.c b/src/interface.c
index 346c923..31d885a 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -3994,32 +3994,20 @@ int console_parse_type(char *txt, int *element, char *err)
int console_parse_coords(char *txt, int *x, int *y, char *err)
{
// TODO: use regex?
- char *coordtxt;
- char num[10] = "";
int nx = -1, ny = -1;
- txt = mystrdup(txt);
- coordtxt = strtok(txt, ",");
- if (coordtxt) nx = atoi(coordtxt);
- if (nx>=0 && nx<XRES) sprintf(num,"%d",nx);
- if (!coordtxt || strcmp(coordtxt, num)!=0)
+ sscanf(txt,"%d,%d",&nx,&ny);
+ if (nx<0 && nx>=XRES)
{
strcpy(err,"Invalid coordinates");
- free(txt);
return 0;
}
- strcpy(num,"");
- coordtxt = strtok(NULL, ",");
- if (coordtxt) ny = atoi(coordtxt);
- if (ny>=0 && ny<YRES) sprintf(num,"%d",ny);
- if (!coordtxt || strcmp(coordtxt, num)!=0)
+ if (ny<0 && ny>=YRES)
{
strcpy(err,"Invalid coordinates");
- free(txt);
return 0;
}
*x = nx;
*y = ny;
- free(txt);
return 1;
}
int console_parse_partref(char *txt, int *which, char *err)