]> Zhao Yanbai Git Server - minix.git/commitdiff
Make sure that line editing is disabled when the shell is not connected to a
authorPhilip Homburg <philip@cs.vu.nl>
Mon, 29 May 2006 13:20:28 +0000 (13:20 +0000)
committerPhilip Homburg <philip@cs.vu.nl>
Mon, 29 May 2006 13:20:28 +0000 (13:20 +0000)
tty.

commands/ash/input.c
commands/ash/options.c
commands/ash/options.h
commands/ash/parser.c

index c44b4a87c5b8f7e5f6a4e4984881d9740fbe5784..251232aa200329f5d2825f6e45db167728342d70 100755 (executable)
@@ -200,7 +200,7 @@ preadfd(void)
 retry:
 #ifndef NO_HISTORY
 #ifdef EDITLINE
-       if (parsefile->fd == 0) {
+       if (parsefile->fd == 0 && editable) {
                static const char *rl_cp= NULL;
                static size_t rl_off= 0;
 
@@ -561,5 +561,5 @@ closescript(void)
 }
 
 /*
- * $PchId: input.c,v 1.6 2006/05/23 12:00:32 philip Exp $
+ * $PchId: input.c,v 1.7 2006/05/29 13:09:38 philip Exp $
  */
index 6109f1a993bce5d75025dc3deed0e2a81b0a1fdf..5b8706d0389b799f7800a34ef843f519e07e09db 100755 (executable)
@@ -68,6 +68,7 @@ struct shparam shellparam;    /* current positional parameters */
 char **argptr;                 /* argument list for builtin commands */
 char *shoptarg;                        /* set by nextopt (like getopt) */
 char *optptr;                  /* used by nextopt */
+int editable;                  /* isatty(0) && isatty(1) */ 
 
 char *minusc;                  /* argument to -c option */
 
@@ -96,7 +97,8 @@ procargs(int argc, char **argv)
        options(1);
        if (*argptr == NULL && minusc == NULL)
                sflag = 1;
-       if (iflag == 2 && sflag == 1 && isatty(0) && isatty(1))
+       editable = (isatty(0) && isatty(1));
+       if (iflag == 2 && sflag == 1 && editable)
                iflag = 1;
        if (mflag == 2)
                mflag = iflag;
@@ -540,5 +542,5 @@ nextopt(char *optstring)
 }
 
 /*
- * $PchId: options.c,v 1.5 2006/05/22 12:23:10 philip Exp $
+ * $PchId: options.c,v 1.6 2006/05/29 13:09:12 philip Exp $
  */
index 27b461a880d32581f989facb9a051a723e5594a1..de1a55eba5e43af02dd6daaab822bb4eacd1fea1 100755 (executable)
@@ -103,6 +103,7 @@ extern struct shparam shellparam;  /* $@ */
 extern char **argptr;          /* argument list for builtin commands */
 extern char *shoptarg;         /* set by nextopt */
 extern char *optptr;           /* used by nextopt */
+extern int editable;           /* isatty(0) && isatty(1) */ 
 
 void procargs(int, char **);
 void optschanged(void);
@@ -115,5 +116,5 @@ int nextopt(char *);
 void getoptsreset(const char *);
 
 /*
- * $PchId: options.h,v 1.4 2006/03/29 15:37:43 philip Exp $
+ * $PchId: options.h,v 1.5 2006/05/29 13:08:45 philip Exp $
  */
index d837829ff99c88406533d53a9652d896410e0c51..23375e4a7b788ee9be17df29beb59c644c6316d6 100755 (executable)
@@ -1555,12 +1555,14 @@ setprompt(int which)
 {
        whichprompt = which;
 
-#ifndef EDITLINE
 #ifndef NO_HISTORY
+#ifdef EDITLINE
+       if (!editable)
+#else
        if (!el)
-#endif
-               out2str(getprompt(NULL));
 #endif /* EDITLINE */
+#endif /* !NO_HISTORY */
+               out2str(getprompt(NULL));
 }
 
 /*
@@ -1672,5 +1674,5 @@ getprompt(void *unused __unused)
 }
 
 /*
- * $PchId: parser.c,v 1.5 2006/05/22 12:27:09 philip Exp $
+ * $PchId: parser.c,v 1.6 2006/05/29 13:08:11 philip Exp $
  */