Define Batoi/Batol to strtol(...) in compat.h and use these when necessary.

That is, everyplace a user input is to be converted.  The only remaining
instance of atoi() is now atoi(s_buildDate).

git-svn-id: https://svn.eduke32.com/eduke32@2374 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2012-02-20 21:17:39 +00:00
parent 80bd1bb4e4
commit 8b7a4dab9b
12 changed files with 45 additions and 45 deletions

View file

@ -499,8 +499,8 @@ static inline uint16_t system_15bit_rand(void) { return ((uint16_t)rand())&0x7ff
# define Bstrlen strlen # define Bstrlen strlen
# define Bstrchr strchr # define Bstrchr strchr
# define Bstrrchr strrchr # define Bstrrchr strrchr
# define Batoi atoi # define Batoi(str) ((int32_t)strtol(str, NULL, 10))
# define Batol atol # define Batol(str) (strtol(str, NULL, 10))
# define Bstrtol strtol # define Bstrtol strtol
# define Bstrtoul strtoul # define Bstrtoul strtoul
# define Bstrtod strtod # define Bstrtod strtod

View file

@ -237,20 +237,20 @@ char *Bstrrchr(const char *s, int32_t c)
int32_t Batoi(const char *nptr) int32_t Batoi(const char *nptr)
{ {
return atoi(nptr); return strtol(nptr, NULL, 10);
} }
int32_t Batol(const char *nptr) int32_t Batol(const char *nptr)
{ {
return atol(nptr); return strtol(nptr, NULL, 10);
} }
int32_t int32_t Bstrtol(const char *nptr, char **endptr, int32_t base) int32_t Bstrtol(const char *nptr, char **endptr, int32_t base)
{ {
return strtol(nptr,endptr,base); return strtol(nptr,endptr,base);
} }
uint32_t int32_t Bstrtoul(const char *nptr, char **endptr, int32_t base) uint32_t Bstrtoul(const char *nptr, char **endptr, int32_t base)
{ {
return strtoul(nptr,endptr,base); return strtoul(nptr,endptr,base);
} }

View file

@ -15405,7 +15405,7 @@ int32_t printext16(int32_t xpos, int32_t ypos, int16_t col, int16_t backcol, con
smallbuf[1] = '\0'; smallbuf[1] = '\0';
} }
if (!(fontsize & 4)) if (!(fontsize & 4))
col = editorcolors[atol(smallbuf)]; col = editorcolors[Batol(smallbuf)];
if (name[i+1] == ',' && isdigit(name[i+2])) if (name[i+1] == ',' && isdigit(name[i+2]))
{ {
@ -15432,7 +15432,7 @@ int32_t printext16(int32_t xpos, int32_t ypos, int16_t col, int16_t backcol, con
} }
if (!(fontsize & 4)) if (!(fontsize & 4))
backcol = editorcolors[atol(smallbuf)]; backcol = editorcolors[Batol(smallbuf)];
} }
continue; continue;
} }
@ -15511,7 +15511,7 @@ void printext256(int32_t xpos, int32_t ypos, int16_t col, int16_t backcol, const
} }
smallbuf[bi++]=0; smallbuf[bi++]=0;
if (col) if (col)
col = atol(smallbuf); col = Batol(smallbuf);
p = getpal(col); p = getpal(col);
@ -15564,7 +15564,7 @@ void printext256(int32_t xpos, int32_t ypos, int16_t col, int16_t backcol, const
i++; i++;
} }
smallbuf[bi++]=0; smallbuf[bi++]=0;
if (col)col = atol(smallbuf); if (col)col = Batol(smallbuf);
continue; continue;
} }
letptr = &fontptr[name[i]<<3]; letptr = &fontptr[name[i]<<3];

View file

@ -1579,14 +1579,14 @@ void OSD_Printf(const char *fmt, ...)
{ {
smallbuf[0] = *(chp); smallbuf[0] = *(chp);
smallbuf[1] = '\0'; smallbuf[1] = '\0';
p = atol(smallbuf); p = Batol(smallbuf);
continue; continue;
} }
smallbuf[0] = *(chp++); smallbuf[0] = *(chp++);
smallbuf[1] = *(chp); smallbuf[1] = *(chp);
smallbuf[2] = '\0'; smallbuf[2] = '\0';
p = atol(smallbuf); p = Batol(smallbuf);
continue; continue;
} }
@ -2064,7 +2064,7 @@ int32_t osdcmd_cvar_set(const osdfuncparm_t *parm)
return OSDCMD_OK; return OSDCMD_OK;
} }
val = atoi(parm->parms[0]); val = Batoi(parm->parms[0]);
if (cvars[i].type & CVAR_BOOL) val = val != 0; if (cvars[i].type & CVAR_BOOL) val = val != 0;
if (val < cvars[i].min || val > cvars[i].max) if (val < cvars[i].min || val > cvars[i].max)

