BSD 4_3_Tahoe release
[unix-history] / usr / src / bin / csh / sh.c
index 8935c28..ecdeb89 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char *sccsid = "@(#)sh.c        5.3 (Berkeley) 3/29/86";
+static char *sccsid = "@(#)sh.c        5.6 (Berkeley) 5/19/88";
 #endif
 
 #include "sh.h"
 #endif
 
 #include "sh.h"
@@ -434,6 +434,8 @@ srccat(cp, dp)
  * Source to a unit.  If onlyown it must be our file or our group or
  * we don't chance it. This occurs on ".cshrc"s and the like.
  */
  * Source to a unit.  If onlyown it must be our file or our group or
  * we don't chance it. This occurs on ".cshrc"s and the like.
  */
+int    insource;
+static
 srcunit(unit, onlyown, hflg)
        register int unit;
        bool onlyown;
 srcunit(unit, onlyown, hflg)
        register int unit;
        bool onlyown;
@@ -455,7 +457,8 @@ srcunit(unit, onlyown, hflg)
 
        /* The (few) real local variables */
        jmp_buf oldexit;
 
        /* The (few) real local variables */
        jmp_buf oldexit;
-       int reenter, omask;
+       int reenter;
+       long omask;
 
        if (unit < 0)
                return;
 
        if (unit < 0)
                return;
@@ -482,6 +485,7 @@ srcunit(unit, onlyown, hflg)
         * once.  This is less efficient globally on many variable references
         * however.
         */
         * once.  This is less efficient globally on many variable references
         * however.
         */
+       insource = 1;
        getexit(oldexit);
        reenter = 0;
        if (setintr)
        getexit(oldexit);
        reenter = 0;
        if (setintr)
@@ -543,6 +547,7 @@ srcunit(unit, onlyown, hflg)
         */
        if (reenter >= 2)
                error(NOSTR);
         */
        if (reenter >= 2)
                error(NOSTR);
+       insource = 0;
 }
 
 rechist()
 }
 
 rechist()
@@ -626,9 +631,9 @@ pintr1(wantnl)
        bool wantnl;
 {
        register char **v;
        bool wantnl;
 {
        register char **v;
-       int omask;
+       long omask;
 
 
-       omask = sigblock(0);
+       omask = sigblock(0L);
        if (setintr) {
                (void) sigsetmask(omask & ~sigmask(SIGINT));
                if (pjobs) {
        if (setintr) {
                (void) sigsetmask(omask & ~sigmask(SIGINT));
                if (pjobs) {
@@ -692,7 +697,7 @@ process(catch)
                 * Interruptible during interactive reads
                 */
                if (setintr)
                 * Interruptible during interactive reads
                 */
                if (setintr)
-                       (void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
+                       (void) sigsetmask(sigblock(0L) & ~sigmask(SIGINT));
 
                /*
                 * For the sake of reset()
 
                /*
                 * For the sake of reset()
@@ -926,7 +931,7 @@ printprompt()
                        else {
                                if (*cp == '\\' && cp[1] == HIST)
                                        cp++;
                        else {
                                if (*cp == '\\' && cp[1] == HIST)
                                        cp++;
-                               putchar(*cp | QUOTE);
+                               cshputchar(*cp | QUOTE);
                        }
        } else
                /* 
                        }
        } else
                /*