some rather mechanical KNF, now that style(9) clarified on the status

of sizeof() as a function-like unary operator; use parenthesēs around
sizeof and return args consistently too
This commit is contained in:
tg 2009-06-08 20:06:50 +00:00
parent 548a415fa9
commit 6b2ad96bac
15 changed files with 832 additions and 832 deletions

516
edit.c

File diff suppressed because it is too large Load Diff

50
eval.c
View File

@ -22,7 +22,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/eval.c,v 1.57 2009/05/16 18:40:05 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/eval.c,v 1.58 2009/06/08 20:06:45 tg Exp $");
#ifdef MKSH_SMALL
#define MKSH_NOPWNAM
@ -115,7 +115,7 @@ substitute(const char *cp, int f)
internal_errorf("substitute");
source = sold;
afree(s, ATEMP);
return evalstr(yylval.cp, f);
return (evalstr(yylval.cp, f));
}
/*
@ -137,7 +137,7 @@ eval(const char **ap, int f)
while (*ap != NULL)
expand(*ap++, &w, f);
XPput(w, NULL);
return (char **) XPclose(w) + 1;
return ((char **)XPclose(w) + 1);
}
/*
@ -346,7 +346,7 @@ expand(const char *cp, /* input word */
if (!st->next) {
SubType *newst;
newst = alloc(sizeof (SubType), ATEMP);
newst = alloc(sizeof(SubType), ATEMP);
newst->next = NULL;
newst->prev = st;
st->next = newst;
@ -916,7 +916,7 @@ varsub(Expand *xp, const char *sp, const char *word,
struct tbl *vp;
if (sp[0] == '\0') /* Bad variable name */
return -1;
return (-1);
xp->var = NULL;
@ -926,7 +926,7 @@ varsub(Expand *xp, const char *sp, const char *word,
/* Can't have any modifiers for ${#...} */
if (*word != CSUBST)
return -1;
return (-1);
sp++;
/* Check for size of array */
if ((p = cstrchr(sp, '[')) && (p[1] == '*' || p[1] == '@') &&
@ -951,7 +951,7 @@ varsub(Expand *xp, const char *sp, const char *word,
errorf("%s: parameter not set", sp);
*stypep = 0; /* unqualified variable/string substitution */
xp->str = shf_smprintf("%lu", (unsigned long)c);
return XSUB;
return (XSUB);
}
/* Check for qualifiers in word part */
@ -982,9 +982,9 @@ varsub(Expand *xp, const char *sp, const char *word,
slen += 2;
}
} else if (stype) /* : is not ok */
return -1;
return (-1);
if (!stype && *word != CSUBST)
return -1;
return (-1);
*stypep = stype;
*slenp = slen;
@ -994,7 +994,7 @@ varsub(Expand *xp, const char *sp, const char *word,
case '=': /* can't assign to a vector */
case '%': /* can't trim a vector (yet) */
case '#':
return -1;
return (-1);
}
if (e->loc->argc == 0) {
xp->str = null;
@ -1016,7 +1016,7 @@ varsub(Expand *xp, const char *sp, const char *word,
case '%': /* can't trim a vector (yet) */
case '#':
case '?':
return -1;
return (-1);
}
XPinit(wv, 32);
vp = global(arrayname(sp));
@ -1040,7 +1040,7 @@ varsub(Expand *xp, const char *sp, const char *word,
/* Can't assign things like $! or $1 */
if ((stype & 0x7f) == '=' &&
ctype(*sp, C_VAR1 | C_DIGIT))
return -1;
return (-1);
xp->var = global(sp);
xp->str = str_val(xp->var);
state = XSUB;
@ -1056,7 +1056,7 @@ varsub(Expand *xp, const char *sp, const char *word,
if (Flag(FNOUNSET) && xp->str == null &&
(ctype(c, C_SUBOP2) || (state != XBASE && c != '+')))
errorf("%s: parameter not set", sp);
return state;
return (state);
}
/*
@ -1077,7 +1077,7 @@ comsub(Expand *xp, const char *cp)
source = sold;
if (t == NULL)
return XBASE;
return (XBASE);
if (t != NULL && t->type == TCOM && /* $(<file) */
*t->args == NULL && *t->vars == NULL && t->ioact != NULL) {
@ -1108,7 +1108,7 @@ comsub(Expand *xp, const char *cp)
}
xp->u.shf = shf;
return XCOM;
return (XCOM);
}
/*
@ -1127,7 +1127,7 @@ trimsub(char *str, char *pat, int how)
c = *p; *p = '\0';
if (gmatchx(str, pat, false)) {
*p = c;
return p;
return (p);
}
*p = c;
}
@ -1137,7 +1137,7 @@ trimsub(char *str, char *pat, int how)
c = *p; *p = '\0';
if (gmatchx(str, pat, false)) {
*p = c;
return p;
return (p);
}
*p = c;
}
@ -1157,7 +1157,7 @@ trimsub(char *str, char *pat, int how)
break;
}
return str; /* no match, return string */
return (str); /* no match, return string */
}
/*
@ -1175,7 +1175,7 @@ glob(char *cp, XPtrV *wp, int markdirs)
XPput(*wp, debunk(cp, cp, strlen(cp) + 1));
else
qsort(XPptrv(*wp) + oldsize, XPsize(*wp) - oldsize,
sizeof (void *), xstrcmp);
sizeof(void *), xstrcmp);
}
#define GF_NONE 0
@ -1197,7 +1197,7 @@ glob_str(char *cp, XPtrV *wp, int markdirs)
globit(&xs, &xp, cp, wp, markdirs ? GF_MARKDIR : GF_NONE);
Xfree(xs, xp);
return XPsize(*wp) - oldsize;
return (XPsize(*wp) - oldsize);
}
static void
@ -1337,7 +1337,7 @@ debunk(char *dp, const char *sp, size_t dlen)
if ((s = cstrchr(sp, MAGIC))) {
if (s - sp >= (ssize_t)dlen)
return dp;
return (dp);
memcpy(dp, sp, s - sp);
for (d = dp + (s - sp); *s && (d - dp < (ssize_t)dlen); s++)
if (!ISMAGIC(*s) || !(*++s & 0x80) ||
@ -1353,7 +1353,7 @@ debunk(char *dp, const char *sp, size_t dlen)
*d = '\0';
} else if (dp != sp)
strlcpy(dp, sp, dlen);
return dp;
return (dp);
}
/* Check if p is an unquoted name, possibly followed by a / or :. If so
@ -1390,7 +1390,7 @@ maybe_expand_tilde(const char *p, XString *dsp, char **dpp, int isassign)
*dpp = dp;
r = p;
}
return r;
return (r);
}
/*
@ -1436,11 +1436,11 @@ homedir(char *name)
pw = getpwnam(name);
if (pw == NULL)
return NULL;
return (NULL);
strdupx(ap->val.s, pw->pw_dir, APERM);
ap->flag |= DEFINED|ISSET|ALLOC;
}
return ap->val.s;
return (ap->val.s);
}
#endif

82
exec.c
View File

@ -22,7 +22,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.56 2009/05/16 18:40:05 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.57 2009/06/08 20:06:45 tg Exp $");
static int comexec(struct op *, struct tbl *volatile, const char **,
int volatile, volatile int *);
@ -54,7 +54,7 @@ execute(struct op *volatile t,
struct tbl *tp = NULL;
if (t == NULL)
return 0;
return (0);
/* Caller doesn't care if XERROK should propagate. */
if (xerrok == NULL)
@ -62,7 +62,7 @@ execute(struct op *volatile t,
if ((flags&XFORK) && !(flags&XEXEC) && t->type != TPIPE)
/* run in sub-process */
return exchild(t, flags & ~XTIME, xerrok, -1);
return (exchild(t, flags & ~XTIME, xerrok, -1));
newenv(E_EXEC);
if (trap)
@ -98,9 +98,9 @@ execute(struct op *volatile t,
flags &= ~XTIME;
if (t->ioact != NULL || t->type == TPIPE || t->type == TCOPROC) {
e->savefd = alloc(NUFILE * sizeof (short), ATEMP);
e->savefd = alloc(NUFILE * sizeof(short), ATEMP);
/* initialise to not redirected */
memset(e->savefd, 0, NUFILE * sizeof (short));
memset(e->savefd, 0, NUFILE * sizeof(short));
}
/* do redirection, to be restored in quitenv() */
@ -391,7 +391,7 @@ execute(struct op *volatile t,
if (Flag(FERREXIT))
unwind(LERROR);
}
return rv;
return (rv);
}
/*
@ -693,7 +693,7 @@ comexec(struct op *t, struct tbl *volatile tp, const char **ap,
exstat = rv;
unwind(LLEAVE);
}
return rv;
return (rv);
}
static void
@ -718,20 +718,20 @@ scriptexec(struct op *tp, const char **ap)
#ifndef MKSH_SMALL
if ((fd = open(tp->str, O_RDONLY)) >= 0) {
/* read first MAXINTERP octets from file */
if (read(fd, buf, sizeof (buf)) <= 0)
if (read(fd, buf, sizeof(buf)) <= 0)
/* read error -> no good */
buf[0] = '\0';
close(fd);
/* scan for newline (or CR) or NUL _before_ end of buffer */
cp = (unsigned char *)buf;
while ((char *)cp < (buf + sizeof (buf)))
while ((char *)cp < (buf + sizeof(buf)))
if (*cp == '\0' || *cp == '\n' || *cp == '\r') {
*cp = '\0';
break;
} else
++cp;
/* if the shebang line is longer than MAXINTERP, bail out */
if ((char *)cp >= (buf + sizeof (buf)))
if ((char *)cp >= (buf + sizeof(buf)))
goto noshebang;
/* skip UTF-8 Byte Order Mark, if present */
cp = (unsigned char *)buf;
@ -820,7 +820,7 @@ findfunc(const char *name, unsigned int h, int create)
break;
}
}
return tp;
return (tp);
}
/*
@ -864,7 +864,7 @@ define(const char *name, struct op *t)
if (t->u.ksh_func)
tp->flag |= FKSH;
return 0;
return (0);
}
/*
@ -981,7 +981,7 @@ findcom(const char *name, int flags)
tp->u.fpath = npath.ro;
}
}
return tp;
return (tp);
}
/*
@ -1012,7 +1012,7 @@ search_access(const char *lpath, int mode,
struct stat statb;
if (stat(lpath, &statb) < 0)
return -1;
return (-1);
ret = access(lpath, mode);
if (ret < 0)
err = errno; /* File exists, but we can't access it */
@ -1024,7 +1024,7 @@ search_access(const char *lpath, int mode,
}
if (err && errnop && !*errnop)
*errnop = err;
return ret;
return (ret);
}
/*
@ -1045,7 +1045,7 @@ search(const char *name, const char *lpath,
if (vstrchr(name, '/')) {
if (search_access(name, mode, errnop) == 0)
return (name);
return NULL;
return (NULL);
}
namelen = strlen(name) + 1;
@ -1066,12 +1066,12 @@ search(const char *name, const char *lpath,
XcheckN(xs, xp, namelen);
memcpy(xp, name, namelen);
if (search_access(Xstring(xs, xp), mode, errnop) == 0)
return Xclose(xs, xp + namelen);
return (Xclose(xs, xp + namelen));
if (*sp++ == '\0')
sp = NULL;
}
Xfree(xs, xp);
return NULL;
return (NULL);
}
static int
@ -1089,7 +1089,7 @@ call_builtin(struct tbl *tp, const char **wp)
shl_stdout_ok = 0;
builtin_flag = 0;
builtin_argv0 = NULL;
return rv;
return (rv);
}
/*
@ -1161,10 +1161,10 @@ iosetup(struct ioword *iop, struct tbl *tp)
&emsg)) < 0) {
warningf(true, "%s: %s",
snptreef(NULL, 32, "%R", &iotmp), emsg);
return -1;
return (-1);
}
if (u == iop->unit)
return 0; /* "dup from" == "dup to" */
return (0); /* "dup from" == "dup to" */
break;
}
}
@ -1172,7 +1172,7 @@ iosetup(struct ioword *iop, struct tbl *tp)
if (do_open) {
if (Flag(FRESTRICTED) && (flags & O_CREAT)) {
warningf(true, "%s: restricted", cp);
return -1;
return (-1);
}
u = open(cp, flags, 0666);
}
@ -1185,7 +1185,7 @@ iosetup(struct ioword *iop, struct tbl *tp)
(iotype == IOREAD || iotype == IOHERE) ?
"open" : "create", cp, strerror(u));
}
return -1;
return (-1);
}
/* Do not save if it has already been redirected (i.e. "cat >x >y"). */
if (e->savefd[iop->unit] == 0) {
@ -1215,7 +1215,7 @@ iosetup(struct ioword *iop, struct tbl *tp)
strerror(ev));
if (iotype != IODUP)
close(u);
return -1;
return (-1);
}
if (iotype != IODUP)
close(u);
@ -1231,7 +1231,7 @@ iosetup(struct ioword *iop, struct tbl *tp)
}
if (u == 2) /* Clear any write errors */
shf_reopen(2, SHF_WR, shl_out);
return 0;
return (0);
}
/*
@ -1250,7 +1250,7 @@ herein(const char *content, int sub)
/* ksh -c 'cat << EOF' can cause this... */
if (content == NULL) {
warningf(true, "here document missing");
return -2; /* special to iosetup(): don't print error */
return (-2); /* special to iosetup(): don't print error */
}
/* Create temp file to hold content (done before newenv so temp
@ -1264,7 +1264,7 @@ herein(const char *content, int sub)
h->name, strerror(fd));
if (shf)
shf_close(shf);
return -2 /* special to iosetup(): don't print error */;
return (-2 /* special to iosetup(): don't print error */);
}
osource = source;
@ -1274,7 +1274,7 @@ herein(const char *content, int sub)
source = osource;
quitenv(shf);
close(fd);
return -2; /* special to iosetup(): don't print error */
return (-2); /* special to iosetup(): don't print error */
}
if (sub) {
/* Do substitutions on the content of heredoc */
@ -1296,10 +1296,10 @@ herein(const char *content, int sub)
fd = errno;
warningf(true, "error writing %s: %s, %s", h->name,
strerror(i), strerror(fd));
return -2; /* special to iosetup(): don't print error */
return (-2); /* special to iosetup(): don't print error */
}
return fd;
return (fd);
}
/*
@ -1327,11 +1327,11 @@ do_selectargs(const char **ap, bool print_menu)
pr_menu(ap);
shellf("%s", str_val(global("PS3")));
if (call_builtin(findcom("read", FC_BI), read_args))
return NULL;
return (NULL);
s = str_val(global("REPLY"));
if (*s) {
getn(s, &i);
return (i >= 1 && i <= argct) ? ap[i - 1] : null;
return ((i >= 1 && i <= argct) ? ap[i - 1] : null);
}
print_menu = 1;
}
@ -1354,7 +1354,7 @@ select_fmt_entry(const void *arg, int i, char *buf, int buflen)
shf_snprintf(buf, buflen, "%*d) %s",
smi->num_width, i + 1, smi->args[i]);
return buf;
return (buf);
}
/*
@ -1395,7 +1395,7 @@ pr_menu(const char *const *ap)
print_columns(shl_out, n, select_fmt_entry, (void *)&smi,
dwidth + nwidth + 2, 1);
return n;
return (n);
}
/* XXX: horrible kludge to fit within the framework */
@ -1406,7 +1406,7 @@ static char *
plain_fmt_entry(const void *arg, int i, char *buf, int buflen)
{
shf_snprintf(buf, buflen, "%s", ((char *const *)arg)[i]);
return buf;
return (buf);
}
int
@ -1422,7 +1422,7 @@ pr_list(char *const *ap)
print_columns(shl_out, n, plain_fmt_entry, (const void *)ap,
nwidth + 1, 0);
return n;
return (n);
}
/*
@ -1441,7 +1441,7 @@ dbteste_isa(Test_env *te, Test_meta meta)
const char *p;
if (!*te->pos.wp)
return meta == TM_END;
return (meta == TM_END);
/* unquoted word? */
for (p = *te->pos.wp; *p == CHAR; p += 2)
@ -1468,7 +1468,7 @@ dbteste_isa(Test_env *te, Test_meta meta)
if (ret)
te->pos.wp++;
return ret;
return (ret);
}
static const char *
@ -1477,19 +1477,19 @@ dbteste_getopnd(Test_env *te, Test_op op, bool do_eval)
const char *s = *te->pos.wp;
if (!s)
return NULL;
return (NULL);
te->pos.wp++;
if (!do_eval)
return null;
return (null);
if (op == TO_STEQL || op == TO_STNEQ)
s = evalstr(s, DOTILDE | DOPAT);
else
s = evalstr(s, DOTILDE);
return s;
return (s);
}
static void

