The ash ansification diff! Please tell me if you notice any problems resulting from this.
No binary (build failed)
—
(log yok)
| @@ -211,10 +211,6 @@ | |
| #define digit_val(c) ((c) - '0') | |
| - | #define _DIAGASSERT(x) |
| - | |
| - | |
| - | |
| #define S_DFL 1 /* default signal handling (SIG_DFL) */ | |
| #define S_CATCH 2 /* signal is caught */ | |
| #define S_IGN 3 /* signal is ignored (SIG_IGN) */ | |
| @@ -304,10 +300,6 @@ typedef void *pointer; | |
| #define NULL (void *)0 | |
| #endif | |
| - | static inline pointer ckmalloc (int sz) { return xmalloc(sz); } |
| - | static inline pointer ckrealloc(void *p, int sz) { return xrealloc(p, sz); } |
| - | static inline char * savestr (const char *s) { return xstrdup(s); } |
| - | |
| static pointer stalloc (int); | |
| static void stunalloc (pointer); | |
| static void ungrabstackstr (char *, char *); | |
| @@ -1128,6 +1120,10 @@ static void deletefuncs(void); | |
| static void setparam (char **); | |
| static void freeparam (volatile struct shparam *); | |
| + | static void find_command (const char *, struct cmdentry *, int, const char *); |
| + | |
| + | static inline void hashcd (void); |
| + | |
| /* reasons for skipping commands (see comment on breakcmd routine) */ | |
| #define SKIPBREAK 1 | |
| #define SKIPCONT 2 | |
| @@ -1339,8 +1335,7 @@ static struct alias *freealias (struct alias *); | |
| static struct alias **__lookupalias (const char *); | |
| static void | |
| - | setalias(name, val) |
| - | char *name, *val; |
| + | setalias(char *name, char *val) |
| { | |
| struct alias *ap, **app; | |
| @@ -1351,13 +1346,13 @@ setalias(name, val) | |
| if (!(ap->flag & ALIASINUSE)) { | |
| ckfree(ap->val); | |
| } | |
| - | ap->val = savestr(val); |
| + | ap->val = xstrdup(val); |
| ap->flag &= ~ALIASDEAD; | |
| } else { | |
| /* not found */ | |
| - | ap = ckmalloc(sizeof (struct alias)); |
| - | ap->name = savestr(name); |
| - | ap->val = savestr(val); |
| + | ap = xmalloc(sizeof (struct alias)); |
| + | ap->name = xstrdup(name); |
| + | ap->val = xstrdup(val); |
| ap->flag = 0; | |
| ap->next = 0; | |
| *app = ap; | |
| @@ -1469,9 +1464,8 @@ unaliascmd(int argc, char **argv) | |
| } | |
| static struct alias ** | |
| - | hashalias(p) |
| - | const char *p; |
| - | { |
| + | hashalias(const char *p) |
| + | { |
| unsigned int hashval; | |
| hashval = *p << 4; | |
| @@ -1481,7 +1475,8 @@ hashalias(p) | |
| } | |
| static struct alias * | |
| - | freealias(struct alias *ap) { |
| + | freealias(struct alias *ap) |
| + | { |
| struct alias *next; | |
| if (ap->flag & ALIASINUSE) { | |
| @@ -1498,7 +1493,8 @@ freealias(struct alias *ap) { | |
| static struct alias ** | |
| - | __lookupalias(const char *name) { |
| + | __lookupalias(const char *name) |
| + | { |
| struct alias **app = hashalias(name); | |
| for (; *app; app = &(*app)->next) { | |
| @@ -1727,7 +1723,6 @@ static int forkshell (struct job *, const union node *, int); | |
| static int waitforjob (struct job *); | |
| static int docd (char *, int); | |
| - | static void updatepwd (const char *); |
| static void getpwd (void); | |
| static char *padvance (const char **, const char *); | |
| @@ -1736,9 +1731,7 @@ static char nullstr[1]; /* zero length string */ | |
| static char *curdir = nullstr; /* current working directory */ | |
| static int | |
| - | cdcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | cdcmd(int argc, char **argv) |
| { | |
| const char *dest; | |
| const char *path; | |
| @@ -1798,40 +1791,29 @@ docd(char *dest, int print) | |
| INTON; | |
| return -1; | |
| } | |
| - | updatepwd(dest); |
| + | hashcd(); |
| + | /* |
| + | * Update curdir (the name of the current directory) in response to a |
| + | * cd command. We also call hashcd to let the routines in exec.c know |
| + | * that the current directory has changed. |
| + | */ |
| + | /* If dest is NULL, we don't know the current directory */ |
| + | if (dest == NULL || curdir == nullstr) |
| + | setpwd(0, 1); |
| + | else |
| + | setpwd(dest, 1); |
| + | |
| INTON; | |
| if (print && iflag) | |
| - | printf(snlfmt, curdir); |
| + | puts(curdir); |
| return 0; | |
| } | |
| - | /* |
| - | * Update curdir (the name of the current directory) in response to a |
| - | * cd command. We also call hashcd to let the routines in exec.c know |
| - | * that the current directory has changed. |
| - | */ |
| - | |
| - | static void hashcd (void); |
| - | |
| - | static void |
| - | updatepwd(const char *dir) |
| - | { |
| - | hashcd(); /* update command hash table */ |
| - | |
| - | /* If our argument is NULL, we don't know the current directory */ |
| - | if (dir == NULL || curdir == nullstr) { |
| - | setpwd(0, 1); |
| - | return; |
| - | } |
| - | setpwd(dir, 1); |
| - | } |
| - | |
| - | |
| static int | |
| pwdcmd(int argc, char **argv) | |
| { | |
| - | printf(snlfmt, curdir); |
| + | puts(curdir); |
| return 0; | |
| } | |
| @@ -2134,7 +2116,6 @@ static int oexitstatus; /* saved exit status */ | |
| static void evalsubshell (const union node *, int); | |
| static void expredir (union node *); | |
| - | static void prehash (union node *); |
| static void eprintlist (struct strlist *); | |
| static union node *parsecmd(int); | |
| @@ -2148,9 +2129,7 @@ static union node *parsecmd(int); | |
| static void evalstring (char *, int); | |
| static int | |
| - | evalcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | evalcmd(int argc, char **argv) |
| { | |
| char *p; | |
| char *concat; | |
| @@ -2226,7 +2205,7 @@ copyfunc(union node *n) | |
| funcblocksize = 0; | |
| funcstringsize = 0; | |
| calcsize(n); | |
| - | funcblock = ckmalloc(funcblocksize + funcstringsize); |
| + | funcblock = xmalloc(funcblocksize + funcstringsize); |
| funcstring = (char *) funcblock + funcblocksize; | |
| return copynode(n); | |
| } | |
| @@ -2384,7 +2363,18 @@ static inline void evalpipe(union node *n) | |
| jp = makejob(n, pipelen); | |
| prevfd = -1; | |
| for (lp = n->npipe.cmdlist ; lp ; lp = lp->next) { | |
| - | prehash(lp->n); |
| + | /* |
| + | * Search for a command. This is called before we fork so that the |
| + | * location of the command will be available in the parent as well as |
| + | * the child. The check for "goodname" is an overly conservative |
| + | * check that the name will not be subject to expansion. |
| + | */ |
| + | |
| + | struct cmdentry entry; |
| + | union node *lpn = lp->n; |
| + | if (lpn->type == NCMD && lpn->ncmd.args && goodname(lpn->ncmd.args->narg.text)) |
| + | find_command(lpn->ncmd.args->narg.text, &entry, 0, pathval()); |
| + | |
| pip[1] = -1; | |
| if (lp->next) { | |
| if (pipe(pip) < 0) { | |
| @@ -2428,8 +2418,6 @@ static inline void evalpipe(union node *n) | |
| } | |
| } | |
| - | static void find_command (const char *, struct cmdentry *, int, const char *); |
| - | |
| static int | |
| isassignment(const char *word) { | |
| if (!is_name(*word)) { | |
| @@ -2750,9 +2738,7 @@ out: | |
| * exitstatus. | |
| */ | |
| static void | |
| - | evaltree(n, flags) |
| - | union node *n; |
| - | int flags; |
| + | evaltree(union node *n, int flags) |
| { | |
| int checkexit = 0; | |
| if (n == NULL) { | |
| @@ -2972,25 +2958,6 @@ out: | |
| * Execute a simple command. | |
| */ | |
| - | /* |
| - | * Search for a command. This is called before we fork so that the |
| - | * location of the command will be available in the parent as well as |
| - | * the child. The check for "goodname" is an overly conservative |
| - | * check that the name will not be subject to expansion. |
| - | */ |
| - | |
| - | static void |
| - | prehash(n) |
| - | union node *n; |
| - | { |
| - | struct cmdentry entry; |
| - | |
| - | if (n->type == NCMD && n->ncmd.args) |
| - | if (goodname(n->ncmd.args->narg.text)) |
| - | find_command(n->ncmd.args->narg.text, &entry, 0, |
| - | pathval()); |
| - | } |
| - | |
| /* | |
| * Builtin commands. Builtin commands whose functions are closely | |
| @@ -3003,9 +2970,7 @@ prehash(n) | |
| */ | |
| int | |
| - | bltincmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | bltincmd(int argc, char **argv) |
| { | |
| /* | |
| * Preserve exitstatus of a previous possible redirection | |
| @@ -3027,9 +2992,7 @@ bltincmd(argc, argv) | |
| */ | |
| static int | |
| - | breakcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | breakcmd(int argc, char **argv) |
| { | |
| int n = argc > 1 ? number(argv[1]) : 1; | |
| @@ -3048,9 +3011,7 @@ breakcmd(argc, argv) | |
| */ | |
| static int | |
| - | returncmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | returncmd(int argc, char **argv) |
| { | |
| int ret = argc > 1 ? number(argv[1]) : oexitstatus; | |
| @@ -3070,9 +3031,7 @@ returncmd(argc, argv) | |
| #ifndef CONFIG_FALSE | |
| static int | |
| - | false_main(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | false_main(int argc, char **argv) |
| { | |
| return 1; | |
| } | |
| @@ -3080,9 +3039,7 @@ false_main(argc, argv) | |
| #ifndef CONFIG_TRUE | |
| static int | |
| - | true_main(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | true_main(int argc, char **argv) |
| { | |
| return 0; | |
| } | |
| @@ -3132,9 +3089,7 @@ optschanged(void) | |
| static int | |
| - | execcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | execcmd(int argc, char **argv) |
| { | |
| if (argc > 1) { | |
| struct strlist *sp; | |
| @@ -3165,10 +3120,7 @@ eprintlist(struct strlist *sp) | |
| static const char *pathopt; /* set by padvance */ | |
| static void | |
| - | shellexec(argv, envp, path, idx) |
| - | char **argv, **envp; |
| - | const char *path; |
| - | int idx; |
| + | shellexec(char **argv, char **envp, const char *path, int idx) |
| { | |
| char *cmdname; | |
| int e; | |
| @@ -3208,7 +3160,8 @@ shellexec(argv, envp, path, idx) | |
| * Clear traps on a fork. | |
| */ | |
| static void | |
| - | clear_traps(void) { |
| + | clear_traps(void) |
| + | { |
| char **tp; | |
| for (tp = trap ; tp < &trap[NSIG] ; tp++) { | |
| @@ -3225,7 +3178,8 @@ clear_traps(void) { | |
| static void | |
| - | initshellproc(void) { |
| + | initshellproc(void) |
| + | { |
| #ifdef ASH_ALIAS | |
| /* from alias.c: */ | |
| @@ -3326,7 +3280,8 @@ static void pungetc(void) | |
| static void | |
| - | popfile(void) { |
| + | popfile(void) |
| + | { |
| struct parsefile *pf = parsefile; | |
| INTOFF; | |
| @@ -3351,7 +3306,8 @@ popfile(void) { | |
| */ | |
| static void | |
| - | popallfiles(void) { |
| + | popallfiles(void) |
| + | { |
| while (parsefile != &basepf) | |
| popfile(); | |
| } | |
| @@ -3389,7 +3345,7 @@ static void setinputfd(int fd, int push) | |
| } | |
| parsefile->fd = fd; | |
| if (parsefile->buf == NULL) | |
| - | parsefile->buf = ckmalloc(BUFSIZ); |
| + | parsefile->buf = xmalloc(BUFSIZ); |
| parselleft = parsenleft = 0; | |
| plinno = 1; | |
| } | |
| @@ -3447,7 +3403,7 @@ tryexec(char *cmd, char **argv, char **envp) | |
| INTOFF; | |
| initshellproc(); | |
| setinputfile(cmd, 0); | |
| - | commandname = arg0 = savestr(argv[0]); |
| + | commandname = arg0 = xstrdup(argv[0]); |
| setparam(argv + 1); | |
| exraise(EXSHELLPROC); | |
| } | |
| @@ -3531,9 +3487,7 @@ findkwd(const char *s) | |
| static int | |
| - | hashcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | hashcmd(int argc, char **argv) |
| { | |
| struct tblentry **pp; | |
| struct tblentry *cmdp; | |
| @@ -3585,7 +3539,7 @@ hashcmd(argc, argv) | |
| if (verbose=='v') | |
| printf("%s is a shell keyword\n", name); | |
| else | |
| - | printf(snlfmt, name); |
| + | puts(name); |
| continue; | |
| } | |
| @@ -3601,10 +3555,8 @@ hashcmd(argc, argv) | |
| } | |
| static void | |
| - | printentry(cmdp, verbose) |
| - | struct tblentry *cmdp; |
| - | int verbose; |
| - | { |
| + | printentry(struct tblentry *cmdp, int verbose) |
| + | { |
| int idx; | |
| const char *path; | |
| char *name; | |
| @@ -3636,7 +3588,7 @@ printentry(cmdp, verbose) | |
| error("internal error: cmdtype %d", cmdp->cmdtype); | |
| #endif | |
| } | |
| - | printf(snlfmt, cmdp->rehash ? "*" : nullstr); |
| + | puts(cmdp->rehash ? "*" : nullstr); |
| } | |
| @@ -3892,8 +3844,9 @@ find_builtin(const char *name) | |
| * are executed they will be rehashed. | |
| */ | |
| - | static void |
| - | hashcd(void) { |
| + | static inline void |
| + | hashcd(void) |
| + | { |
| struct tblentry **pp; | |
| struct tblentry *cmdp; | |
| @@ -3934,8 +3887,7 @@ changepath(const char *newval) | |
| */ | |
| static void | |
| - | clearcmdentry(firstchange) |
| - | int firstchange; |
| + | clearcmdentry(int firstchange) |
| { | |
| struct tblentry **tblp; | |
| struct tblentry **pp; | |
| @@ -3965,7 +3917,8 @@ clearcmdentry(firstchange) | |
| */ | |
| static void | |
| - | deletefuncs(void) { |
| + | deletefuncs(void) |
| + | { |
| struct tblentry **tblp; | |
| struct tblentry **pp; | |
| struct tblentry *cmdp; | |
| @@ -4019,7 +3972,7 @@ cmdlookup(const char *name, int add) | |
| } | |
| if (add && cmdp == NULL) { | |
| INTOFF; | |
| - | cmdp = *pp = ckmalloc(sizeof (struct tblentry) - ARB |
| + | cmdp = *pp = xmalloc(sizeof (struct tblentry) - ARB |
| + strlen(name) + 1); | |
| cmdp->next = NULL; | |
| cmdp->cmdtype = CMDUNKNOWN; | |
| @@ -4036,7 +3989,8 @@ cmdlookup(const char *name, int add) | |
| */ | |
| static void | |
| - | delete_cmd_entry() { |
| + | delete_cmd_entry() |
| + | { |
| struct tblentry *cmdp; | |
| INTOFF; | |
| @@ -4121,9 +4075,7 @@ typecmd(int argc, char **argv) | |
| #ifdef ASH_CMDCMD | |
| static int | |
| - | commandcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | commandcmd(int argc, char **argv) |
| { | |
| int c; | |
| int default_path = 0; | |
| @@ -4166,9 +4118,7 @@ commandcmd(argc, argv) | |
| #endif | |
| static int | |
| - | path_change(newval, bltin) |
| - | const char *newval; |
| - | int *bltin; |
| + | path_change(const char *newval, int *bltin) |
| { | |
| const char *old, *new; | |
| int idx; | |
| @@ -4235,7 +4185,7 @@ static void expbackq (union node *, int, int); | |
| static int subevalvar (char *, char *, int, int, int, int, int); | |
| static int varisset (char *, int); | |
| static void strtodest (const char *, int, int); | |
| - | static void varvalue (char *, int, int); |
| + | static inline void varvalue (char *, int, int); |
| static void recordregion (int, int, int); | |
| static void removerecordregions (int); | |
| static void ifsbreakup (char *, struct arglist *); | |
| @@ -4244,7 +4194,7 @@ static void expandmeta (struct strlist *, int); | |
| #if defined(__GLIBC__) && __GLIBC__ >= 2 && !defined(FNMATCH_BROKEN) | |
| #define preglob(p) _rmescapes((p), RMESCAPE_ALLOC | RMESCAPE_GLOB) | |
| #if !defined(GLOB_BROKEN) | |
| - | static void addglob (const glob_t *); |
| + | static inline void addglob (const glob_t *); |
| #endif | |
| #endif | |
| #if !(defined(__GLIBC__) && __GLIBC__ >= 2 && !defined(FNMATCH_BROKEN) && !defined(GLOB_BROKEN)) | |
| @@ -4285,10 +4235,7 @@ expandhere(union node *arg, int fd) | |
| */ | |
| static void | |
| - | expandarg(arg, arglist, flag) |
| - | union node *arg; |
| - | struct arglist *arglist; |
| - | int flag; |
| + | expandarg(union node *arg, struct arglist *arglist, int flag) |
| { | |
| struct strlist *sp; | |
| char *p; | |
| @@ -4496,9 +4443,7 @@ record: | |
| */ | |
| static void | |
| - | argstr(p, flag) |
| - | char *p; |
| - | int flag; |
| + | argstr(char *p, int flag) |
| { | |
| char c; | |
| int quotes = flag & (EXP_FULL | EXP_CASE); /* do CTLESC */ | |
| @@ -4510,7 +4455,7 @@ argstr(p, flag) | |
| switch (c = *p++) { | |
| case '\0': | |
| case CTLENDVAR: /* ??? */ | |
| - | goto breakloop; |
| + | return; |
| case CTLQUOTEMARK: | |
| /* "$@" syntax adherence hack */ | |
| if (p[0] == CTLVAR && p[2] == '@' && p[3] == '=') | |
| @@ -4558,14 +4503,11 @@ argstr(p, flag) | |
| STPUTC(c, expdest); | |
| } | |
| } | |
| - | breakloop:; |
| return; | |
| } | |
| static char * | |
| - | exptilde(p, flag) |
| - | char *p; |
| - | int flag; |
| + | exptilde(char *p, int flag) |
| { | |
| char c, *startp = p; | |
| struct passwd *pw; | |
| @@ -4720,10 +4662,7 @@ expari(int flag) | |
| */ | |
| static void | |
| - | expbackq(cmd, quoted, flag) |
| - | union node *cmd; |
| - | int quoted; |
| - | int flag; |
| + | expbackq(union node *cmd, int quoted, int flag) |
| { | |
| volatile struct backcmd in; | |
| int i; | |
| @@ -4824,14 +4763,7 @@ err2: | |
| } | |
| static int | |
| - | subevalvar(p, str, strloc, subtype, startloc, varflags, quotes) |
| - | char *p; |
| - | char *str; |
| - | int strloc; |
| - | int subtype; |
| - | int startloc; |
| - | int varflags; |
| - | int quotes; |
| + | subevalvar(char *p, char *str, int strloc, int subtype, int startloc, int varflags, int quotes) |
| { | |
| char *startp; | |
| char *loc = NULL; | |
| @@ -4952,9 +4884,7 @@ recordright: | |
| */ | |
| static int | |
| - | varisset(name, nulok) |
| - | char *name; |
| - | int nulok; |
| + | varisset(char *name, int nulok) |
| { | |
| if (*name == '!') | |
| return backgndpid != -1; | |
| @@ -5006,7 +4936,7 @@ strtodest(const char *p, int syntax, int quotes) | |
| * Add the value of a specialized variable to the stack string. | |
| */ | |
| - | static void |
| + | static inline void |
| varvalue(char *name, int quoted, int flags) | |
| { | |
| int num; | |
| @@ -5081,10 +5011,7 @@ param: | |
| */ | |
| static void | |
| - | recordregion(start, end, nulonly) |
| - | int start; |
| - | int end; |
| - | int nulonly; |
| + | recordregion(int start, int end, int nulonly) |
| { | |
| struct ifsregion *ifsp; | |
| @@ -5092,7 +5019,7 @@ recordregion(start, end, nulonly) | |
| ifsp = &ifsfirst; | |
| } else { | |
| INTOFF; | |
| - | ifsp = (struct ifsregion *)ckmalloc(sizeof (struct ifsregion)); |
| + | ifsp = (struct ifsregion *)xmalloc(sizeof (struct ifsregion)); |
| ifsp->next = NULL; | |
| ifslastp->next = ifsp; | |
| INTON; | |
| @@ -5111,10 +5038,8 @@ recordregion(start, end, nulonly) | |
| * searched for IFS characters have been stored by recordregion. | |
| */ | |
| static void | |
| - | ifsbreakup(string, arglist) |
| - | char *string; |
| - | struct arglist *arglist; |
| - | { |
| + | ifsbreakup(char *string, struct arglist *arglist) |
| + | { |
| struct ifsregion *ifsp; | |
| struct strlist *sp; | |
| char *start; | |
| @@ -5195,7 +5120,7 @@ ifsbreakup(string, arglist) | |
| } | |
| static void | |
| - | ifsfree() |
| + | ifsfree(void) |
| { | |
| while (ifsfirst.next != NULL) { | |
| struct ifsregion *ifsp; | |
| @@ -5233,9 +5158,7 @@ addfname(const char *name) | |
| #if defined(__GLIBC__) && __GLIBC__ >= 2 && !defined(FNMATCH_BROKEN) && !defined(GLOB_BROKEN) | |
| static void | |
| - | expandmeta(str, flag) |
| - | struct strlist *str; |
| - | int flag; |
| + | expandmeta(struct strlist *str, int flag) |
| { | |
| const char *p; | |
| glob_t pglob; | |
| @@ -5275,9 +5198,8 @@ nometa: | |
| * Add the result of glob(3) to the list. | |
| */ | |
| - | static void |
| - | addglob(pglob) |
| - | const glob_t *pglob; |
| + | static inline void |
| + | addglob(const glob_t *pglob) |
| { | |
| char **p = pglob->gl_pathv; | |
| @@ -5292,9 +5214,7 @@ static char *expdir; | |
| static void | |
| - | expandmeta(str, flag) |
| - | struct strlist *str; |
| - | int flag; |
| + | expandmeta(struct strlist str, int flag) |
| { | |
| char *p; | |
| struct strlist **savelastp; | |
| @@ -5316,7 +5236,7 @@ expandmeta(str, flag) | |
| INTOFF; | |
| if (expdir == NULL) { | |
| int i = strlen(str->text); | |
| - | expdir = ckmalloc(i < 2048 ? 2048 : i); /* XXX */ |
| + | expdir = xmalloc(i < 2048 ? 2048 : i); /* XXX */ |
| } | |
| expmeta(expdir, str->text); | |
| @@ -5348,10 +5268,8 @@ nometa: | |
| */ | |
| static void | |
| - | expmeta(enddir, name) |
| - | char *enddir; |
| - | char *name; |
| - | { |
| + | expmeta(char *enddir, char *name) |
| + | { |
| char *p; | |
| const char *cp; | |
| char *q; | |
| @@ -5484,9 +5402,8 @@ expmeta(enddir, name) | |
| */ | |
| static struct strlist * | |
| - | expsort(str) |
| - | struct strlist *str; |
| - | { |
| + | expsort(struct strlist *str) |
| + | { |
| int len; | |
| struct strlist *sp; | |
| @@ -5498,9 +5415,7 @@ expsort(str) | |
| static struct strlist * | |
| - | msort(list, len) |
| - | struct strlist *list; |
| - | int len; |
| + | msort(struct strlist *list, int len) |
| { | |
| struct strlist *p, *q = NULL; | |
| struct strlist **lpp; | |
| @@ -5743,8 +5658,7 @@ _rmescapes(char *str, int flag) | |
| } | |
| #else | |
| static void | |
| - | rmescapes(str) |
| - | char *str; |
| + | rmescapes(char *str) |
| { | |
| char *p, *q; | |
| @@ -5797,10 +5711,8 @@ casematch(union node *pattern, const char *val) | |
| */ | |
| static char * | |
| - | cvtnum(num, buf) |
| - | int num; |
| - | char *buf; |
| - | { |
| + | cvtnum(int num, char *buf) |
| + | { |
| int len; | |
| CHECKSTRSPACE(32, buf); | |
| @@ -5811,9 +5723,7 @@ cvtnum(num, buf) | |
| /* | |
| * Editline and history functions (and glue). | |
| */ | |
| - | static int histcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | static int histcmd(int argc, char **argv) |
| { | |
| error("not compiled with history support"); | |
| /* NOTREACHED */ | |
| @@ -6133,7 +6043,7 @@ pushstring(char *s, int len, void *ap) | |
| INTOFF; | |
| /*dprintf("*** calling pushstring: %s, %d\n", s, len);*/ | |
| if (parsefile->strpush) { | |
| - | sp = ckmalloc(sizeof (struct strpush)); |
| + | sp = xmalloc(sizeof (struct strpush)); |
| sp->prev = parsefile->strpush; | |
| parsefile->strpush = sp; | |
| } else | |
| @@ -6177,14 +6087,15 @@ setinputstring(char *string) | |
| */ | |
| static void | |
| - | pushfile(void) { |
| + | pushfile(void) |
| + | { |
| struct parsefile *pf; | |
| parsefile->nleft = parsenleft; | |
| parsefile->lleft = parselleft; | |
| parsefile->nextc = parsenextc; | |
| parsefile->linno = plinno; | |
| - | pf = (struct parsefile *)ckmalloc(sizeof (struct parsefile)); |
| + | pf = (struct parsefile *)xmalloc(sizeof (struct parsefile)); |
| pf->prev = parsefile; | |
| pf->fd = -1; | |
| pf->strpush = NULL; | |
| @@ -6289,9 +6200,7 @@ static void setjobctl(int enable) | |
| #ifdef JOBS | |
| static int | |
| - | killcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | killcmd(int argc, char **argv) |
| { | |
| int signo = -1; | |
| int list = 0; | |
| @@ -6351,13 +6260,13 @@ usage: | |
| for (i = 1; i < NSIG; i++) { | |
| name = u_signal_names(0, &i, 1); | |
| if(name) | |
| - | printf(snlfmt, name); |
| + | puts(name); |
| } | |
| return 0; | |
| } | |
| name = u_signal_names(*argptr, &signo, -1); | |
| if (name) | |
| - | printf(snlfmt, name); |
| + | puts(name); |
| else | |
| error("invalid signal number or exit status: %s", | |
| *argptr); | |
| @@ -6381,9 +6290,7 @@ usage: | |
| } | |
| static int | |
| - | fgcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | fgcmd(int argc, char **argv) |
| { | |
| struct job *jp; | |
| int pgrp; | |
| @@ -6407,9 +6314,7 @@ fgcmd(argc, argv) | |
| static int | |
| - | bgcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | bgcmd(int argc, char **argv) |
| { | |
| struct job *jp; | |
| @@ -6424,8 +6329,7 @@ bgcmd(argc, argv) | |
| static void | |
| - | restartjob(jp) |
| - | struct job *jp; |
| + | restartjob(struct job *jp) |
| { | |
| struct procstat *ps; | |
| int i; | |
| @@ -6448,9 +6352,7 @@ static void showjobs(int change); | |
| static int | |
| - | jobscmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | jobscmd(int argc, char **argv) |
| { | |
| showjobs(0); | |
| return 0; | |
| @@ -6467,8 +6369,7 @@ jobscmd(argc, argv) | |
| */ | |
| static void | |
| - | showjobs(change) |
| - | int change; |
| + | showjobs(int change) |
| { | |
| int jobno; | |
| int procno; | |
| @@ -6564,9 +6465,7 @@ freejob(struct job *jp) | |
| static int | |
| - | waitcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | waitcmd(int argc, char **argv) |
| { | |
| struct job *job; | |
| int status, retval; | |
| @@ -6687,9 +6586,9 @@ makejob(const union node *node, int nprocs) | |
| if (--i < 0) { | |
| INTOFF; | |
| if (njobs == 0) { | |
| - | jobtab = ckmalloc(4 * sizeof jobtab[0]); |
| + | jobtab = xmalloc(4 * sizeof jobtab[0]); |
| } else { | |
| - | jp = ckmalloc((njobs + 4) * sizeof jobtab[0]); |
| + | jp = xmalloc((njobs + 4) * sizeof jobtab[0]); |
| memcpy(jp, jobtab, njobs * sizeof jp[0]); | |
| /* Relocate `ps' pointers */ | |
| for (i = 0; i < njobs; i++) | |
| @@ -6715,7 +6614,7 @@ makejob(const union node *node, int nprocs) | |
| jp->jobctl = jobctl; | |
| #endif | |
| if (nprocs > 1) { | |
| - | jp->ps = ckmalloc(nprocs * sizeof (struct procstat)); |
| + | jp->ps = xmalloc(nprocs * sizeof (struct procstat)); |
| } else { | |
| jp->ps = &jp->ps0; | |
| } | |
| @@ -7507,7 +7406,7 @@ commandtext(const union node *n) | |
| { | |
| char *name; | |
| - | cmdnextc = name = ckmalloc(MAXCMDTEXT); |
| + | cmdnextc = name = xmalloc(MAXCMDTEXT); |
| cmdnleft = MAXCMDTEXT - 4; | |
| cmdtxt(n); | |
| *cmdnextc = '\0'; | |
| @@ -7606,9 +7505,7 @@ static void procargs (int, char **); | |
| */ | |
| int | |
| - | ash_main(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | ash_main(int argc, char **argv) |
| { | |
| struct jmploc jmploc; | |
| struct stackmark smark; | |
| @@ -7788,8 +7685,7 @@ cmdloop(int top) | |
| */ | |
| static void | |
| - | read_profile(name) |
| - | const char *name; |
| + | read_profile(const char *name) |
| { | |
| int fd; | |
| int xflag_save; | |
| @@ -7870,16 +7766,14 @@ find_dot_file(char *mybasename) | |
| } | |
| static int | |
| - | dotcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | dotcmd(int argc, char **argv) |
| { | |
| struct strlist *sp; | |
| volatile struct shparam saveparam; | |
| exitstatus = 0; | |
| for (sp = cmdenviron; sp ; sp = sp->next) | |
| - | setvareq(savestr(sp->text), VSTRFIXED|VTEXTFIXED); |
| + | setvareq(xstrdup(sp->text), VSTRFIXED|VTEXTFIXED); |
| if (argc >= 2) { /* That's what SVR2 does */ | |
| char *fullname; | |
| @@ -7912,9 +7806,7 @@ dotcmd(argc, argv) | |
| static int | |
| - | exitcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | exitcmd(int argc, char **argv) |
| { | |
| if (stoppedjobs()) | |
| return 0; | |
| @@ -7940,7 +7832,7 @@ stalloc(int nbytes) | |
| if (blocksize < MINSIZE) | |
| blocksize = MINSIZE; | |
| INTOFF; | |
| - | sp = ckmalloc(sizeof(struct stack_block) - MINSIZE + blocksize); |
| + | sp = xmalloc(sizeof(struct stack_block) - MINSIZE + blocksize); |
| sp->prev = stackp; | |
| stacknxt = sp->space; | |
| stacknleft = blocksize; | |
| @@ -8024,7 +7916,7 @@ growstackblock(void) { | |
| oldstackp = stackp; | |
| sp = stackp; | |
| stackp = sp->prev; | |
| - | sp = ckrealloc((pointer)sp, sizeof(struct stack_block) - MINSIZE + newlen); |
| + | sp = xrealloc((pointer)sp, sizeof(struct stack_block) - MINSIZE + newlen); |
| sp->prev = stackp; | |
| stackp = sp; | |
| stacknxt = sp->space; | |
| @@ -8225,9 +8117,7 @@ readcmd(int argc, char **argv) | |
| static int | |
| - | umaskcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | umaskcmd(int argc, char **argv) |
| { | |
| static const char permuser[3] = "ugo"; | |
| static const char permmode[3] = "rwx"; | |
| @@ -8345,9 +8235,7 @@ static const struct limits limits[] = { | |
| }; | |
| static int | |
| - | ulimitcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | ulimitcmd(int argc, char **argv) |
| { | |
| static const char unlimited_string[] = "unlimited"; | |
| int c; | |
| @@ -8530,7 +8418,8 @@ number(const char *s) | |
| */ | |
| static char * | |
| - | single_quote(const char *s) { |
| + | single_quote(const char *s) |
| + | { |
| char *p; | |
| STARTSTACKSTR(p); | |
| @@ -8594,7 +8483,7 @@ sstrdup(const char *p) | |
| static void sizenodelist (const struct nodelist *); | |
| static struct nodelist *copynodelist (const struct nodelist *); | |
| - | static char *nodesavestr (const char *); |
| + | static char *nodexstrdup (const char *); |
| #define CALCSIZE_TABLE | |
| #define COPYNODE_TABLE | |
| @@ -8736,7 +8625,7 @@ copynode(const union node *n) | |
| if (!(*p & NODE_MBRMASK)) { /* standard node */ | |
| *((union node **)nn) = copynode(*((const union node **) no)); | |
| } else if ((*p & NODE_MBRMASK) == NODE_CHARPTR) { /* string */ | |
| - | *((const char **)nn) = nodesavestr(*((const char **)no)); |
| + | *((const char **)nn) = nodexstrdup(*((const char **)no)); |
| } else if (*p & NODE_NODELIST) { /* nodelist */ | |
| *((struct nodelist **)nn) | |
| = copynodelist(*((const struct nodelist **) no)); | |
| @@ -8787,7 +8676,7 @@ copynode(const union node *n) | |
| new->nif.test = copynode(n->nif.test); | |
| break; | |
| case NFOR: | |
| - | new->nfor.var = nodesavestr(n->nfor.var); |
| + | new->nfor.var = nodexstrdup(n->nfor.var); |
| new->nfor.body = copynode(n->nfor.body); | |
| new->nfor.args = copynode(n->nfor.args); | |
| break; | |
| @@ -8803,7 +8692,7 @@ copynode(const union node *n) | |
| case NDEFUN: | |
| case NARG: | |
| new->narg.backquote = copynodelist(n->narg.backquote); | |
| - | new->narg.text = nodesavestr(n->narg.text); |
| + | new->narg.text = nodexstrdup(n->narg.text); |
| new->narg.next = copynode(n->narg.next); | |
| break; | |
| case NTO: | |
| @@ -8971,7 +8860,7 @@ copynodelist(const struct nodelist *lp) | |
| static char * | |
| - | nodesavestr(const char *s) |
| + | nodexstrdup(const char *s) |
| { | |
| const char *p = s; | |
| char *q = funcstring; | |
| @@ -8993,9 +8882,7 @@ static int getopts (char *, char *, char **, int *, int *); | |
| */ | |
| static void | |
| - | procargs(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | procargs(int argc, char **argv) |
| { | |
| int i; | |
| @@ -9154,9 +9041,9 @@ setparam(char **argv) | |
| int nparam; | |
| for (nparam = 0 ; argv[nparam] ; nparam++); | |
| - | ap = newparam = ckmalloc((nparam + 1) * sizeof *ap); |
| + | ap = newparam = xmalloc((nparam + 1) * sizeof *ap); |
| while (*argv) { | |
| - | *ap++ = savestr(*argv++); |
| + | *ap++ = xstrdup(*argv++); |
| } | |
| *ap = NULL; | |
| freeparam(&shellparam); | |
| @@ -9191,9 +9078,7 @@ freeparam(volatile struct shparam *param) | |
| */ | |
| static int | |
| - | shiftcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | shiftcmd(int argc, char **argv) |
| { | |
| int n; | |
| char **ap1, **ap2; | |
| @@ -9224,9 +9109,7 @@ shiftcmd(argc, argv) | |
| */ | |
| static int | |
| - | setcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | setcmd(int argc, char **argv) |
| { | |
| if (argc == 1) | |
| return showvarscmd(argc, argv); | |
| @@ -9272,9 +9155,7 @@ static void change_lc_ctype(const char *value) | |
| */ | |
| static int | |
| - | getoptscmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | getoptscmd(int argc, char **argv) |
| { | |
| char **optbase; | |
| @@ -9304,9 +9185,7 @@ getoptscmd(argc, argv) | |
| */ | |
| static int | |
| - | setvarsafe(name, val, flags) |
| - | const char *name, *val; |
| - | int flags; |
| + | setvarsafe(const char *name, const char *val, int flags) |
| { | |
| struct jmploc jmploc; | |
| struct jmploc *volatile savehandler = handler; | |
| @@ -9326,12 +9205,7 @@ setvarsafe(name, val, flags) | |
| } | |
| static int | |
| - | getopts(optstr, optvar, optfirst, myoptind, optoff) |
| - | char *optstr; |
| - | char *optvar; |
| - | char **optfirst; |
| - | int *myoptind; |
| - | int *optoff; |
| + | getopts(char *optstr, char *optvar, char **optfirst, int *myoptind, int *optoff) |
| { | |
| char *p, *q; | |
| char c = '?'; | |
| @@ -9591,8 +9465,7 @@ parsecmd(int interact) | |
| static union node * | |
| - | list(nlflag) |
| - | int nlflag; |
| + | list(int nlflag) |
| { | |
| union node *n1, *n2, *n3; | |
| int tok; | |
| @@ -10853,7 +10726,7 @@ parsebackq: { | |
| str = NULL; | |
| savelen = out - stackblock(); | |
| if (savelen > 0) { | |
| - | str = ckmalloc(savelen); |
| + | str = xmalloc(savelen); |
| memcpy(str, stackblock(), savelen); | |
| } | |
| savehandler = handler; | |
| @@ -11012,9 +10885,8 @@ parsearith: { | |
| */ | |
| static int | |
| - | noexpand(text) |
| - | char *text; |
| - | { |
| + | noexpand(char *text) |
| + | { |
| char *p; | |
| char c; | |
| @@ -11059,8 +10931,7 @@ goodname(const char *name) | |
| */ | |
| static void | |
| - | synexpect(token) |
| - | int token; |
| + | synexpect(int token) |
| { | |
| char msg[64]; | |
| int l; | |
| @@ -11308,7 +11179,7 @@ redirect(union node *redir, int flags) | |
| int fd1dup = flags & REDIR_BACKQ;; /* stdout `cmd` redir to pipe */ | |
| if (flags & REDIR_PUSH) { | |
| - | sv = ckmalloc(sizeof (struct redirtab)); |
| + | sv = xmalloc(sizeof (struct redirtab)); |
| for (i = 0 ; i < 10 ; i++) | |
| sv->renamed[i] = EMPTY; | |
| sv->next = redirlist; | |
| @@ -11440,9 +11311,7 @@ clearredir(void) { | |
| */ | |
| static int | |
| - | dup_as_newfd(from, to) |
| - | int from; |
| - | int to; |
| + | dup_as_newfd(int from, int to) |
| { | |
| int newfd; | |
| @@ -11477,11 +11346,7 @@ showtree(n) | |
| static void | |
| - | shtree(n, ind, pfx, fp) |
| - | union node *n; |
| - | int ind; |
| - | char *pfx; |
| - | FILE *fp; |
| + | shtree(union node *n, int ind, char *pfx, FILE *fp) |
| { | |
| struct nodelist *lp; | |
| const char *s; | |
| @@ -11532,9 +11397,7 @@ binop: | |
| static void | |
| - | shcmd(cmd, fp) |
| - | union node *cmd; |
| - | FILE *fp; |
| + | shcmd(union node *cmd, FILE *fp) |
| { | |
| union node *np; | |
| int first; | |
| @@ -11585,10 +11448,8 @@ shcmd(cmd, fp) | |
| } | |
| static void | |
| - | sharg(arg, fp) |
| - | union node *arg; |
| - | FILE *fp; |
| - | { |
| + | sharg(union node *arg, FILE *fp) |
| + | { |
| char *p; | |
| struct nodelist *bqlist; | |
| int subtype; | |
| @@ -11672,10 +11533,7 @@ sharg(arg, fp) | |
| static void | |
| - | indent(amount, pfx, fp) |
| - | int amount; |
| - | char *pfx; |
| - | FILE *fp; |
| + | indent(int amount, char *pfx, FILE *fp) |
| { | |
| int i; | |
| @@ -11697,8 +11555,7 @@ static int debug = 0; | |
| static void | |
| - | trputc(c) |
| - | int c; |
| + | trputc(int c) |
| { | |
| if (tracefile == NULL) | |
| return; | |
| @@ -11722,8 +11579,7 @@ trace(const char *fmt, ...) | |
| static void | |
| - | trputs(s) |
| - | const char *s; |
| + | trputs(const char *s) |
| { | |
| if (tracefile == NULL) | |
| return; | |
| @@ -11734,8 +11590,7 @@ trputs(s) | |
| static void | |
| - | trstring(s) |
| - | char *s; |
| + | trstring(char *s) |
| { | |
| char *p; | |
| char c; | |
| @@ -11775,8 +11630,7 @@ backslash: putc('\\', tracefile); | |
| static void | |
| - | trargs(ap) |
| - | char **ap; |
| + | trargs(char **ap) |
| { | |
| if (tracefile == NULL) | |
| return; | |
| @@ -11792,7 +11646,8 @@ trargs(ap) | |
| static void | |
| - | opentrace() { |
| + | opentrace() |
| + | { |
| char s[100]; | |
| #ifdef O_APPEND | |
| int flags; | |
| @@ -11832,9 +11687,7 @@ opentrace() { | |
| */ | |
| static int | |
| - | trapcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | trapcmd(int argc, char **argv) |
| { | |
| char *action; | |
| char **ap; | |
| @@ -11871,7 +11724,7 @@ trapcmd(argc, argv) | |
| if (action[0] == '-' && action[1] == '\0') | |
| action = NULL; | |
| else | |
| - | action = savestr(action); |
| + | action = xstrdup(action); |
| } | |
| if (trap[signo]) | |
| ckfree(trap[signo]); | |
| @@ -11974,8 +11827,7 @@ setsignal(int signo) | |
| */ | |
| static void | |
| - | ignoresig(signo) |
| - | int signo; |
| + | ignoresig(int signo) |
| { | |
| if (sigmode[signo - 1] != S_IGN && sigmode[signo - 1] != S_HARD_IGN) { | |
| signal(signo, SIG_IGN); | |
| @@ -12113,9 +11965,7 @@ initvar() { | |
| */ | |
| static void | |
| - | setvar(name, val, flags) |
| - | const char *name, *val; |
| - | int flags; |
| + | setvar(const char *name, const char *val, int flags) |
| { | |
| const char *p; | |
| int len; | |
| @@ -12147,7 +11997,7 @@ setvar(name, val, flags) | |
| len += vallen = strlen(val); | |
| } | |
| INTOFF; | |
| - | nameeq = ckmalloc(len); |
| + | nameeq = xmalloc(len); |
| memcpy(nameeq, name, namelen); | |
| nameeq[namelen] = '='; | |
| if (val) { | |
| @@ -12169,9 +12019,7 @@ setvar(name, val, flags) | |
| */ | |
| static void | |
| - | setvareq(s, flags) |
| - | char *s; |
| - | int flags; |
| + | setvareq(char *s, int flags) |
| { | |
| struct var *vp, **vpp; | |
| @@ -12206,7 +12054,7 @@ setvareq(s, flags) | |
| return; | |
| } | |
| /* not found */ | |
| - | vp = ckmalloc(sizeof (*vp)); |
| + | vp = xmalloc(sizeof (*vp)); |
| vp->flags = flags; | |
| vp->text = s; | |
| vp->next = *vpp; | |
| @@ -12221,14 +12069,13 @@ setvareq(s, flags) | |
| */ | |
| static void | |
| - | listsetvar(mylist) |
| - | struct strlist *mylist; |
| - | { |
| + | listsetvar(struct strlist *mylist) |
| + | { |
| struct strlist *lp; | |
| INTOFF; | |
| for (lp = mylist ; lp ; lp = lp->next) { | |
| - | setvareq(savestr(lp->text), 0); |
| + | setvareq(xstrdup(lp->text), 0); |
| } | |
| INTON; | |
| } | |
| @@ -12240,8 +12087,7 @@ listsetvar(mylist) | |
| */ | |
| static const char * | |
| - | lookupvar(name) |
| - | const char *name; |
| + | lookupvar(const char *name) |
| { | |
| struct var *v; | |
| @@ -12322,7 +12168,7 @@ shprocvar(void) { | |
| ckfree(vp); | |
| } else { | |
| if (vp->flags & VSTACK) { | |
| - | vp->text = savestr(vp->text); |
| + | vp->text = xstrdup(vp->text); |
| vp->flags &=~ VSTACK; | |
| } | |
| prev = &vp->next; | |
| @@ -12341,9 +12187,7 @@ shprocvar(void) { | |
| */ | |
| static int | |
| - | showvarscmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | showvarscmd(int argc, char **argv) |
| { | |
| showvars(nullstr, VUNSET, VUNSET); | |
| return 0; | |
| @@ -12356,9 +12200,7 @@ showvarscmd(argc, argv) | |
| */ | |
| static int | |
| - | exportcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | exportcmd(int argc, char **argv) |
| { | |
| struct var *vp; | |
| char *name; | |
| @@ -12395,9 +12237,7 @@ found:; | |
| /* funcnest nonzero if we are currently evaluating a function */ | |
| static int | |
| - | localcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | localcmd(int argc, char **argv) |
| { | |
| char *name; | |
| @@ -12418,18 +12258,17 @@ localcmd(argc, argv) | |
| */ | |
| static void | |
| - | mklocal(name) |
| - | char *name; |
| - | { |
| + | mklocal(char *name) |
| + | { |
| struct localvar *lvp; | |
| struct var **vpp; | |
| struct var *vp; | |
| INTOFF; | |
| - | lvp = ckmalloc(sizeof (struct localvar)); |
| + | lvp = xmalloc(sizeof (struct localvar)); |
| if (name[0] == '-' && name[1] == '\0') { | |
| char *p; | |
| - | p = ckmalloc(sizeof optet_vals); |
| + | p = xmalloc(sizeof optet_vals); |
| lvp->text = memcpy(p, optet_vals, sizeof optet_vals); | |
| vp = NULL; | |
| } else { | |
| @@ -12437,7 +12276,7 @@ mklocal(name) | |
| vp = *findvar(vpp, name); | |
| if (vp == NULL) { | |
| if (strchr(name, '=')) | |
| - | setvareq(savestr(name), VSTRFIXED); |
| + | setvareq(xstrdup(name), VSTRFIXED); |
| else | |
| setvar(name, NULL, VSTRFIXED); | |
| vp = *vpp; /* the new variable */ | |
| @@ -12448,7 +12287,7 @@ mklocal(name) | |
| lvp->flags = vp->flags; | |
| vp->flags |= VSTRFIXED|VTEXTFIXED; | |
| if (strchr(name, '=')) | |
| - | setvareq(savestr(name), 0); |
| + | setvareq(xstrdup(name), 0); |
| } | |
| } | |
| lvp->vp = vp; | |
| @@ -12487,9 +12326,7 @@ poplocalvars() { | |
| static int | |
| - | setvarcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | setvarcmd(int argc, char **argv) |
| { | |
| if (argc <= 2) | |
| return unsetcmd(argc, argv); | |
| @@ -12508,9 +12345,7 @@ setvarcmd(argc, argv) | |
| */ | |
| static int | |
| - | unsetcmd(argc, argv) |
| - | int argc; |
| - | char **argv; |
| + | unsetcmd(int argc, char **argv) |
| { | |
| char **ap; | |
| int i; | |
| @@ -12646,7 +12481,7 @@ findvar(struct var **vpp, const char *name) | |
| /* | |
| * Copyright (c) 1999 Herbert Xu <[email protected]> | |
| * This file contains code for the times builtin. | |
| - | * $Id: ash.c,v 1.36 2001/11/12 16:57:26 kraai Exp $ |
| + | * $Id: ash.c,v 1.37 2001/12/06 03:37:38 aaronl Exp $ |
| */ | |
| static int timescmd (int argc, char **argv) | |
| { | |
| @@ -12695,7 +12530,7 @@ int letcmd(int argc, char **argv) | |
| return 0; | |
| } | |
| snprintf(p, 12, "%ld", result); | |
| - | setvar(argv[1], savestr(p), 0); |
| + | setvar(argv[1], xstrdup(p), 0); |
| } else if (argc >= 3) | |
| synerror("invalid operand"); | |
| return !result; | |