add manual page, cleanup
[unix-history] / usr / src / old / sh / word.c
index 7a295e7..b9d1605 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char sccsid[] = "@(#)word.c     4.3 %G%";
+static char sccsid[] = "@(#)word.c     4.7 %G%";
 #endif
 
 #
 #endif
 
 #
@@ -22,13 +22,15 @@ word()
 {
        REG CHAR        c, d;
        REG CHAR        *argp=locstak()+BYTESPERWORD;
 {
        REG CHAR        c, d;
        REG CHAR        *argp=locstak()+BYTESPERWORD;
+       REG ARGPTR      ap;
        INT             alpha=1;
 
        wdnum=0; wdset=0;
 
        WHILE (c=nextc(0), space(c)) DONE
 
        INT             alpha=1;
 
        wdnum=0; wdset=0;
 
        WHILE (c=nextc(0), space(c)) DONE
 
-       IF c=='#'
+       IF c=='#' ANDF ((flags&prompt)==0 ORF ((flags&ttyflg) ANDF
+           standin->fstak!=0))
        THEN    WHILE (c=readc()) ANDF c!=NL DONE
        FI
 
        THEN    WHILE (c=readc()) ANDF c!=NL DONE
        FI
 
@@ -49,15 +51,15 @@ word()
                                FI
                        FI
                PER (c=nextc(0), !eofmeta(c)) DONE
                                FI
                        FI
                PER (c=nextc(0), !eofmeta(c)) DONE
-               argp=endstak(argp);
-               IF !letter(argp->argval[0]) THEN wdset=0 FI
+               ap=(ARGPTR)endstak(argp);
+               IF !letter(ap->argval[0]) THEN wdset=0 FI
 
                peekc=c|MARK;
 
                peekc=c|MARK;
-               IF argp->argval[1]==0 ANDF (d=argp->argval[0], digit(d)) ANDF (c=='>' ORF c=='<')
+               IF ap->argval[1]==0 ANDF (d=ap->argval[0], digit(d)) ANDF (c=='>' ORF c=='<')
                THEN    word(); wdnum=d-'0';
                ELSE    /*check for reserved words*/
                THEN    word(); wdnum=d-'0';
                ELSE    /*check for reserved words*/
-                       IF reserv==FALSE ORF (wdval=syslook(argp->argval,reserved))==0
-                       THEN    wdarg=argp; wdval=0;
+                       IF reserv==FALSE ORF (wdval=syslook(ap->argval,reserved))==0
+                       THEN    wdarg=ap; wdval=0;
                        FI
                FI
 
                        FI
                FI