X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=args.h;h=e94c16b442cbceca67a53cd44837a517e9e2b6f2;hb=5033c2869efc97a90075c0d72cc574859a70f854;hp=ea1af0ea048d0e94f88662c44eb8bc8a3e89d0da;hpb=ac647cc1aa823dd59b600245e5cc014ae85e1ce9;p=xboard.git diff --git a/args.h b/args.h index ea1af0e..e94c16b 100644 --- a/args.h +++ b/args.h @@ -573,6 +573,7 @@ ArgDescriptor argDescriptors[] = { { "keepAlive", ArgInt, (void *) &appData.keepAlive, FALSE, INVALID }, { "icstype", ArgInt, (void *) &ics_type, FALSE, INVALID }, { "forceIllegalMoves", ArgTrue, (void *) &appData.forceIllegal, FALSE, INVALID }, + { "showTargetSquares", ArgBoolean, (void *) &appData.markers, TRUE, FALSE }, #ifdef ZIPPY { "zippyTalk", ArgBoolean, (void *) &appData.zippyTalk, FALSE, (ArgIniType) ZIPPY_TALK }, @@ -698,6 +699,14 @@ ExitArgError(char *msg, char *badArg) exit(2); } +int +ValidateInt(char *s) +{ + char *p = s; + if(*p == '-' || *p == '+') p++; + while(*p) if(!isdigit(*p++)) ExitArgError("Bad integer value", s); + return atoi(s); +} char StringGet(void *getClosure) @@ -918,19 +927,19 @@ ParseArgs(GetFunc get, void *cl) switch (ad->argType) { case ArgInt: - *(int *) ad->argLoc = atoi(argValue); + *(int *) ad->argLoc = ValidateInt(argValue); break; case ArgX: - *(int *) ad->argLoc = atoi(argValue) + wpMain.x; // [HGM] placement: translate stored relative to absolute + *(int *) ad->argLoc = ValidateInt(argValue) + wpMain.x; // [HGM] placement: translate stored relative to absolute break; case ArgY: - *(int *) ad->argLoc = atoi(argValue) + wpMain.y; // (this is really kludgey, it should be done where used...) + *(int *) ad->argLoc = ValidateInt(argValue) + wpMain.y; // (this is really kludgey, it should be done where used...) break; case ArgZ: - *(int *) ad->argLoc = atoi(argValue); + *(int *) ad->argLoc = ValidateInt(argValue); EnsureOnScreen(&wpMain.x, &wpMain.y, minX, minY); break;