diff options
author | peter <peter@FreeBSD.org> | 1996-09-01 10:22:36 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1996-09-01 10:22:36 +0000 |
commit | 5195be912eb257c05a0c97e561e72f01af2583ff (patch) | |
tree | e47ab3981b495c675a987dd1e943d1f4c823f314 /bin/sh/var.c | |
parent | 2fc7d7d1fa299368ccdddede67b31695266698bd (diff) | |
download | FreeBSD-src-5195be912eb257c05a0c97e561e72f01af2583ff.zip FreeBSD-src-5195be912eb257c05a0c97e561e72f01af2583ff.tar.gz |
Merge of 4.4-Lite2 sh source, plus some gcc -Wall cleaning. This is a
merge of parallel duplicate work by Steve Price and myself. :-]
There are some changes to the build that are my fault... mkinit.c was
trying (poorly) to duplicate some of the work that make(1) is designed to
do. The Makefile hackery is my fault too, the depend list was incomplete
because of some explicit OBJS+= entries, so mkdep wasn't picking up their
source file #includes.
This closes a pile of /bin/sh PR's, but not all of them..
Submitted by: Steve Price <steve@bonsai.hiwaay.net>, peter
Diffstat (limited to 'bin/sh/var.c')
-rw-r--r-- | bin/sh/var.c | 63 |
1 files changed, 48 insertions, 15 deletions
diff --git a/bin/sh/var.c b/bin/sh/var.c index e452001..14de566 100644 --- a/bin/sh/var.c +++ b/bin/sh/var.c @@ -33,13 +33,16 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: var.c,v 1.4 1996/08/11 22:51:00 ache Exp $ + * $Id: var.c,v 1.5 1996/08/12 22:14:50 ache Exp $ */ #ifndef lint -static char sccsid[] = "@(#)var.c 8.1 (Berkeley) 5/31/93"; +static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 5/4/95"; #endif /* not lint */ +#include <unistd.h> +#include <stdlib.h> + /* * Shell variables. */ @@ -60,6 +63,9 @@ static char sccsid[] = "@(#)var.c 8.1 (Berkeley) 5/31/93"; #include "memalloc.h" #include "error.h" #include "mystring.h" +#ifndef NO_HISTORY +#include "myhistedit.h" +#endif #define VTABSIZE 39 @@ -75,7 +81,9 @@ struct varinit { #if ATTY struct var vatty; #endif +#ifndef NO_HISTORY struct var vhistsize; +#endif struct var vifs; struct var vmail; struct var vmpath; @@ -91,11 +99,13 @@ const struct varinit varinit[] = { #if ATTY {&vatty, VSTRFIXED|VTEXTFIXED|VUNSET, "ATTY="}, #endif +#ifndef NO_HISTORY {&vhistsize, VSTRFIXED|VTEXTFIXED|VUNSET, "HISTSIZE="}, +#endif {&vifs, VSTRFIXED|VTEXTFIXED, "IFS= \t\n"}, {&vmail, VSTRFIXED|VTEXTFIXED|VUNSET, "MAIL="}, {&vmpath, VSTRFIXED|VTEXTFIXED|VUNSET, "MAILPATH="}, - {&vpath, VSTRFIXED|VTEXTFIXED, "PATH=:/bin:/usr/bin"}, + {&vpath, VSTRFIXED|VTEXTFIXED, "PATH=/bin:/usr/bin"}, /* * vps1 depends on uid */ @@ -173,7 +183,8 @@ initvar() { void setvar(name, val, flags) char *name, *val; - { + int flags; +{ char *p, *q; int len; int namelen; @@ -245,7 +256,8 @@ localevar(s) void setvareq(s, flags) char *s; - { + int flags; +{ struct var *vp, **vpp; vpp = hashvar(s); @@ -265,8 +277,10 @@ setvareq(s, flags) vp->text = s; if (vp == &vmpath || (vp == &vmail && ! mpathset())) chkmail(1); +#ifndef NO_HISTORY if (vp == &vhistsize) sethistsize(); +#endif if ((vp->flags & VEXPORT) && localevar(s)) { putenv(s); (void) setlocale(LC_ALL, ""); @@ -341,7 +355,8 @@ lookupvar(name) char * bltinlookup(name, doall) char *name; - { + int doall; +{ struct strlist *sp; struct var *v; @@ -351,8 +366,8 @@ bltinlookup(name, doall) } for (v = *hashvar(name) ; v ; v = v->next) { if (varequal(v->text, name)) { - if (v->flags & VUNSET - || ! doall && (v->flags & VEXPORT) == 0) + if ((v->flags & VUNSET) + || (!doall && (v->flags & VEXPORT) == 0)) return NULL; return strchr(v->text, '=') + 1; } @@ -439,7 +454,10 @@ shprocvar() { */ int -showvarscmd(argc, argv) char **argv; { +showvarscmd(argc, argv) + int argc; + char **argv; +{ struct var **vpp; struct var *vp; @@ -459,7 +477,10 @@ showvarscmd(argc, argv) char **argv; { */ int -exportcmd(argc, argv) char **argv; { +exportcmd(argc, argv) + int argc; + char **argv; +{ struct var **vpp; struct var *vp; char *name; @@ -506,7 +527,11 @@ found:; * The "local" command. */ -localcmd(argc, argv) char **argv; { +int +localcmd(argc, argv) + int argc; + char **argv; +{ char *name; if (! in_function()) @@ -537,7 +562,7 @@ mklocal(name) lvp = ckmalloc(sizeof (struct localvar)); if (name[0] == '-' && name[1] == '\0') { lvp->text = ckmalloc(sizeof optlist); - bcopy(optlist, lvp->text, sizeof optlist); + memcpy(lvp->text, optlist, sizeof optlist); vp = NULL; } else { vpp = hashvar(name); @@ -578,7 +603,7 @@ poplocalvars() { localvars = lvp->next; vp = lvp->vp; if (vp == NULL) { /* $- saved */ - bcopy(lvp->text, optlist, sizeof optlist); + memcpy(optlist, lvp->text, sizeof optlist); ckfree(lvp->text); } else if ((lvp->flags & (VUNSET|VSTRFIXED)) == VUNSET) { (void)unsetvar(vp->text); @@ -593,7 +618,11 @@ poplocalvars() { } -setvarcmd(argc, argv) char **argv; { +int +setvarcmd(argc, argv) + int argc; + char **argv; +{ if (argc <= 2) return unsetcmd(argc, argv); else if (argc == 3) @@ -610,7 +639,11 @@ setvarcmd(argc, argv) char **argv; { * with the same name. */ -unsetcmd(argc, argv) char **argv; { +int +unsetcmd(argc, argv) + int argc; + char **argv; +{ char **ap; int i; int flg_func = 0; |