summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorchin <none@none>2005-09-13 16:43:41 -0700
committerchin <none@none>2005-09-13 16:43:41 -0700
commit965005c81e0f731867d47892b9fb677030b102df (patch)
tree386a7f02c7fbc400e4974cf6a2cab6c77c48ff43 /usr/src
parentefaef81f6f4b9f1509dfc641a082086bb8aa24cd (diff)
downloadillumos-joyent-965005c81e0f731867d47892b9fb677030b102df.tar.gz
6268998 cmd/sh and gcc don't get along
6277636 *sh* can crash if it creates too many temporary files
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/sh/args.c59
-rw-r--r--usr/src/cmd/sh/blok.c40
-rw-r--r--usr/src/cmd/sh/bltin.c24
-rw-r--r--usr/src/cmd/sh/cmd.c91
-rw-r--r--usr/src/cmd/sh/defs.c9
-rw-r--r--usr/src/cmd/sh/defs.h40
-rw-r--r--usr/src/cmd/sh/echo.c20
-rw-r--r--usr/src/cmd/sh/error.c53
-rw-r--r--usr/src/cmd/sh/expand.c35
-rw-r--r--usr/src/cmd/sh/fault.c43
-rw-r--r--usr/src/cmd/sh/func.c88
-rw-r--r--usr/src/cmd/sh/hash.c11
-rw-r--r--usr/src/cmd/sh/hash.h23
-rw-r--r--usr/src/cmd/sh/hashserv.c77
-rw-r--r--usr/src/cmd/sh/io.c144
-rw-r--r--usr/src/cmd/sh/jobs.c165
-rw-r--r--usr/src/cmd/sh/macro.c63
-rw-r--r--usr/src/cmd/sh/main.c86
-rw-r--r--usr/src/cmd/sh/name.c164
-rw-r--r--usr/src/cmd/sh/pwd.c23
-rw-r--r--usr/src/cmd/sh/service.c135
-rw-r--r--usr/src/cmd/sh/stak.c27
-rw-r--r--usr/src/cmd/sh/string.c32
-rw-r--r--usr/src/cmd/sh/test.c58
-rw-r--r--usr/src/cmd/sh/word.c24
-rw-r--r--usr/src/cmd/sh/xec.c45
26 files changed, 815 insertions, 764 deletions
diff --git a/usr/src/cmd/sh/args.c b/usr/src/cmd/sh/args.c
index d0fe087e27..4e6062def2 100644
--- a/usr/src/cmd/sh/args.c
+++ b/usr/src/cmd/sh/args.c
@@ -19,11 +19,16 @@
*
* CDDL HEADER END
*/
+
+/*
+ * Copyright 1995 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
-
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.10.4.1 */
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
@@ -32,7 +37,7 @@
#include "defs.h"
static struct dolnod *copyargs();
-static struct dolnod *freedolh();
+static void freedolh(void);
extern struct dolnod *freeargs();
static struct dolnod *dolh;
@@ -86,13 +91,12 @@ long flagval[] =
/* ======== option handling ======== */
-options(argc,argv)
- unsigned char **argv;
- int argc;
+int
+options(int argc, unsigned char **argv)
{
- register unsigned char *cp;
- register unsigned char **argp = argv;
- register unsigned char *flagc;
+ unsigned char *cp;
+ unsigned char **argp = argv;
+ unsigned char *flagc;
unsigned char *flagp;
int len;
wchar_t wc;
@@ -203,11 +207,11 @@ options(argc,argv)
/*
* sets up positional parameters
*/
-setargs(argi)
- unsigned char *argi[];
+void
+setargs(unsigned char *argi[])
{
- register unsigned char **argp = argi; /* count args */
- register int argn = 0;
+ unsigned char **argp = argi; /* count args */
+ int argn = 0;
while (*argp++ != (unsigned char *)ENDARGS)
argn++;
@@ -220,11 +224,11 @@ setargs(argi)
}
-static struct dolnod *
-freedolh()
+static void
+freedolh(void)
{
- register unsigned char **argp;
- register struct dolnod *argblk;
+ unsigned char **argp;
+ struct dolnod *argblk;
if (argblk = dolh)
{
@@ -242,9 +246,9 @@ struct dolnod *
freeargs(blk)
struct dolnod *blk;
{
- register unsigned char **argp;
- register struct dolnod *argr = 0;
- register struct dolnod *argblk;
+ unsigned char **argp;
+ struct dolnod *argr = 0;
+ struct dolnod *argblk;
int cnt;
if (argblk = blk)
@@ -277,9 +281,9 @@ static struct dolnod *
copyargs(from, n)
unsigned char *from[];
{
- register struct dolnod *np = (struct dolnod *)alloc(sizeof(struct dolnod));
- register unsigned char **fp = from;
- register unsigned char **pp;
+ struct dolnod *np = (struct dolnod *)alloc(sizeof (struct dolnod));
+ unsigned char **fp = from;
+ unsigned char **pp;
np -> dolnxt = 0;
np->doluse = 1; /* use count */
@@ -297,9 +301,9 @@ struct dolnod *
clean_args(blk)
struct dolnod *blk;
{
- register unsigned char **argp;
- register struct dolnod *argr = 0;
- register struct dolnod *argblk;
+ unsigned char **argp;
+ struct dolnod *argr = 0;
+ struct dolnod *argblk;
if (argblk = blk)
{
@@ -318,7 +322,8 @@ clean_args(blk)
return(argr);
}
-clearup()
+void
+clearup(void)
{
/*
* force `for' $* lists to go away
diff --git a/usr/src/cmd/sh/blok.c b/usr/src/cmd/sh/blok.c
index 4eccca8f85..7f9f5578d4 100644
--- a/usr/src/cmd/sh/blok.c
+++ b/usr/src/cmd/sh/blok.c
@@ -19,15 +19,15 @@
*
* CDDL HEADER END
*/
+
/*
- * Copyright (c) 2001 by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
-
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
@@ -51,6 +51,8 @@ struct blk *bloktop; /* top of arena (last blok) */
unsigned char *brkbegin;
unsigned char *setbrk();
+void addblok(unsigned int);
+
#ifdef __STDC__
void *
#else
@@ -59,7 +61,7 @@ char *
alloc(nbytes)
size_t nbytes;
{
- register unsigned rbytes = round(nbytes+BYTESPERWORD, BYTESPERWORD);
+ unsigned rbytes = round(nbytes+BYTESPERWORD, BYTESPERWORD);
if (stakbot == 0) {
addblok((unsigned)0);
@@ -68,8 +70,8 @@ alloc(nbytes)
for (;;)
{
int c = 0;
- register struct blk *p = blokp;
- register struct blk *q;
+ struct blk *p = blokp;
+ struct blk *q;
do
{
@@ -95,8 +97,8 @@ alloc(nbytes)
}
}
-addblok(reqd)
- unsigned reqd;
+void
+addblok(unsigned int reqd)
{
if (stakbot == 0)
{
@@ -106,8 +108,8 @@ addblok(reqd)
if (stakbas != staktop)
{
- register unsigned char *rndstak;
- register struct blk *blokstak;
+ unsigned char *rndstak;
+ struct blk *blokstak;
if (staktop >= brkend)
growstak(staktop);
@@ -143,9 +145,9 @@ addblok(reqd)
}
bloktop->word = (struct blk *)(brkbegin + 1);
{
- register unsigned char *stakadr = (unsigned char *)
+ unsigned char *stakadr = (unsigned char *)
(bloktop + 2);
- register unsigned char *sp = stakadr;
+ unsigned char *sp = stakadr;
if (reqd = (staktop-stakbot))
{
if (stakadr + reqd >= brkend)
@@ -165,7 +167,7 @@ void
free(ap)
void *ap;
{
- register struct blk *p;
+ struct blk *p;
if ((p = (struct blk *)ap) && p < bloktop && p > (struct blk *)brkbegin)
{
@@ -186,8 +188,8 @@ chkbptr(ptr)
struct blk *ptr;
{
int exf = 0;
- register struct blk *p = (struct blk *)brkbegin;
- register struct blk *q;
+ struct blk *p = (struct blk *)brkbegin;
+ struct blk *q;
int us = 0, un = 0;
for (;;)
@@ -220,8 +222,8 @@ chkbptr(ptr)
chkmem()
{
- register struct blk *p = (struct blk *)brkbegin;
- register struct blk *q;
+ struct blk *p = (struct blk *)brkbegin;
+ struct blk *q;
int us = 0, un = 0;
for (;;) {
@@ -260,8 +262,8 @@ size_t
blklen(q)
char *q;
{
- register struct blk *pp = (struct blk *)q;
- register struct blk *p;
+ struct blk *pp = (struct blk *)q;
+ struct blk *p;
--pp;
p = (struct blk *)(Rcheat(pp->word) & ~BUSY);
diff --git a/usr/src/cmd/sh/bltin.c b/usr/src/cmd/sh/bltin.c
index ec84f7cf06..45496055b1 100644
--- a/usr/src/cmd/sh/bltin.c
+++ b/usr/src/cmd/sh/bltin.c
@@ -19,16 +19,16 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
- * Copyright (c) 1996, by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 1996 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.3.8.1 */
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
*
* UNIX shell
@@ -43,10 +43,8 @@
#include <sys/types.h>
#include <sys/times.h>
-builtin(type, argc, argv, t)
-int type, argc;
-unsigned char **argv;
-struct trenod *t;
+void
+builtin(int type, int argc, unsigned char **argv, struct trenod *t)
{
short index = initio(t->treio, (type != SYSEXEC));
unsigned char *a1 = argv[1];
@@ -77,7 +75,7 @@ struct trenod *t;
case SYSDOT:
if (a1)
{
- register int f;
+ int f;
if ((f = pathopen(getpath(a1), a1)) < 0)
failed(a1, notfound);
@@ -453,7 +451,7 @@ struct trenod *t;
itos(optind);
assign(n, numbuf);
n = lookup(varnam);
- assign(n, nullstr);
+ assign(n, (unsigned char *)nullstr);
exitval = 1;
break;
}
@@ -465,7 +463,7 @@ struct trenod *t;
n = lookup(varnam);
assign(n, c);
n = lookup("OPTARG");
- assign(n, optarg);
+ assign(n, (unsigned char *)optarg);
}
break;
diff --git a/usr/src/cmd/sh/cmd.c b/usr/src/cmd/sh/cmd.c
index 0e74a4d884..78de8359aa 100644
--- a/usr/src/cmd/sh/cmd.c
+++ b/usr/src/cmd/sh/cmd.c
@@ -19,16 +19,16 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
- * Copyright (c) 1996, by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 1997 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.12.1.4 */
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
@@ -37,16 +37,16 @@
#include "sym.h"
static struct ionod * inout();
-static int chkword();
-static int chksym();
+static void chkword(void);
+static void chksym(int);
static struct trenod * term();
static struct trenod * makelist();
static struct trenod * list();
static struct regnod * syncase();
static struct trenod * item();
static int skipnl();
-static int prsym();
-static int synbad();
+static void prsym(int);
+static void synbad(void);
/* ======== storage allocation for functions ======== */
@@ -72,7 +72,7 @@ makefork(flgs, i)
int flgs;
struct trenod *i;
{
- register struct forknod *t;
+ struct forknod *t;
t = (struct forknod *)getstor(sizeof(struct forknod));
t->forktyp = flgs|TFORK;
@@ -86,7 +86,7 @@ makelist(type, i, r)
int type;
struct trenod *i, *r;
{
- register struct lstnod *t;
+ struct lstnod *t;
if (i == 0 || r == 0)
synbad();
@@ -109,10 +109,10 @@ makelist(type, i, r)
*/
struct trenod *
cmd(sym, flg)
- register int sym;
+ int sym;
int flg;
{
- register struct trenod *i, *e;
+ struct trenod *i, *e;
i = list(flg);
if (wdval == NL)
{
@@ -160,8 +160,8 @@ cmd(sym, flg)
static struct trenod *
list(flg)
{
- register struct trenod *r;
- register int b;
+ struct trenod *r;
+ int b;
r = term(flg);
while (r && ((b = (wdval == ANDFSYM)) || wdval == ORFSYM))
r = makelist((b ? TAND : TORF), r, term(NLFLG));
@@ -176,7 +176,7 @@ list(flg)
static struct trenod *
term(flg)
{
- register struct trenod *t;
+ struct trenod *t;
reserv++;
if (flg & NLFLG)
@@ -199,15 +199,16 @@ term(flg)
static struct regnod *
syncase(esym)
-register int esym;
+int esym;
{
skipnl();
if (wdval == esym)
return(0);
else
{
- register struct regnod *r = (struct regnod *)getstor(sizeof(struct regnod));
- register struct argnod *argp;
+ struct regnod *r =
+ (struct regnod *)getstor(sizeof (struct regnod));
+ struct argnod *argp;
r->regptr = 0;
for (;;)
@@ -259,8 +260,8 @@ static struct trenod *
item(flag)
BOOL flag;
{
- register struct trenod *r;
- register struct ionod *io;
+ struct trenod *r;
+ struct ionod *io;
if (flag)
io = inout((struct ionod *)0);
@@ -270,7 +271,7 @@ item(flag)
{
case CASYM:
{
- register struct swnod *t;
+ struct swnod *t;
t = (struct swnod *)getstor(sizeof(struct swnod));
r = (struct trenod *)t;
@@ -289,8 +290,8 @@ item(flag)
case IFSYM:
{
- register int w;
- register struct ifnod *t;
+ int w;
+ struct ifnod *t;
t = (struct ifnod *)getstor(sizeof(struct ifnod));
r = (struct trenod *)t;
@@ -306,7 +307,7 @@ item(flag)
case FORSYM:
{
- register struct fornod *t;
+ struct fornod *t;
t = (struct fornod *)getstor(sizeof(struct fornod));
r = (struct trenod *)t;
@@ -340,7 +341,7 @@ item(flag)
case WHSYM:
case UNSYM:
{
- register struct whnod *t;
+ struct whnod *t;
t = (struct whnod *)getstor(sizeof(struct whnod));
r = (struct trenod *)t;
@@ -357,7 +358,7 @@ item(flag)
case '(':
{
- register struct parnod *p;
+ struct parnod *p;
p = (struct parnod *)getstor(sizeof(struct parnod));
p->partre = cmd(')', NLFLG);
@@ -372,10 +373,10 @@ item(flag)
case 0:
{
- register struct comnod *t;
- register struct argnod *argp;
- register struct argnod **argtail;
- register struct argnod **argset = 0;
+ struct comnod *t;
+ struct argnod *argp;
+ struct argnod **argtail;
+ struct argnod **argset = 0;
int keywd = 1;
unsigned char *com;
@@ -501,9 +502,9 @@ static struct ionod *
inout(lastio)
struct ionod *lastio;
{
- register int iof;
- register struct ionod *iop;
- register unsigned int c;
+ int iof;
+ struct ionod *iop;
+ unsigned int c;
iof = wdnum;
switch (wdval)
@@ -556,28 +557,28 @@ inout(lastio)
return(iop);
}
-static int
-chkword()
+static void
+chkword(void)
{
if (word())
synbad();
}
-static int
-chksym(sym)
+static void
+chksym(int sym)
{
- register int x = sym & wdval;
+ int x = sym & wdval;
if (((x & SYMFLG) ? x : sym) != wdval)
synbad();
}
-static int
-prsym(sym)
+static void
+prsym(int sym)
{
if (sym & SYMFLG)
{
- register const struct sysnod *sp = reserved;
+ const struct sysnod *sp = reserved;
while (sp->sysval && sp->sysval != sym)
sp++;
@@ -596,8 +597,8 @@ prsym(sym)
}
}
-static int
-synbad()
+static void
+synbad(void)
{
prp();
prs(synmsg);
diff --git a/usr/src/cmd/sh/defs.c b/usr/src/cmd/sh/defs.c
index 4070f5125c..8a6b6afc63 100644
--- a/usr/src/cmd/sh/defs.c
+++ b/usr/src/cmd/sh/defs.c
@@ -20,10 +20,9 @@
* CDDL HEADER END
*/
/*
- * Copyright (c) 2001 by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
-
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
@@ -70,8 +69,8 @@ unsigned char *pidadr;
unsigned char *cmdadr;
/* transput */
-unsigned char *tmpname;
-int serial;
+int tmpout_offset;
+unsigned int serial;
unsigned peekc;
unsigned peekn;
unsigned char *comdiv;
diff --git a/usr/src/cmd/sh/defs.h b/usr/src/cmd/sh/defs.h
index e02aba660e..b3d86bb631 100644
--- a/usr/src/cmd/sh/defs.h
+++ b/usr/src/cmd/sh/defs.h
@@ -19,15 +19,14 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
- * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
#ifndef _DEFS_H
#define _DEFS_H
@@ -142,7 +141,7 @@ extern "C" {
#define ENDARGS 0
#include <unistd.h>
-#include "mac.h"
+#include "mac.h"
#include "mode.h"
#include "name.h"
#include <signal.h>
@@ -169,7 +168,8 @@ extern char *optarg;
extern int handle();
extern void chktrap();
-extern void done();
+extern void done(int)
+ __NORETURN;
extern void sh_free();
extern unsigned char *make();
extern unsigned char *movstr();
@@ -187,15 +187,25 @@ extern unsigned char *nextpath();
extern unsigned char **scan();
extern unsigned char *mactrim();
extern unsigned char *macro();
-extern int exname();
-extern int printnam();
-extern int printro();
-extern int printexp();
+extern void exname(struct namnod *);
+extern void printnam(struct namnod *);
+extern void printro(struct namnod *);
+extern void printexp(struct namnod *);
extern unsigned int readwc();
extern unsigned int nextwc();
extern unsigned char skipc();
extern unsigned char **local_setenv();
extern time_t time();
+extern void exitsh(int)
+ __NORETURN;
+extern void failed(unsigned char *, const char *) __NORETURN;
+extern void prf();
+extern void assign(struct namnod *, unsigned char *);
+extern void setmode(int);
+extern void trim(unsigned char *);
+extern void preacct(unsigned char *);
+
+
#define attrib(n, f) (n->namflg |= f)
#define round(a, b) (((int)(((char *)(a)+b)-1))&~((b)-1))
@@ -299,10 +309,14 @@ extern const char mailpname[];
/* transput */
extern unsigned char tmpout[];
-extern unsigned char *tmpname;
-extern int serial;
+extern int tmpout_offset;
+extern unsigned int serial;
-#define TMPNAM 7
+/*
+ * allow plenty of room for size for temp file name:
+ * "/tmp/sh"(7) + <pid> (<=6) + <unsigned int #> (<=10) + \0 (1)
+ */
+#define TMPOUTSZ 32
extern struct fileblk *standin;
diff --git a/usr/src/cmd/sh/echo.c b/usr/src/cmd/sh/echo.c
index 84d1836a82..d9717c0006 100644
--- a/usr/src/cmd/sh/echo.c
+++ b/usr/src/cmd/sh/echo.c
@@ -19,13 +19,16 @@
*
* CDDL HEADER END
*/
+
+/*
+ * Copyright 1996 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
-/* Portions Copyright (c) 1988, Sun Microsystems, Inc. */
-/* All Rights Reserved. */
-
#pragma ident "%Z%%M% %I% %E% SMI"
/*
@@ -37,11 +40,11 @@
extern int exitval;
-echo(argc, argv)
-unsigned char **argv;
+int
+echo(int argc, unsigned char **argv)
{
- register unsigned char *cp;
- register int i, wd;
+ unsigned char *cp;
+ int i, wd;
int nflg = 0;
int j;
int len;
@@ -99,8 +102,7 @@ unsigned char **argv;
}
#endif /* _iBCS2 */
- for (i = 1; i <= argc; i++)
- {
+ for (i = 1; i <= argc; i++) {
sigchk();
for (cp = argv[i]; *cp; cp++) {
if ((len = mbtowc(&wc, (char *)cp,
diff --git a/usr/src/cmd/sh/error.c b/usr/src/cmd/sh/error.c
index e47544b7ea..03a0791265 100644
--- a/usr/src/cmd/sh/error.c
+++ b/usr/src/cmd/sh/error.c
@@ -19,11 +19,17 @@
*
* CDDL HEADER END
*/
+
+/*
+ * Copyright 1990 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.9.5.1 */
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
@@ -33,30 +39,27 @@
/* ======== error handling ======== */
-extern void done();
-
-failed(s1, s2)
-unsigned char *s1, *s2;
+void
+failed(unsigned char *s1, const char *s2)
{
prp();
prs_cntl(s1);
- if (s2)
- {
+ if (s2) {
prs(colon);
- prs(s2);
+ prs((unsigned char *)s2);
}
newline();
exitsh(ERROR);
}
-error(s)
-unsigned char *s;
+void
+error(unsigned char *s)
{
- failed(s, NIL);
+ failed(s, (const char *)NIL);
}
-exitsh(xno)
-int xno;
+void
+exitsh(int xno)
{
/*
* Arrive here from `FATAL' errors
@@ -74,44 +77,42 @@ int xno;
{
clearup();
restore(0);
- (void)setb(1);
+ (void) setb(1);
execbrk = breakcnt = funcnt = 0;
longjmp(errshell, 1);
}
}
-rmtemp(base)
-struct ionod *base;
+void
+rmtemp(struct ionod *base)
{
- while (iotemp > base)
- {
+ while (iotemp > base) {
unlink(iotemp->ioname);
free(iotemp->iolink);
iotemp = iotemp->iolst;
}
}
-rmfunctmp()
+void
+rmfunctmp(void)
{
- while (fiotemp)
- {
+ while (fiotemp) {
unlink(fiotemp->ioname);
fiotemp = fiotemp->iolst;
}
}
-failure(s1, s2)
-unsigned char *s1, *s2;
+void
+failure(unsigned char *s1, unsigned char *s2)
{
prp();
prs_cntl(s1);
- if (s2)
- {
+ if (s2) {
prs(colon);
prs(s2);
}
newline();
-
+
if (flags & errflg)
exitsh(ERROR);
diff --git a/usr/src/cmd/sh/expand.c b/usr/src/cmd/sh/expand.c
index f5bfea5bd1..d976fb3b4a 100644
--- a/usr/src/cmd/sh/expand.c
+++ b/usr/src/cmd/sh/expand.c
@@ -49,17 +49,19 @@
* "[...a-z...]" in params matches a through z.
*
*/
-static int addg();
+static void addg(unsigned char *, unsigned char *, unsigned char *,
+ unsigned char *);
+void makearg(struct argnod *);
-expand(as, rcnt)
- unsigned char *as;
+int
+expand(unsigned char *as, int rcnt)
{
int count;
DIR *dirf;
BOOL dir = 0;
unsigned char *rescan = 0;
unsigned char *slashsav = 0;
- register unsigned char *s, *cs;
+ unsigned char *s, *cs;
unsigned char *s2 = 0;
struct argnod *schain = gchain;
BOOL slash;
@@ -73,7 +75,7 @@ expand(as, rcnt)
* check for meta chars
*/
{
- register BOOL open;
+ BOOL open;
slash = 0;
open = 0;
@@ -159,7 +161,7 @@ expand(as, rcnt)
/* check for rescan */
if (dir)
{
- register unsigned char *rs;
+ unsigned char *rs;
struct dirent *e;
rs = cs;
@@ -180,7 +182,8 @@ expand(as, rcnt)
if (gmatch(e->d_name, cs))
{
- addg(s, e->d_name, rescan, slashsav);
+ addg(s, (unsigned char *)e->d_name, rescan,
+ slashsav);
count++;
}
}
@@ -188,7 +191,7 @@ expand(as, rcnt)
if (rescan)
{
- register struct argnod *rchain;
+ struct argnod *rchain;
rchain = gchain;
gchain = schain;
@@ -211,12 +214,12 @@ expand(as, rcnt)
return (count);
}
-static int
-addg(as1, as2, as3, as4)
-unsigned char *as1, *as2, *as3, *as4;
+static void
+addg(unsigned char *as1, unsigned char *as2, unsigned char *as3,
+ unsigned char *as4)
{
- register unsigned char *s1, *s2;
- register int c;
+ unsigned char *s1, *s2;
+ int c;
int len;
wchar_t wc;
@@ -281,11 +284,11 @@ unsigned char *as1, *as2, *as3, *as4;
}
while (*s2++ = *++s1);
}
- makearg(endstak(s2));
+ makearg((struct argnod *)endstak(s2));
}
-makearg(args)
- register struct argnod *args;
+void
+makearg(struct argnod *args)
{
args->argnxt = gchain;
gchain = args;
diff --git a/usr/src/cmd/sh/fault.c b/usr/src/cmd/sh/fault.c
index cb944d5318..b397dc97f1 100644
--- a/usr/src/cmd/sh/fault.c
+++ b/usr/src/cmd/sh/fault.c
@@ -19,16 +19,17 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
- * Copyright (c) 1996, by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 1997 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.13.17.1 */
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
@@ -129,8 +130,7 @@ sigval[MAXTRAP]))() =
};
static int
-ignoring(i)
-register int i;
+ignoring(int i)
{
struct sigaction act;
if (trapflg[i] & SIGIGN)
@@ -172,7 +172,7 @@ int i;
void
done(sig)
{
- register unsigned char *t;
+ unsigned char *t;
int savxit;
if (t = trapcom[0])
@@ -211,10 +211,9 @@ done(sig)
}
static void
-fault(sig)
-register int sig;
+fault(int sig)
{
- register int flag;
+ int flag;
switch (sig) {
case SIGALRM:
@@ -280,7 +279,7 @@ handle(sig, func)
void
stdsigs()
{
- register int i;
+ int i;
stack_t ss;
int err = 0;
int rtmin = (int)SIGRTMIN;
@@ -319,8 +318,8 @@ stdsigs()
void
oldsigs()
{
- register int i;
- register unsigned char *t;
+ int i;
+ unsigned char *t;
i = MAXTRAP;
while (i--)
@@ -340,8 +339,8 @@ oldsigs()
void
chktrap()
{
- register int i = MAXTRAP;
- register unsigned char *t;
+ int i = MAXTRAP;
+ unsigned char *t;
trapnote &= ~TRAPSET;
while (--i)
@@ -360,9 +359,8 @@ chktrap()
}
}
-systrap(argc, argv)
-int argc;
-char **argv;
+void
+systrap(int argc, char **argv)
{
int sig;
@@ -427,9 +425,8 @@ char **argv;
}
}
-unsigned int
-sleep(ticks)
-unsigned int ticks;
+void
+sh_sleep(unsigned int ticks)
{
sigset_t set, oset;
struct sigaction act, oact;
diff --git a/usr/src/cmd/sh/func.c b/usr/src/cmd/sh/func.c
index de7196380f..2d296f61bf 100644
--- a/usr/src/cmd/sh/func.c
+++ b/usr/src/cmd/sh/func.c
@@ -19,35 +19,41 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
- * Copyright (c) 1996, by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 1996 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.4.1.3 */
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
#include "defs.h"
-freefunc(n)
- struct namnod *n;
+static void freetree(struct trenod *);
+static void free_arg(struct argnod *);
+static void freeio(struct ionod *);
+static void freereg(struct regnod *);
+static void prarg(struct argnod *argp);
+static void prio(struct ionod *iop);
+
+void
+freefunc(struct namnod *n)
{
freetree((struct trenod *)(n->namenv));
}
-
-freetree(t)
- register struct trenod *t;
+static void
+freetree(struct trenod *t)
{
if (t)
{
- register int type;
+ int type;
if (t->tretyp & CNTMSK)
{
@@ -124,10 +130,10 @@ freetree(t)
}
}
-free_arg(argp)
- register struct argnod *argp;
+static void
+free_arg(struct argnod *argp)
{
- register struct argnod *sav;
+ struct argnod *sav;
while (argp)
{
@@ -137,11 +143,10 @@ free_arg(argp)
}
}
-
-freeio(iop)
- register struct ionod *iop;
+void
+freeio(struct ionod *iop)
{
- register struct ionod *sav;
+ struct ionod *sav;
while (iop)
{
@@ -176,11 +181,10 @@ freeio(iop)
}
}
-
-freereg(regp)
- register struct regnod *regp;
+static void
+freereg(struct regnod *regp)
{
- register struct regnod *sav;
+ struct regnod *sav;
while (regp)
{
@@ -193,9 +197,10 @@ freereg(regp)
}
-static nonl = 0;
+static int nonl = 0;
-prbgnlst()
+void
+prbgnlst(void)
{
if (nonl)
prc_buff(SPACE);
@@ -203,7 +208,8 @@ prbgnlst()
prc_buff(NL);
}
-prendlst()
+void
+prendlst(void)
{
if (nonl) {
prc_buff(';');
@@ -213,21 +219,22 @@ prendlst()
prc_buff(NL);
}
-prcmd(t)
+void
+prcmd(struct trenod *t)
{
nonl++;
prf(t);
nonl = 0;
}
-prf(t)
- register struct trenod *t;
+void
+prf(struct trenod *t)
{
sigchk();
if (t)
{
- register int type;
+ int type;
type = t->tretyp & COMMSK;
@@ -235,7 +242,7 @@ prf(t)
{
case TFND:
{
- register struct fndnod *f = (struct fndnod *)t;
+ struct fndnod *f = (struct fndnod *)t;
prs_buff(f->fndnam);
prs_buff("(){");
@@ -294,8 +301,8 @@ prf(t)
case TFOR:
{
- register struct argnod *arg;
- register struct fornod *f = (struct fornod *)t;
+ struct argnod *arg;
+ struct fornod *f = (struct fornod *)t;
prs_buff("for ");
prs_buff(f->fornam);
@@ -363,7 +370,7 @@ prf(t)
case TSW:
{
- register struct regnod *swl;
+ struct regnod *swl;
prs_buff("case ");
prs_buff(swptr(t)->swarg);
@@ -399,8 +406,8 @@ prf(t)
sigchk();
}
-prarg(argp)
- register struct argnod *argp;
+static void
+prarg(struct argnod *argp)
{
while (argp)
{
@@ -411,12 +418,11 @@ prarg(argp)
}
}
-
-prio(iop)
- register struct ionod *iop;
+static void
+prio(struct ionod *iop)
{
- register int iof;
- register unsigned char *ion;
+ int iof;
+ unsigned char *ion;
while (iop)
{
diff --git a/usr/src/cmd/sh/hash.c b/usr/src/cmd/sh/hash.c
index 206583a846..28456e2de6 100644
--- a/usr/src/cmd/sh/hash.c
+++ b/usr/src/cmd/sh/hash.c
@@ -19,11 +19,17 @@
*
* CDDL HEADER END
*/
+
+/*
+ * Copyright 1990 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.3.2.1 */
+#pragma ident "%Z%%M% %I% %E% SMI"
#include "hash.h"
#include "defs.h"
@@ -56,7 +62,8 @@ static unsigned int shift;
static unsigned int crunch();
-hcreate()
+void
+hcreate(void)
{
unsigned char c = (unsigned char)~0; /* A byte full of 1's */
int j;
diff --git a/usr/src/cmd/sh/hash.h b/usr/src/cmd/sh/hash.h
index 2fb6d2e05f..dad7833a8d 100644
--- a/usr/src/cmd/sh/hash.h
+++ b/usr/src/cmd/sh/hash.h
@@ -19,14 +19,25 @@
*
* CDDL HEADER END
*/
+
+/*
+ * Copyright 1990 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
+#ifndef _HASH_H
+#define _HASH_H
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.4.1.1 */
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
+#ifdef __cplusplus
+extern "C" {
+#endif
#define HASHZAP 0x03FF
#define CDMARK 0x8000
@@ -37,7 +48,7 @@
#define COMMAND 0x0400
#define REL_COMMAND 0x0800
#define PATH_COMMAND 0x1000
-#define DOT_COMMAND 0x8800 /* CDMARK | REL_COMMAND */
+#define DOT_COMMAND 0x8800 /* CDMARK | REL_COMMAND */
#define hashtype(x) (x & 0x1F00)
#define hashdata(x) (x & 0x00FF)
@@ -54,4 +65,10 @@ typedef struct entry
extern ENTRY *hfind();
extern ENTRY *henter();
-extern int hcreate();
+extern void hcreate(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !_HASH_H */
diff --git a/usr/src/cmd/sh/hashserv.c b/usr/src/cmd/sh/hashserv.c
index da80d3a2a9..110f4cf8c7 100644
--- a/usr/src/cmd/sh/hashserv.c
+++ b/usr/src/cmd/sh/hashserv.c
@@ -19,14 +19,16 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
+/*
+ * Copyright 1990 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
-/* Portions Copyright(c) 1988, Sun Microsystems, Inc. */
-/* All Rights Reserved. */
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.10.5.1 */
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
@@ -45,15 +47,16 @@ static int multrel;
static struct entry relcmd;
static int argpath();
+static void pr_path(unsigned char *, int);
short
pathlook(com, flg, arg)
unsigned char *com;
int flg;
- register struct argnod *arg;
+ struct argnod *arg;
{
- register unsigned char *name = com;
- register ENTRY *h;
+ unsigned char *name = com;
+ ENTRY *h;
ENTRY hentry;
int count = 0;
@@ -213,11 +216,11 @@ hashpr()
hscan(hashout);
}
-
-set_dotpath()
+void
+set_dotpath(void)
{
- register unsigned char *path;
- register int cnt = 1;
+ unsigned char *path;
+ int cnt = 1;
dotpath = 10000;
path = getpath("");
@@ -243,9 +246,8 @@ set_dotpath()
multrel = 0;
}
-
-hash_func(name)
- unsigned char *name;
+void
+hash_func(unsigned char *name)
{
ENTRY *h;
ENTRY hentry;
@@ -264,8 +266,8 @@ hash_func(name)
}
}
-func_unhash(name)
- unsigned char *name;
+void
+func_unhash(unsigned char *name)
{
ENTRY *h;
int i;
@@ -313,11 +315,11 @@ hash_cmd(name)
/*
* Return 0 if found, 1 if not.
*/
-what_is_path(name)
- register unsigned char *name;
+int
+what_is_path(unsigned char *name)
{
- register ENTRY *h;
- int cnt;
+ ENTRY *h;
+ int cnt;
short hashval;
h = hfind(name);
@@ -390,13 +392,11 @@ what_is_path(name)
}
}
-
-findpath(name, oldpath)
- register unsigned char *name;
- int oldpath;
+int
+findpath(unsigned char *name, int oldpath)
{
- register unsigned char *path;
- register int count = 1;
+ unsigned char *path;
+ int count = 1;
unsigned char *p;
int ok = 1;
@@ -450,10 +450,8 @@ findpath(name, oldpath)
* a non-regular file as executable.
*/
-chk_access(name, mode, regflag)
-register unsigned char *name;
-mode_t mode;
-int regflag;
+int
+chk_access(unsigned char *name, mode_t mode, int regflag)
{
static int flag;
static uid_t euid;
@@ -485,12 +483,10 @@ int regflag;
return(errno == EACCES ? 3 : 1);
}
-
-pr_path(name, count)
- register unsigned char *name;
- int count;
+static void
+pr_path(unsigned char *name, int count)
{
- register unsigned char *path;
+ unsigned char *path;
path = getpath(name);
@@ -502,12 +498,11 @@ pr_path(name, count)
}
-static
-argpath(arg)
- register struct argnod *arg;
+static int
+argpath(struct argnod *arg)
{
- register unsigned char *s;
- register unsigned char *start;
+ unsigned char *s;
+ unsigned char *start;
while (arg)
{
diff --git a/usr/src/cmd/sh/io.c b/usr/src/cmd/sh/io.c
index d6443f405b..52f613f74e 100644
--- a/usr/src/cmd/sh/io.c
+++ b/usr/src/cmd/sh/io.c
@@ -19,22 +19,23 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
- * Copyright (c) 1996, 2001 by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.10.2.1 */
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
#include "defs.h"
#include "dup.h"
+#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -44,10 +45,10 @@ short topfd;
/* ======== input output and file copying ======== */
-initf(fd)
-int fd;
+void
+initf(int fd)
{
- register struct fileblk *f = standin;
+ struct fileblk *f = standin;
f->fdes = fd;
f->fsiz = ((flags & oneflg) == 0 ? BUFFERSIZE : 1);
@@ -58,10 +59,10 @@ int fd;
f->feof = FALSE;
}
-estabf(s)
-register unsigned char *s;
+int
+estabf(unsigned char *s)
{
- register struct fileblk *f;
+ struct fileblk *f;
(f = standin)->fdes = -1;
f->fend = length(s) + (f->fnxt = s);
@@ -71,10 +72,10 @@ register unsigned char *s;
return (f->feof = (s == 0));
}
-push(af)
-struct fileblk *af;
+void
+push(struct fileblk *af)
{
- register struct fileblk *f;
+ struct fileblk *f;
(f = af)->fstak = standin;
f->feof = 0;
@@ -82,9 +83,10 @@ struct fileblk *af;
standin = f;
}
-pop()
+int
+pop(void)
{
- register struct fileblk *f;
+ struct fileblk *f;
if ((f = standin)->fstak)
{
@@ -98,16 +100,16 @@ pop()
struct tempblk *tmpfptr;
-pushtemp(fd, tb)
- int fd;
- struct tempblk *tb;
+void
+pushtemp(int fd, struct tempblk *tb)
{
tb->fdes = fd;
tb->fstak = tmpfptr;
tmpfptr = tb;
}
-poptemp()
+int
+poptemp(void)
{
if (tmpfptr){
close(tmpfptr->fdes);
@@ -117,18 +119,17 @@ poptemp()
return (FALSE);
}
-chkpipe(pv)
-int *pv;
+void
+chkpipe(int *pv)
{
if (pipe(pv) < 0 || pv[INPIPE] < 0 || pv[OTPIPE] < 0)
error(piperr);
}
-chkopen(idf, mode)
-unsigned char *idf;
-int mode;
+int
+chkopen(unsigned char *idf, int mode)
{
- register int rc;
+ int rc;
if ((rc = open((char *)idf, mode, 0666)) < 0)
failed(idf, badopen);
@@ -141,8 +142,8 @@ int mode;
* then closed. If f2 is descriptor 0, modify the global ioset variable
* accordingly.
*/
-renamef(f1, f2)
-register int f1, f2;
+void
+renamef(int f1, int f2)
{
#ifdef RES
if (f1 != f2)
@@ -169,10 +170,10 @@ register int f1, f2;
#endif
}
-create(s)
-unsigned char *s;
+int
+create(unsigned char *s)
{
- register int rc;
+ int rc;
if ((rc = creat((char *)s, 0666)) < 0)
failed(s, badcreate);
@@ -181,16 +182,29 @@ unsigned char *s;
}
-tmpfil(tb)
- struct tempblk *tb;
+int
+tmpfil(struct tempblk *tb)
{
int fd;
+ int len;
+ size_t size_left = TMPOUTSZ - tmpout_offset;
/* make sure tmp file does not already exist. */
do {
- itos(serial++);
- movstr(numbuf, tmpname);
- fd = open((char *)tmpout, O_RDWR|O_CREAT|O_EXCL, 0666);
+ len = snprintf((char *)&tmpout[tmpout_offset], size_left,
+ "%u", serial);
+ fd = open((char *)tmpout, O_RDWR|O_CREAT|O_EXCL, 0600);
+ serial++;
+ if ((serial >= UINT_MAX) || (len >= size_left)) {
+ /*
+ * We've already cycled through all the possible
+ * numbers or the tmp file name is being
+ * truncated anyway (although TMPOUTSZ should be
+ * big enough), so start over.
+ */
+ serial = 0;
+ break;
+ }
} while ((fd == -1) && (errno == EEXIST));
if (fd != -1) {
pushtemp(fd, tb);
@@ -198,7 +212,6 @@ tmpfil(tb)
}
else
failed(tmpout, badcreate);
-
}
/*
@@ -207,12 +220,12 @@ tmpfil(tb)
extern BOOL nosubst;
#define CPYSIZ 512
-copy(ioparg)
-struct ionod *ioparg;
+void
+copy(struct ionod *ioparg)
{
- register unsigned char *cline;
- register unsigned char *clinep;
- register struct ionod *iop;
+ unsigned char *cline;
+ unsigned char *clinep;
+ struct ionod *iop;
unsigned int c;
unsigned char *ends;
unsigned char *start;
@@ -331,21 +344,31 @@ struct ionod *ioparg;
}
}
-
-link_iodocs(i)
- struct ionod *i;
+void
+link_iodocs(struct ionod *i)
{
int r;
+ int len;
+ size_t size_left = TMPOUTSZ - tmpout_offset;
- while (i)
- {
+ while (i) {
free(i->iolink);
/* make sure tmp file does not already exist. */
do {
- itos(serial++);
- movstr(numbuf, tmpname);
+ len = snprintf((char *)&tmpout[tmpout_offset],
+ size_left, "%u", serial);
+ serial++;
r = link(i->ioname, (char *)tmpout);
+ if ((serial >= UINT_MAX) || (len >= size_left)) {
+ /*
+ * We've already cycled through all the possible
+ * numbers or the tmp file name is being
+ * truncated anyway, so start over.
+ */
+ serial = 0;
+ break;
+ }
} while (r == -1 && errno == EEXIST);
if (r != -1) {
@@ -357,9 +380,8 @@ link_iodocs(i)
}
}
-
-swap_iodoc_nm(i)
- struct ionod *i;
+void
+swap_iodoc_nm(struct ionod *i)
{
while (i)
{
@@ -371,22 +393,20 @@ swap_iodoc_nm(i)
}
}
-
-savefd(fd)
- int fd;
+int
+savefd(int fd)
{
- register int f;
+ int f;
f = fcntl(fd, F_DUPFD, 10);
return (f);
}
-
-restore(last)
- register int last;
+void
+restore(int last)
{
- register int i;
- register int dupfd;
+ int i;
+ int dupfd;
for (i = topfd - 1; i >= last; i--)
{
diff --git a/usr/src/cmd/sh/jobs.c b/usr/src/cmd/sh/jobs.c
index 0ed3f1a171..7049cf077e 100644
--- a/usr/src/cmd/sh/jobs.c
+++ b/usr/src/cmd/sh/jobs.c
@@ -19,14 +19,12 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
-
/*
- * Copyright (c) 1996, by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
#pragma ident "%Z%%M% %I% %E% SMI"
/*
@@ -97,6 +95,8 @@ static struct job *jobcur, /* active jobs listed in currency order */
*thisjob,
*joblst; /* active jobs listed in job ID order */
+static void printjob(struct job *, int);
+
pid_t
tcgetpgrp(fd)
{
@@ -115,10 +115,9 @@ pid_t pgid;
}
static struct job *
-pgid2job(pgid)
-register pid_t pgid;
+pgid2job(pid_t pgid)
{
- register struct job *jp;
+ struct job *jp;
for (jp = joblst; jp != 0 && jp->j_pid != pgid; jp = jp->j_nxtp)
continue;
@@ -127,13 +126,10 @@ register pid_t pgid;
}
static struct job *
-str2job(cmd, job, mustbejob)
-register char *cmd;
-register char *job;
-int mustbejob;
+str2job(char *cmd, char *job, int mustbejob)
{
- register struct job *jp, *njp;
- register i;
+ struct job *jp, *njp;
+ int i;
if (*job != '%')
jp = pgid2job(stoi(job));
@@ -146,8 +142,8 @@ int mustbejob;
for (jp = joblst; jp && jp->j_jid != i; jp = jp->j_nxtp)
continue;
} else if (*job == '?') {
- register j;
- register char *p;
+ int j;
+ char *p;
i = strlen(++job);
jp = 0;
for (njp = jobcur; njp; njp = njp->j_curp) {
@@ -156,7 +152,8 @@ int mustbejob;
for (p = njp->j_cmd, j = strlen(p); j >= i; p++, j--) {
if (strncmp(job, p, i) == 0) {
if (jp != 0)
- failed(cmd, ambiguous);
+ failed((unsigned char *)cmd,
+ ambiguous);
jp = njp;
break;
}
@@ -170,24 +167,23 @@ int mustbejob;
continue;
if (strncmp(job, njp->j_cmd, i) == 0) {
if (jp != 0)
- failed(cmd, ambiguous);
+ failed((unsigned char *)cmd, ambiguous);
jp = njp;
}
}
}
if (mustbejob && (jp == 0 || jp->j_jid == 0))
- failed(cmd, nosuchjob);
+ failed((unsigned char *)cmd, nosuchjob);
return (jp);
}
static void
-freejob(jp)
-register struct job *jp;
+freejob(struct job *jp)
{
- register struct job **njp;
- register struct job **cjp;
+ struct job **njp;
+ struct job **cjp;
for (njp = &joblst; *njp != jp; njp = &(*njp)->j_nxtp)
continue;
@@ -208,10 +204,11 @@ register struct job *jp;
* to exit, but needs to wait until the fg job
* is done.
*/
-collect_fg_job()
+void
+collect_fg_job(void)
{
- register struct job *jp;
- register pid_t pid;
+ struct job *jp;
+ pid_t pid;
int stat;
for (jp = joblst; jp; jp = jp->j_nxtp)
@@ -240,11 +237,7 @@ collect_fg_job()
*/
static int
-statjob(jp, stat, fg, rc)
-register struct job *jp;
-register stat;
-int fg;
-int rc;
+statjob(struct job *jp, int stat, int fg, int rc)
{
pid_t tgid;
int done = 0;
@@ -332,7 +325,7 @@ static void
collectjobs(wnohang)
{
pid_t pid;
- register struct job *jp;
+ struct job *jp;
int stat, n;
int wflags;
@@ -353,12 +346,12 @@ collectjobs(wnohang)
void
freejobs()
{
- register struct job *jp;
+ struct job *jp;
collectjobs(WNOHANG);
if (jobnote) {
- register int savefd = setb(2);
+ int savefd = setb(2);
for (jp = joblst; jp; jp = jp->j_nxtp) {
if (jp->j_flag & J_NOTIFY) {
if (jp->j_jid)
@@ -381,8 +374,7 @@ freejobs()
}
static void
-waitjob(jp)
-register struct job *jp;
+waitjob(struct job *jp)
{
int stat;
int done;
@@ -421,7 +413,7 @@ int
settgid(new, expected)
pid_t new, expected;
{
- register pid_t current = tcgetpgrp(0);
+ pid_t current = tcgetpgrp(0);
if (current != expected)
return (current);
@@ -433,11 +425,10 @@ pid_t new, expected;
}
static void
-restartjob(jp, fg)
-register struct job *jp;
+restartjob(struct job *jp, int fg)
{
if (jp != jobcur) {
- register struct job *t;
+ struct job *t;
for (t = jobcur; t->j_curp != jp; t = t->j_curp);
t->j_curp = jp->j_curp;
jp->j_curp = jobcur;
@@ -468,9 +459,8 @@ register struct job *jp;
}
}
-static
-printjob(jp, propts)
-register struct job *jp;
+static void
+printjob(struct job *jp, int propts)
{
int sp = 0;
@@ -604,7 +594,7 @@ int check_if;
return (1);
if (check_if && jobcnt && eofflg++ == 0) {
- register struct job *jp;
+ struct job *jp;
if (check_if & JOB_STOPPED) {
for (jp = joblst; jp; jp = jp->j_nxtp) {
if (jp->j_jid && (jp->j_flag & J_STOPPED)) {
@@ -645,13 +635,11 @@ deallocjob()
jobcnt--;
}
-allocjob(cmd, cwd, monitor)
-register char *cmd;
-register unchar *cwd;
-int monitor;
+void
+allocjob(char *cmd, unchar *cwd, int monitor)
{
- register struct job *jp, **jpp;
- register int jid, cmdlen, cwdlen;
+ struct job *jp, **jpp;
+ int jid, cmdlen, cwdlen;
cmdlen = strlen(cmd) + 1;
if (cmd[cmdlen-2] == '&') {
@@ -685,9 +673,10 @@ int monitor;
thisjob = jp;
}
-clearjobs()
+void
+clearjobs(void)
{
- register struct job *jp, *sjp;
+ struct job *jp, *sjp;
for (jp = joblst; jp; jp = sjp) {
sjp = jp->j_nxtp;
@@ -700,8 +689,8 @@ clearjobs()
}
-makejob(monitor, fg)
-int monitor, fg;
+void
+makejob(int monitor, int fg)
{
if (monitor) {
mypgid = mypid;
@@ -733,7 +722,7 @@ pid_t pid;
int fg;
{
- register propts;
+ int propts;
thisjob->j_nxtp = *nextjob;
*nextjob = thisjob;
@@ -772,9 +761,9 @@ sysjobs(argc, argv)
int argc;
char *argv[];
{
- register char *cmd = *argv;
- register struct job *jp;
- register propts, c;
+ char *cmd = *argv;
+ struct job *jp;
+ int propts, c;
extern int opterr, i;
int savoptind = optind;
int loptind = -1;
@@ -787,7 +776,7 @@ char *argv[];
propts = 0;
if ((flags & jcflg) == 0)
- failed(cmd, nojc);
+ failed((unsigned char *)cmd, nojc);
while ((c = getopt(argc, argv, "lpx")) != -1) {
if (propts) {
@@ -820,8 +809,8 @@ err:
return;
if (propts == -1) {
- register unsigned char *bp;
- register char *cp;
+ unsigned char *bp;
+ char *cp;
unsigned char *savebp;
for (savebp = bp = locstak(); loptind < argc; loptind++) {
cp = argv[loptind];
@@ -863,16 +852,14 @@ err:
/*
* the builtin "fg" and "bg" commands
*/
-
-sysfgbg(argc, argv)
-int argc;
-char *argv[];
+void
+sysfgbg(int argc, char *argv[])
{
- register char *cmd = *argv;
- register fg;
+ char *cmd = *argv;
+ int fg;
if ((flags & jcflg) == 0)
- failed(cmd, nojc);
+ failed((unsigned char *)cmd, nojc);
fg = eq("fg", cmd);
@@ -880,7 +867,7 @@ char *argv[];
struct job *jp;
for (jp = jobcur; ; jp = jp->j_curp) {
if (jp == 0)
- failed(cmd, nocurjob);
+ failed((unsigned char *)cmd, nocurjob);
if (jp->j_jid)
break;
}
@@ -902,8 +889,8 @@ syswait(argc, argv)
int argc;
char *argv[];
{
- register char *cmd = *argv;
- register struct job *jp;
+ char *cmd = *argv;
+ struct job *jp;
int stat;
int wflags;
@@ -925,18 +912,15 @@ char *argv[];
}
}
-static
-sigv(cmd, sig, args)
- char *cmd;
- int sig;
- char *args;
+static void
+sigv(char *cmd, int sig, char *args)
{
int pgrp = 0;
int stopme = 0;
pid_t id;
if (*args == '%') {
- register struct job *jp;
+ struct job *jp;
jp = str2job(cmd, args, 1);
id = jp->j_pgid;
pgrp++;
@@ -1003,20 +987,18 @@ sigv(cmd, sig, args)
}
-sysstop(argc, argv)
-int argc;
-char *argv[];
+void
+sysstop(int argc, char *argv[])
{
char *cmd = *argv;
if (argc <= 1)
- failed(usage, stopuse);
+ failed((unsigned char *)usage, stopuse);
while (*++argv)
sigv(cmd, SIGSTOP, *argv);
}
-syskill(argc, argv)
-int argc;
-char *argv[];
+void
+syskill(int argc, char *argv[])
{
char *cmd = *argv;
int sig = SIGTERM;
@@ -1030,9 +1012,9 @@ char *argv[];
if (argc == 2) {
- register i;
- register cnt = 0;
- register char sep = 0;
+ int i;
+ int cnt = 0;
+ char sep = 0;
char buf[12];
if (!eq(argv[1], "-l")) {
@@ -1067,11 +1049,10 @@ char *argv[];
}
-syssusp(argc, argv)
-int argc;
-char *argv[];
+void
+syssusp(int argc, char *argv[])
{
if (argc != 1)
- failed(argv[0], badopt);
+ failed((unsigned char *)argv[0], badopt);
sigv(argv[0], SIGSTOP, "0");
}
diff --git a/usr/src/cmd/sh/macro.c b/usr/src/cmd/sh/macro.c
index 4b495a108e..938b69125e 100644
--- a/usr/src/cmd/sh/macro.c
+++ b/usr/src/cmd/sh/macro.c
@@ -39,15 +39,16 @@
static unsigned char quote; /* used locally */
static unsigned char quoted; /* used locally */
static int getch();
+static void comsubst(int);
+static void flush(int);
static void
-copyto(endch, trimflag)
-int trimflag; /* flag to check if argument will be trimmed */
-register unsigned char endch;
+copyto(unsigned char endch, int trimflag)
+/* trimflag - flag to check if argument will be trimmed */
{
- register unsigned int c;
- register unsigned int d;
- register unsigned char *pc;
+ unsigned int c;
+ unsigned int d;
+ unsigned char *pc;
while ((c = getch(endch, trimflag)) != endch && c)
if (quote) {
@@ -133,14 +134,13 @@ register unsigned char endch;
error(badsub);
}
-static
-skipto(endch)
-register unsigned char endch;
+static void
+skipto(unsigned char endch)
{
/*
* skip chars up to }
*/
- register unsigned int c;
+ unsigned int c;
while ((c = readwc()) && c != endch)
{
@@ -170,7 +170,7 @@ int trimflag; /* flag to check if an argument is going to be trimmed, here docum
output is never trimmed
*/
{
- register unsigned int d;
+ unsigned int d;
int atflag; /* flag to check if $@ has already been seen within double
quotes */
retry:
@@ -188,7 +188,7 @@ retry:
int dolg = 0;
BOOL bra;
BOOL nulflg;
- register unsigned char *argp, *v;
+ unsigned char *argp, *v;
unsigned char idb[2];
unsigned char *id = idb;
@@ -296,7 +296,7 @@ retry:
} else {
while (c = *v) {
wchar_t wc;
- register int length;
+ int length;
if ((length = mbtowc(&wc, (char *)v, MB_LEN_MAX)) <= 0)
length = 1;
@@ -336,7 +336,8 @@ retry:
if (c == '?') {
if(trimflag)
trim(argp);
- failed(id, *argp ? argp : (unsigned char *)badparam);
+ failed(id, *argp ? (const char *)argp :
+ badparam);
}
else if (c == '=')
{
@@ -352,7 +353,7 @@ retry:
usestak();
while(c = *argp) {
wchar_t wc;
- register int len;
+ int len;
if ((len = mbtowc(&wc, (char *)argp, MB_LEN_MAX)) <= 0)
len = 1;
@@ -416,8 +417,8 @@ unsigned char *as;
* Strip "" and do $ substitution
* Leaves result on top of stack
*/
- register BOOL savqu = quoted;
- register unsigned char savq = quote;
+ BOOL savqu = quoted;
+ unsigned char savq = quote;
struct filehdr fb;
push(&fb);
@@ -445,16 +446,17 @@ unsigned char *as;
/* Save file descriptor for command substitution */
int savpipe = -1;
-comsubst(trimflag)
-int trimflag; /* used to determine if argument will later be trimmed */
+static void
+comsubst(int trimflag)
+/* trimflag - used to determine if argument will later be trimmed */
{
/*
* command substn
*/
struct fileblk cb;
- register unsigned int d;
+ unsigned int d;
int strlngth = staktop - stakbot;
- register unsigned char *oldstaktop;
+ unsigned char *oldstaktop;
unsigned char *savptr = fixstak();
unsigned char *pc;
@@ -485,14 +487,14 @@ int trimflag; /* used to determine if argument will later be trimmed */
}
}
{
- register unsigned char *argc;
+ unsigned char *argc;
argc = fixstak();
push(&cb);
estabf(argc); /* read from string */
}
{
- register struct trenod *t;
+ struct trenod *t;
int pv[2];
/*
@@ -512,7 +514,7 @@ int trimflag; /* used to determine if argument will later be trimmed */
oldstaktop = staktop = stakbot + strlngth;
while (d = readwc()) {
if(quote || (d == '\\' && trimflag)) {
- register unsigned char *rest;
+ unsigned char *rest;
/* quote output from command subst. if within double
quotes or backslash part of output */
rest = readw(d);
@@ -538,7 +540,7 @@ int trimflag; /* used to determine if argument will later be trimmed */
{
extern pid_t parent;
int stat;
- register rc;
+ int rc;
int ret = 0;
while ((ret = waitpid(parent,&stat,0)) != parent) {
@@ -570,12 +572,12 @@ int trimflag; /* used to determine if argument will later be trimmed */
#define CPYSIZ 512
-subst(in, ot)
-int in, ot;
+void
+subst(int in, int ot)
{
- register unsigned int c;
+ unsigned int c;
struct fileblk fb;
- register int count = CPYSIZ;
+ int count = CPYSIZ;
unsigned char *pc;
push(&fb);
@@ -618,7 +620,8 @@ int in, ot;
pop();
}
-flush(ot)
+static void
+flush(int ot)
{
write(ot, stakbot, staktop - stakbot);
if (flags & execpr)
diff --git a/usr/src/cmd/sh/main.c b/usr/src/cmd/sh/main.c
index bf896289b3..751598d0c0 100644
--- a/usr/src/cmd/sh/main.c
+++ b/usr/src/cmd/sh/main.c
@@ -20,7 +20,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -38,6 +38,7 @@
#include "defs.h"
#include "sym.h"
#include "timeout.h"
+#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
@@ -51,7 +52,7 @@
pid_t mypid, mypgid, mysid;
static BOOL beenhere = FALSE;
-unsigned char tmpout[20] = "/tmp/sh-";
+unsigned char tmpout[TMPOUTSZ];
struct fileblk stdfile;
struct fileblk *standin = &stdfile;
int mailchk = 0;
@@ -69,18 +70,19 @@ char **execargs = (char **)(-2);
#endif
-static int exfile();
+static void exfile();
extern unsigned char *simple();
+static void Ldup(int, int);
+void settmp(void);
+void chkmail(void);
+void setmail(unsigned char *);
-
-main(c, v, e)
-int c;
-char *v[];
-char *e[];
+int
+main(int c, char *v[], char *e[])
{
- register int rflag = ttyflg;
+ int rflag = ttyflg;
int rsflag = 1; /* local restricted flag */
- register unsigned char *flagc = flagadr;
+ unsigned char *flagc = flagadr;
struct namnod *n;
mypid = getpid();
@@ -202,10 +204,10 @@ char *e[];
dolc--;
if ((flags & privflg) == 0) {
- register uid_t euid;
- register gid_t egid;
- register uid_t ruid;
- register gid_t rgid;
+ uid_t euid;
+ gid_t egid;
+ uid_t ruid;
+ gid_t rgid;
/*
* Determine all of the user's id #'s for this process and
@@ -258,7 +260,7 @@ char *e[];
* setup_env() may have set anything from parent shell to IFS.
* Always set the default ifs to IFS.
*/
- assign(&ifsnod, sptbnl);
+ assign(&ifsnod, (unsigned char *)sptbnl);
dfault(&mchknod, MAILCHECK);
mailchk = stoi(mchknod.namval);
@@ -266,7 +268,7 @@ char *e[];
/* initialize OPTIND for getopt */
n = lookup("OPTIND");
- assign(n, "1");
+ assign(n, (unsigned char *)"1");
/*
* make sure that option parsing starts
* at first character
@@ -360,9 +362,8 @@ char *e[];
done(0);
}
-static int
-exfile(prof)
-BOOL prof;
+static void
+exfile(int prof)
{
time_t mailtime = 0; /* Must not be a register variable */
time_t curtime = 0;
@@ -444,7 +445,7 @@ BOOL prof;
#endif
{
- register struct trenod *t;
+ struct trenod *t;
t = cmd(NL, MTFLG);
if (t == NULL && flags & ttyflg)
freejobs();
@@ -457,22 +458,33 @@ BOOL prof;
}
}
-chkpr()
+void
+chkpr(void)
{
if ((flags & prompt) && standin->fstak == 0)
prs(ps2nod.namval);
}
-settmp()
+void
+settmp(void)
{
- int i;
- i = ltos(mypid);
+ int len;
serial = 0;
- tmpname = movstr(numbuf + i, &tmpout[TMPNAM]);
+ if ((len = snprintf((char *)tmpout, TMPOUTSZ, "/tmp/sh%u", mypid)) >=
+ TMPOUTSZ) {
+ /*
+ * TMPOUTSZ should be big enough, but if it isn't,
+ * we'll at least try to create tmp files with
+ * a truncated tmpfile name at tmpout.
+ */
+ tmpout_offset = TMPOUTSZ - 1;
+ } else {
+ tmpout_offset = len;
+ }
}
-Ldup(fa, fb)
-register int fa, fb;
+static void
+Ldup(int fa, int fb)
{
#ifdef RES
@@ -495,11 +507,11 @@ register int fa, fb;
#endif
}
-
-chkmail()
+void
+chkmail(void)
{
- register unsigned char *s = mailp;
- register unsigned char *save;
+ unsigned char *s = mailp;
+ unsigned char *save;
long *ptr = mod_time;
unsigned char *start;
@@ -550,12 +562,11 @@ chkmail()
}
}
-
-setmail(mailpath)
- unsigned char *mailpath;
+void
+setmail(unsigned char *mailpath)
{
- register unsigned char *s = mailpath;
- register int cnt = 1;
+ unsigned char *s = mailpath;
+ int cnt = 1;
long *ptr;
@@ -598,7 +609,8 @@ setwidth()
}
}
-setmode(prof)
+void
+setmode(int prof)
{
/*
* decide whether interactive
diff --git a/usr/src/cmd/sh/name.c b/usr/src/cmd/sh/name.c
index c76b80f48e..c5076955da 100644
--- a/usr/src/cmd/sh/name.c
+++ b/usr/src/cmd/sh/name.c
@@ -19,15 +19,15 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
@@ -39,11 +39,12 @@
extern BOOL chkid();
extern unsigned char *simple();
extern int mailchk;
-static void namwalk();
+static void setname(unsigned char *, int);
static void set_builtins_path();
static int patheq();
-static void dolocale();
+static void namwalk(struct namnod *);
+static void dolocale();
struct namnod ps2nod =
{
@@ -111,15 +112,13 @@ struct namnod *namep = &mchknod;
/* ======== variable and string handling ======== */
-syslook(w, syswds, n)
- register unsigned char *w;
- register struct sysnod syswds[];
- int n;
+int
+syslook(unsigned char *w, struct sysnod syswds[], int n)
{
int low;
int high;
int mid;
- register int cond;
+ int cond;
if (w == 0 || *w == 0)
return(0);
@@ -141,16 +140,15 @@ syslook(w, syswds, n)
return(0);
}
-setlist(arg, xp)
-register struct argnod *arg;
-int xp;
+void
+setlist(struct argnod *arg, int xp)
{
if (flags & exportflg)
xp |= N_EXPORT;
while (arg)
{
- register unsigned char *s = mactrim(arg->argval);
+ unsigned char *s = mactrim(arg->argval);
setname(s, xp);
arg = arg->argnxt;
if (flags & execpr)
@@ -164,13 +162,11 @@ int xp;
}
}
-
-setname(argi, xp) /* does parameter assignments */
-unsigned char *argi;
-int xp;
+static void
+setname(unsigned char *argi, int xp) /* does parameter assignments */
{
- register unsigned char *argscan = argi;
- register struct namnod *n;
+ unsigned char *argscan = argi;
+ struct namnod *n;
if (letter(*argscan))
{
@@ -199,25 +195,22 @@ int xp;
}
}
-replace(a, v)
-register unsigned char **a;
-unsigned char *v;
+void
+replace(unsigned char **a, unsigned char *v)
{
free(*a);
*a = make(v);
}
-dfault(n, v)
-struct namnod *n;
-unsigned char *v;
+void
+dfault(struct namnod *n, unsigned char *v)
{
if (n->namval == 0)
assign(n, v);
}
-assign(n, v)
-struct namnod *n;
-unsigned char *v;
+void
+assign(struct namnod *n, unsigned char *v)
{
if (n->namflg & N_RDONLY)
failed(n->namid, wtfailed);
@@ -266,7 +259,7 @@ unsigned char *v;
static void
set_builtins_path()
{
- register unsigned char *path;
+ unsigned char *path;
ucb_builtins = 0;
path = getpath("");
@@ -288,35 +281,33 @@ set_builtins_path()
}
static int
-patheq(component, dir)
-register unsigned char *component;
-register char *dir;
+patheq(unsigned char *component, char *dir)
{
- register unsigned char c;
+ unsigned char c;
for (;;)
{
c = *component++;
if (c == COLON)
c = '\0'; /* end of component of path */
- if (c != *dir++)
- return(0);
+ if (c != *dir++)
+ return (0);
if (c == '\0')
return(1);
}
}
-readvar(names)
-unsigned char **names;
+int
+readvar(unsigned char **names)
{
struct fileblk fb;
- register struct fileblk *f = &fb;
+ struct fileblk *f = &fb;
unsigned char c[MULTI_BYTE_MAX+1];
- register int rc = 0;
+ int rc = 0;
struct namnod *n = lookup(*names++); /* done now to avoid storage mess */
unsigned char *rel = (unsigned char *)relstak();
unsigned char *oldstak;
- register unsigned char *pc, *rest;
+ unsigned char *pc, *rest;
int d;
push(f);
@@ -424,7 +415,7 @@ unsigned char **names;
}
while (n)
{
- assign(n, nullstr);
+ assign(n, (unsigned char *)nullstr);
if (*names)
n = lookup(*names++);
else
@@ -449,9 +440,8 @@ unsigned char **names;
return(rc);
}
-assnum(p, i)
-unsigned char **p;
-long i;
+void
+assnum(unsigned char **p, long i)
{
int j = ltos(i);
replace(p, &numbuf[j]);
@@ -461,7 +451,7 @@ unsigned char *
make(v)
unsigned char *v;
{
- register unsigned char *p;
+ unsigned char *p;
if (v)
{
@@ -474,11 +464,10 @@ unsigned char *v;
struct namnod *
-lookup(nam)
- register unsigned char *nam;
+lookup(unsigned char *nam)
{
- register struct namnod *nscan = namep;
- register struct namnod **prev;
+ struct namnod *nscan = namep;
+ struct namnod **prev;
int LR;
if (!chkid(nam))
@@ -512,7 +501,7 @@ BOOL
chkid(nam)
unsigned char *nam;
{
- register unsigned char *cp = nam;
+ unsigned char *cp = nam;
if (!letter(*cp))
return(FALSE);
@@ -527,17 +516,17 @@ unsigned char *nam;
return(TRUE);
}
-static int (*namfn)();
-namscan(fn)
- int (*fn)();
+static void (*namfn)();
+
+void
+namscan(void (*fn)())
{
namfn = fn;
namwalk(namep);
}
static void
-namwalk(np)
-register struct namnod *np;
+namwalk(struct namnod *np)
{
if (np)
{
@@ -547,10 +536,10 @@ register struct namnod *np;
}
}
-printnam(n)
-struct namnod *n;
+void
+printnam(struct namnod *n)
{
- register unsigned char *s;
+ unsigned char *s;
sigchk();
@@ -571,10 +560,9 @@ struct namnod *n;
}
static unsigned char *
-staknam(n)
-register struct namnod *n;
+staknam(struct namnod *n)
{
- register unsigned char *p;
+ unsigned char *p;
p = movstrstak(n->namid, staktop);
p = movstrstak("=", p);
@@ -584,10 +572,10 @@ register struct namnod *n;
static int namec;
-exname(n)
- register struct namnod *n;
+void
+exname(struct namnod *n)
{
- register int flg = n->namflg;
+ int flg = n->namflg;
if (flg & N_ENVCHG)
{
@@ -613,8 +601,8 @@ exname(n)
}
-printro(n)
-register struct namnod *n;
+void
+printro(struct namnod *n)
{
if (n->namflg & N_RDONLY)
{
@@ -625,8 +613,8 @@ register struct namnod *n;
}
}
-printexp(n)
-register struct namnod *n;
+void
+printexp(struct namnod *n)
{
if (n->namflg & N_EXPORT)
{
@@ -637,9 +625,10 @@ register struct namnod *n;
}
}
-setup_env()
+void
+setup_env(void)
{
- register unsigned char **e = environ;
+ unsigned char **e = environ;
while (*e)
setname(*e++, N_ENVNAM);
@@ -648,21 +637,19 @@ setup_env()
static unsigned char **argnam;
-static
-countnam(n)
-struct namnod *n;
+static void
+countnam(struct namnod *n)
{
if (n->namval)
namec++;
}
-static
-pushnam(n)
- register struct namnod *n;
+static void
+pushnam(struct namnod *n)
{
- register int flg = n->namflg;
- register unsigned char *p;
- register unsigned char *namval;
+ int flg = n->namflg;
+ unsigned char *p;
+ unsigned char *namval;
if (((flg & N_ENVCHG) && (flg & N_EXPORT)) || (flg & N_FUNCTN))
namval = n->namval;
@@ -692,7 +679,7 @@ pushnam(n)
unsigned char **
local_setenv()
{
- register unsigned char **er;
+ unsigned char **er;
namec = 0;
namscan(countnam);
@@ -711,9 +698,9 @@ setvars()
struct namnod *
findnam(nam)
- register unsigned char *nam;
+ unsigned char *nam;
{
- register struct namnod *nscan = namep;
+ struct namnod *nscan = namep;
int LR;
if (!chkid(nam))
@@ -730,12 +717,11 @@ findnam(nam)
return(0);
}
-
-unset_name(name)
- register unsigned char *name;
+void
+unset_name(unsigned char *name)
{
- register struct namnod *n;
- register unsigned char call_dolocale = 0;
+ struct namnod *n;
+ unsigned char call_dolocale = 0;
if (n = findnam(name))
{
@@ -849,7 +835,7 @@ dolocale(nm)
*/
for (lv = 0, fe = 0; localevar[lv]; lv++) {
if ((n = findnam(localevar[lv]))) {
- register char *p, *q;
+ char *p, *q;
if (!n->namval)
continue;
diff --git a/usr/src/cmd/sh/pwd.c b/usr/src/cmd/sh/pwd.c
index 517f1341c8..bad1f9980b 100644
--- a/usr/src/cmd/sh/pwd.c
+++ b/usr/src/cmd/sh/pwd.c
@@ -19,11 +19,17 @@
*
* CDDL HEADER END
*/
+
+/*
+ * Copyright 1994 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.14.6.1 */
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
@@ -51,11 +57,11 @@ unsigned char cwdname[PATH_MAX+1];
static int didpwd = FALSE;
-cwd(dir)
- register unsigned char *dir;
+void
+cwd(unsigned char *dir)
{
- register unsigned char *pcwd;
- register unsigned char *pdir;
+ unsigned char *pcwd;
+ unsigned char *pdir;
/* First remove extra /'s */
@@ -242,9 +248,10 @@ cwdget()
* Print the current working directory.
*/
-cwdprint()
+void
+cwdprint(void)
{
- register unsigned char *cp;
+ unsigned char *cp;
cwd2();
if (didpwd == FALSE) {
@@ -273,7 +280,7 @@ static void
rmslash(string)
unsigned char *string;
{
- register unsigned char *pstring;
+ unsigned char *pstring;
pstring = string;
while(*pstring)
diff --git a/usr/src/cmd/sh/service.c b/usr/src/cmd/sh/service.c
index a39967a882..4f704a6fbf 100644
--- a/usr/src/cmd/sh/service.c
+++ b/usr/src/cmd/sh/service.c
@@ -19,16 +19,16 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.22.5.1 */
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
@@ -42,22 +42,21 @@
#define ARGMK 01
static unsigned char *execs();
-static int gsort();
+static void gsort();
static int split();
+extern void makearg(struct argnod *);
extern const char *sysmsg[];
extern short topfd;
-
/*
* service routines for `execute'
*/
-initio(iop, save)
- struct ionod *iop;
- int save;
+short
+initio(struct ionod *iop, int save)
{
- register unsigned char *ion;
- register int iof, fd;
+ unsigned char *ion;
+ int iof, fd;
int ioufd;
short lastfd;
int newmode;
@@ -139,8 +138,8 @@ unsigned char *
getpath(s)
unsigned char *s;
{
- register unsigned char *path, *newpath;
- register int pathlen;
+ unsigned char *path, *newpath;
+ int pathlen;
if (any('/', s))
{
@@ -165,10 +164,10 @@ getpath(s)
}
}
-pathopen(path, name)
-register unsigned char *path, *name;
+int
+pathopen(unsigned char *path, unsigned char *name)
{
- register int f;
+ int f;
do
{
@@ -178,15 +177,13 @@ register unsigned char *path, *name;
}
unsigned char *
-catpath(path, name)
-register unsigned char *path;
-unsigned char *name;
+catpath(unsigned char *path, unsigned char *name)
{
/*
* leaves result on top of stack
*/
- register unsigned char *scanp = path;
- register unsigned char *argp = locstak();
+ unsigned char *scanp = path;
+ unsigned char *argp = locstak();
while (*scanp && *scanp != COLON)
{
@@ -214,10 +211,9 @@ unsigned char *name;
}
unsigned char *
-nextpath(path)
- register unsigned char *path;
+nextpath(unsigned char *path)
{
- register unsigned char *scanp = path;
+ unsigned char *scanp = path;
while (*scanp && *scanp != COLON)
scanp++;
@@ -228,21 +224,19 @@ nextpath(path)
return (*scanp ? scanp : 0);
}
-static unsigned char *xecmsg;
+static const char *xecmsg;
static unsigned char **xecenv;
-int
-execa(at, pos)
- unsigned char *at[];
- short pos;
+void
+execa(unsigned char *at[], short pos)
{
- register unsigned char *path;
- register unsigned char **t = at;
+ unsigned char *path;
+ unsigned char **t = at;
int cnt;
if ((flags & noexec) == 0)
{
- xecmsg = (unsigned char *)notfound;
+ xecmsg = notfound;
path = getpath(*t);
xecenv = local_setenv();
@@ -264,13 +258,11 @@ execa(at, pos)
}
static unsigned char *
-execs(ap, t)
-unsigned char *ap;
-register unsigned char *t[];
+execs(unsigned char *ap, unsigned char *t[])
{
- register int pfstatus = NOATTRS;
- register unsigned char *p, *prefix;
- unsigned char *savptr;
+ int pfstatus = NOATTRS;
+ unsigned char *p, *prefix;
+ unsigned char *savptr;
prefix = catpath(ap, t[0]);
trim(p = curstak());
@@ -345,7 +337,7 @@ register unsigned char *t[];
failed(p, libmax);
default:
- xecmsg = (unsigned char *)badexec;
+ xecmsg = badexec;
case ENOENT:
return (prefix);
}
@@ -353,12 +345,12 @@ register unsigned char *t[];
BOOL nosubst;
-trim(at)
-unsigned char *at;
+void
+trim(unsigned char *at)
{
- register unsigned char *last;
- register unsigned char *current;
- register unsigned char c;
+ unsigned char *last;
+ unsigned char *current;
+ unsigned char c;
int len;
wchar_t wc;
@@ -403,12 +395,13 @@ unsigned char *at;
}
/* Same as trim, but only removes backlashes before slashes */
+void
trims(at)
unsigned char *at;
{
- register unsigned char *last;
- register unsigned char *current;
- register unsigned char c;
+ unsigned char *last;
+ unsigned char *current;
+ unsigned char c;
int len;
wchar_t wc;
@@ -460,7 +453,7 @@ unsigned char *
mactrim(s)
unsigned char *s;
{
- register unsigned char *t = macro(s);
+ unsigned char *t = macro(s);
trim(t);
return (t);
@@ -470,9 +463,9 @@ unsigned char **
scan(argn)
int argn;
{
- register struct argnod *argp =
+ struct argnod *argp =
(struct argnod *)(Rcheat(gchain) & ~ARGMK);
- register unsigned char **comargn, **comargm;
+ unsigned char **comargn, **comargm;
comargn = (unsigned char **)getstak(BYTESPERWORD * argn + BYTESPERWORD);
comargm = comargn += argn;
@@ -494,12 +487,12 @@ int argn;
return (comargn);
}
-static int
+static void
gsort(from, to)
unsigned char *from[], *to[];
{
int k, m, n;
- register int i, j;
+ int i, j;
if ((n = to - from) <= 1)
return;
@@ -512,7 +505,7 @@ unsigned char *from[], *to[];
{
for (i = j; i >= 0; i -= m)
{
- register unsigned char **fromi;
+ unsigned char **fromi;
fromi = &from[i];
if (cf(fromi[m], fromi[0]) > 0)
@@ -535,12 +528,13 @@ unsigned char *from[], *to[];
/*
* Argument list generation
*/
+int
getarg(ac)
struct comnod *ac;
{
- register struct argnod *argp;
- register int count = 0;
- register struct comnod *c;
+ struct argnod *argp;
+ int count = 0;
+ struct comnod *c;
if (c = ac)
{
@@ -558,12 +552,12 @@ static int
split(s) /* blank interpretation routine */
unsigned char *s;
{
- register unsigned char *argp;
- register int c;
+ unsigned char *argp;
+ int c;
int count = 0;
for (;;)
{
- register int length;
+ int length;
sigchk();
argp = locstak() + BYTESPERWORD;
while (c = *s) {
@@ -634,7 +628,7 @@ unsigned char *s;
count += c;
else
{
- makearg(argp);
+ makearg((struct argnod *)argp);
count++;
}
gchain = (struct argnod *)((int)gchain | ARGMK);
@@ -651,19 +645,20 @@ struct tms buffer;
static clock_t before;
static int shaccton; /* 0 implies do not write record on exit */
/* 1 implies write acct record on exit */
+static comp_t compress(clock_t);
/*
* suspend accounting until turned on by preacct()
*/
-
-suspacct()
+void
+suspacct(void)
{
shaccton = 0;
}
-preacct(cmdadr)
- unsigned char *cmdadr;
+void
+preacct(unsigned char *cmdadr)
{
unsigned char *simple();
@@ -678,8 +673,8 @@ preacct(cmdadr)
}
}
-
-doacct()
+void
+doacct(void)
{
int fd;
clock_t after;
@@ -703,11 +698,11 @@ doacct()
* with 3 bits base-8 exponent, 13 bits fraction
*/
-compress(t)
- register clock_t t;
+static comp_t
+compress(clock_t t)
{
- register exp = 0;
- register rund = 0;
+ int exp = 0;
+ int rund = 0;
while (t >= 8192)
{
diff --git a/usr/src/cmd/sh/stak.c b/usr/src/cmd/sh/stak.c
index 6e1f90eb5f..5c6eac4674 100644
--- a/usr/src/cmd/sh/stak.c
+++ b/usr/src/cmd/sh/stak.c
@@ -41,8 +41,8 @@ unsigned char *
getstak(asize) /* allocate requested stack */
int asize;
{
- register unsigned char *oldstak;
- register int size;
+ unsigned char *oldstak;
+ int size;
size = round(asize, BYTESPERWORD);
oldstak = stakbot;
@@ -73,7 +73,7 @@ void
growstak(newtop)
unsigned char *newtop;
{
- register unsigned incr;
+ unsigned incr;
incr = (unsigned)round(newtop - brkend + 1, BYTESPERWORD);
if (brkincr > incr)
@@ -90,10 +90,9 @@ savstak()
}
unsigned char *
-endstak(argp) /* tidy up after `locstak' */
-register unsigned char *argp;
+endstak(unsigned char *argp) /* tidy up after `locstak' */
{
- register unsigned char *oldstak;
+ unsigned char *oldstak;
if (argp >= brkend)
growstak(argp);
@@ -105,8 +104,8 @@ register unsigned char *argp;
return(oldstak);
}
-tdystak(x) /* try to bring stack back to x */
-register unsigned char *x;
+void
+tdystak(unsigned char *x) /* try to bring stack back to x */
{
while ((unsigned char *)stakbsy > x)
{
@@ -117,7 +116,8 @@ register unsigned char *x;
rmtemp(x);
}
-stakchk()
+void
+stakchk(void)
{
if ((brkend - stakbas) > BRKINCR + BRKINCR)
setbrk(-BRKINCR);
@@ -131,8 +131,7 @@ unsigned char *x;
}
unsigned char *
-movstrstak(a, b)
-register unsigned char *a, *b;
+movstrstak(unsigned char *a, unsigned char *b)
{
do
{
@@ -148,11 +147,9 @@ register unsigned char *a, *b;
* Return s1
*/
unsigned char *
-memcpystak(s1, s2, n)
-register unsigned char *s1, *s2;
-register int n;
+memcpystak(unsigned char *s1, unsigned char *s2, int n)
{
- register unsigned char *os1 = s1;
+ unsigned char *os1 = s1;
while (--n >= 0) {
if (s1 >= brkend)
diff --git a/usr/src/cmd/sh/string.c b/usr/src/cmd/sh/string.c
index f046a3607f..b9191be47a 100644
--- a/usr/src/cmd/sh/string.c
+++ b/usr/src/cmd/sh/string.c
@@ -19,11 +19,17 @@
*
* CDDL HEADER END
*/
+
+/*
+ * Copyright 1995 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
-#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.8.2.1 */
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
@@ -35,18 +41,16 @@
unsigned char *
-movstr(a, b)
-register unsigned char *a, *b;
+movstr(unsigned char *a, unsigned char *b)
{
while (*b++ = *a++);
return(--b);
}
-any(c, s)
-wchar_t c;
-unsigned char *s;
+int
+any(wchar_t c, unsigned char *s)
{
- register unsigned int d;
+ unsigned int d;
while (d = *s++)
{
@@ -60,8 +64,8 @@ int anys(c, s)
unsigned char *c, *s;
{
wchar_t f, e;
- register wchar_t d;
- register int n;
+ wchar_t d;
+ int n;
if((n = mbtowc(&f, (char *)c, MULTI_BYTE_MAX)) <= 0)
return(FALSE);
d = f;
@@ -74,8 +78,8 @@ unsigned char *c, *s;
}
}
-int cf(s1, s2)
-register unsigned char *s1, *s2;
+int
+cf(unsigned char *s1, unsigned char *s2)
{
while (*s1++ == *s2)
if (*s2++ == 0)
@@ -86,7 +90,7 @@ register unsigned char *s1, *s2;
int length(as)
unsigned char *as;
{
- register unsigned char *s;
+ unsigned char *s;
if (s = as)
while (*s++);
@@ -94,9 +98,7 @@ unsigned char *as;
}
unsigned char *
-movstrn(a, b, n)
- register unsigned char *a, *b;
- register int n;
+movstrn(unsigned char *a, unsigned char *b, int n)
{
while ((n-- > 0) && *a)
*b++ = *a++;
diff --git a/usr/src/cmd/sh/test.c b/usr/src/cmd/sh/test.c
index 513df5a3b5..c386e2b961 100644
--- a/usr/src/cmd/sh/test.c
+++ b/usr/src/cmd/sh/test.c
@@ -19,14 +19,14 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
#pragma ident "%Z%%M% %I% %E% SMI"
/*
@@ -39,12 +39,12 @@
#include <sys/stat.h>
extern int lstat();
+void bfailed(unsigned char *, unsigned char *, unsigned char *) __NORETURN;
int ap, ac;
unsigned char **av;
-test(argn, com)
-unsigned char *com[];
-int argn;
+int
+test(int argn, unsigned char *com[])
{
ac = argn;
av = com;
@@ -52,7 +52,7 @@ int argn;
if (eq(com[0],"["))
{
if (!eq(com[--ac], "]"))
- failed("test", "] missing");
+ failed((unsigned char *)"test", "] missing");
}
com[ac] = 0;
if (ac <= 1)
@@ -70,12 +70,13 @@ nxtarg(mt)
ap++;
return(0);
}
- failed("test", "argument expected");
+ failed((unsigned char *)"test", "argument expected");
}
return(av[ap++]);
}
-exp()
+int
+exp(void)
{
int p1;
unsigned char *p2;
@@ -88,13 +89,14 @@ exp()
return(p1 | exp());
/* if (!eq(p2, ")"))
- failed("test", synmsg); */
+ failed((unsigned char *)"test", synmsg); */
}
ap--;
return(p1);
}
-e1()
+int
+e1(void)
{
int p1;
unsigned char *p2;
@@ -108,7 +110,8 @@ e1()
return(p1);
}
-e2()
+int
+e2(void)
{
if (eq(nxtarg(0), "!"))
return(!e3());
@@ -116,10 +119,11 @@ e2()
return(e3());
}
-e3()
+int
+e3(void)
{
int p1;
- register unsigned char *a;
+ unsigned char *a;
unsigned char *p2;
longlong_t ll_1, ll_2;
@@ -128,7 +132,7 @@ e3()
{
p1 = exp();
if (!eq(nxtarg(0), ")"))
- failed("test",") expected");
+ failed((unsigned char *)"test", ") expected");
return(p1);
}
p2 = nxtarg(1);
@@ -213,14 +217,12 @@ e3()
if (eq(p2, "-le"))
return (ll_1 <= ll_2);
- bfailed(btest, badop, p2);
+ bfailed((unsigned char *)btest, (unsigned char *)badop, p2);
/* NOTREACHED */
}
-
-ftype(f, field)
-unsigned char *f;
-int field;
+int
+ftype(unsigned char *f, int field)
{
struct stat statb;
@@ -231,9 +233,8 @@ int field;
return(0);
}
-filtyp(f,field)
-unsigned char *f;
-int field;
+int
+filtyp(unsigned char *f, int field)
{
struct stat statb;
int (*statf)() = (field == S_IFLNK) ? lstat : stat;
@@ -247,9 +248,8 @@ int field;
}
-
-fsizep(f)
-unsigned char *f;
+int
+fsizep(unsigned char *f)
{
struct stat statb;
@@ -262,10 +262,8 @@ unsigned char *f;
* fake diagnostics to continue to look like original
* test(1) diagnostics
*/
-bfailed(s1, s2, s3)
-unsigned char *s1;
-unsigned char *s2;
-unsigned char *s3;
+void
+bfailed(unsigned char *s1, unsigned char *s2, unsigned char *s3)
{
prp();
prs(s1);
diff --git a/usr/src/cmd/sh/word.c b/usr/src/cmd/sh/word.c
index f072f52b5a..6e4417a952 100644
--- a/usr/src/cmd/sh/word.c
+++ b/usr/src/cmd/sh/word.c
@@ -19,16 +19,16 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
- * Copyright (c) 1996, by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 2000 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.11.2.2 */
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
/*
* UNIX shell
*/
@@ -42,12 +42,12 @@ static int readb(struct fileblk *, int, int);
/* ======== character handling for command lines ======== */
-
-word()
+int
+word(void)
{
- register unsigned int c, d, cc;
+ unsigned int c, d, cc;
struct argnod *arg = (struct argnod *)locstak();
- register unsigned char *argp = arg->argval;
+ unsigned char *argp = arg->argval;
unsigned char *oldargp;
int alpha = 1;
unsigned char *pc;
@@ -239,7 +239,7 @@ word()
unsigned int skipwc()
{
- register unsigned int c;
+ unsigned int c;
while (c = nextwc(), space(c))
;
@@ -248,7 +248,7 @@ unsigned int skipwc()
unsigned int nextwc()
{
- register unsigned int c, d;
+ unsigned int c, d;
retry:
if ((d = readwc()) == ESCAPE) {
diff --git a/usr/src/cmd/sh/xec.c b/usr/src/cmd/sh/xec.c
index 3de1014bc6..97a5b0c9cd 100644
--- a/usr/src/cmd/sh/xec.c
+++ b/usr/src/cmd/sh/xec.c
@@ -19,15 +19,15 @@
*
* CDDL HEADER END
*/
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
/*
- * Copyright 1996,2002-2003 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
#pragma ident "%Z%%M% %I% %E% SMI"
/*
*
@@ -45,17 +45,21 @@
pid_t parent;
-/* ======== command execution ======== */
+void execprint(unsigned char **);
+/* ======== command execution ======== */
+/*VARARGS3*/
+int
execute(argt, xflags, errorflg, pf1, pf2)
-struct trenod *argt;
-int *pf1, *pf2;
+struct trenod *argt;
+int xflags, errorflg;
+int *pf1, *pf2;
{
/*
* `stakbot' is preserved by this routine
*/
- register struct trenod *t;
+ struct trenod *t;
unsigned char *sav = savstak();
sigchk();
@@ -63,8 +67,8 @@ int *pf1, *pf2;
flags &= ~errflg;
if ((t = argt) && execbrk == 0) {
- register int treeflgs;
- register unsigned char **com;
+ int treeflgs;
+ unsigned char **com;
int type;
short pos;
@@ -258,7 +262,7 @@ int *pf1, *pf2;
break;
}
sigchk();
- sleep(forkcnt);
+ sh_sleep(forkcnt);
}
if (parent) {
@@ -363,7 +367,7 @@ int *pf1, *pf2;
case TAND:
case TORF:
{
- register xval;
+ int xval;
xval = execute(lstptr(t)->lstlef, XEC_NOSTOP, 0);
if ((xval == 0) == (type == TAND))
execute(lstptr(t)->lstrit, xflags|XEC_NOSTOP, errorflg);
@@ -439,8 +443,8 @@ int *pf1, *pf2;
case TSW:
{
- register unsigned char *r = mactrim(swptr(t)->swarg);
- register struct regnod *regp;
+ unsigned char *r = mactrim(swptr(t)->swarg);
+ struct regnod *regp;
regp = swptr(t)->swlst;
while (regp)
@@ -449,7 +453,7 @@ int *pf1, *pf2;
while (rex)
{
- register unsigned char *s;
+ unsigned char *s;
if (gmatch(r, s = macro(rex->argval)) || (trim(s), eq(r, s)))
{
@@ -474,9 +478,8 @@ int *pf1, *pf2;
return(exitval);
}
-execexp(s, f)
-unsigned char *s;
-int f;
+void
+execexp(unsigned char *s, int f)
{
struct fileblk fb;
@@ -492,10 +495,10 @@ int f;
pop();
}
-execprint(com)
- unsigned char **com;
+void
+execprint(unsigned char **com)
{
- register int argn = 0;
+ int argn = 0;
unsigned char *s;
prs(execpmsg);