diff options
Diffstat (limited to 'system/pdksh/patches/115_OpenBSD-echo-posix.patch')
-rw-r--r-- | system/pdksh/patches/115_OpenBSD-echo-posix.patch | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/system/pdksh/patches/115_OpenBSD-echo-posix.patch b/system/pdksh/patches/115_OpenBSD-echo-posix.patch deleted file mode 100644 index 47a9f37826..0000000000 --- a/system/pdksh/patches/115_OpenBSD-echo-posix.patch +++ /dev/null @@ -1,140 +0,0 @@ -From OpenBSD: - -2009-02-07 15:03 kili - - * c_ksh.c (1.33): - Ensure that *wp isn't NULL. - - ok otto@ - -2009-02-07 08:24 guenther - - * c_ksh.c (1.32), ksh.1 (1.124), sh.1 (1.78): Make built-in echo - behave according to POSIX when set -o posix is in effect: the - only option is -n, and only one of those is parsed. - - diff from Ingo Schwarze ok otto@ kili@; manpage changes ok jmc@ - - -Index: pdksh-5.2.14/c_ksh.c -=================================================================== ---- pdksh-5.2.14.orig/c_ksh.c 2009-09-19 11:22:34.000000000 +0200 -+++ pdksh-5.2.14/c_ksh.c 2009-09-19 12:13:54.000000000 +0200 -@@ -247,23 +247,30 @@ - * by default. - */ - wp += 1; -- while ((s = *wp) && *s == '-' && s[1]) { -- while (*++s) -- if (*s == 'n') -- nflags &= ~PO_NL; -- else if (*s == 'e') -- nflags |= PO_EXPAND; -- else if (*s == 'E') -- nflags &= ~PO_EXPAND; -- else -- /* bad option: don't use nflags, print -- * argument -- */ -+ if (Flag(FPOSIX)) { -+ if (*wp && strcmp(*wp, "-n") == 0) { -+ flags &= ~PO_NL; -+ wp++; -+ } -+ } else { -+ while ((s = *wp) && *s == '-' && s[1]) { -+ while (*++s) -+ if (*s == 'n') -+ nflags &= ~PO_NL; -+ else if (*s == 'e') -+ nflags |= PO_EXPAND; -+ else if (*s == 'E') -+ nflags &= ~PO_EXPAND; -+ else -+ /* bad option: don't use -+ * nflags, print argument -+ */ -+ break; -+ if (*s) - break; -- if (*s) -- break; -- wp++; -- flags = nflags; -+ wp++; -+ flags = nflags; -+ } - } - } else { - int optc; -Index: pdksh-5.2.14/ksh.Man -=================================================================== ---- pdksh-5.2.14.orig/ksh.Man 2009-09-19 11:22:34.000000000 +0200 -+++ pdksh-5.2.14/ksh.Man 2009-09-19 12:13:54.000000000 +0200 -@@ -1521,6 +1521,13 @@ - In future, a new option (\fB\-v\fP perhaps) will be added to distinguish - the two behaviours. - .IP \ \ \(bu -+\fBecho\fP -+options. -+In POSIX mode, \fB\-e\fP and \fB\-E\fP -+are not treated as options, but printed like other arguments; -+in non-POSIX mode, these options control the interpretation -+of backslash sequences. -+.IP \ \ \(bu - \fBfg\fP exit status: in posix mode, the exit status is 0 if no errors occur; - in non-posix mode, the exit status is that of the last foregrounded job. - .IP \ \ \(bu -@@ -1780,6 +1787,9 @@ - \fB\-n\fP suppresses the trailing newline, \fB\-e\fP enables backslash - interpretation (a no-op, since this is normally done), and \fB\-E\fP which - suppresses backslash interpretation. -+If the \fIposix\fP -+option is set, only the first argument is treated as an option, and only -+if it is exactly \fB-n\fP. - .\"}}} - .\"{{{ eval command ... - .IP "\fBeval\fP \fIcommand ...\fP" -Index: pdksh-5.2.14/tests/debian-115.t -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ pdksh-5.2.14/tests/debian-115.t 2009-09-19 12:18:11.000000000 +0200 -@@ -0,0 +1,38 @@ -+name: debian-115-1 -+description: -+ Check if echo does not accept -e in posix mode -+stdin: -+ set -o posix -+ echo -e test -+expected-stdout: -+ -e test -+--- -+name: debian-115-2 -+description: -+ Check if echo accepts -e in non-posix mode -+stdin: -+ set +o posix -+ echo -e test -+expected-stdout: -+ test -+--- -+name: debian-115-3 -+description: -+ Check if echo accepts -n in posix mode -+stdin: -+ set -o posix -+ echo -n test -+ echo " OK" -+expected-stdout: -+ test OK -+--- -+name: debian-115-4 -+description: -+ Check if echo accepts -n in non-posix mode -+stdin: -+ set +o posix -+ echo -n test -+ echo " OK" -+expected-stdout: -+ test OK -+--- |