tg
21ee1a8411
prevent indirect recursion loops for namerefs; found by ormaaj, thanks!
2013-05-31 22:47:14 +00:00
tg
1d0409d932
implement VALSUBs
2013-05-02 21:59:54 +00:00
tg
ff42a866e9
implement set -o pipefail
2013-05-02 20:28:15 +00:00
tg
f0f34eb7b6
• Allow setting both -o posix and -o sh (although only in the same
...
command; setting one still unsets the other at first)
• Change subst_exstat to be conformant unless -o sh is set and -o posix isn’t
• In lksh, make subst_exstat (newly) conformant if -o posix
• New MKSH_BINSHPOSIX to accompany MKSH_BINSHREDUCED
• Sync lksh manpage precisely
2013-05-02 20:21:45 +00:00
tg
689c179254
sync and be even more explicit
...
XXX some day, write the *precise* delta of MKSH_LEGACY_MODE into lksh.1
2013-04-27 19:16:27 +00:00
tg
dc94c3d205
after enough complaints by POSIX sh advocates,
...
• make parsing numbers with leading digit-zero as octal independent of
mksh/lksh and dependent on set -o posix; adjust manpages to match
• warn about these changes and why mksh uses 32-bit consistent arithmetics
and point people to lksh for host-long undefined-behaviour arithmetics
• point out, explicitly, that it is *legal* for the operating environment
to make 'print $((2147483647 + 1))' (on a 32-bit system; adjust for a
64-bit system) to run 'rm -rf ~ /' instead
2013-04-27 18:50:25 +00:00
tg
deb4a3bf20
Oh well… this looks well, is done done, and gcc-snapshot doesn’t complain:
...
• correct order of built-in commands; use POSIX special versus “all others”
plus “keeps assignments” as distinction, no longer play POSIX regular vs.
others game; sync manpage
• fix LP#1156707: map (( internally to “let]” which is no valid function
name and so can’t be overridden but is unlikely to be used otherwhere
and not strictly permitted (by POSIX) anyway
• we do not need -Wno-overflow any more, either
• bump to R45
2013-04-26 21:22:50 +00:00
tg
5f5393b4f1
and, finally for today, fixup the “set -x” mess I made
2013-04-26 19:40:45 +00:00
tg
7cce9de0bc
one can’t cast an unsigned int to a signed int portably either, if the value
...
is larger than the positive range of the latter (implementation-defined), so
avoid them in all explicit cases and rearrange stuff and check for it
(I’m gonna have to revise lots more code…)
2013-04-01 02:37:53 +00:00
tg
0f417614dd
ugh, signed >> on negative values is implementation-defined
...
(but, at least, not undefined, and usually right; regress-test for it)
2013-04-01 01:16:37 +00:00
tg
c59707edd8
sync clog
2013-03-30 23:31:04 +00:00
tg
ea657bd4d9
also do not, ever, use &> bashiop in lksh
2013-03-29 17:33:56 +00:00
tg
a3b5e77c6c
disable parsing of &> as GNU bash iop if -o posix or -o sh, based on IRC discussion where jilles(IIRC) pointed out it breaks existing valid scripts
2013-03-24 15:01:50 +00:00
tg
4b2e17b828
• let mksh “set -x” print whole TCOM trees
...
• plug some memory leaks in debug (“set -x”) and warning paths while here
• one from Florian (friend of Natureshadow) for WTF
2013-03-24 00:56:27 +00:00
tg
d7c28d90f9
optimise prefer_cols print_columns display
2013-02-24 14:22:44 +00:00
tg
817aeb8fdb
both mksh(1) and POSIX say: "$@" should always generate multiple words
...
issue in pdksh reported in IRC by engla, thanks!
2013-02-23 20:03:31 +00:00
tg
74e2ef8b0b
one more int → bool; mention “set -o sh” may (on raare OSes) be enabled
...
automatically (and it differs between targets); test MidnightBSD 0.1 ash
compat code and adjust the testsuite so it passes with it enabled
2013-02-19 18:45:22 +00:00
tg
dffb1ab915
put list of check_categories into Makefrag.inc generated; bump patchlevel
2013-02-18 22:55:40 +00:00
tg
b684a7c6bd
backpedal with $'…' and $"…" interpolation
...
it turns out this breaks more legacy scripts than anticipated
2013-02-17 05:40:17 +00:00
tg
ec883318d1
fix too strict fix for LP#1104543 (Debian #700526 )
2013-02-15 18:50:14 +00:00
tg
117bb02e6a
check at least *one* of our “Duff’s Device” heavy occurrences
...
to make sure the compiler doesn’t frag it
2013-02-11 13:06:54 +00:00
tg
fb370a30c6
fix set -e with and/or inside functions regression (LP#1104543)
...
cause was that use of && or || inside function switched it to xerrok
2013-02-10 23:59:28 +00:00
tg
19cbb1ab78
regression test for: return works in funsub (like AT&T ksh93), local works in funsub (like in functions), exit does not work in funsub (sadly unlike ksh93, like in functions)
2013-02-10 23:36:21 +00:00
tg
c95d0ad11e
missed in cid 10050B914D41435E735
2013-02-10 23:32:18 +00:00
tg
af39f3b7b0
do NOT close stdout or stderr, redirect to /dev/null instead
...
⇒ we did have issues with that, trust me…
2013-02-10 19:04:00 +00:00
tg
9111faeeb5
besides more code reuse, fix $'…' everywhere (but keep it ignored in here document bodies that aren’t here strings)
2013-01-19 19:47:13 +00:00
tg
e307cb34c4
use the full parser code for handling here strings (and here document words)
...
as ormaaj requested, including a testcase
2013-01-19 18:32:56 +00:00
tg
2d9a039ec0
ormaaj reported “command shift” not working correctly; fix
2013-01-06 18:51:43 +00:00
tg
d5ba31fd86
fix the set +e cases, too
2013-01-01 22:23:16 +00:00
tg
744f77c668
fix running the ERR and EXIT traps in case of set -e and/or eval (includes Debian #696823 )
2013-01-01 20:45:04 +00:00
tg
0700d45ce6
while thinking about mirlibₘᵢₙc I figured that sys_errlist[] entries may be NULL
2013-01-01 03:32:44 +00:00
tg
23325a3355
just blacklist cd-pe on QNX as well
2012-12-28 07:45:55 +00:00
tg
f40e8b4d3d
QNX 4 oh-so-argh!
2012-12-28 04:29:56 +00:00
tg
a2042321ac
meh, just don’t ever use ls(1) in a test; on some, it shows dotdirs
2012-12-28 04:25:32 +00:00
tg
39682506ff
experimental test rewriting for QNX fun
2012-12-28 04:01:17 +00:00
tg
595f57ebad
mark glob-range-3 as need-pass: no
2012-12-28 03:18:46 +00:00
tg
b2396677e7
harmonise sys_{sig,err}list ⓐ checks, ⓑ uses, ⓒ _decl values when not needed, ⓓ prototypes; ⓔ “const” is a keyword and thus space-separated from the preceding ‘*’ pointer indicator
2012-12-28 02:28:39 +00:00
tg
866635468b
RT says glob-range-3 breaks on QNX nowadays
2012-12-24 14:37:13 +00:00
tg
6d5e27a31a
gcc-snapshot (see below) issued a clobber warning, and both it and mgcc
...
yowled about the memmove test until I found a compromise
gcc version 4.8.0 20121120 (experimental) [trunk revision 193662] (Debian 20121120-1)
2012-12-22 00:03:42 +00:00
tg
ce602be6be
sync clog et al.
2012-12-17 23:46:33 +00:00
tg
c4e88acd83
Correct mistake when doing hashtable lookup collision resolution… oops
2012-12-07 23:46:38 +00:00
tg
98b6cd9b8d
add testcase for basic I/O redir which RT had issues with on Linux 0.11
2012-12-07 23:43:09 +00:00
tg
f654a3dea4
fix libFirm/cparser -Wsign-compare
2012-12-05 19:38:25 +00:00
tg
cf807eb83a
Add assertions and shuffle code around for LLVM+Clang scan-build.
2012-12-04 01:18:34 +00:00
tg
77c4cb88e4
implement tty tracking and bump to R41 for feature completeness
...
• tty_fd is now never closed
• new tty_hasstate tracks tty_state (cf. thread around
http://article.gmane.org/gmane.os.miros.mksh/79 and PLD bug)
• as users requested, importing COLUMNS or LINES from the environment
now removes its special-ness as does unsetting it
• otherwise, setting COLUMNS or LINES is honoured until the next SIGWINCH
arrives or change_winsz is otherwise run (e.g. before displaying the
prompt in the interactive command line editing modes)
• SIGWINCH is now honoured before each reading of $COLUMNS and $LINES too
• change the Uhr to match – it no longer calls stty(1) ☺
2012-11-30 19:25:08 +00:00
tg
cbf1cea38a
sync clog
2012-11-26 23:14:46 +00:00
tg
c9970fb7ba
make regression testsuite once again safe to run with -DMKSH_NOPROSPECTOFWORK
2012-11-25 22:23:31 +00:00
tg
2fc5aa487b
RT tells me Minix 2 (i386) also doesn’t have gettimeofday(2)
2012-11-20 18:50:46 +00:00
tg
68d8d83e67
add checks for ~+ and ~- (inspired by posh change) and bump date,
...
as I’m not likely to continue hacking tonight
2012-11-12 19:13:46 +00:00
tg
b7659199ca
fix a test
2012-11-12 18:48:29 +00:00