4
expr.c
View File

@ -22,7 +22,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/expr.c,v 1.26 2009/05/16 16:59:35 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/expr.c,v 1.27 2009/06/08 20:06:45 tg Exp $");
/* The order of these enums is constrained by the order of opinfo[] */
enum token {
@ -603,7 +603,7 @@ tempvar(void)
{
struct tbl *vp;
vp = alloc(sizeof (struct tbl), ATEMP);
vp = alloc(sizeof(struct tbl), ATEMP);
vp->flag = ISSET|INTEGER;
vp->type = 0;
vp->areap = ATEMP;

314
funcs.c
View File

@ -25,7 +25,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.109 2009/05/21 14:28:33 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.110 2009/06/08 20:06:46 tg Exp $");
/* A leading = means assignments before command are kept;
* a leading * means a POSIX special builtin;
@ -172,13 +172,13 @@ c_cd(const char **wp)
physical = true;
break;
case '?':
return 1;
return (1);
}
wp += builtin_opt.optind;
if (Flag(FRESTRICTED)) {
bi_errorf("restricted shell - can't cd");
return 1;
return (1);
}
pwd_s = global("PWD");
@ -188,7 +188,7 @@ c_cd(const char **wp)
/* No arguments - go home */
if ((dir = str_val(global("HOME"))) == null) {
bi_errorf("no home directory (HOME not set)");
return 1;
return (1);
}
} else if (!wp[1]) {
/* One argument: - or dir */
@ -199,7 +199,7 @@ c_cd(const char **wp)
dir = str_val(oldpwd_s);
if (dir == null) {
bi_errorf("no OLDPWD");
return 1;
return (1);
}
printpath = true;
}
@ -210,7 +210,7 @@ c_cd(const char **wp)
if (!current_wd[0]) {
bi_errorf("don't know current directory");
return 1;
return (1);
}
/* substitute arg1 for arg2 in current path.
* if the first substitution fails because the cd fails
@ -219,7 +219,7 @@ c_cd(const char **wp)
*/
if ((cp = strstr(current_wd, wp[0])) == NULL) {
bi_errorf("bad substitution");
return 1;
return (1);
}
ilen = cp - current_wd;
olen = strlen(wp[0]);
@ -232,7 +232,7 @@ c_cd(const char **wp)
printpath = true;
} else {
bi_errorf("too many arguments");
return 1;
return (1);
}
XinitN(xs, PATH_MAX, ATEMP);
@ -254,7 +254,7 @@ c_cd(const char **wp)
else
bi_errorf("%s - %s", try, strerror(errno));
afree(allocd, ATEMP);
return 1;
return (1);
}
/* Clear out tracked aliases with relative paths */
@ -288,7 +288,7 @@ c_cd(const char **wp)
shprintf("%s\n", pwd);
afree(allocd, ATEMP);
return 0;
return (0);
}
int
@ -307,13 +307,13 @@ c_pwd(const char **wp)
physical = true;
break;
case '?':
return 1;
return (1);
}
wp += builtin_opt.optind;
if (wp[0]) {
bi_errorf("too many arguments");
return 1;
return (1);
}
p = current_wd[0] ? (physical ? get_phys_path(current_wd) :
current_wd) : NULL;
@ -325,7 +325,7 @@ c_pwd(const char **wp)
}
shprintf("%s\n", p);
afree(allocd, ATEMP);
return 0;
return (0);
}
int
@ -399,7 +399,7 @@ c_print(const char **wp)
case 'p':
if ((fd = coproc_getfd(W_OK, &emsg)) < 0) {
bi_errorf("-p: %s", emsg);
return 1;
return (1);
}
break;
case 'r':
@ -413,11 +413,11 @@ c_print(const char **wp)
fd = 0;
else if ((fd = check_fd(s, W_OK, &emsg)) < 0) {
bi_errorf("-u: %s: %s", s, emsg);
return 1;
return (1);
}
break;
case '?':
return 1;
return (1);
}
if (!(builtin_opt.info & GI_MINUSMINUS)) {
/* treat a lone - like -- */
@ -560,7 +560,7 @@ c_print(const char **wp)
opipe = block_pipe();
continue;
}
return 1;
return (1);
}
s += n;
len -= n;
@ -569,7 +569,7 @@ c_print(const char **wp)
restore_pipe(opipe);
}
return 0;
return (0);
}
int
@ -594,7 +594,7 @@ c_whence(const char **wp)
Vflag = true;
break;
case '?':
return 1;
return (1);
}
wp += builtin_opt.optind;
@ -684,7 +684,7 @@ c_whence(const char **wp)
if (vflag || !rv)
shf_putc('\n', shl_stdout);
}
return rv;
return (rv);
}
/* Deal with command -vV - command -p dealt with in comexec() */
@ -694,7 +694,7 @@ c_command(const char **wp)
/* Let c_whence do the work. Note that c_command() must be
* a distinct function from c_whence() (tested in comexec()).
*/
return c_whence(wp);
return (c_whence(wp));
}
/* typeset, export, and readonly */
@ -791,7 +791,7 @@ c_typeset(const char **wp)
flag = EXPORT;
break;
case '?':
return 1;
return (1);
}
if (builtin_opt.info & GI_PLUS) {
fclr |= flag;
@ -806,10 +806,10 @@ c_typeset(const char **wp)
field = 0;
if (fieldstr && !bi_getn(fieldstr, &field))
return 1;
return (1);
base = 0;
if (basestr && !bi_getn(basestr, &base))
return 1;
return (1);
if (!(builtin_opt.info & GI_MINUSMINUS) && wp[builtin_opt.optind] &&
(wp[builtin_opt.optind][0] == '-' ||
@ -821,7 +821,7 @@ c_typeset(const char **wp)
if (func && ((fset|fclr) & ~(TRACE|UCASEV_AL|EXPORT))) {
bi_errorf("only -t, -u and -x options may be used with -f");
return 1;
return (1);
}
if (wp[builtin_opt.optind]) {
/* Take care of exclusions.
@ -871,10 +871,10 @@ c_typeset(const char **wp)
"%s() %T\n", wp[i], f->val.t);
} else if (!typeset(wp[i], fset, fclr, field, base)) {
bi_errorf("%s: not identifier", wp[i]);
return 1;
return (1);
}
}
return rv;
return (rv);
}
/* list variables and attributes */
@ -1011,7 +1011,7 @@ c_typeset(const char **wp)
}
}
}
return 0;
return (0);
}
int
@ -1054,7 +1054,7 @@ c_alias(const char **wp)
xflag = EXPORT;
break;
case '?':
return 1;
return (1);
}
}
wp += builtin_opt.optind;
@ -1076,10 +1076,10 @@ c_alias(const char **wp)
if (!tflag || *wp) {
shf_puts("alias: -r flag can only be used with -t"
" and without arguments\n", shl_stdout);
return 1;
return (1);
}
ksh_getopt_reset(&builtin_opt, GF_ERROR);
return c_unalias(args);
return (c_unalias(args));
}
if (*wp == NULL) {
@ -1150,7 +1150,7 @@ c_alias(const char **wp)
afree(xalias, ATEMP);
}
return rv;
return (rv);
}
int
@ -1177,7 +1177,7 @@ c_unalias(const char **wp)
t = &taliases;
break;
case '?':
return 1;
return (1);
}
wp += builtin_opt.optind;
@ -1206,7 +1206,7 @@ c_unalias(const char **wp)
}
}
return rv;
return (rv);
}
int
@ -1224,7 +1224,7 @@ c_let(const char **wp)
break;
} else
rv = val == 0;
return rv;
return (rv);
}
int
@ -1247,7 +1247,7 @@ c_jobs(const char **wp)
nflag = -1;
break;
case '?':
return 1;
return (1);
}
wp += builtin_opt.optind;
if (!*wp) {
@ -1258,7 +1258,7 @@ c_jobs(const char **wp)
if (j_jobs(*wp, flag, nflag))
rv = 1;
}
return rv;
return (rv);
}
#ifndef MKSH_UNEMPLOYED
@ -1270,17 +1270,17 @@ c_fgbg(const char **wp)
if (!Flag(FMONITOR)) {
bi_errorf("job control not enabled");
return 1;
return (1);
}
if (ksh_getopt(wp, &builtin_opt, null) == '?')
return 1;
return (1);
wp += builtin_opt.optind;
if (*wp)
for (; *wp; wp++)
rv = j_resume(*wp, bg);
else
rv = j_resume("%%", bg);
return bg ? 0 : rv;
return (bg ? 0 : rv);
}
#endif
@ -1295,7 +1295,7 @@ kill_fmt_entry(const void *arg, int i, char *buf, int buflen)
ki->num_width, i,
ki->name_width, sigtraps[i].name,
sigtraps[i].mess);
return buf;
return (buf);
}
int
@ -1311,7 +1311,7 @@ c_kill(const char **wp)
ksh_isupper(p[1]))) {
if (!(t = gettrap(p + 1, true))) {
bi_errorf("bad signal '%s'", p + 1);
return 1;
return (1);
}
i = (wp[2] && strcmp(wp[2], "--") == 0) ? 3 : 2;
} else {
@ -1326,11 +1326,11 @@ c_kill(const char **wp)
if (!(t = gettrap(builtin_opt.optarg, true))) {
bi_errorf("bad signal '%s'",
builtin_opt.optarg);
return 1;
return (1);
}
break;
case '?':
return 1;
return (1);
}
i = builtin_opt.optind;
}
@ -1341,14 +1341,14 @@ c_kill(const char **wp)
"\tkill -l [exit_status ...]\n", shl_out);
#endif
bi_errorfz();
return 1;
return (1);
}
if (lflag) {
if (wp[i]) {
for (; wp[i]; i++) {
if (!bi_getn(wp[i], &n))
return 1;
return (1);
if (n > 128 && n < 128 + NSIG)
n -= 128;
if (n > 0 && n < NSIG)
@ -1377,7 +1377,7 @@ c_kill(const char **wp)
kill_fmt_entry, (void *)&ki,
ki.num_width + ki.name_width + mess_width + 3, 1);
}
return 0;
return (0);
}
rv = 0;
sig = t ? t->signal : SIGTERM;
@ -1399,7 +1399,7 @@ c_kill(const char **wp)
}
}
}
return rv;
return (rv);
}
void
@ -1420,28 +1420,28 @@ c_getopts(const char **wp)
struct tbl *vq, *voptarg;
if (ksh_getopt(wp, &builtin_opt, null) == '?')
return 1;
return (1);
wp += builtin_opt.optind;
opts = *wp++;
if (!opts) {
bi_errorf("missing options argument");
return 1;
return (1);
}
var = *wp++;
if (!var) {
bi_errorf("missing name argument");
return 1;
return (1);
}
if (!*var || *skip_varname(var, true)) {
bi_errorf("%s: is not an identifier", var);
return 1;
return (1);
}
if (e->loc->next == NULL) {
internal_warningf("c_getopts: no argv");
return 1;
return (1);
}
/* Which arguments are we parsing... */
if (*wp == NULL)
@ -1456,7 +1456,7 @@ c_getopts(const char **wp)
(user_opt.p != 0 &&
user_opt.p > strlen(wp[user_opt.optind - 1]))) {
bi_errorf("arguments changed since last call");
return 1;
return (1);
}
user_opt.optarg = NULL;
@ -1502,7 +1502,7 @@ c_getopts(const char **wp)
if (Flag(FEXPORT))
typeset(var, EXPORT, 0, 0, 0);
return optc < 0 ? 1 : rv;
return (optc < 0 ? 1 : rv);
}
int
@ -1522,7 +1522,7 @@ c_bind(const char **wp)
macro = true;
break;
case '?':
return 1;
return (1);
}
wp += builtin_opt.optind;
@ -1541,14 +1541,14 @@ c_bind(const char **wp)
afree(up, ATEMP);
}
return rv;
return (rv);
}
/* :, false and true */
int
c_label(const char **wp)
{
return wp[0][0] == 'f' ? 1 : 0;
return (wp[0][0] == 'f' ? 1 : 0);
}
int
@ -1560,7 +1560,7 @@ c_shift(const char **wp)
const char *arg;
if (ksh_getopt(wp, &builtin_opt, null) == '?')
return 1;
return (1);
arg = wp[builtin_opt.optind];
if (arg) {
@ -1579,7 +1579,7 @@ c_shift(const char **wp)
l->argv[n] = l->argv[0];
l->argv += n;
l->argc -= n;
return 0;
return (0);
}
int
@ -1596,7 +1596,7 @@ c_umask(const char **wp)
symbolic = true;
break;
case '?':
return 1;
return (1);
}
cp = wp[builtin_opt.optind];
if (cp == NULL) {
@ -1628,7 +1628,7 @@ c_umask(const char **wp)
new_umask = new_umask * 8 + (*cp - '0');
if (*cp) {
bi_errorf("bad number");
return 1;
return (1);
}
} else {
/* symbolic format */
@ -1699,7 +1699,7 @@ c_umask(const char **wp)
}
if (*cp) {
bi_errorf("bad mask");
return 1;
return (1);
}
new_umask = ~new_umask;
}
@ -1751,7 +1751,7 @@ c_wait(const char **wp)
int rv = 0, sig;
if (ksh_getopt(wp, &builtin_opt, null) == '?')
return 1;
return (1);
wp += builtin_opt.optind;
if (*wp == NULL) {
while (waitfor(NULL, &sig) >= 0)
@ -1763,7 +1763,7 @@ c_wait(const char **wp)
if (rv < 0)
rv = sig ? sig : 127; /* magic exit code: bad job-id */
}
return rv;
return (rv);
}
int
@ -1783,7 +1783,7 @@ c_read(const char **wp)
case 'p':
if ((fd = coproc_getfd(R_OK, &emsg)) < 0) {
bi_errorf("-p: %s", emsg);
return 1;
return (1);
}
break;
case 'r':
@ -1797,11 +1797,11 @@ c_read(const char **wp)
fd = 0;
else if ((fd = check_fd(cp, R_OK, &emsg)) < 0) {
bi_errorf("-u: %s: %s", cp, emsg);
return 1;
return (1);
}
break;
case '?':
return 1;
return (1);
}
wp += builtin_opt.optind;
@ -1912,14 +1912,14 @@ c_read(const char **wp)
shf_flush(shf);
bi_errorf("%s is read only", *wp);
afree(wpalloc, ATEMP);
return 1;
return (1);
}
if (Flag(FEXPORT))
typeset(*wp, EXPORT, 0, 0, 0);
if (!setstr(vp, Xstring(cs, ccp), KSH_RETURN_ERROR)) {
shf_flush(shf);
afree(wpalloc, ATEMP);
return 1;
return (1);
}
}
@ -1937,7 +1937,7 @@ c_read(const char **wp)
coproc_read_close(fd);
afree(wpalloc, ATEMP);
return ecode ? ecode : c == EOF;
return (ecode ? ecode : c == EOF);
}
int
@ -1948,7 +1948,7 @@ c_eval(const char **wp)
int rv;
if (ksh_getopt(wp, &builtin_opt, null) == '?')
return 1;
return (1);
s = pushs(SWORDS, ATEMP);
s->u.strv = wp + builtin_opt.optind;
@ -1995,7 +1995,7 @@ c_trap(const char **wp)
Trap *p;
if (ksh_getopt(wp, &builtin_opt, null) == '?')
return 1;
return (1);
wp += builtin_opt.optind;
if (*wp == NULL) {
@ -2005,7 +2005,7 @@ c_trap(const char **wp)
print_value_quoted(p->trap);
shprintf(" %s\n", p->name);
}
return 0;
return (0);
}
/*
@ -2022,11 +2022,11 @@ c_trap(const char **wp)
p = gettrap(*wp++, true);
if (p == NULL) {
bi_errorf("bad signal %s", wp[-1]);
return 1;
return (1);
}
settrap(p, s);
}
return 0;
return (0);
}
int
@ -2036,7 +2036,7 @@ c_exitreturn(const char **wp)
const char *arg;
if (ksh_getopt(wp, &builtin_opt, null) == '?')
return 1;
return (1);
arg = wp[builtin_opt.optind];
if (arg) {
@ -2077,18 +2077,18 @@ c_brkcont(const char **wp)
const char *arg;
if (ksh_getopt(wp, &builtin_opt, null) == '?')
return 1;
return (1);
arg = wp[builtin_opt.optind];
if (!arg)
n = 1;
else if (!bi_getn(arg, &n))
return 1;
return (1);
quit = n;
if (quit <= 0) {
/* at&t ksh does this for non-interactive shells only - weird */
bi_errorf("%s: bad value", arg);
return 1;
return (1);
}
/* Stop at E_NONE, E_PARSE, E_FUNC, or E_INCL */
@ -2107,7 +2107,7 @@ c_brkcont(const char **wp)
*/
if (n == quit) {
warningf(true, "%s: cannot %s", wp[0], wp[0]);
return 0;
return (0);
}
/* POSIX says if n is too big, the last enclosing loop
* shall be used. Doesn't say to print an error but we
@ -2132,12 +2132,12 @@ c_set(const char **wp)
if (wp[1] == NULL) {
static const char *args [] = { "set", "-", NULL };
return c_typeset(args);
return (c_typeset(args));
}
argi = parse_args(wp, OF_SET, &setargs);
if (argi < 0)
return 1;
return (1);
/* set $# and $* */
if (setargs) {
owp = wp += argi - 1;
@ -2145,7 +2145,7 @@ c_set(const char **wp)
while (*++wp != NULL)
strdupx(*wp, *wp, &l->area);
l->argc = wp - owp - 1;
l->argv = alloc((l->argc + 2) * sizeof (char *), &l->area);
l->argv = alloc((l->argc + 2) * sizeof(char *), &l->area);
for (wp = l->argv; (*wp++ = *owp++) != NULL; )
;
}
@ -2155,7 +2155,7 @@ c_set(const char **wp)
* (subst_exstat is cleared in execute() so that it will be 0
* if there are no command substitutions).
*/
return subst_exstat;
return (subst_exstat);
}
int
@ -2221,7 +2221,7 @@ c_times(const char **wp __unused)
p_time(shl_stdout, false, usage.ru_stime.tv_sec,
usage.ru_stime.tv_usec, 0, null, "\n");
return 0;
return (0);
}
/*
@ -2346,7 +2346,7 @@ c_exec(const char **wp __unused)
}
e->savefd = NULL;
}
return 0;
return (0);
}
#if HAVE_MKNOD
@ -2443,7 +2443,7 @@ c_mknod(const char **wp)
int
c_builtin(const char **wp __unused)
{
return 0;
return (0);
}
/* test(1) accepts the following grammar:
@ -2487,7 +2487,7 @@ c_test(const char **wp)
if (strcmp(wp[0], "[") == 0) {
if (strcmp(wp[--argc], "]") != 0) {
bi_errorf("missing ]");
return T_ERR_EXIT;
return (T_ERR_EXIT);
}
}
@ -2507,7 +2507,7 @@ c_test(const char **wp)
while (--argc >= 0) {
if ((*te.isa)(&te, TM_END))
return !0;
return (!0);
if (argc == 3) {
opnd1 = (*te.getopnd)(&te, TO_NONOP, 1);
if ((op = (*te.isa)(&te, TM_BINOP))) {
@ -2515,10 +2515,10 @@ c_test(const char **wp)
res = (*te.eval)(&te, op, opnd1,
opnd2, 1);
if (te.flags & TEF_ERROR)
return T_ERR_EXIT;
return (T_ERR_EXIT);
if (invert & 1)
res = !res;
return !res;
return (!res);
}
/* back up to opnd1 */
te.pos.wp--;
@ -2531,7 +2531,7 @@ c_test(const char **wp)
NULL, 1);
if (invert & 1)
res = !res;
return !res;
return (!res);
}
if ((*te.isa)(&te, TM_NOT)) {
invert++;
@ -2541,7 +2541,7 @@ c_test(const char **wp)
te.pos.wp = owp + 1;
}
return test_parse(&te);
return (test_parse(&te));
}
/*
@ -2559,9 +2559,9 @@ test_isop(Test_meta meta, const char *s)
sc1 = s[1];
for (; tbl->op_text[0]; tbl++)
if (sc1 == tbl->op_text[1] && !strcmp(s, tbl->op_text))
return tbl->op_num;
return (tbl->op_num);
}
return TO_NONOP;
return (TO_NONOP);
}
int
@ -2574,16 +2574,16 @@ test_eval(Test_env *te, Test_op op, const char *opnd1, const char *opnd2,
mksh_ari_t v1, v2;
if (!do_eval)
return 0;
return (0);
switch ((int)op) {
/*
* Unary Operators
*/
case TO_STNZE: /* -n */
return *opnd1 != '\0';
return (*opnd1 != '\0');
case TO_STZER: /* -z */
return *opnd1 == '\0';
return (*opnd1 == '\0');
case TO_OPTION: /* -o */
if ((i = *opnd1 == '!'))
opnd1++;
@ -2594,47 +2594,47 @@ test_eval(Test_env *te, Test_op op, const char *opnd1, const char *opnd2,
if (i)
k = !k;
}
return k;
return (k);
case TO_FILRD: /* -r */
return test_eaccess(opnd1, R_OK) == 0;
return (test_eaccess(opnd1, R_OK) == 0);
case TO_FILWR: /* -w */
return test_eaccess(opnd1, W_OK) == 0;
return (test_eaccess(opnd1, W_OK) == 0);
case TO_FILEX: /* -x */
return test_eaccess(opnd1, X_OK) == 0;
return (test_eaccess(opnd1, X_OK) == 0);
case TO_FILAXST: /* -a */
case TO_FILEXST: /* -e */
return stat(opnd1, &b1) == 0;
return (stat(opnd1, &b1) == 0);
case TO_FILREG: /* -r */
return stat(opnd1, &b1) == 0 && S_ISREG(b1.st_mode);
return (stat(opnd1, &b1) == 0 && S_ISREG(b1.st_mode));
case TO_FILID: /* -d */
return stat(opnd1, &b1) == 0 && S_ISDIR(b1.st_mode);
return (stat(opnd1, &b1) == 0 && S_ISDIR(b1.st_mode));
case TO_FILCDEV: /* -c */
return stat(opnd1, &b1) == 0 && S_ISCHR(b1.st_mode);
return (stat(opnd1, &b1) == 0 && S_ISCHR(b1.st_mode));
case TO_FILBDEV: /* -b */
return stat(opnd1, &b1) == 0 && S_ISBLK(b1.st_mode);
return (stat(opnd1, &b1) == 0 && S_ISBLK(b1.st_mode));
case TO_FILFIFO: /* -p */
return stat(opnd1, &b1) == 0 && S_ISFIFO(b1.st_mode);
return (stat(opnd1, &b1) == 0 && S_ISFIFO(b1.st_mode));
case TO_FILSYM: /* -h -L */
return lstat(opnd1, &b1) == 0 && S_ISLNK(b1.st_mode);
return (lstat(opnd1, &b1) == 0 && S_ISLNK(b1.st_mode));
case TO_FILSOCK: /* -S */
return stat(opnd1, &b1) == 0 && S_ISSOCK(b1.st_mode);
return (stat(opnd1, &b1) == 0 && S_ISSOCK(b1.st_mode));
case TO_FILCDF:/* -H HP context dependent files (directories) */
return 0;
return (0);
case TO_FILSETU: /* -u */
return stat(opnd1, &b1) == 0 &&
(b1.st_mode & S_ISUID) == S_ISUID;
return (stat(opnd1, &b1) == 0 &&
(b1.st_mode & S_ISUID) == S_ISUID);
case TO_FILSETG: /* -g */
return stat(opnd1, &b1) == 0 &&
(b1.st_mode & S_ISGID) == S_ISGID;
return (stat(opnd1, &b1) == 0 &&
(b1.st_mode & S_ISGID) == S_ISGID);
case TO_FILSTCK: /* -k */
#ifdef S_ISVTX
return stat(opnd1, &b1) == 0 &&
(b1.st_mode & S_ISVTX) == S_ISVTX;
return (stat(opnd1, &b1) == 0 &&
(b1.st_mode & S_ISVTX) == S_ISVTX);
#else
return (0);
#endif
case TO_FILGZ: /* -s */
return stat(opnd1, &b1) == 0 && b1.st_size > 0L;
return (stat(opnd1, &b1) == 0 && b1.st_size > 0L);
case TO_FILTT: /* -t */
if (opnd1 && !bi_getn(opnd1, &i)) {
te->flags |= TEF_ERROR;
@ -2643,24 +2643,24 @@ test_eval(Test_env *te, Test_op op, const char *opnd1, const char *opnd2,
i = isatty(opnd1 ? i : 0);
return (i);
case TO_FILUID: /* -O */
return stat(opnd1, &b1) == 0 && b1.st_uid == ksheuid;
return (stat(opnd1, &b1) == 0 && b1.st_uid == ksheuid);
case TO_FILGID: /* -G */
return stat(opnd1, &b1) == 0 && b1.st_gid == getegid();
return (stat(opnd1, &b1) == 0 && b1.st_gid == getegid());
/*
* Binary Operators
*/
case TO_STEQL: /* = */
if (te->flags & TEF_DBRACKET)
return gmatchx(opnd1, opnd2, false);
return strcmp(opnd1, opnd2) == 0;
return (gmatchx(opnd1, opnd2, false));
return (strcmp(opnd1, opnd2) == 0);
case TO_STNEQ: /* != */
if (te->flags & TEF_DBRACKET)
return !gmatchx(opnd1, opnd2, false);
return strcmp(opnd1, opnd2) != 0;
return (!gmatchx(opnd1, opnd2, false));
return (strcmp(opnd1, opnd2) != 0);
case TO_STLT: /* < */
return strcmp(opnd1, opnd2) < 0;
return (strcmp(opnd1, opnd2) < 0);
case TO_STGT: /* > */
return strcmp(opnd1, opnd2) > 0;
return (strcmp(opnd1, opnd2) > 0);
case TO_INTEQ: /* -eq */
case TO_INTNE: /* -ne */
case TO_INTGE: /* -ge */
@ -2671,7 +2671,7 @@ test_eval(Test_env *te, Test_op op, const char *opnd1, const char *opnd2,
!evaluate(opnd2, &v2, KSH_RETURN_ERROR, false)) {
/* error already printed.. */
te->flags |= TEF_ERROR;
return 1;
return (1);
}
switch ((int)op) {
case TO_INTEQ:
@ -2691,22 +2691,22 @@ test_eval(Test_env *te, Test_op op, const char *opnd1, const char *opnd2,
/* ksh88/ksh93 succeed if file2 can't be stated
* (subtly different from 'does not exist').
*/
return stat(opnd1, &b1) == 0 &&
return (stat(opnd1, &b1) == 0 &&
(((s = stat(opnd2, &b2)) == 0 &&
b1.st_mtime > b2.st_mtime) || s < 0);
b1.st_mtime > b2.st_mtime) || s < 0));
case TO_FILOT: /* -ot */
/* ksh88/ksh93 succeed if file1 can't be stated
* (subtly different from 'does not exist').
*/
return stat(opnd2, &b2) == 0 &&
return (stat(opnd2, &b2) == 0 &&
(((s = stat(opnd1, &b1)) == 0 &&
b1.st_mtime < b2.st_mtime) || s < 0);
b1.st_mtime < b2.st_mtime) || s < 0));
case TO_FILEQ: /* -ef */
return stat (opnd1, &b1) == 0 && stat (opnd2, &b2) == 0 &&
b1.st_dev == b2.st_dev && b1.st_ino == b2.st_ino;
return (stat (opnd1, &b1) == 0 && stat (opnd2, &b2) == 0 &&
b1.st_dev == b2.st_dev && b1.st_ino == b2.st_ino);
}
(*te->error)(te, 0, "internal error: unknown op");
return 1;
return (1);
}
/* On most/all unixen, access() says everything is executable for root... */
@ -2726,7 +2726,7 @@ test_eaccess(const char *pathl, int mode)
rv = (statb.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)) ?
0 : -1;
}
return rv;
return (rv);
}
int
@ -2739,7 +2739,7 @@ test_parse(Test_env *te)
if (!(te->flags & TEF_ERROR) && !(*te->isa)(te, TM_END))
(*te->error)(te, 0, "unexpected operator/operand");
return (te->flags & TEF_ERROR) ? T_ERR_EXIT : !rv;
return ((te->flags & TEF_ERROR) ? T_ERR_EXIT : !rv);
}
static int
@ -2750,8 +2750,8 @@ test_oexpr(Test_env *te, bool do_eval)
if ((rv = test_aexpr(te, do_eval)))
do_eval = false;
if (!(te->flags & TEF_ERROR) && (*te->isa)(te, TM_OR))
return test_oexpr(te, do_eval) || rv;
return rv;
return (test_oexpr(te, do_eval) || rv);
return (rv);
}
static int
@ -2762,16 +2762,16 @@ test_aexpr(Test_env *te, bool do_eval)
if (!(rv = test_nexpr(te, do_eval)))
do_eval = false;
if (!(te->flags & TEF_ERROR) && (*te->isa)(te, TM_AND))
return test_aexpr(te, do_eval) && rv;
return rv;
return (test_aexpr(te, do_eval) && rv);
return (rv);
}
static int
test_nexpr(Test_env *te, bool do_eval)
{
if (!(te->flags & TEF_ERROR) && (*te->isa)(te, TM_NOT))
return !test_nexpr(te, do_eval);
return test_primary(te, do_eval);
return (!test_nexpr(te, do_eval));
return (test_primary(te, do_eval));
}
static int
@ -2782,16 +2782,16 @@ test_primary(Test_env *te, bool do_eval)
Test_op op;
if (te->flags & TEF_ERROR)
return 0;
return (0);
if ((*te->isa)(te, TM_OPAREN)) {
rv = test_oexpr(te, do_eval);
if (te->flags & TEF_ERROR)
return 0;
return (0);
if (!(*te->isa)(te, TM_CPAREN)) {
(*te->error)(te, 0, "missing closing paren");
return 0;
return (0);
}
return rv;
return (rv);
}
/*
* Binary should have precedence over unary in this case
@ -2804,28 +2804,28 @@ test_primary(Test_env *te, bool do_eval)
opnd1 = (*te->getopnd)(te, op, do_eval);
if (!opnd1) {
(*te->error)(te, -1, "missing argument");
return 0;
return (0);
}
return (*te->eval)(te, op, opnd1, NULL, do_eval);
return ((*te->eval)(te, op, opnd1, NULL, do_eval));
}
}
opnd1 = (*te->getopnd)(te, TO_NONOP, do_eval);
if (!opnd1) {
(*te->error)(te, 0, "expression expected");
return 0;
return (0);
}
if ((op = (*te->isa)(te, TM_BINOP))) {
/* binary expression */
opnd2 = (*te->getopnd)(te, op, do_eval);
if (!opnd2) {
(*te->error)(te, -1, "missing second argument");
return 0;
return (0);
}
return (*te->eval)(te, op, opnd1, opnd2, do_eval);
return ((*te->eval)(te, op, opnd1, opnd2, do_eval));
}
return (*te->eval)(te, TO_STNZE, opnd1, NULL, do_eval);
return ((*te->eval)(te, TO_STNZE, opnd1, NULL, do_eval));
}
/*
@ -2846,7 +2846,7 @@ ptest_isa(Test_env *te, Test_meta meta)
int rv;
if (te->pos.wp >= te->wp_end)
return meta == TM_END;
return (meta == TM_END);
if (meta == TM_UNOP || meta == TM_BINOP)
rv = test_isop(meta, *te->pos.wp);
@ -2859,15 +2859,15 @@ ptest_isa(Test_env *te, Test_meta meta)
if (rv)
te->pos.wp++;
return rv;
return (rv);
}
static const char *
ptest_getopnd(Test_env *te, Test_op op, bool do_eval __unused)
{
if (te->pos.wp >= te->wp_end)
return op == TO_FILTT ? "1" : NULL;
return *te->pos.wp++;
return (op == TO_FILTT ? "1" : NULL);
return (*te->pos.wp++);
}
static void

106
histrap.c
View File

@ -26,7 +26,7 @@
#include <sys/file.h>
#endif
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.82 2009/05/27 09:58:22 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.83 2009/06/08 20:06:46 tg Exp $");
/*-
* MirOS: This is the default mapping type, and need not be specified.
@ -79,7 +79,7 @@ c_fc(const char **wp)
if (!Flag(FTALKING_I)) {
bi_errorf("history functions not available");
return 1;
return (1);
}
while ((optc = ksh_getopt(wp, &builtin_opt,
@ -122,11 +122,11 @@ c_fc(const char **wp)
last = p;
else {
bi_errorf("too many arguments");
return 1;
return (1);
}
break;
case '?':
return 1;
return (1);
}
wp += builtin_opt.optind;
@ -136,7 +136,7 @@ c_fc(const char **wp)
if (editor || lflag || nflag || rflag) {
bi_errorf("can't use -e, -l, -n, -r with -s (-e -)");
return 1;
return (1);
}
/* Check for pattern replacement argument */
@ -151,19 +151,19 @@ c_fc(const char **wp)
wp++;
if (last || *wp) {
bi_errorf("too many arguments");
return 1;
return (1);
}
hp = first ? hist_get(first, false, false) :
hist_get_newest(false);
if (!hp)
return 1;
return hist_replace(hp, pat, rep, gflag);
return (1);
return (hist_replace(hp, pat, rep, gflag));
}
if (editor && (lflag || nflag)) {
bi_errorf("can't use -l, -n with -e");
return 1;
return (1);
}
if (!first && (first = *wp))
@ -172,13 +172,13 @@ c_fc(const char **wp)
wp++;
if (*wp) {
bi_errorf("too many arguments");
return 1;
return (1);
}
if (!first) {
hfirst = lflag ? hist_get("-16", true, true) :
hist_get_newest(false);
if (!hfirst)
return 1;
return (1);
/* can't fail if hfirst didn't fail */
hlast = hist_get_newest(false);
} else {
@ -189,11 +189,11 @@ c_fc(const char **wp)
hfirst = hist_get(first, (lflag || last) ? true : false,
lflag ? true : false);
if (!hfirst)
return 1;
return (1);
hlast = last ? hist_get(last, true, lflag ? true : false) :
(lflag ? hist_get_newest(false) : hfirst);
if (!hlast)
return 1;
return (1);
}
if (hfirst > hlast) {
char **temp;
@ -223,7 +223,7 @@ c_fc(const char **wp)
shf_fprintf(shl_stdout, "%s\n", s);
}
shf_flush(shl_stdout);
return 0;
return (0);
}
/* Run editor on selected lines, then run resulting commands */
@ -232,14 +232,14 @@ c_fc(const char **wp)
if (!(shf = tf->shf)) {
bi_errorf("cannot create temp file %s - %s",
tf->name, strerror(errno));
return 1;
return (1);
}
for (hp = rflag ? hlast : hfirst;
hp >= hfirst && hp <= hlast; hp += rflag ? -1 : 1)
shf_fprintf(shf, "%s\n", *hp);
if (shf_close(shf) == EOF) {
bi_errorf("error writing temporary file - %s", strerror(errno));
return 1;
return (1);
}
/* Ignore setstr errors here (arbitrary) */
@ -253,7 +253,7 @@ c_fc(const char **wp)
ret = command(editor ? editor : "${FCEDIT:-/bin/ed} $_");
source = sold;
if (ret)
return ret;
return (ret);
}
{
@ -264,7 +264,7 @@ c_fc(const char **wp)
if (!(shf = shf_open(tf->name, O_RDONLY, 0, 0))) {
bi_errorf("cannot open temp file %s", tf->name);
return 1;
return (1);
}
n = stat(tf->name, &statb) < 0 ? 128 : statb.st_size + 1;
@ -278,12 +278,12 @@ c_fc(const char **wp)
bi_errorf("error reading temp file %s - %s",
tf->name, strerror(shf_errno(shf)));
shf_close(shf);
return 1;
return (1);
}
shf_close(shf);
*xp = '\0';
strip_nuls(Xstring(xs, xp), Xlength(xs, xp));
return hist_execute(Xstring(xs, xp));
return (hist_execute(Xstring(xs, xp)));
}
}
@ -320,7 +320,7 @@ hist_execute(char *cmd)
sold = source;
ret = command(cmd);
source = sold;
return ret;
return (ret);
}
static int
@ -352,7 +352,7 @@ hist_replace(char **hp, const char *pat, const char *rep, int globr)
}
if (!any_subst) {
bi_errorf("substitution failed");
return 1;
return (1);
}
len = strlen(s) + 1;
XcheckN(xs, xp, len);
@ -360,7 +360,7 @@ hist_replace(char **hp, const char *pat, const char *rep, int globr)
xp += len;
line = Xclose(xs, xp);
}
return hist_execute(line);
return (hist_execute(line));
}
/*
@ -402,7 +402,7 @@ hist_get(const char *str, int approx, int allow_cur)
else
hp = &history[n];
}
return hp;
return (hp);
}
/* Return a pointer to the newest command in the history */
@ -411,7 +411,7 @@ hist_get_newest(int allow_cur)
{
if (histptr < history || (!allow_cur && histptr == history)) {
bi_errorf("no history (yet)");
return NULL;
return (NULL);
}
return (allow_cur ? histptr : histptr - 1);
}
@ -422,9 +422,9 @@ hist_get_oldest(void)
{
if (histptr <= history) {
bi_errorf("no history (yet)");
return NULL;
return (NULL);
}
return history;
return (history);
}
/******************************/
@ -449,7 +449,7 @@ histbackup(void)
char **
histpos(void)
{
return current;
return (current);
}
int
@ -459,10 +459,10 @@ histnum(int n)
if (n < 0 || n >= last) {
current = histptr;
return last;
return (last);
} else {
current = &history[n];
return n;
return (n);
}
}
@ -486,9 +486,9 @@ findhist(int start, int fwd, const char *str, int anchored)
for (; hp >= history && hp <= histptr; hp += incr)
if ((anchored && strncmp(*hp, str, len) == 0) ||
(!anchored && strstr(*hp, str)))
return hp - history;
return (hp - history);
return -1;
return (-1);
}
int
@ -500,15 +500,15 @@ findhistrel(const char *str)
getn(str, &rec);
if (rec == 0)
return -1;
return (-1);
if (rec > 0) {
if (rec > maxhist)
return -1;
return rec - 1;
return (-1);
return (rec - 1);
}
if (rec > maxhist)
return -1;
return start + rec + 1;
return (-1);
return (start + rec + 1);
}
/*
@ -527,7 +527,7 @@ sethistsize(int n)
cursize = n;
}
history = aresize(history, n * sizeof (char *), APERM);
history = aresize(history, n * sizeof(char *), APERM);
histsize = n;
histptr = history + cursize;
@ -578,7 +578,7 @@ init_histvec(void)
{
if (history == (char **)NULL) {
histsize = HISTORYSIZE;
history = alloc(histsize * sizeof (char *), APERM);
history = alloc(histsize * sizeof(char *), APERM);
histptr = history - 1;
}
}
@ -772,7 +772,7 @@ hist_count_lines(unsigned char *base, int bytes)
}
base++;
}
return lines;
return (lines);
}
/*
@ -789,9 +789,9 @@ hist_shrink(unsigned char *oldbase, int oldbytes)
nbase = hist_skip_back(nbase, &nbytes, histsize);
if (nbase == NULL)
return 1;
return (1);
if (nbase == oldbase)
return 0;
return (0);
/*
* create temp file
@ -845,10 +845,10 @@ hist_skip_back(unsigned char *base, int *bytes, int no)
break;
if (++lines == no) {
*bytes = *bytes - ((char *)ep - (char *)base);
return ep;
return (ep);
}
}
return NULL;
return (NULL);
}
/*
@ -999,7 +999,7 @@ sprinkle(int fd)
{
static const unsigned char mag[] = { HMAGIC1, HMAGIC2 };
return(write(fd, mag, 2) != 2);
return (write(fd, mag, 2) != 2);
}
#endif
@ -1174,8 +1174,8 @@ fatal_trap_check(void)
for (p = sigtraps, i = NSIG+1; --i >= 0; p++)
if (p->set && (p->flags & (TF_DFL_INTR|TF_FATAL)))
/* return value is used as an exit code */
return 128 + p->signal;
return 0;
return (128 + p->signal);
return (0);
}
/* Returns the signal number of any pending traps: ie, a signal which has
@ -1191,8 +1191,8 @@ trap_pending(void)
for (p = sigtraps, i = NSIG+1; --i >= 0; p++)
if (p->set && ((p->trap && p->trap[0]) ||
((p->flags & (TF_DFL_INTR|TF_FATAL)) && !p->trap)))
return p->signal;
return 0;
return (p->signal);
return (0);
}
/*
@ -1352,7 +1352,7 @@ block_pipe(void)
setsig(p, SIG_IGN, SS_RESTORE_CURR);
restore_dfl = 1; /* restore to SIG_DFL */
}
return restore_dfl;
return (restore_dfl);
}
/* Called by c_print() to undo whatever block_pipe() did */
@ -1372,7 +1372,7 @@ setsig(Trap *p, sig_t f, int flags)
struct sigaction sigact;
if (p->signal == SIGEXIT_ || p->signal == SIGERR_)
return 1;
return (1);
/* First time setting this signal? If so, get and note the current
* setting.
@ -1390,7 +1390,7 @@ setsig(Trap *p, sig_t f, int flags)
*/
if ((p->flags & TF_ORIG_IGN) && !(flags & SS_FORCE) &&
(!(flags & SS_USER) || !Flag(FTALKING)))
return 0;
return (0);
setexecsig(p, flags & SS_RESTORE_MASK);
@ -1413,7 +1413,7 @@ setsig(Trap *p, sig_t f, int flags)
sigaction(p->signal, &sigact, NULL);
}
return 1;
return (1);
}
/* control what signal is set to before an exec() */

