now we don’t need more special FPOSIX behaviour any more
This commit is contained in:
parent
8c86fedc2d
commit
5468e6ee12
59
check.t
59
check.t
@ -1,4 +1,4 @@
|
||||
# $MirOS: src/bin/mksh/check.t,v 1.145 2008/02/24 22:12:36 tg Exp $
|
||||
# $MirOS: src/bin/mksh/check.t,v 1.146 2008/02/25 00:58:24 tg Exp $
|
||||
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
||||
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
||||
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
||||
@ -4019,10 +4019,11 @@ expected-stdout:
|
||||
suspend='kill -STOP $$'
|
||||
type='whence -v'
|
||||
---
|
||||
name: aliases-2
|
||||
name: aliases-2a
|
||||
description:
|
||||
Check if “set -o posix” disables built-in aliases (except a few)
|
||||
category: pdksh
|
||||
#category: pdksh
|
||||
category: disabled
|
||||
arguments: !-o!posix!
|
||||
stdin:
|
||||
alias
|
||||
@ -4031,10 +4032,11 @@ expected-stdout:
|
||||
integer='typeset -i'
|
||||
local=typeset
|
||||
---
|
||||
name: aliases-3
|
||||
name: aliases-3a
|
||||
description:
|
||||
Check if running as sh disables built-in aliases (except a few)
|
||||
category: pdksh
|
||||
#category: pdksh
|
||||
category: disabled
|
||||
arguments: !-o!posix!
|
||||
stdin:
|
||||
cp "$0" sh
|
||||
@ -4044,6 +4046,53 @@ expected-stdout:
|
||||
integer='typeset -i'
|
||||
local=typeset
|
||||
---
|
||||
name: aliases-2b
|
||||
description:
|
||||
Check if “set -o posix” does not influence built-in aliases
|
||||
category: pdksh
|
||||
arguments: !-o!posix!
|
||||
stdin:
|
||||
alias
|
||||
typeset -f
|
||||
expected-stdout:
|
||||
autoload='typeset -fu'
|
||||
functions='typeset -f'
|
||||
hash='alias -t'
|
||||
history='fc -l'
|
||||
integer='typeset -i'
|
||||
local=typeset
|
||||
login='exec login'
|
||||
nohup='nohup '
|
||||
r='fc -e -'
|
||||
source='PATH=$PATH:. command .'
|
||||
stop='kill -STOP'
|
||||
suspend='kill -STOP $$'
|
||||
type='whence -v'
|
||||
---
|
||||
name: aliases-3b
|
||||
description:
|
||||
Check if running as sh does not influence built-in aliases
|
||||
category: pdksh
|
||||
arguments: !-o!posix!
|
||||
stdin:
|
||||
cp "$0" sh
|
||||
./sh -c 'alias; typeset -f'
|
||||
rm -f sh
|
||||
expected-stdout:
|
||||
autoload='typeset -fu'
|
||||
functions='typeset -f'
|
||||
hash='alias -t'
|
||||
history='fc -l'
|
||||
integer='typeset -i'
|
||||
local=typeset
|
||||
login='exec login'
|
||||
nohup='nohup '
|
||||
r='fc -e -'
|
||||
source='PATH=$PATH:. command .'
|
||||
stop='kill -STOP'
|
||||
suspend='kill -STOP $$'
|
||||
type='whence -v'
|
||||
---
|
||||
name: arrays-1
|
||||
description:
|
||||
Check if Korn Shell arrays work as expected
|
||||
|
31
main.c
31
main.c
@ -13,7 +13,7 @@
|
||||
#include <locale.h>
|
||||
#endif
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.89 2007/10/25 15:23:10 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/main.c,v 1.90 2008/02/25 00:58:26 tg Exp $");
|
||||
|
||||
extern char **environ;
|
||||
|
||||
@ -35,10 +35,6 @@ static const char *initcoms[] = {
|
||||
"typeset", "-i", "PPID", "OPTIND=1", NULL,
|
||||
"eval", "typeset -i RANDOM SECONDS=\"${SECONDS-0}\" TMOUT=\"${TMOUT-0}\"", NULL,
|
||||
"alias", "integer=typeset -i", "local=typeset", NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const char *initcoms_korn[] = {
|
||||
"alias",
|
||||
"hash=alias -t", /* not "alias -t --": hash -r needs to work */
|
||||
"type=whence -v",
|
||||
@ -157,15 +153,6 @@ main(int argc, const char *argv[])
|
||||
/* setstr can't fail here */
|
||||
setstr(vp, def_path, KSH_RETURN_ERROR);
|
||||
|
||||
/* Set FPOSIX if we're called as -sh or /bin/sh or so */
|
||||
cc = kshname;
|
||||
i = 0; argi = 0;
|
||||
while (cc[i] != '\0')
|
||||
if ((cc[i++] | 2) == '/')
|
||||
argi = i;
|
||||
if (((cc[argi] | 0x20) == 's') && ((cc[argi + 1] | 0x20) == 'h'))
|
||||
Flag(FPOSIX) = 1;
|
||||
|
||||
/* Turn on nohup by default for now - will change to off
|
||||
* by default once people are aware of its existence
|
||||
* (at&t ksh does not have a nohup option - it always sends
|
||||
@ -186,6 +173,15 @@ main(int argc, const char *argv[])
|
||||
Flag(FVITABCOMPLETE) = 1;
|
||||
#endif
|
||||
|
||||
/* Set FPOSIX if we're called as -sh or /bin/sh or so */
|
||||
cc = kshname;
|
||||
i = 0; argi = 0;
|
||||
while (cc[i] != '\0')
|
||||
if ((cc[i++] | 2) == '/')
|
||||
argi = i;
|
||||
if (((cc[argi] | 0x20) == 's') && ((cc[argi + 1] | 0x20) == 'h'))
|
||||
change_flag(FPOSIX, OF_FIRSTTIME, 1);
|
||||
|
||||
/* import environment */
|
||||
if (environ != NULL)
|
||||
for (wp = (const char **)environ; *wp != NULL; wp++)
|
||||
@ -256,13 +252,6 @@ main(int argc, const char *argv[])
|
||||
if (argi < 0)
|
||||
exit(1);
|
||||
|
||||
if (!Flag(FPOSIX))
|
||||
for (wp = initcoms_korn; *wp != NULL; wp++) {
|
||||
shcomexec(wp);
|
||||
while (*wp != NULL)
|
||||
wp++;
|
||||
}
|
||||
|
||||
if (Flag(FCOMMAND)) {
|
||||
s = pushs(SSTRING, ATEMP);
|
||||
if (!(s->start = s->str = argv[argi++]))
|
||||
|
14
mksh.1
14
mksh.1
@ -1,7 +1,7 @@
|
||||
.\" $MirOS: src/bin/mksh/mksh.1,v 1.105 2008/02/24 15:48:43 tg Exp $
|
||||
.\" $MirOS: src/bin/mksh/mksh.1,v 1.106 2008/02/25 00:58:26 tg Exp $
|
||||
.\" $OpenBSD: ksh.1,v 1.120 2007/05/31 20:47:44 otto Exp $
|
||||
.\"
|
||||
.Dd October 25, 2007
|
||||
.Dd February 24, 2008
|
||||
.Dt MKSH 1
|
||||
.Os MirBSD
|
||||
.Sh NAME
|
||||
@ -818,13 +818,7 @@ The alias expansion process stops when a word that is not an alias is found,
|
||||
when a quoted word is found, or when an alias word that is currently being
|
||||
expanded is found.
|
||||
.Pp
|
||||
The following command aliases are defined automatically by the shell, unless
|
||||
.Fl o Ic posix
|
||||
is set, in which case only
|
||||
.Dq integer
|
||||
and
|
||||
.Dq local
|
||||
are defined to support existing shell scripts:
|
||||
The following command aliases are defined automatically by the shell:
|
||||
.Bd -literal -offset indent
|
||||
autoload='typeset -fu'
|
||||
functions='typeset -f'
|
||||
@ -5388,7 +5382,7 @@ and many other persons, and is currently maintained by
|
||||
.An Thorsten Glaser Aq tg@mirbsd.de .
|
||||
.Sh BUGS
|
||||
This document attempts to describe
|
||||
.Nm mksh R32
|
||||
.Nm mksh R33
|
||||
and up,
|
||||
compiled without any options impacting functionality, such as
|
||||
.Dv MKSH_SMALL ,
|
||||
|
Loading…
x
Reference in New Issue
Block a user