/* set array element to user string */
static void setari_u(var *a, int idx, const char *s)
{
- char sidx[sizeof(int)*3 + 1];
var *v;
- sprintf(sidx, "%d", idx);
- v = findvar(iamarray(a), sidx);
+ v = findvar(iamarray(a), itoa(idx));
setvar_u(v, s);
}
}
then.tm_mon -= 1;
- then.tm_year -= - 1900;
+ then.tm_year -= 1900;
return mktime(&then);
}
{
#define tspl (G.exec_builtin__tspl)
- int (*to_xxx)(int);
var *tv;
node *an[4];
var *av[4];
if ((uint32_t)nargs < (info >> 30))
syntax_error(EMSG_TOO_FEW_ARGS);
- switch (info & OPNMASK) {
+ info &= OPNMASK;
+ switch (info) {
case B_a2:
#if ENABLE_FEATURE_AWK_LIBM
break;
case B_lo:
- to_xxx = tolower;
- goto lo_cont;
-
case B_up:
- to_xxx = toupper;
- lo_cont:
s1 = s = xstrdup(as[0]);
while (*s1) {
- *s1 = (*to_xxx)(*s1);
+ //*s1 = (info == B_up) ? toupper(*s1) : tolower(*s1);
+ if ((unsigned char)((*s1 | 0x20) - 'a') <= ('z' - 'a'))
+ *s1 = (info == B_up) ? (*s1 & 0xdf) : (*s1 | 0x20);
s1++;
}
setvar_p(res, s);
break;
case F_sy:
- fflush(NULL);
+ fflush_all();
R.d = (ENABLE_FEATURE_ALLOW_EXEC && L.s && *L.s)
? (system(L.s) >> 8) : 0;
break;
X.rsm = newfile(L.s);
fflush(X.rsm->F);
} else {
- fflush(NULL);
+ fflush_all();
}
}
break;