90
jobs.c
View File

@ -22,7 +22,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.53 2009/05/16 16:59:36 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.54 2009/06/08 20:06:47 tg Exp $");
/* Order important! */
#define PRUNNING 0
@ -346,7 +346,7 @@ exchild(struct op *t, int flags,
/* Clear XFORK|XPCLOSE|XCCLOSE|XCOPROC|XPIPEO|XPIPEI|XXCOM|XBGND
* (also done in another execute() below)
*/
return execute(t, flags & (XEXEC | XERROK), xerrok);
return (execute(t, flags & (XEXEC | XERROK), xerrok));
/* no SIGCHLDs while messing with job and process lists */
sigprocmask(SIG_BLOCK, &sm_sigchld, &omask);
@ -514,7 +514,7 @@ exchild(struct op *t, int flags,
sigprocmask(SIG_SETMASK, &omask, NULL);
return rv;
return (rv);
}
/* start the last job: only used for $(command) jobs */
@ -550,14 +550,14 @@ waitlast(void)
else
internal_warningf("waitlast: not started");
sigprocmask(SIG_SETMASK, &omask, NULL);
return 125; /* not so arbitrary, non-zero value */
return (125); /* not so arbitrary, non-zero value */
}
rv = j_waitj(j, JW_NONE, "jw:waitlast");
sigprocmask(SIG_SETMASK, &omask, NULL);
return rv;
return (rv);
}
/* wait for child, interruptable. */
@ -584,20 +584,20 @@ waitfor(const char *cp, int *sigp)
break;
if (!j) {
sigprocmask(SIG_SETMASK, &omask, NULL);
return -1;
return (-1);
}
} else if ((j = j_lookup(cp, &ecode))) {
/* don't report normal job completion */
flags &= ~JW_ASYNCNOTIFY;
if (j->ppid != procpid) {
sigprocmask(SIG_SETMASK, &omask, NULL);
return -1;
return (-1);
}
} else {
sigprocmask(SIG_SETMASK, &omask, NULL);
if (ecode != JL_NOSUCH)
bi_errorf("%s: %s", cp, lookup_msgs[ecode]);
return -1;
return (-1);
}
/* at&t ksh will wait for stopped jobs - we don't */
@ -608,7 +608,7 @@ waitfor(const char *cp, int *sigp)
if (rv < 0) /* we were interrupted */
*sigp = 128 + -rv;
return rv;
return (rv);
}
/* kill (built-in) a job */
@ -625,7 +625,7 @@ j_kill(const char *cp, int sig)
if ((j = j_lookup(cp, &ecode)) == NULL) {
sigprocmask(SIG_SETMASK, &omask, NULL);
bi_errorf("%s: %s", cp, lookup_msgs[ecode]);
return 1;
return (1);
}
if (j->pgrp == 0) { /* started when !Flag(FMONITOR) */
@ -646,7 +646,7 @@ j_kill(const char *cp, int sig)
sigprocmask(SIG_SETMASK, &omask, NULL);
return rv;
return (rv);
}
#ifndef MKSH_UNEMPLOYED
@ -666,13 +666,13 @@ j_resume(const char *cp, int bg)
if ((j = j_lookup(cp, &ecode)) == NULL) {
sigprocmask(SIG_SETMASK, &omask, NULL);
bi_errorf("%s: %s", cp, lookup_msgs[ecode]);
return 1;
return (1);
}
if (j->pgrp == 0) {
sigprocmask(SIG_SETMASK, &omask, NULL);
bi_errorf("job not job-controlled");
return 1;
return (1);
}
if (bg)
@ -716,7 +716,7 @@ j_resume(const char *cp, int bg)
(int) ((j->flags & JF_SAVEDTTYPGRP) ?
j->saved_ttypgrp : j->pgrp),
strerror(rv));
return 1;
return (1);
}
}
j->flags |= JF_FG;
@ -740,7 +740,7 @@ j_resume(const char *cp, int bg)
sigprocmask(SIG_SETMASK, &omask, NULL);
bi_errorf("cannot continue job %s: %s",
cp, strerror(err));
return 1;
return (1);
}
if (!bg) {
if (ttypgrp_ok) {
@ -749,7 +749,7 @@ j_resume(const char *cp, int bg)
rv = j_waitj(j, JW_NONE, "jw:resume");
}
sigprocmask(SIG_SETMASK, &omask, NULL);
return rv;
return (rv);
}
#endif
@ -774,10 +774,10 @@ j_stopped_running(void)
which & 1 ? "stopped" : "",
which == 3 ? " and " : "",
which & 2 ? "running" : "");
return 1;
return (1);
}
return 0;
return (0);
}
int
@ -792,7 +792,7 @@ j_njobs(void)
nj++;
sigprocmask(SIG_SETMASK, &omask, NULL);
return nj;
return (nj);
}
@ -818,7 +818,7 @@ j_jobs(const char *cp, int slp,
if ((j = j_lookup(cp, &ecode)) == NULL) {
sigprocmask(SIG_SETMASK, &omask, NULL);
bi_errorf("%s: %s", cp, lookup_msgs[ecode]);
return 1;
return (1);
}
} else
j = job_list;
@ -840,7 +840,7 @@ j_jobs(const char *cp, int slp,
remove_job(j, "jobs");
}
sigprocmask(SIG_SETMASK, &omask, NULL);
return 0;
return (0);
}
/* list jobs for top-level notification */
@ -884,7 +884,7 @@ j_async(void)
sigprocmask(SIG_SETMASK, &omask, NULL);
return async_pid;
return (async_pid);
}
/* Make j the last async process
@ -977,7 +977,7 @@ j_waitj(Job *j,
}
if ((flags & JW_INTERRUPT) && (rv = trap_pending())) {
j->flags &= ~(JF_WAITING|JF_W_ASYNCNOTIFY);
return -rv;
return (-rv);
}
}
j->flags &= ~(JF_WAITING|JF_W_ASYNCNOTIFY);
@ -1070,7 +1070,7 @@ j_waitj(Job *j,
(!Flag(FMONITOR) || !(flags & JW_ASYNCNOTIFY)))
remove_job(j, where);
return rv;
return (rv);
}
/* SIGCHLD handler to reap children and update job states
@ -1290,17 +1290,17 @@ j_print(Job *j, int how, struct shf *shf)
coredumped = 0;
switch (p->state) {
case PRUNNING:
strlcpy(buf, "Running", sizeof buf);
strlcpy(buf, "Running", sizeof(buf));
break;
case PSTOPPED:
strlcpy(buf, sigtraps[WSTOPSIG(p->status)].mess,
sizeof buf);
sizeof(buf));
break;
case PEXITED:
if (how == JP_SHORT)
buf[0] = '\0';
else if (WEXITSTATUS(p->status) == 0)
strlcpy(buf, "Done", sizeof buf);
strlcpy(buf, "Done", sizeof(buf));
else
shf_snprintf(buf, sizeof(buf), "Done (%d)",
WEXITSTATUS(p->status));
@ -1319,7 +1319,7 @@ j_print(Job *j, int how, struct shf *shf)
buf[0] = '\0';
} else
strlcpy(buf, sigtraps[WTERMSIG(p->status)].mess,
sizeof buf);
sizeof(buf));
break;
}
@ -1380,32 +1380,32 @@ j_lookup(const char *cp, int *ecodep)
/* Look for last_proc->pid (what $! returns) first... */
for (j = job_list; j != NULL; j = j->next)
if (j->last_proc && j->last_proc->pid == job)
return j;
return (j);
/* ...then look for process group (this is non-POSIX,
* but should not break anything */
for (j = job_list; j != NULL; j = j->next)
if (j->pgrp && j->pgrp == job)
return j;
return (j);
if (ecodep)
*ecodep = JL_NOSUCH;
return NULL;
return (NULL);
}
if (*cp != '%') {
if (ecodep)
*ecodep = JL_INVALID;
return NULL;
return (NULL);
}
switch (*++cp) {
case '\0': /* non-standard */
case '+':
case '%':
if (job_list != NULL)
return job_list;
return (job_list);
break;
case '-':
if (job_list != NULL && job_list->next)
return job_list->next;
return (job_list->next);
break;
case '0': case '1': case '2': case '3': case '4':
@ -1413,7 +1413,7 @@ j_lookup(const char *cp, int *ecodep)
getn(cp, &job);
for (j = job_list; j != NULL; j = j->next)
if (j->job == job)
return j;
return (j);
break;
case '?': /* %?string */
@ -1424,12 +1424,12 @@ j_lookup(const char *cp, int *ecodep)
if (last_match) {
if (ecodep)
*ecodep = JL_AMBIG;
return NULL;
return (NULL);
}
last_match = j;
}
if (last_match)
return last_match;
return (last_match);
break;
default: /* %string */
@ -1440,17 +1440,17 @@ j_lookup(const char *cp, int *ecodep)
if (last_match) {
if (ecodep)
*ecodep = JL_AMBIG;
return NULL;
return (NULL);
}
last_match = j;
}
if (last_match)
return last_match;
return (last_match);
break;
}
if (ecodep)
*ecodep = JL_NOSUCH;
return NULL;
return (NULL);
}
static Job *free_jobs;
@ -1470,7 +1470,7 @@ new_job(void)
newj = free_jobs;
free_jobs = free_jobs->next;
} else
newj = alloc(sizeof (Job), APERM);
newj = alloc(sizeof(Job), APERM);
/* brute force method */
for (i = 1; ; i++) {
@ -1481,7 +1481,7 @@ new_job(void)
}
newj->job = i;
return newj;
return (newj);
}
/* Allocate new process struct
@ -1497,9 +1497,9 @@ new_proc(void)
p = free_procs;
free_procs = free_procs->next;
} else
p = alloc(sizeof (Proc), APERM);
p = alloc(sizeof(Proc), APERM);
return p;
return (p);
}
/* Take job out of job_list and put old structures into free list.
@ -1592,5 +1592,5 @@ kill_job(Job *j, int sig)
if (p->pid != 0)
if (kill(p->pid, sig) < 0)
rval = -1;
return rval;
return (rval);
}

44
lex.c
View File

@ -22,7 +22,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/lex.c,v 1.85 2009/05/27 19:52:36 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/lex.c,v 1.86 2009/06/08 20:06:47 tg Exp $");
/*
* states while lexing word
@ -791,7 +791,7 @@ yylex(int cf)
dp = Xstring(ws, wp);
if ((c == '<' || c == '>' || c == '&') && state == SBASE) {
struct ioword *iop = alloc(sizeof (struct ioword), ATEMP);
struct ioword *iop = alloc(sizeof(struct ioword), ATEMP);
if (Xlength(ws, wp) == 0)
iop->unit = c == '<' ? 0 : 1;
@ -842,7 +842,7 @@ yylex(int cf)
iop->heredoc = NULL;
Xfree(ws, wp); /* free word */
yylval.iop = iop;
return REDIR;
return (REDIR);
no_iop:
;
}
@ -879,7 +879,7 @@ yylex(int cf)
yylval.cp = Xclose(ws, wp);
if (state == SWORD || state == SLETPAREN ||
state == SLETARRAY) /* ONEWORD? */
return LWORD;
return (LWORD);
last_terminal_was_bracket = c == '(';
ungetsc(c); /* unget terminator */
@ -910,7 +910,7 @@ yylex(int cf)
if ((cf & KEYWORD) && (p = ktsearch(&keywords, ident, h)) &&
(!(cf & ESACONLY) || p->val.i == ESAC || p->val.i == '}')) {
afree(yylval.cp, ATEMP);
return p->val.i;
return (p->val.i);
}
if ((cf & ALIAS) && (p = ktsearch(&aliases, ident, h)) &&
(p->flag & ISSET)) {
@ -922,7 +922,7 @@ yylex(int cf)
while (s->flags & SF_HASALIAS)
if (s->u.tblp == p)
return LWORD;
return (LWORD);
else
s = s->next;
/* push alias expansion */
@ -943,7 +943,7 @@ yylex(int cf)
}
}
return LWORD;
return (LWORD);
}
static void
@ -1057,7 +1057,7 @@ pushs(int type, Area *areap)
{
Source *s;
s = alloc(sizeof (Source), areap);
s = alloc(sizeof(Source), areap);
s->type = type;
s->str = null;
s->start = NULL;
@ -1071,7 +1071,7 @@ pushs(int type, Area *areap)
XinitN(s->xs, 256, s->areap);
else
memset(&s->xs, 0, sizeof(s->xs));
return s;
return (s);
}
static int
@ -1086,7 +1086,7 @@ getsc__(void)
switch (s->type) {
case SEOF:
s->str = null;
return 0;
return (0);
case SSTDIN:
case SFILE:
@ -1165,7 +1165,7 @@ getsc__(void)
if (s->str == NULL) {
s->type = SEOF;
s->start = s->str = null;
return '\0';
return ('\0');
}
if (s->flags & SF_ECHO) {
shf_puts(s->str, shl_out);
@ -1183,7 +1183,7 @@ getsc__(void)
goto getsc_again;
}
}
return c;
return (c);
}
static void
@ -1467,7 +1467,7 @@ get_brace_var(XString *wsp, char *wp)
Xcheck(*wsp, wp);
*wp++ = c;
}
return wp;
return (wp);
}
/*
@ -1498,7 +1498,7 @@ arraysub(char **strp)
*wp++ = '\0';
*strp = Xclose(ws, wp);
return depth == 0 ? 1 : 0;
return (depth == 0 ? 1 : 0);
}
/* Unget a char: handles case when we are already at the start of the buffer */
@ -1509,7 +1509,7 @@ ungetsc(int c)
backslash_skip--;
/* Don't unget eof... */
if (source->str == null && c == '\0')
return source->str;
return (source->str);
if (source->str > source->start)
source->str--;
else {
@ -1521,7 +1521,7 @@ ungetsc(int c)
s->next = source;
source = s;
}
return source->str;
return (source->str);
}
@ -1532,11 +1532,11 @@ getsc_bn(void)
int c, c2;
if (ignore_backslash_newline)
return getsc_();
return (getsc_());
if (backslash_skip == 1) {
backslash_skip = 2;
return getsc_();
return (getsc_());
}
backslash_skip = 0;
@ -1550,19 +1550,19 @@ getsc_bn(void)
ungetsc(c2);
backslash_skip = 1;
}
return c;
return (c);
}
}
static Lex_state *
push_state_(State_info *si, Lex_state *old_end)
{
Lex_state *new = alloc(STATE_BSIZE * sizeof (Lex_state), ATEMP);
Lex_state *new = alloc(STATE_BSIZE * sizeof(Lex_state), ATEMP);
new[0].ls_info.base = old_end;
si->base = &new[0];
si->end = &new[STATE_BSIZE];
return &new[1];
return (&new[1]);
}
static Lex_state *
@ -1575,5 +1575,5 @@ pop_state_(State_info *si, Lex_state *old_end)
afree(old_base, ATEMP);
return si->base + STATE_BSIZE - 1;
return (si->base + STATE_BSIZE - 1);
}

