diff options
author | jilles <jilles@FreeBSD.org> | 2010-04-05 14:15:51 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2010-04-05 14:15:51 +0000 |
commit | f43d9cd1711a47fa152591bb0cd6dfaba4bf49aa (patch) | |
tree | f74711fe0adf0b6526051ddc49a0fb496ffd8603 | |
parent | f3678f9f9c67b47c27d072971dc36f1f26c88301 (diff) | |
download | FreeBSD-src-f43d9cd1711a47fa152591bb0cd6dfaba4bf49aa.zip FreeBSD-src-f43d9cd1711a47fa152591bb0cd6dfaba4bf49aa.tar.gz |
sh: Automatically enable -o emacs in interactive shells with terminals.
This makes sh a bit more friendly in single user mode, make buildenv, chroot
and the like, and matches other shells.
The -o emacs can be overridden on the command line or in the ENV file.
-rw-r--r-- | bin/sh/options.c | 5 | ||||
-rw-r--r-- | bin/sh/sh.1 | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/bin/sh/options.c b/bin/sh/options.c index bde96aa..3baeccc 100644 --- a/bin/sh/options.c +++ b/bin/sh/options.c @@ -93,8 +93,11 @@ procargs(int argc, char **argv) options(1); if (*argptr == NULL && minusc == NULL) sflag = 1; - if (iflag == 2 && sflag == 1 && isatty(0) && isatty(1)) + if (iflag != 0 && sflag == 1 && isatty(0) && isatty(1)) { iflag = 1; + if (Eflag == 2) + Eflag = 1; + } if (mflag == 2) mflag = iflag; for (i = 0; i < NOPTS; i++) diff --git a/bin/sh/sh.1 b/bin/sh/sh.1 index e577c66..1f74992 100644 --- a/bin/sh/sh.1 +++ b/bin/sh/sh.1 @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd April 4, 2010 +.Dd April 5, 2010 .Dt SH 1 .Os .Sh NAME @@ -210,7 +210,8 @@ Enable the built-in .Xr emacs 1 command line editor (disables the .Fl V -option if it has been set). +option if it has been set; +set automatically when interactive on terminals). .It Fl e Li errexit Exit immediately if any untested command fails in non-interactive mode. The exit status of a command is considered to be |