To solve the incompatibility issues between mksh-current, old mksh versions
and vendor pdksh versions, re-introduce FPOSIX alongside FSH. The semantics are now: ‣ set -o posix ⇒ • disable brace expansion and FSH when triggered • use Debian Policy 10.4 compliant non-XSI “echo” builtin • do not keep file descriptors > 2 to ksh ‣ set -o sh ⇒ • set automatically #ifdef MKSH_BINSHREDUCED • disable brace expansion and FPOSIX when triggered • use Debian Policy 10.4 compliant non-XSI “echo” builtin • do not keep file descriptors > 2 to ksh • trigger MKSH_MIDNIGHTBSD01ASH_COMPAT mode if compiled in • make “set -- $(getopt ab:c "$@")” construct work Note that the set/getopt one used to behave POSIXly only with FSH or FPOSIX (depending on the mksh version) set and Bourne-ish with it not set, so this changes default mksh behaviour to POSIX!
This commit is contained in:
4
main.c
4
main.c
@@ -33,7 +33,7 @@
|
||||
#include <locale.h>
|
||||
#endif
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.160 2010/01/25 14:38:02 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.161 2010/01/28 15:18:48 tg Exp $");
|
||||
|
||||
extern char **environ;
|
||||
|
||||
@@ -322,7 +322,7 @@ mksh_init(int argc, const char *argv[])
|
||||
if (!(s->start = s->str = argv[argi++]))
|
||||
errorf("-c requires an argument");
|
||||
#ifdef MKSH_MIDNIGHTBSD01ASH_COMPAT
|
||||
/* compatibility to MidnightBSD 0.1 /bin/sh (not desired) */
|
||||
/* compatibility to MidnightBSD 0.1 /bin/sh (kludge) */
|
||||
if (Flag(FSH) && argv[argi] && !strcmp(argv[argi], "--"))
|
||||
++argi;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user