56
main.c
View File

@ -33,7 +33,7 @@
#include <locale.h>
#endif
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.130 2009/06/07 22:28:04 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.131 2009/06/08 20:06:47 tg Exp $");
extern char **environ;
@ -423,7 +423,7 @@ main(int argc, const char *argv[])
Flag(FTRACKALL) = 1; /* set after ENV */
shell(s, true); /* doesn't return */
return 0;
return (0);
}
int
@ -437,7 +437,7 @@ include(const char *name, int argc, const char **argv, int intr_ok)
shf = shf_open(name, O_RDONLY, 0, SHF_MAPHI | SHF_CLEXEC);
if (shf == NULL)
return -1;
return (-1);
if (argv) {
old_argv = e->loc->argv;
@ -457,13 +457,13 @@ include(const char *name, int argc, const char **argv, int intr_ok)
switch (i) {
case LRETURN:
case LERROR:
return exstat & 0xff; /* see below */
return (exstat & 0xff); /* see below */
case LINTR:
/* intr_ok is set if we are including .profile or $ENV.
* If user ^Cs out, we don't want to kill the shell...
*/
if (intr_ok && (exstat - 128) != SIGTERM)
return 1;
return (1);
/* FALLTHRU */
case LEXIT:
case LLEAVE:
@ -488,7 +488,7 @@ include(const char *name, int argc, const char **argv, int intr_ok)
e->loc->argv = old_argv;
e->loc->argc = old_argc;
}
return i & 0xff; /* & 0xff to ensure value not -1 */
return (i & 0xff); /* & 0xff to ensure value not -1 */
}
int
@ -498,7 +498,7 @@ command(const char *comm)
s = pushs(SSTRING, ATEMP);
s->start = s->str = comm;
return shell(s, false);
return (shell(s, false));
}
/*
@ -603,7 +603,7 @@ shell(Source * volatile s, volatile int toplevel)
}
quitenv(NULL);
source = old_source;
return exstat;
return (exstat);
}
/* return to closest error handler or shell(), exit if none found */
@ -648,7 +648,7 @@ newenv(int type)
* struct env includes ALLOC_ITEM for alignment constraints
* so first get the actually used memory, then assign it
*/
cp = alloc(sizeof (struct env) - ALLOC_SIZE, ATEMP);
cp = alloc(sizeof(struct env) - ALLOC_SIZE, ATEMP);
ep = (void *)(cp - ALLOC_SIZE); /* undo what alloc() did */
/* initialise public members of struct env (not the ALLOC_ITEM) */
ainit(&ep->area);
@ -982,8 +982,8 @@ can_seek(int fd)
{
struct stat statb;
return fstat(fd, &statb) == 0 && !S_ISREG(statb.st_mode) ?
SHF_UNBUF : 0;
return (fstat(fd, &statb) == 0 && !S_ISREG(statb.st_mode) ?
SHF_UNBUF : 0);
}
struct shf shf_iob[3];
@ -1025,7 +1025,7 @@ savefd(int fd)
if (fd < FDBASE && (nfd = fcntl(fd, F_DUPFD, FDBASE)) < 0 &&
errno == EBADF)
return -1;
return (-1);
if (nfd < 0 || nfd > SHRT_MAX)
errorf("too many files open in shell");
fcntl(nfd, F_SETFD, FD_CLOEXEC);
@ -1159,10 +1159,10 @@ coproc_getfd(int mode, const char **emsgp)
int fd = (mode & R_OK) ? coproc.read : coproc.write;
if (fd >= 0)
return fd;
return (fd);
if (emsgp)
*emsgp = "no coprocess";
return -1;
return (-1);
}
/* called to close file descriptors related to the coprocess (if any)
@ -1204,7 +1204,7 @@ maketemp(Area *ap, Temp_type type, struct temp **tlist)
pathname = tempnam(dir, "mksh.");
len = ((pathname == NULL) ? 0 : strlen(pathname)) + 1;
#endif
tp = alloc(sizeof (struct temp) + len, ap);
tp = alloc(sizeof(struct temp) + len, ap);
tp->name = (char *)&tp[1];
#if !HAVE_MKSTEMP
if (pathname == NULL)
@ -1228,7 +1228,7 @@ maketemp(Area *ap, Temp_type type, struct temp **tlist)
tp->next = *tlist;
*tlist = tp;
return tp;
return (tp);
}
#define INIT_TBLS 8 /* initial table size (power of 2) */
@ -1243,7 +1243,7 @@ hash(const char *n)
while (*n != '\0')
h = 2*h + *n++;
return h * 32821; /* scatter bits */
return (h * 32821); /* scatter bits */
}
void
@ -1264,7 +1264,7 @@ texpand(struct table *tp, int nsize)
struct tbl **ntblp, **otblp = tp->tbls;
int osize = tp->size;
ntblp = alloc(nsize * sizeof (struct tbl *), tp->areap);
ntblp = alloc(nsize * sizeof(struct tbl *), tp->areap);
for (i = 0; i < nsize; i++)
ntblp[i] = NULL;
tp->size = nsize;
@ -1297,18 +1297,18 @@ ktsearch(struct table *tp, const char *n, unsigned int h)
struct tbl **pp, *p;
if (tp->size == 0)
return NULL;
return (NULL);
/* search for name in hashed table */
for (pp = &tp->tbls[h & (tp->size - 1)]; (p = *pp) != NULL; pp--) {
if (*p->name == *n && strcmp(p->name, n) == 0 &&
(p->flag & DEFINED))
return p;
return (p);
if (pp == tp->tbls) /* wrap */
pp += tp->size;
}
return NULL;
return (NULL);
}
/* table */
@ -1326,7 +1326,7 @@ ktenter(struct table *tp, const char *n, unsigned int h)
/* search for name in hashed table */
for (pp = &tp->tbls[h & (tp->size - 1)]; (p = *pp) != NULL; pp--) {
if (*p->name == *n && strcmp(p->name, n) == 0)
return p; /* found */
return (p); /* found */
if (pp == tp->tbls) /* wrap */
pp += tp->size;
}
@ -1348,7 +1348,7 @@ ktenter(struct table *tp, const char *n, unsigned int h)
/* enter in tp->tbls */
tp->nfree--;
*pp = p;
return p;
return (p);
}
void
@ -1364,9 +1364,9 @@ ktnext(struct tstate *ts)
while (--ts->left >= 0) {
struct tbl *p = *ts->next++;
if (p != NULL && (p->flag & DEFINED))
return p;
return (p);
}
return NULL;
return (NULL);
}
static int
@ -1384,14 +1384,14 @@ ktsort(struct table *tp)
size_t i;
struct tbl **p, **sp, **dp;
p = alloc((tp->size + 1) * sizeof (struct tbl *), ATEMP);
p = alloc((tp->size + 1) * sizeof(struct tbl *), ATEMP);
sp = tp->tbls; /* source */
dp = p; /* dest */
for (i = 0; i < (size_t)tp->size; i++)
if ((*dp = *sp++) != NULL && (((*dp)->flag & DEFINED) ||
((*dp)->flag & ARRAY)))
dp++;
qsort(p, (i = dp - p), sizeof (void *), tnamecmp);
qsort(p, (i = dp - p), sizeof(void *), tnamecmp);
p[i] = NULL;
return p;
return (p);
}

