* Massachusetts. \r
*\r
* Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,\r
- * 2007, 2008, 2009 Free Software Foundation, Inc.\r
+ * 2007, 2008, 2009, 2010 Free Software Foundation, Inc.\r
*\r
* Enhancements Copyright 2005 Alessandro Scotti\r
*\r
exit(2);\r
}\r
\r
+int\r
+ValidateInt(char *s)\r
+{\r
+ char *p = s;\r
+ if(*p == '-' || *p == '+') p++;\r
+ while(*p) if(!isdigit(*p++)) ExitArgError("Bad integer value", s);\r
+ return atoi(s);\r
+}\r
+\r
/* Command line font name parser. NULL name means do nothing.\r
Syntax like "Courier New:10.0 bi" or "Arial:10" or "Arial:10b"\r
For backward compatibility, syntax without the colon is also\r
\r
switch (ad->argType) {\r
case ArgInt:\r
- *(int *) ad->argLoc = atoi(argValue);\r
+ *(int *) ad->argLoc = ValidateInt(argValue);\r
break;\r
\r
case ArgX:\r
- *(int *) ad->argLoc = atoi(argValue) + boardX; // [HGM] placement: translate stored relative to absolute \r
+ *(int *) ad->argLoc = ValidateInt(argValue) + boardX; // [HGM] placement: translate stored relative to absolute \r
break;\r
\r
case ArgY:\r
- *(int *) ad->argLoc = atoi(argValue) + boardY; // (this is really kludgey, it should be done where used...)\r
+ *(int *) ad->argLoc = ValidateInt(argValue) + boardY; // (this is really kludgey, it should be done where used...)\r
break;\r
\r
case ArgZ:\r
- *(int *) ad->argLoc = atoi(argValue);\r
+ *(int *) ad->argLoc = ValidateInt(argValue);\r
EnsureOnScreen(&boardX, &boardY, minX, minY); \r
break;\r
\r
blackRect.right = blackRect.left + boardWidth/2 - 1;\r
blackRect.top = whiteRect.top;\r
blackRect.bottom = whiteRect.bottom;\r
+\r
+ logoHeight = 0; // [HGM] logo: suppress logo after change to tiny layout!\r
}\r
\r
messageRect.left = OUTER_MARGIN + MESSAGE_LINE_LEFTMARGIN;\r