summaryrefslogtreecommitdiff
path: root/usr/src/cmd/sh/args.c
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/cmd/sh/args.c
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/cmd/sh/args.c')
-rw-r--r--usr/src/cmd/sh/args.c59
1 files changed, 32 insertions, 27 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