114
misc.c
View File

@ -29,7 +29,7 @@
#include <grp.h>
#endif
__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.108 2009/05/31 15:10:07 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.109 2009/06/08 20:06:48 tg Exp $");
#undef USE_CHVT
#if defined(TIOCSCTTY) && !defined(MKSH_SMALL)
@ -95,7 +95,7 @@ Xcheck_grow_(XString *xsp, const char *xp, unsigned int more)
xsp->len += more > xsp->len ? more : xsp->len;
xsp->beg = aresize(xsp->beg, xsp->len + 8, xsp->areap);
xsp->end = xsp->beg + xsp->len;
return xsp->beg + (xp - old_beg);
return (xsp->beg + (xp - old_beg));
}
const struct shoption options[] = {
@ -187,7 +187,7 @@ options_fmt_entry(const void *arg, int i, char *buf, int buflen)
shf_snprintf(buf, buflen, "%-*s %s",
oi->opt_width, options[oi->opts[i]].name,
Flag(oi->opts[i]) ? "on" : "off");
return buf;
return (buf);
}
static void
@ -402,7 +402,7 @@ parse_args(const char **argv,
#endif
case '?':
return -1;
return (-1);
default:
if (what == OF_FIRSTTIME)
@ -438,12 +438,12 @@ parse_args(const char **argv,
if (arrayset && (!*array || *skip_varname(array, false))) {
bi_errorf("%s: is not an identifier", array);
return -1;
return (-1);
}
if (sortargs) {
for (i = go.optind; argv[i]; i++)
;
qsort(&argv[go.optind], i - go.optind, sizeof (void *),
qsort(&argv[go.optind], i - go.optind, sizeof(void *),
xstrcmp);
}
if (arrayset) {
@ -452,7 +452,7 @@ parse_args(const char **argv,
;
}
return go.optind;
return (go.optind);
}
/* parse a decimal number: returns 0 if string isn't a number, 1 otherwise */
@ -516,7 +516,7 @@ gmatchx(const char *s, const char *p, bool isfile)
const char *se, *pe;
if (s == NULL || p == NULL)
return 0;
return (0);
se = s + strlen(s);
pe = p + strlen(p);
@ -528,10 +528,10 @@ gmatchx(const char *s, const char *p, bool isfile)
char tbuf[64];
char *t = len <= sizeof(tbuf) ? tbuf : alloc(len, ATEMP);
debunk(t, p, len);
return !strcmp(t, s);
return (!strcmp(t, s));
}
return do_gmatch((const unsigned char *) s, (const unsigned char *) se,
(const unsigned char *) p, (const unsigned char *) pe);
return (do_gmatch((const unsigned char *) s, (const unsigned char *) se,
(const unsigned char *) p, (const unsigned char *) pe));
}
/* Returns if p is a syntacticly correct globbing pattern, false
@ -578,7 +578,7 @@ has_globbing(const char *xp, const char *xpe)
} else if (c == ']') {
if (in_bracket) {
if (bnest) /* [a*(b]) */
return 0;
return (0);
in_bracket = 0;
}
} else if ((c & 0x80) && vstrchr("*+?@! ", c & 0x7f)) {
@ -589,18 +589,18 @@ has_globbing(const char *xp, const char *xpe)
nest++;
} else if (c == '|') {
if (in_bracket && !bnest) /* *(a[foo|bar]) */
return 0;
return (0);
} else if (c == /*(*/ ')') {
if (in_bracket) {
if (!bnest--) /* *(a[b)c] */
return 0;
return (0);
} else if (nest)
nest--;
}
/* else must be a MAGIC-MAGIC, or MAGIC-!, MAGIC--, MAGIC-]
MAGIC-{, MAGIC-,, MAGIC-} */
}
return saw_glob && !in_bracket && !nest;
return (saw_glob && !in_bracket && !nest);
}
/* Function must return either 0 or 1 (assumed by code for 0x80|'!') */
@ -613,36 +613,36 @@ do_gmatch(const unsigned char *s, const unsigned char *se,
const unsigned char *srest;
if (s == NULL || p == NULL)
return 0;
return (0);
while (p < pe) {
pc = *p++;
sc = s < se ? *s : '\0';
s++;
if (!ISMAGIC(pc)) {
if (sc != pc)
return 0;
return (0);
continue;
}
switch (*p++) {
case '[':
if (sc == 0 || (p = cclass(p, sc)) == NULL)
return 0;
return (0);
break;
case '?':
if (sc == 0)
return 0;
return (0);
break;
case '*':
if (p == pe)
return 1;
return (1);
s--;
do {
if (do_gmatch(s, se, p, pe))
return 1;
return (1);
} while (s++ < se);
return 0;
return (0);
/*
* [*+?@!](pattern|pattern|..)
@ -651,12 +651,12 @@ do_gmatch(const unsigned char *s, const unsigned char *se,
case 0x80|'+': /* matches one or more times */
case 0x80|'*': /* matches zero or more times */
if (!(prest = pat_scan(p, pe, 0)))
return 0;
return (0);
s--;
/* take care of zero matches */
if (p[-1] == (0x80 | '*') &&
do_gmatch(s, se, prest, pe))
return 1;
return (1);
for (psub = p; ; psub = pnext) {
pnext = pat_scan(psub, pe, 1);
for (srest = s; srest <= se; srest++) {
@ -664,39 +664,39 @@ do_gmatch(const unsigned char *s, const unsigned char *se,
(do_gmatch(srest, se, prest, pe) ||
(s != srest && do_gmatch(srest,
se, p - 2, pe))))
return 1;
return (1);
}
if (pnext == prest)
break;
}
return 0;
return (0);
case 0x80|'?': /* matches zero or once */
case 0x80|'@': /* matches one of the patterns */
case 0x80|' ': /* simile for @ */
if (!(prest = pat_scan(p, pe, 0)))
return 0;
return (0);
s--;
/* Take care of zero matches */
if (p[-1] == (0x80 | '?') &&
do_gmatch(s, se, prest, pe))
return 1;
return (1);
for (psub = p; ; psub = pnext) {
pnext = pat_scan(psub, pe, 1);
srest = prest == pe ? se : s;
for (; srest <= se; srest++) {
if (do_gmatch(s, srest, psub, pnext - 2) &&
do_gmatch(srest, se, prest, pe))
return 1;
return (1);
}
if (pnext == prest)
break;
}
return 0;
return (0);
case 0x80|'!': /* matches none of the patterns */
if (!(prest = pat_scan(p, pe, 0)))
return 0;
return (0);
s--;
for (srest = s; srest <= se; srest++) {
int matched = 0;
@ -713,17 +713,17 @@ do_gmatch(const unsigned char *s, const unsigned char *se,
}
if (!matched &&
do_gmatch(srest, se, prest, pe))
return 1;
return (1);
}
return 0;
return (0);
default:
if (sc != p[-1])
return 0;
return (0);
break;
}
}
return s == se;
return (s == se);
}
static const unsigned char *
@ -747,7 +747,7 @@ cclass(const unsigned char *p, int sub)
}
if (c == '\0')
/* No closing ] - act as if the opening [ was quoted */
return sub == '[' ? orig_p : NULL;
return (sub == '[' ? orig_p : NULL);
if (ISMAGIC(p[0]) && p[1] == '-' &&
(!ISMAGIC(p[2]) || p[3] != ']')) {
p += 2; /* MAGIC- */
@ -759,14 +759,14 @@ cclass(const unsigned char *p, int sub)
}
/* POSIX says this is an invalid expression */
if (c > d)
return NULL;
return (NULL);
} else
d = c;
if (c == sub || (c <= sub && sub <= d))
found = 1;
} while (!(ISMAGIC(p[0]) && p[1] == ']'));
return (found != not) ? p+2 : NULL;
return ((found != not) ? p+2 : NULL);
}
/* Look for next ) or | (if match_sep) in *(foo|bar) pattern */
@ -844,14 +844,14 @@ ksh_getopt(const char **argv, Getopt *go, const char *optionsp)
go->optind++;
go->p = 0;
go->info |= GI_MINUSMINUS;
return -1;
return (-1);
}
if (arg == NULL ||
((flag != '-' ) && /* neither a - nor a + (if + allowed) */
(!(go->flags & GF_PLUSOPT) || flag != '+')) ||
(c = arg[1]) == '\0') {
go->p = 0;
return -1;
return (-1);
}
go->optind++;
go->info &= ~(GI_MINUS|GI_PLUS);
@ -870,7 +870,7 @@ ksh_getopt(const char **argv, Getopt *go, const char *optionsp)
if (go->flags & GF_ERROR)
bi_errorfz();
}
return '?';
return ('?');
}
/* : means argument must be present, may be part of option argument
* or the next argument
@ -888,14 +888,14 @@ ksh_getopt(const char **argv, Getopt *go, const char *optionsp)
if (optionsp[0] == ':') {
go->buf[0] = c;
go->optarg = go->buf;
return ':';
return (':');
}
warningf(true, "%s%s-'%c' requires argument",
(go->flags & GF_NONAME) ? "" : argv[0],
(go->flags & GF_NONAME) ? "" : ": ", c);
if (go->flags & GF_ERROR)
bi_errorfz();
return '?';
return ('?');
}
go->p = 0;
} else if (*o == ',') {
@ -921,7 +921,7 @@ ksh_getopt(const char **argv, Getopt *go, const char *optionsp)
go->optarg = NULL;
}
}
return c;
return (c);
}
/* print variable/alias value using necessary quotes
@ -1061,7 +1061,7 @@ blocking_read(int fd, char *buf, int nbytes)
}
break;
}
return ret;
return (ret);
}
/* Reset the non-blocking flag on the specified file descriptor.
@ -1074,13 +1074,13 @@ reset_nonblock(int fd)
int flags;
if ((flags = fcntl(fd, F_GETFL, 0)) < 0)
return -1;
return (-1);
if (!(flags & O_NONBLOCK))
return 0;
return (0);
flags &= ~O_NONBLOCK;
if (fcntl(fd, F_SETFL, flags) < 0)
return -1;
return 1;
return (-1);
return (1);
}
@ -1098,7 +1098,7 @@ ksh_get_wd(size_t *dlen)
if (dlen)
*dlen = len;
return ret;
return (ret);
}
/*
@ -1183,7 +1183,7 @@ make_path(const char *cwd, const char *file,
if (!use_cdpath)
*cdpathp = NULL;
return rval;
return (rval);
}
/*
@ -1287,13 +1287,13 @@ get_phys_path(const char *pathl)
xp = do_phys_path(&xs, xp, pathl);
if (!xp)
return NULL;
return (NULL);
if (Xlength(xs, xp) == 0)
Xput(xs, xp, '/');
Xput(xs, xp, '\0');
return Xclose(xs, xp);
return (Xclose(xs, xp));
}
static char *
@ -1359,7 +1359,7 @@ chvt(const char *fn)
int fd;
if (*fn == '-') {
memcpy(dv, "-/dev/null", sizeof ("-/dev/null"));
memcpy(dv, "-/dev/null", sizeof("-/dev/null"));
fn = dv + 1;
} else {
if (stat(fn, &sb)) {
@ -1415,9 +1415,9 @@ chvt(const char *fn)
#ifdef DEBUG
char longsizes_are_okay[sizeof (long) == sizeof (unsigned long) ? 1 : -1];
char arisize_is_okay[sizeof (mksh_ari_t) == 4 ? 1 : -1];
char uarisize_is_okay[sizeof (mksh_uari_t) == 4 ? 1 : -1];
char longsizes_are_okay[sizeof(long) == sizeof(unsigned long) ? 1 : -1];
char arisize_is_okay[sizeof(mksh_ari_t) == 4 ? 1 : -1];
char uarisize_is_okay[sizeof(mksh_uari_t) == 4 ? 1 : -1];
char *
strchr(char *p, int ch)

12
sh.h
View File

@ -122,7 +122,7 @@
#define __SCCSID(x) __IDSTRING(sccsid,x)
#ifdef EXTERN
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.306 2009/06/07 22:28:05 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.307 2009/06/08 20:06:48 tg Exp $");
#endif
#define MKSH_VERSION "R38 2009/06/07"
@ -301,7 +301,7 @@ extern int __cdecl setegid(gid_t);
# define EXTERN_DEFINED
#endif
#define NELEM(a) (sizeof (a) / sizeof ((a)[0]))
#define NELEM(a) (sizeof(a) / sizeof((a)[0]))
#define BIT(i) (1 << (i)) /* define bit in flag */
/* Table flag type - needs > 16 and < 32 bits */
@ -445,7 +445,7 @@ struct lalloc {
/* 2. sizes */
#define ALLOC_ITEM struct lalloc
#define ALLOC_SIZE (sizeof (ALLOC_ITEM))
#define ALLOC_SIZE (sizeof(ALLOC_ITEM))
/* 3. group structure (only the same for lalloc.c) */
typedef struct lalloc Area;
@ -1187,7 +1187,7 @@ typedef struct XPtrV {
#define XPinit(x, n) do { \
void **vp__; \
vp__ = alloc((n) * sizeof (void *), ATEMP); \
vp__ = alloc((n) * sizeof(void *), ATEMP); \
(x).cur = (x).beg = vp__; \
(x).end = vp__ + (n); \
} while (/* CONSTCOND */ 0)
@ -1196,7 +1196,7 @@ typedef struct XPtrV {
if ((x).cur >= (x).end) { \
size_t n = XPsize(x); \
(x).beg = aresize((x).beg, \
n * 2 * sizeof (void *), ATEMP); \
n * 2 * sizeof(void *), ATEMP); \
(x).cur = (x).beg + n; \
(x).end = (x).cur + n; \
} \
@ -1205,7 +1205,7 @@ typedef struct XPtrV {
#define XPptrv(x) ((x).beg)
#define XPsize(x) ((x).cur - (x).beg)
#define XPclose(x) aresize((x).beg, XPsize(x) * sizeof (void *), ATEMP)
#define XPclose(x) aresize((x).beg, XPsize(x) * sizeof(void *), ATEMP)
#define XPfree(x) afree((x).beg, ATEMP)
#define IDENT 64

122
shf.c
View File

@ -22,7 +22,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/shf.c,v 1.28 2009/05/16 16:59:40 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/shf.c,v 1.29 2009/06/08 20:06:49 tg Exp $");
/* flags to shf_emptybuf() */
#define EB_READSW 0x01 /* about to switch to reading */
@ -49,7 +49,7 @@ shf_open(const char *name, int oflags, int mode, int sflags)
int fd;
/* Done before open so if alloca fails, fd won't be lost. */
shf = alloc(sizeof (struct shf) + bsize, ATEMP);
shf = alloc(sizeof(struct shf) + bsize, ATEMP);
shf->areap = ATEMP;
shf->buf = (unsigned char *)&shf[1];
shf->bsize = bsize;
@ -59,7 +59,7 @@ shf_open(const char *name, int oflags, int mode, int sflags)
fd = open(name, oflags, mode);
if (fd < 0) {
afree(shf, shf->areap);
return NULL;
return (NULL);
}
if ((sflags & SHF_MAPHI) && fd < FDBASE) {
int nfd;
@ -68,7 +68,7 @@ shf_open(const char *name, int oflags, int mode, int sflags)
close(fd);
if (nfd < 0) {
afree(shf, shf->areap);
return NULL;
return (NULL);
}
fd = nfd;
}
@ -76,7 +76,7 @@ shf_open(const char *name, int oflags, int mode, int sflags)
sflags |= (oflags & O_ACCMODE) == O_RDONLY ? SHF_RD :
((oflags & O_ACCMODE) == O_WRONLY ? SHF_WR : SHF_RDWR);
return shf_reopen(fd, sflags, shf);
return (shf_reopen(fd, sflags, shf));
}
/* Set up the shf structure for a file descriptor. Doesn't fail. */
@ -117,7 +117,7 @@ shf_fdopen(int fd, int sflags, struct shf *shf)
} else
shf->buf = NULL;
} else {
shf = alloc(sizeof (struct shf) + bsize, ATEMP);
shf = alloc(sizeof(struct shf) + bsize, ATEMP);
shf->buf = (unsigned char *)&shf[1];
sflags |= SHF_ALLOCS;
}
@ -133,7 +133,7 @@ shf_fdopen(int fd, int sflags, struct shf *shf)
shf->bsize = bsize;
if (sflags & SHF_CLEXEC)
fcntl(fd, F_SETFD, FD_CLOEXEC);
return shf;
return (shf);
}
/* Set up an existing shf (and buffer) to use the given fd */
@ -180,7 +180,7 @@ shf_reopen(int fd, int sflags, struct shf *shf)
shf->errno_ = 0;
if (sflags & SHF_CLEXEC)
fcntl(fd, F_SETFD, FD_CLOEXEC);
return shf;
return (shf);
}
/* Open a string for reading or writing. If reading, bsize is the number
@ -199,7 +199,7 @@ shf_sopen(char *buf, int bsize, int sflags, struct shf *shf)
internal_errorf("shf_sopen: flags 0x%x", sflags);
if (!shf) {
shf = alloc(sizeof (struct shf), ATEMP);
shf = alloc(sizeof(struct shf), ATEMP);
sflags |= SHF_ALLOCS;
}
shf->areap = ATEMP;
@ -219,7 +219,7 @@ shf_sopen(char *buf, int bsize, int sflags, struct shf *shf)
shf->errno_ = 0;
shf->bsize = bsize;
return shf;
return (shf);
}
/* Flush and close file descriptor, free the shf structure */
@ -238,7 +238,7 @@ shf_close(struct shf *shf)
else if (shf->flags & SHF_ALLOCB)
afree(shf->buf, shf->areap);
return ret;
return (ret);
}
/* Flush and close file descriptor, don't free file structure */
@ -257,7 +257,7 @@ shf_fdclose(struct shf *shf)
shf->fd = -1;
}
return ret;
return (ret);
}
/* Close a string - if it was opened for writing, it is null terminated;
@ -276,7 +276,7 @@ shf_sclose(struct shf *shf)
}
if (shf->flags & SHF_ALLOCS)
afree(shf, shf->areap);
return (char *) s;
return ((char *)s);
}
/* Un-read what has been read but not examined, or write what has been
@ -286,14 +286,14 @@ int
shf_flush(struct shf *shf)
{
if (shf->flags & SHF_STRING)
return (shf->flags & SHF_WR) ? EOF : 0;
return ((shf->flags & SHF_WR) ? EOF : 0);
if (shf->fd < 0)
internal_errorf("shf_flush: no fd");
if (shf->flags & SHF_ERROR) {
errno = shf->errno_;
return EOF;
return (EOF);
}
if (shf->flags & SHF_READING) {
@ -303,11 +303,11 @@ shf_flush(struct shf *shf)
shf->rnleft = 0;
shf->rp = shf->buf;
}
return 0;
return (0);
} else if (shf->flags & SHF_WRITING)
return shf_emptybuf(shf, 0);
return (shf_emptybuf(shf, 0));
return 0;
return (0);
}
/* Write out any buffered data. If currently reading, flushes the read
@ -323,12 +323,12 @@ shf_emptybuf(struct shf *shf, int flags)
if (shf->flags & SHF_ERROR) {
errno = shf->errno_;
return EOF;
return (EOF);
}
if (shf->flags & SHF_READING) {
if (flags & EB_READSW) /* doesn't happen */
return 0;
return (0);
ret = shf_flush(shf);
shf->flags &= ~SHF_READING;
}
@ -340,7 +340,7 @@ shf_emptybuf(struct shf *shf, int flags)
*/
if (!(flags & EB_GROW) || !(shf->flags & SHF_DYNAMIC) ||
!(shf->flags & SHF_ALLOCB))
return EOF;
return (EOF);
/* allocate more space for buffer */
nbuf = aresize(shf->buf, 2 * shf->wbsize, shf->areap);
shf->rp = nbuf + (shf->rp - shf->buf);
@ -371,7 +371,7 @@ shf_emptybuf(struct shf *shf, int flags)
ntowrite);
shf->wp = shf->buf + ntowrite;
}
return EOF;
return (EOF);
}
buf += n;
ntowrite -= n;
@ -380,7 +380,7 @@ shf_emptybuf(struct shf *shf, int flags)
shf->wp = shf->buf;
shf->wnleft = 0;
shf->flags &= ~SHF_WRITING;
return 0;
return (0);
}
}
shf->wp = shf->buf;
@ -388,7 +388,7 @@ shf_emptybuf(struct shf *shf, int flags)
}
shf->flags |= SHF_WRITING;
return ret;
return (ret);
}
/* Fill up a read buffer. Returns EOF for a read error, 0 otherwise. */
@ -396,7 +396,7 @@ static int
shf_fillbuf(struct shf *shf)
{
if (shf->flags & SHF_STRING)
return 0;
return (0);
if (shf->fd < 0)
internal_errorf("shf_fillbuf: no fd");
@ -404,11 +404,11 @@ shf_fillbuf(struct shf *shf)
if (shf->flags & (SHF_EOF | SHF_ERROR)) {
if (shf->flags & SHF_ERROR)
errno = shf->errno_;
return EOF;
return (EOF);
}
if ((shf->flags & SHF_WRITING) && shf_emptybuf(shf, EB_READSW) == EOF)
return EOF;
return (EOF);
shf->flags |= SHF_READING;
@ -427,11 +427,11 @@ shf_fillbuf(struct shf *shf)
shf->errno_ = errno;
shf->rnleft = 0;
shf->rp = shf->buf;
return EOF;
return (EOF);
}
shf->flags |= SHF_EOF;
}
return 0;
return (0);
}
/* Read a buffer from shf. Returns the number of bytes read into buf,
@ -464,8 +464,8 @@ shf_read(char *buf, int bsize, struct shf *shf)
shf->rnleft -= ncopy;
}
/* Note: fread(3S) returns 0 for errors - this doesn't */
return orig_bsize == bsize ? (shf_error(shf) ? EOF : 0) :
orig_bsize - bsize;
return (orig_bsize == bsize ? (shf_error(shf) ? EOF : 0) :
orig_bsize - bsize);
}
/* Read up to a newline or EOF. The newline is put in buf; buf is always
@ -483,16 +483,16 @@ shf_getse(char *buf, int bsize, struct shf *shf)
internal_errorf("shf_getse: flags %x", shf->flags);
if (bsize <= 0)
return NULL;
return (NULL);
--bsize; /* save room for null */
do {
if (shf->rnleft == 0) {
if (shf_fillbuf(shf) == EOF)
return NULL;
return (NULL);
if (shf->rnleft == 0) {
*buf = '\0';
return buf == orig_buf ? NULL : buf;
return (buf == orig_buf ? NULL : buf);
}
}
end = (unsigned char *)memchr((char *) shf->rp, '\n',
@ -507,7 +507,7 @@ shf_getse(char *buf, int bsize, struct shf *shf)
bsize -= ncopy;
} while (!end && bsize);
*buf = '\0';
return buf;
return (buf);
}
/* Returns the char read. Returns EOF for error and end of file. */
@ -518,9 +518,9 @@ shf_getchar(struct shf *shf)
internal_errorf("shf_getchar: flags %x", shf->flags);
if (shf->rnleft == 0 && (shf_fillbuf(shf) == EOF || shf->rnleft == 0))
return EOF;
return (EOF);
--shf->rnleft;
return *shf->rp++;
return (*shf->rp++);
}
/* Put a character back in the input stream. Returns the character if
@ -534,10 +534,10 @@ shf_ungetc(int c, struct shf *shf)
if ((shf->flags & SHF_ERROR) || c == EOF ||
(shf->rp == shf->buf && shf->rnleft))
return EOF;
return (EOF);
if ((shf->flags & SHF_WRITING) && shf_emptybuf(shf, EB_READSW) == EOF)
return EOF;
return (EOF);
if (shf->rp == shf->buf)
shf->rp = shf->buf + shf->rbsize;
@ -546,16 +546,16 @@ shf_ungetc(int c, struct shf *shf)
* don't want to modify a string.
*/
if (shf->rp[-1] != c)
return EOF;
return (EOF);
shf->flags &= ~SHF_EOF;
shf->rp--;
shf->rnleft++;
return c;
return (c);
}
shf->flags &= ~SHF_EOF;
*--(shf->rp) = c;
shf->rnleft++;
return c;
return (c);
}
/* Write a character. Returns the character if successful, EOF if
@ -568,7 +568,7 @@ shf_putchar(int c, struct shf *shf)
internal_errorf("shf_putchar: flags %x", shf->flags);
if (c == EOF)
return EOF;
return (EOF);
if (shf->flags & SHF_UNBUF) {
unsigned char cc = (unsigned char)c;
@ -578,7 +578,7 @@ shf_putchar(int c, struct shf *shf)
internal_errorf("shf_putchar: no fd");
if (shf->flags & SHF_ERROR) {
errno = shf->errno_;
return EOF;
return (EOF);
}
while ((n = write(shf->fd, &cc, 1)) != 1)
if (n < 0) {
@ -587,17 +587,17 @@ shf_putchar(int c, struct shf *shf)
continue;
shf->flags |= SHF_ERROR;
shf->errno_ = errno;
return EOF;
return (EOF);
}
} else {
/* Flush deals with strings and sticky errors */
if (shf->wnleft == 0 && shf_emptybuf(shf, EB_GROW) == EOF)
return EOF;
return (EOF);
shf->wnleft--;
*shf->wp++ = c;
}
return c;
return (c);
}
/* Write a string. Returns the length of the string if successful, EOF if
@ -607,9 +607,9 @@ int
shf_puts(const char *s, struct shf *shf)
{
if (!s)
return EOF;
return (EOF);
return shf_write(s, strlen(s), shf);
return (shf_write(s, strlen(s), shf));
}
/* Write a buffer. Returns nbytes if successful, EOF if there is an error. */
@ -638,7 +638,7 @@ shf_write(const char *buf, int nbytes, struct shf *shf)
if (nbytes > 0) {
/* Flush deals with strings and sticky errors */
if (shf_emptybuf(shf, EB_GROW) == EOF)
return EOF;
return (EOF);
if (nbytes > shf->wbsize) {
ncopy = nbytes;
if (shf->wbsize)
@ -655,7 +655,7 @@ shf_write(const char *buf, int nbytes, struct shf *shf)
shf->wnleft = 0;
/* Note: fwrite(3S) returns 0 for
* errors - this doesn't */
return EOF;
return (EOF);
}
buf += n;
ncopy -= n;
@ -668,7 +668,7 @@ shf_write(const char *buf, int nbytes, struct shf *shf)
}
}
return orig_nbytes;
return (orig_nbytes);
}
int
@ -681,7 +681,7 @@ shf_fprintf(struct shf *shf, const char *fmt, ...)
n = shf_vfprintf(shf, fmt, args);
va_end(args);
return n;
return (n);
}
int
@ -699,7 +699,7 @@ shf_snprintf(char *buf, int bsize, const char *fmt, ...)
n = shf_vfprintf(&shf, fmt, args);
va_end(args);
shf_sclose(&shf); /* null terminates */
return n;
return (n);
}
char *
@ -712,7 +712,7 @@ shf_smprintf(const char *fmt, ...)
va_start(args, fmt);
shf_vfprintf(&shf, fmt, args);
va_end(args);
return shf_sclose(&shf); /* null terminates */
return (shf_sclose(&shf)); /* null terminates */
}
#undef FP /* if you want floating point stuff */
@ -747,12 +747,12 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
int tmp = 0, field, precision, len, flags;
unsigned long lnum;
/* %#o produces the longest output */
char numbuf[(8 * sizeof (long) + 2) / 3 + 1];
char numbuf[(8 * sizeof(long) + 2) / 3 + 1];
/* this stuff for dealing with the buffer */
int nwritten = 0;
if (!fmt)
return 0;
return (0);
while ((c = *fmt++)) {
if (c != '%') {
@ -853,7 +853,7 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
case 'u':
case 'x':
flags |= FL_NUMBER;
cp = numbuf + sizeof (numbuf);
cp = numbuf + sizeof(numbuf);
/*-
* XXX any better way to do this?
* XXX hopefully the compiler optimises this out
@ -865,7 +865,7 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
*/
if (flags & FL_LONG)
lnum = va_arg(args, unsigned long);
else if ((sizeof (int) < sizeof (long)) && (c == 'd'))
else if ((sizeof(int) < sizeof(long)) && (c == 'd'))
lnum = (long)va_arg(args, int);
else
lnum = va_arg(args, unsigned int);
@ -921,7 +921,7 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
}
}
}
len = numbuf + sizeof (numbuf) - (s = cp);
len = numbuf + sizeof(numbuf) - (s = cp);
if (flags & FL_DOT) {
if (precision > len) {
field = precision;
@ -1011,7 +1011,7 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args)
}
}
return shf_error(shf) ? EOF : nwritten;
return (shf_error(shf) ? EOF : nwritten);
}
#ifdef MKSH_SMALL

