and, finally for today, fixup the “set -x” mess I made
This commit is contained in:
parent
5571430281
commit
5f5393b4f1
23
check.t
23
check.t
@ -1,4 +1,4 @@
|
|||||||
# $MirOS: src/bin/mksh/check.t,v 1.605 2013/04/01 02:37:47 tg Exp $
|
# $MirOS: src/bin/mksh/check.t,v 1.606 2013/04/26 19:40:42 tg Exp $
|
||||||
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas 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: 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 $
|
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
||||||
@ -29,7 +29,7 @@
|
|||||||
# http://www.freebsd.org/cgi/cvsweb.cgi/src/tools/regression/bin/test/regress.sh?rev=HEAD
|
# http://www.freebsd.org/cgi/cvsweb.cgi/src/tools/regression/bin/test/regress.sh?rev=HEAD
|
||||||
|
|
||||||
expected-stdout:
|
expected-stdout:
|
||||||
@(#)MIRBSD KSH R44 2013/03/31
|
@(#)MIRBSD KSH R44 2013/04/26
|
||||||
description:
|
description:
|
||||||
Check version of shell.
|
Check version of shell.
|
||||||
stdin:
|
stdin:
|
||||||
@ -38,7 +38,7 @@ name: KSH_VERSION
|
|||||||
category: shell:legacy-no
|
category: shell:legacy-no
|
||||||
---
|
---
|
||||||
expected-stdout:
|
expected-stdout:
|
||||||
@(#)LEGACY KSH R44 2013/03/31
|
@(#)LEGACY KSH R44 2013/04/26
|
||||||
description:
|
description:
|
||||||
Check version of legacy shell.
|
Check version of legacy shell.
|
||||||
stdin:
|
stdin:
|
||||||
@ -3920,6 +3920,13 @@ expected-stdout:
|
|||||||
s:-9223372036854775808.-1.0.
|
s:-9223372036854775808.-1.0.
|
||||||
u:9223372036854775808.18446744073709551615.0.
|
u:9223372036854775808.18446744073709551615.0.
|
||||||
---
|
---
|
||||||
|
name: integer-size-FAIL-to-detect
|
||||||
|
description:
|
||||||
|
Notify the user that their ints are not 32 or 64 bit
|
||||||
|
category: int:u
|
||||||
|
stdin:
|
||||||
|
:
|
||||||
|
---
|
||||||
name: lineno-stdin
|
name: lineno-stdin
|
||||||
description:
|
description:
|
||||||
See if $LINENO is updated and can be modified.
|
See if $LINENO is updated and can be modified.
|
||||||
@ -5665,8 +5672,8 @@ stdin:
|
|||||||
expected-stdout:
|
expected-stdout:
|
||||||
END
|
END
|
||||||
expected-stderr:
|
expected-stderr:
|
||||||
+ env false
|
+ env false
|
||||||
+ echo END
|
+ echo END
|
||||||
---
|
---
|
||||||
name: exit-err-2
|
name: exit-err-2
|
||||||
description:
|
description:
|
||||||
@ -5685,9 +5692,9 @@ stdin:
|
|||||||
expected-stdout:
|
expected-stdout:
|
||||||
END
|
END
|
||||||
expected-stderr:
|
expected-stderr:
|
||||||
+ env true
|
+ env true
|
||||||
+ env false
|
+ env false
|
||||||
+ echo END
|
+ echo END
|
||||||
---
|
---
|
||||||
name: exit-err-3
|
name: exit-err-3
|
||||||
description:
|
description:
|
||||||
|
34
exec.c
34
exec.c
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#include "sh.h"
|
#include "sh.h"
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.117 2013/03/24 00:56:22 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.118 2013/04/26 19:40:44 tg Exp $");
|
||||||
|
|
||||||
#ifndef MKSH_DEFAULT_EXECSHELL
|
#ifndef MKSH_DEFAULT_EXECSHELL
|
||||||
#define MKSH_DEFAULT_EXECSHELL "/bin/sh"
|
#define MKSH_DEFAULT_EXECSHELL "/bin/sh"
|
||||||
@ -141,8 +141,7 @@ execute(struct op * volatile t,
|
|||||||
if (Flag(FXTRACE)) {
|
if (Flag(FXTRACE)) {
|
||||||
shf_puts(substitute(str_val(global("PS4")), 0),
|
shf_puts(substitute(str_val(global("PS4")), 0),
|
||||||
shl_out);
|
shl_out);
|
||||||
fptreef(shl_out, 0, "%T\n", t);
|
Flag(FXTRACE) = 2;
|
||||||
shf_flush(shl_out);
|
|
||||||
}
|
}
|
||||||
if (ap[0])
|
if (ap[0])
|
||||||
tp = findcom(ap[0], FC_BI|FC_FUNC);
|
tp = findcom(ap[0], FC_BI|FC_FUNC);
|
||||||
@ -333,6 +332,7 @@ execute(struct op * volatile t,
|
|||||||
case TFOR:
|
case TFOR:
|
||||||
case TSELECT: {
|
case TSELECT: {
|
||||||
volatile bool is_first = true;
|
volatile bool is_first = true;
|
||||||
|
|
||||||
ap = (t->vars == NULL) ? e->loc->argv + 1 :
|
ap = (t->vars == NULL) ? e->loc->argv + 1 :
|
||||||
(const char **)eval((const char **)t->vars,
|
(const char **)eval((const char **)t->vars,
|
||||||
DOBLANK | DOGLOB | DOTILDE);
|
DOBLANK | DOGLOB | DOTILDE);
|
||||||
@ -642,12 +642,37 @@ comexec(struct op *t, struct tbl * volatile tp, const char **ap,
|
|||||||
e->loc = l_expand;
|
e->loc = l_expand;
|
||||||
cp = evalstr(t->vars[i], DOASNTILDE);
|
cp = evalstr(t->vars[i], DOASNTILDE);
|
||||||
e->loc = l_assign;
|
e->loc = l_assign;
|
||||||
|
if (Flag(FXTRACE)) {
|
||||||
|
const char *ccp;
|
||||||
|
|
||||||
|
ccp = skip_varname(cp, true);
|
||||||
|
if (*ccp == '+')
|
||||||
|
++ccp;
|
||||||
|
if (*ccp == '=')
|
||||||
|
++ccp;
|
||||||
|
shf_write(cp, ccp - cp, shl_out);
|
||||||
|
print_value_quoted(shl_out, ccp);
|
||||||
|
shf_putc(' ', shl_out);
|
||||||
|
}
|
||||||
/* but assign in there as usual */
|
/* but assign in there as usual */
|
||||||
typeset(cp, type_flags, 0, 0, 0);
|
typeset(cp, type_flags, 0, 0, 0);
|
||||||
if (bourne_function_call && !(type_flags & EXPORT))
|
if (bourne_function_call && !(type_flags & EXPORT))
|
||||||
typeset(cp, LOCAL|LOCAL_COPY|EXPORT, 0, 0, 0);
|
typeset(cp, LOCAL|LOCAL_COPY|EXPORT, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Flag(FXTRACE)) {
|
||||||
|
rv = 0;
|
||||||
|
xtrace_ap_loop:
|
||||||
|
print_value_quoted(shl_out, ap[rv]);
|
||||||
|
if (ap[++rv]) {
|
||||||
|
shf_putc(' ', shl_out);
|
||||||
|
goto xtrace_ap_loop;
|
||||||
|
}
|
||||||
|
shf_putc('\n', shl_out);
|
||||||
|
Flag(FXTRACE) = 1;
|
||||||
|
shf_flush(shl_out);
|
||||||
|
}
|
||||||
|
|
||||||
if ((cp = *ap) == NULL) {
|
if ((cp = *ap) == NULL) {
|
||||||
rv = subst_exstat;
|
rv = subst_exstat;
|
||||||
goto Leave;
|
goto Leave;
|
||||||
@ -1286,6 +1311,9 @@ iosetup(struct ioword *iop, struct tbl *tp)
|
|||||||
iotmp.name = (iotype == IOHERE) ? NULL : cp;
|
iotmp.name = (iotype == IOHERE) ? NULL : cp;
|
||||||
iotmp.flag |= IONAMEXP;
|
iotmp.flag |= IONAMEXP;
|
||||||
|
|
||||||
|
if (Flag(FXTRACE) == 2)
|
||||||
|
fptreef(shl_out, 0, "%R", &iotmp);
|
||||||
|
|
||||||
switch (iotype) {
|
switch (iotype) {
|
||||||
case IOREAD:
|
case IOREAD:
|
||||||
flags = O_RDONLY;
|
flags = O_RDONLY;
|
||||||
|
4
sh.h
4
sh.h
@ -164,9 +164,9 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef EXTERN
|
#ifdef EXTERN
|
||||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.649 2013/04/26 18:27:06 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.650 2013/04/26 19:40:45 tg Exp $");
|
||||||
#endif
|
#endif
|
||||||
#define MKSH_VERSION "R44 2013/03/31"
|
#define MKSH_VERSION "R44 2013/04/26"
|
||||||
|
|
||||||
/* arithmetic types: C implementation */
|
/* arithmetic types: C implementation */
|
||||||
#if !HAVE_CAN_INTTYPES
|
#if !HAVE_CAN_INTTYPES
|
||||||
|
Loading…
x
Reference in New Issue
Block a user