View file

@ -6203,7 +6203,7 @@ int32_t polymost_printext256(int32_t xpos, int32_t ypos, int16_t col, int16_t ba
c++; c++;
} }
smallbuf[bi++]=0; smallbuf[bi++]=0;
if (col)col = atol(smallbuf); /* FIXME: atol is unsafe */ if (col)col = Batol(smallbuf);
if ((unsigned)col >= 256) if ((unsigned)col >= 256)
col = 0; col = 0;

View file

@ -729,7 +729,7 @@ int32_t CONFIG_ReadSetup(void)
i = 0; i = 0;
while (ptr != NULL && i < 3) while (ptr != NULL && i < 3)
{ {
palptr[i++] = atoi(ptr); palptr[i++] = Batoi(ptr);
ptr = strtok(NULL,","); ptr = strtok(NULL,",");
} }
if (i == 3) if (i == 3)

View file

@ -401,14 +401,14 @@ int32_t G_PrintGameText(int32_t f, int32_t tile, int32_t x, int32_t y, const
{ {
smallbuf[0] = *(t); smallbuf[0] = *(t);
smallbuf[1] = '\0'; smallbuf[1] = '\0';
p = atoi(smallbuf); p = Batoi(smallbuf);
continue; continue;
} }
smallbuf[0] = *(t++); smallbuf[0] = *(t++);
smallbuf[1] = *(t); smallbuf[1] = *(t);
smallbuf[2] = '\0'; smallbuf[2] = '\0';
p = atoi(smallbuf); p = Batoi(smallbuf);
continue; continue;
} }
@ -503,13 +503,13 @@ int32_t minitext_(int32_t x,int32_t y,const char *t,int32_t s,int32_t p,int32_t
{ {
smallbuf[0] = *(t); smallbuf[0] = *(t);
smallbuf[1] = '\0'; smallbuf[1] = '\0';
p = atoi(smallbuf); p = Batoi(smallbuf);
continue; continue;
} }
smallbuf[0] = *(t++); smallbuf[0] = *(t++);
smallbuf[1] = *(t); smallbuf[1] = *(t);
smallbuf[2] = '\0'; smallbuf[2] = '\0';
p = atoi(smallbuf); p = Batoi(smallbuf);
continue; continue;
} }
ch = Btoupper(*t); ch = Btoupper(*t);
@ -8668,7 +8668,7 @@ static void G_CheckCommandLine(int32_t argc, const char **argv)
{ {
if (argc > i+1) if (argc > i+1)
{ {
g_netPort = atoi(argv[i+1]); g_netPort = Batoi(argv[i+1]);
i++; i++;
} }
i++; i++;
@ -8778,7 +8778,7 @@ static void G_CheckCommandLine(int32_t argc, const char **argv)
{ {
if (argc > i+1) if (argc > i+1)
{ {
uint32_t j = atol((char *)argv[i+1]); uint32_t j = Batol((char *)argv[i+1]);
if (j>=10000000 && j<=99999999) if (j>=10000000 && j<=99999999)
{ {
g_scriptDateVersion = j; g_scriptDateVersion = j;
@ -8809,7 +8809,7 @@ static void G_CheckCommandLine(int32_t argc, const char **argv)
{ {
if (argc > i+1) if (argc > i+1)
{ {
uint32_t j = atol((char *)argv[i+1]); uint32_t j = Batol((char *)argv[i+1]);
MAXCACHE1DSIZE = j<<10; MAXCACHE1DSIZE = j<<10;
initprintf("Cache size: %dkB\n",j); initprintf("Cache size: %dkB\n",j);
i++; i++;
@ -8890,7 +8890,7 @@ static void G_CheckCommandLine(int32_t argc, const char **argv)
case 'l': case 'l':
ud.warp_on = 1; ud.warp_on = 1;
c++; c++;
ud.m_level_number = ud.level_number = (atoi(c)-1)%MAXLEVELS; ud.m_level_number = ud.level_number = (Batoi(c)-1)%MAXLEVELS;
break; break;
case 'm': case 'm':
if (*(c+1) != 'a' && *(c+1) != 'A') if (*(c+1) != 'a' && *(c+1) != 'A')
@ -8921,7 +8921,7 @@ static void G_CheckCommandLine(int32_t argc, const char **argv)
case 'q': case 'q':
initprintf("Fake multiplayer mode.\n"); initprintf("Fake multiplayer mode.\n");
if (*(++c) == 0) ud.multimode = 1; if (*(++c) == 0) ud.multimode = 1;
else ud.multimode = atoi(c)%17; else ud.multimode = Batoi(c)%17;
ud.m_coop = ud.coop = 0; ud.m_coop = ud.coop = 0;
ud.m_marker = ud.marker = 1; ud.m_marker = ud.marker = 1;
ud.m_respawn_monsters = ud.respawn_monsters = 1; ud.m_respawn_monsters = ud.respawn_monsters = 1;
@ -8934,7 +8934,7 @@ static void G_CheckCommandLine(int32_t argc, const char **argv)
break; break;
case 's': case 's':
c++; c++;
ud.m_player_skill = ud.player_skill = (atoi(c)%5); ud.m_player_skill = ud.player_skill = (Batoi(c)%5);
if (ud.m_player_skill == 4) if (ud.m_player_skill == 4)
ud.m_respawn_monsters = ud.respawn_monsters = 1; ud.m_respawn_monsters = ud.respawn_monsters = 1;
break; break;
@ -8992,7 +8992,7 @@ static void G_CheckCommandLine(int32_t argc, const char **argv)
case 'v': case 'v':
c++; c++;
ud.warp_on = 1; ud.warp_on = 1;
ud.m_volume_number = ud.volume_number = atoi(c)-1; ud.m_volume_number = ud.volume_number = Batoi(c)-1;
break; break;
case 'w': case 'w':
ud.coords = 1; ud.coords = 1;
@ -9020,7 +9020,7 @@ static void G_CheckCommandLine(int32_t argc, const char **argv)
break; break;
case 'z': case 'z':
c++; c++;
g_scriptDebug = atoi(c); g_scriptDebug = Batoi(c);
if (!g_scriptDebug) if (!g_scriptDebug)
g_scriptDebug = 1; g_scriptDebug = 1;
break; break;
@ -9869,7 +9869,7 @@ int32_t app_main(int32_t argc,const char **argv)
#ifdef _WIN32 #ifdef _WIN32
// initprintf("build %d\n",(uint8_t)atoi(BUILDDATE)); // initprintf("build %d\n",(uint8_t)Batoi(BUILDDATE));
if (ud.config.CheckForUpdates == 1) if (ud.config.CheckForUpdates == 1)
{ {
@ -9878,10 +9878,10 @@ int32_t app_main(int32_t argc,const char **argv)
initprintf("Checking for updates...\n"); initprintf("Checking for updates...\n");
if (G_GetVersionFromWebsite(tempbuf)) if (G_GetVersionFromWebsite(tempbuf))
{ {
initprintf("Current version is %d",atoi(tempbuf)); initprintf("Current version is %d",Batoi(tempbuf));
ud.config.LastUpdateCheck = time(NULL); ud.config.LastUpdateCheck = time(NULL);
if (atoi(tempbuf) > atoi(s_buildDate)) if (Batoi(tempbuf) > atoi(s_buildDate))
{ {
if (wm_ynbox("EDuke32","A new version of EDuke32 is available. " if (wm_ynbox("EDuke32","A new version of EDuke32 is available. "
"Browse to http://eduke32.sourceforge.net now?")) "Browse to http://eduke32.sourceforge.net now?"))

View file

@ -1471,13 +1471,13 @@ static void C_GetNextVarType(int32_t type)
if (!type && !g_labelsOnly && (isdigit(*textptr) || ((*textptr == '-') && (isdigit(*(textptr+1)))))) if (!type && !g_labelsOnly && (isdigit(*textptr) || ((*textptr == '-') && (isdigit(*(textptr+1))))))
{ {
if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug) if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug)
initprintf("%s:%d: debug: accepted constant %ld in place of gamevar.\n",g_szScriptFileName,g_lineNumber,atol(textptr)); initprintf("%s:%d: debug: accepted constant %ld in place of gamevar.\n",g_szScriptFileName,g_lineNumber,Batol(textptr));
bitptr[(g_scriptPtr-script)>>3] &= ~(BITPTR_POINTER<<((g_scriptPtr-script)&7)); bitptr[(g_scriptPtr-script)>>3] &= ~(BITPTR_POINTER<<((g_scriptPtr-script)&7));
*g_scriptPtr++=MAXGAMEVARS; *g_scriptPtr++=MAXGAMEVARS;
if (tolower(textptr[1])=='x') if (tolower(textptr[1])=='x')
sscanf(textptr+2,"%" PRIxPTR "",g_scriptPtr); sscanf(textptr+2,"%" PRIxPTR "",g_scriptPtr);
else else
*g_scriptPtr=atoi(textptr); *g_scriptPtr=Batoi(textptr);
bitptr[(g_scriptPtr-script)>>3] &= ~(BITPTR_POINTER<<((g_scriptPtr-script)&7)); bitptr[(g_scriptPtr-script)>>3] &= ~(BITPTR_POINTER<<((g_scriptPtr-script)&7));
g_scriptPtr++; g_scriptPtr++;
#if 1 #if 1
@ -1492,7 +1492,7 @@ static void C_GetNextVarType(int32_t type)
if (!type) if (!type)
{ {
if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug) if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug)
initprintf("%s:%d: debug: flagging gamevar as negative.\n",g_szScriptFileName,g_lineNumber); //,atol(textptr)); initprintf("%s:%d: debug: flagging gamevar as negative.\n",g_szScriptFileName,g_lineNumber); //,Batol(textptr));
f = (MAXGAMEVARS<<1); f = (MAXGAMEVARS<<1);
} }
else else
@ -1802,13 +1802,13 @@ static int32_t C_GetNextValue(int32_t type)
while (i > 0); while (i > 0);
if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug > 1) if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug > 1)
initprintf("%s:%d: debug: accepted constant %ld.\n",g_szScriptFileName,g_lineNumber,atol(textptr)); initprintf("%s:%d: debug: accepted constant %ld.\n",g_szScriptFileName,g_lineNumber,Batol(textptr));
bitptr[(g_scriptPtr-script)>>3] &= ~(BITPTR_POINTER<<((g_scriptPtr-script)&7)); bitptr[(g_scriptPtr-script)>>3] &= ~(BITPTR_POINTER<<((g_scriptPtr-script)&7));
if (tolower(textptr[1])=='x') if (tolower(textptr[1])=='x')
sscanf(textptr+2,"%" PRIxPTR "",g_scriptPtr); sscanf(textptr+2,"%" PRIxPTR "",g_scriptPtr);
else else
*g_scriptPtr = atol(textptr); *g_scriptPtr = Batol(textptr);
g_scriptPtr++; g_scriptPtr++;

View file

@ -997,7 +997,7 @@ static void C_GetNextVarType(int32_t type)
// literal numeric constant where gamevar expected // literal numeric constant where gamevar expected
// if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug) // if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug)
// initprintf("%s:%d: debug: accepted constant %d in place of gamevar.\n",g_szScriptFileName,g_lineNumber,atol(textptr)); // initprintf("%s:%d: debug: accepted constant %d in place of gamevar.\n",g_szScriptFileName,g_lineNumber,Batol(textptr));
parse_integer_literal(&num); parse_integer_literal(&num);
//thenum=num; //thenum=num;
@ -1087,7 +1087,7 @@ static void C_GetNextVarType(int32_t type)
if (type==0) if (type==0)
{ {
// if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug) // if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug)
// initprintf("%s:%d: debug: flagging gamevar as negative.\n",g_szScriptFileName,g_lineNumber,atol(textptr)); // initprintf("%s:%d: debug: flagging gamevar as negative.\n",g_szScriptFileName,g_lineNumber,Batol(textptr));
flags = M32_FLAG_NEGATE; flags = M32_FLAG_NEGATE;
} }
else else
@ -1507,7 +1507,7 @@ static int32_t C_GetNextValue(int32_t type)
while (i > 0); while (i > 0);
// if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug > 1) // if (!(g_numCompilerErrors || g_numCompilerWarnings) && g_scriptDebug > 1)
// initprintf("%s:%d: debug: accepted constant %d.\n",g_szScriptFileName,g_lineNumber,atol(textptr)); // initprintf("%s:%d: debug: accepted constant %d.\n",g_szScriptFileName,g_lineNumber,Batol(textptr));
parse_integer_literal(g_scriptPtr); parse_integer_literal(g_scriptPtr);

View file

@ -81,7 +81,7 @@ void Net_Connect(const char *srvaddr)
addrstr = strtok((char *)srvaddr, ":"); addrstr = strtok((char *)srvaddr, ":");
enet_address_set_host(&address, addrstr); enet_address_set_host(&address, addrstr);
address.port = atoi((addrstr = strtok(NULL, ":")) == NULL ? "23513" : addrstr); address.port = Batoi((addrstr = strtok(NULL, ":")) == NULL ? "23513" : addrstr);
g_netClientPeer = enet_host_connect(g_netClient, &address, CHAN_MAX, 0); g_netClientPeer = enet_host_connect(g_netClient, &address, CHAN_MAX, 0);

View file

@ -631,9 +631,9 @@ static int32_t osdcmd_crosshaircolor(const osdfuncparm_t *parm)
OSD_Printf("crosshaircolor: r:%d g:%d b:%d\n",CrosshairColors.r,CrosshairColors.g,CrosshairColors.b); OSD_Printf("crosshaircolor: r:%d g:%d b:%d\n",CrosshairColors.r,CrosshairColors.g,CrosshairColors.b);
return OSDCMD_SHOWHELP; return OSDCMD_SHOWHELP;
} }
r = atol(parm->parms[0]); r = Batol(parm->parms[0]);
g = atol(parm->parms[1]); g = Batol(parm->parms[1]);
b = atol(parm->parms[2]); b = Batol(parm->parms[2]);
G_SetCrosshairColor(r,g,b); G_SetCrosshairColor(r,g,b);
OSD_Printf("%s\n", parm->raw); OSD_Printf("%s\n", parm->raw);
return OSDCMD_OK; return OSDCMD_OK;
@ -647,7 +647,7 @@ static int32_t osdcmd_setbrightness(const osdfuncparm_t *parm)
// OSD_Printf("\"setbri\" \"%d\"\n",ud.brightness>>2); // OSD_Printf("\"setbri\" \"%d\"\n",ud.brightness>>2);
return OSDCMD_SHOWHELP; return OSDCMD_SHOWHELP;
} }
ud.brightness = atoi(parm->parms[0])<<2; ud.brightness = Batoi(parm->parms[0])<<2;
setbrightness(ud.brightness>>2,&g_player[screenpeek].ps->palette[0],0); setbrightness(ud.brightness>>2,&g_player[screenpeek].ps->palette[0],0);
OSD_Printf("setbrightness %d\n",ud.brightness>>2); OSD_Printf("setbrightness %d\n",ud.brightness>>2);
return OSDCMD_OK; return OSDCMD_OK;
@ -1127,7 +1127,7 @@ static int32_t osdcmd_inittimer(const osdfuncparm_t *parm)
return OSDCMD_SHOWHELP; return OSDCMD_SHOWHELP;
} }
j = atol(parm->parms[0]); j = Batol(parm->parms[0]);
if (g_timerTicsPerSecond == j) if (g_timerTicsPerSecond == j)
return OSDCMD_OK; return OSDCMD_OK;
uninittimer(); uninittimer();

View file

@ -100,7 +100,7 @@ int32_t G_GetVersionFromWebsite(char *buffer)
Bmemcpy(&otherbuf,&tempbuf,sizeof(otherbuf)); Bmemcpy(&otherbuf,&tempbuf,sizeof(otherbuf));
strtok(otherbuf," "); strtok(otherbuf," ");
if (atol(strtok(NULL," ")) == 200) if (Batol(strtok(NULL," ")) == 200)
{ {
for (i=0; (unsigned)i<strlen(tempbuf); i++) // HACK: all of this needs to die a fiery death; we just skip to the content for (i=0; (unsigned)i<strlen(tempbuf); i++) // HACK: all of this needs to die a fiery death; we just skip to the content
{ {