52
syn.c
View File

@ -22,7 +22,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/syn.c,v 1.35 2009/05/16 16:59:41 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/syn.c,v 1.36 2009/06/08 20:06:49 tg Exp $");
struct nesting_state {
int start_token; /* token than began nesting (eg, FOR) */
@ -156,7 +156,7 @@ c_list(int multi)
break;
}
REJECT;
return t;
return (t);
}
static struct ioword *
@ -191,7 +191,7 @@ synio(int cf)
if (iop->flag & IOBASH) {
char *cp;
nextiop = alloc(sizeof (*iop), ATEMP);
nextiop = alloc(sizeof(*iop), ATEMP);
nextiop->name = cp = alloc(5, ATEMP);
if (iop->unit > 9) {
@ -233,7 +233,7 @@ get_command(int cf)
XPtrV args, vars;
struct nesting_state old_nesting;
iops = alloc((NUFILE + 1) * sizeof (struct ioword *), ATEMP);
iops = alloc((NUFILE + 1) * sizeof(struct ioword *), ATEMP);
XPinit(args, 16);
XPinit(vars, 16);
@ -244,7 +244,7 @@ get_command(int cf)
afree(iops, ATEMP);
XPfree(args);
XPfree(vars);
return NULL; /* empty line */
return (NULL); /* empty line */
case LWORD:
case REDIR:
@ -464,7 +464,7 @@ get_command(int cf)
t->ioact = NULL;
} else {
iops[iopn++] = NULL;
iops = aresize(iops, iopn * sizeof (struct ioword *), ATEMP);
iops = aresize(iops, iopn * sizeof(struct ioword *), ATEMP);
t->ioact = iops;
}
@ -478,7 +478,7 @@ get_command(int cf)
XPfree(vars);
}
return t;
return (t);
}
static struct op *
@ -501,7 +501,7 @@ dogroup(void)
syntaxerr(NULL);
list = c_list(true);
musthave(c, KEYWORD|ALIAS);
return list;
return (list);
}
static struct op *
@ -538,7 +538,7 @@ elsepart(void)
default:
REJECT;
}
return NULL;
return (NULL);
}
static struct op *
@ -639,20 +639,20 @@ function_body(char *name,
* be used as input), we pretend there is a colon here.
*/
t->left = newtp(TCOM);
t->left->args = alloc(2 * sizeof (char *), ATEMP);
t->left->args = alloc(2 * sizeof(char *), ATEMP);
t->left->args[0] = tv = alloc(3, ATEMP);
tv[0] = CHAR;
tv[1] = ':';
tv[2] = EOS;
t->left->args[1] = NULL;
t->left->vars = alloc(sizeof (char *), ATEMP);
t->left->vars = alloc(sizeof(char *), ATEMP);
t->left->vars[0] = NULL;
t->left->lineno = 1;
}
if (!old_func_parse)
e->flags &= ~EF_FUNC_PARSE;
return t;
return (t);
}
static char **
@ -666,7 +666,7 @@ wordlist(void)
if ((c = token(CONTIN|KEYWORD|ALIAS)) != IN) {
if (c != ';') /* non-POSIX, but at&t ksh accepts a ; here */
REJECT;
return NULL;
return (NULL);
}
while ((c = token(0)) == LWORD)
XPput(args, yylval.cp);
@ -674,10 +674,10 @@ wordlist(void)
syntaxerr(NULL);
if (XPsize(args) == 0) {
XPfree(args);
return NULL;
return (NULL);
} else {
XPput(args, NULL);
return (char **) XPclose(args);
return ((char **)XPclose(args));
}
}
@ -822,7 +822,7 @@ newtp(int type)
{
struct op *t;
t = alloc(sizeof (struct op), ATEMP);
t = alloc(sizeof(struct op), ATEMP);
t->type = type;
t->u.evalflags = 0;
t->args = NULL;
@ -841,7 +841,7 @@ compile(Source *s)
herep = heres;
source = s;
yyparse();
return outtree;
return (outtree);
}
/* This kludge exists to take care of sh/at&t ksh oddity in which
@ -858,11 +858,11 @@ static int
assign_command(char *s)
{
if (!*s)
return 0;
return (strcmp(s, "alias") == 0) ||
return (0);
return ((strcmp(s, "alias") == 0) ||
(strcmp(s, "export") == 0) ||
(strcmp(s, "readonly") == 0) ||
(strcmp(s, "typeset") == 0);
(strcmp(s, "typeset") == 0));
}
/* Check if we are in the middle of reading an alias */
@ -871,8 +871,8 @@ inalias(struct source *s)
{
for (; s && s->type == SALIAS; s = s->next)
if (!(s->flags & SF_ALIASEND))
return 1;
return 0;
return (1);
return (0);
}
@ -936,7 +936,7 @@ dbtestp_isa(Test_env *te, Test_meta meta)
if (save)
XPput(*te->pos.av, save);
}
return ret;
return (ret);
}
static const char *
@ -945,12 +945,12 @@ dbtestp_getopnd(Test_env *te, Test_op op __unused, bool do_eval __unused)
int c = tpeek(ARRAYVAR);
if (c != LWORD)
return NULL;
return (NULL);
ACCEPT;
XPput(*te->pos.av, yylval.cp);
return null;
return (null);
}
static int
@ -958,7 +958,7 @@ dbtestp_eval(Test_env *te __unused, Test_op op __unused,
const char *opnd1 __unused, const char *opnd2 __unused,
bool do_eval __unused)
{
return 1;
return (1);
}
static void

22
tree.c
View File

@ -22,7 +22,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/tree.c,v 1.26 2009/05/16 16:59:41 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/tree.c,v 1.27 2009/06/08 20:06:49 tg Exp $");
#define INDENT 4
@ -440,9 +440,9 @@ tcopy(struct op *t, Area *ap)
char **rw;
if (t == NULL)
return NULL;
return (NULL);
r = alloc(sizeof (struct op), ap);
r = alloc(sizeof(struct op), ap);
r->type = t->type;
r->u.evalflags = t->u.evalflags;
@ -458,7 +458,7 @@ tcopy(struct op *t, Area *ap)
for (tw = (const char **)t->vars; *tw++ != NULL; )
;
rw = r->vars = alloc((tw - (const char **)t->vars + 1) *
sizeof (*tw), ap);
sizeof(*tw), ap);
for (tw = (const char **)t->vars; *tw != NULL; )
*rw++ = wdcopy(*tw++, ap);
*rw = NULL;
@ -470,7 +470,7 @@ tcopy(struct op *t, Area *ap)
for (tw = t->args; *tw++ != NULL; )
;
r->args = (const char **)(rw = alloc((tw - t->args + 1) *
sizeof (*tw), ap));
sizeof(*tw), ap));
for (tw = t->args; *tw != NULL; )
*rw++ = wdcopy(*tw++, ap);
*rw = NULL;
@ -482,14 +482,14 @@ tcopy(struct op *t, Area *ap)
r->right = tcopy(t->right, ap);
r->lineno = t->lineno;
return r;
return (r);
}
char *
wdcopy(const char *wp, Area *ap)
{
size_t len = wdscan(wp, EOS) - wp;
return memcpy(alloc(len, ap), wp, len);
return (memcpy(alloc(len, ap), wp, len));
}
/* return the position of prefix c in wp plus 1 */
@ -567,7 +567,7 @@ wdstrip(const char *wp, bool keepq, bool make_magic)
while (1)
switch (*wp++) {
case EOS:
return shf_sclose(&shf); /* null terminates */
return (shf_sclose(&shf)); /* null terminates */
case ADELIM:
case CHAR:
c = *wp++;
@ -639,13 +639,13 @@ iocopy(struct ioword **iow, Area *ap)
for (ior = iow; *ior++ != NULL; )
;
ior = alloc((ior - iow + 1) * sizeof (struct ioword *), ap);
ior = alloc((ior - iow + 1) * sizeof(struct ioword *), ap);
for (i = 0; iow[i] != NULL; i++) {
struct ioword *p, *q;
p = iow[i];
q = alloc(sizeof (struct ioword), ap);
q = alloc(sizeof(struct ioword), ap);
ior[i] = q;
*q = *p;
if (p->name != NULL)
@ -657,7 +657,7 @@ iocopy(struct ioword **iow, Area *ap)
}
ior[i] = NULL;
return ior;
return (ior);
}
/*

80
var.c
View File

@ -22,7 +22,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/var.c,v 1.72 2009/05/16 16:59:42 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/var.c,v 1.73 2009/06/08 20:06:50 tg Exp $");
/*
* Variables
@ -57,7 +57,7 @@ newblock(void)
struct block *l;
static const char *empty[] = { null };
l = alloc(sizeof (struct block), ATEMP);
l = alloc(sizeof(struct block), ATEMP);
l->flags = 0;
ainit(&l->area); /* todo: could use e->area (l->area => l->areap) */
if (!e->loc) {
@ -159,7 +159,7 @@ array_index_calc(const char *n, bool *arrayp, uint32_t *valp)
*valp = (uint32_t)rval;
afree(sub, ATEMP);
}
return n;
return (n);
}
/*
@ -194,11 +194,11 @@ global(const char *n)
/* setstr can't fail here */
setstr(vp, l->argv[c], KSH_RETURN_ERROR);
vp->flag |= RDONLY;
return vp;
return (vp);
}
vp->flag |= RDONLY;
if (n[1] != '\0')
return vp;
return (vp);
vp->flag |= ISSET|INTEGER;
switch (c) {
case '$':
@ -222,15 +222,15 @@ global(const char *n)
default:
vp->flag &= ~(ISSET|INTEGER);
}
return vp;
return (vp);
}
for (l = e->loc; ; l = l->next) {
vp = ktsearch(&l->vars, n, h);
if (vp != NULL) {
if (array)
return arraysearch(vp, val);
return (arraysearch(vp, val));
else
return vp;
return (vp);
}
if (l->next == NULL)
break;
@ -241,7 +241,7 @@ global(const char *n)
vp->flag |= DEFINED;
if (special(n))
vp->flag |= SPECIAL;
return vp;
return (vp);
}
/*
@ -264,7 +264,7 @@ local(const char *n, bool copy)
vp->flag = DEFINED|RDONLY;
vp->type = 0;
vp->areap = ATEMP;
return vp;
return (vp);
}
vp = ktenter(&l->vars, n, h);
if (copy && !(vp->flag & DEFINED)) {
@ -287,7 +287,7 @@ local(const char *n, bool copy)
vp->flag |= DEFINED;
if (special(n))
vp->flag |= SPECIAL;
return vp;
return (vp);
}
/* get variable string value */
@ -305,7 +305,7 @@ str_val(struct tbl *vp)
else { /* integer source */
/* worst case number length is when base=2, so use BITS(long) */
/* minus base # number NUL */
char strbuf[1 + 2 + 1 + 8 * sizeof (mksh_uari_t) + 1];
char strbuf[1 + 2 + 1 + 8 * sizeof(mksh_uari_t) + 1];
const char *digits = (vp->flag & UCASEV_AL) ?
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" :
"0123456789abcdefghijklmnopqrstuvwxyz";
@ -349,7 +349,7 @@ str_val(struct tbl *vp)
else
strdupx(s, s, ATEMP);
}
return s;
return (s);
}
/* get variable integer value, with error checking */
@ -378,7 +378,7 @@ setstr(struct tbl *vq, const char *s, int error_ok)
warningf(true, "%s: is read only", vq->name);
if (!error_ok)
errorfz();
return 0;
return (0);
}
if (!(vq->flag&INTEGER)) { /* string dest */
if ((vq->flag&ALLOC)) {
@ -442,10 +442,10 @@ getint(struct tbl *vp, mksh_ari_t *nump, bool arith)
getspec(vp);
/* XXX is it possible for ISSET to be set and val.s to be 0? */
if (!(vp->flag&ISSET) || (!(vp->flag&INTEGER) && vp->val.s == NULL))
return -1;
return (-1);
if (vp->flag&INTEGER) {
*nump = vp->val.i;
return vp->type;
return (vp->type);
}
s = vp->val.s + vp->type;
if (s == NULL) /* redundant given initial test */
@ -493,15 +493,15 @@ getint(struct tbl *vp, mksh_ari_t *nump, bool arith)
else if (ksh_isupper(c))
c -= 'A' - 10;
else
return -1;
return (-1);
if (c < 0 || c >= base)
return -1;
return (-1);
num = num * base + c;
}
if (neg)
num = -num;
*nump = num;
return base;
return (base);
}
/* convert variable vq to integer variable, setting its value from vp
@ -514,7 +514,7 @@ setint_v(struct tbl *vq, struct tbl *vp, bool arith)
mksh_ari_t num;
if ((base = getint(vp, &num, arith)) == -1)
return NULL;
return (NULL);
if (!(vq->flag & INTEGER) && (vq->flag & ALLOC)) {
vq->flag &= ~ALLOC;
afree(vq->val.s, vq->areap);
@ -525,7 +525,7 @@ setint_v(struct tbl *vq, struct tbl *vp, bool arith)
vq->flag |= ISSET|INTEGER;
if (vq->flag&SPECIAL)
setspec(vq);
return vq;
return (vq);
}
static char *
@ -601,7 +601,7 @@ formatstr(struct tbl *vp, const char *s)
*q = ksh_tolower(*q);
}
return p;
return (p);
}
/*
@ -642,13 +642,13 @@ typeset(const char *var, Tflag set, Tflag clr, int field, int base)
/* check for valid variable name, search for value */
val = skip_varname(var, false);
if (val == var)
return NULL;
return (NULL);
if (*val == '[') {
int len;
len = array_ref_len(val);
if (len == 0)
return NULL;
return (NULL);
/* IMPORT is only used when the shell starts up and is
* setting up its environment. Allow only simple array
* references at this time since parameter/command substitution
@ -659,7 +659,7 @@ typeset(const char *var, Tflag set, Tflag clr, int field, int base)
int i;
for (i = 1; i < len - 1; i++)
if (!ksh_isdigit(val[i]))
return NULL;
return (NULL);
}
val += len;
}
@ -668,7 +668,7 @@ typeset(const char *var, Tflag set, Tflag clr, int field, int base)
else {
/* Importing from original environment: must have an = */
if (set & IMPORT)
return NULL;
return (NULL);
strdupx(tvar, var, ATEMP);
val = NULL;
}
@ -772,7 +772,7 @@ typeset(const char *var, Tflag set, Tflag clr, int field, int base)
vpbase->type == 0)
export(vpbase, (vpbase->flag&ISSET) ? vpbase->val.s : null);
return vp;
return (vp);
}
/* Unset a variable. array_ref is set if there was an array reference in
@ -858,7 +858,7 @@ is_wdvarname(const char *s, int aok)
{
const char *p = skip_wdvarname(s, aok);
return p != s && p[0] == EOS;
return (p != s && p[0] == EOS);
}
/* Check if coded string s is a variable assignment */
@ -867,7 +867,7 @@ is_wdvarassign(const char *s)
{
const char *p = skip_wdvarname(s, true);
return p != s && p[0] == CHAR && p[1] == '=';
return (p != s && p[0] == CHAR && p[1] == '=');
}
/*
@ -945,10 +945,10 @@ rnd_get(void)
if (Flag(FARC4RANDOM)) {
if (rnd_cache[0] || rnd_cache[1])
#if HAVE_ARC4RANDOM_PUSHB
rv = arc4random_pushb(rnd_cache, sizeof (rnd_cache));
rv = arc4random_pushb(rnd_cache, sizeof(rnd_cache));
#else
arc4random_addrandom((void *)rnd_cache,
sizeof (rnd_cache));
sizeof(rnd_cache));
#endif
rnd_cache[0] = rnd_cache[1] = 0;
return ((
@ -967,9 +967,9 @@ rnd_set(unsigned long newval)
{
#if HAVE_ARC4RANDOM && defined(MKSH_SMALL)
#if HAVE_ARC4RANDOM_PUSHB
arc4random_pushb(&newval, sizeof (newval));
arc4random_pushb(&newval, sizeof(newval));
#else
arc4random_addrandom((void *)&newval, sizeof (newval));
arc4random_addrandom((void *)&newval, sizeof(newval));
#endif
#else
#if HAVE_ARC4RANDOM
@ -1027,7 +1027,7 @@ special(const char *name)
struct tbl *tp;
tp = ktsearch(&specials, name, hash(name));
return tp && (tp->flag & ISSET) ? tp->type : V_NONE;
return (tp && (tp->flag & ISSET) ? tp->type : V_NONE);
}
/* Make a variable non-special */
@ -1244,7 +1244,7 @@ arraysearch(struct tbl *vp, uint32_t val)
vp->index = 0;
/* The table entry is always [0] */
if (val == 0)
return vp;
return (vp);
prev = vp;
curr = vp->u.array;
while (curr && curr->index < val) {
@ -1253,11 +1253,11 @@ arraysearch(struct tbl *vp, uint32_t val)
}
if (curr && curr->index == val) {
if (curr->flag&ISSET)
return curr;
return (curr);
else
new = curr;
} else
new = alloc(sizeof (struct tbl) + namelen, vp->areap);
new = alloc(sizeof(struct tbl) + namelen, vp->areap);
strlcpy(new->name, vp->name, namelen);
new->flag = vp->flag & ~(ALLOC|DEFINED|ISSET|SPECIAL);
new->type = vp->type;
@ -1268,7 +1268,7 @@ arraysearch(struct tbl *vp, uint32_t val)
prev->u.array = new;
new->u.array = curr;
}
return new;
return (new);
}
/* Return the length of an array reference (eg, [1+2]) - cp is assumed
@ -1286,8 +1286,8 @@ array_ref_len(const char *cp)
if (c == '[')
depth++;
if (!c)
return 0;
return s - cp;
return (0);
return (s - cp);
}
/*