tg
9a8cb6fbf6
why’s there a space before the newline?
2013-02-24 14:10:04 +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
0a3fe06229
another MidnightBSD /bin/sh kludge: classic BSD echo
2013-02-18 22:47:32 +00:00
tg
84189faad4
fix an oversight that allowed invalid variable names to be entered
...
(not even at an increase in code, as I could just move a check and
slightly adapt it)
2013-02-18 22:24:52 +00:00
tg
576b7f21b3
eval is evil
...
Proper quoting is hard
Bugs galore
2013-02-17 15:58:26 +00:00
tg
e141cab1ac
revert cid 10050DD0C8519194AE9 and 100511FC81525949AF7
...
AT&T SVR4 broke 'cc -c -o foo.o foo.c' totally
switch to an alternative method of finding out the prototypes
provided in IRC by dalias (thanks); RT says this fixes his
issues on SVR4 – let’s just ignore the ominous message from
cid 1004713D70A5362BACF about needing to be a compile-time
check unless something else pops up, I can’t think of something
that isn’t already covered
2013-02-17 07:06:15 +00:00
tg
e21a2166f7
use a different approach to the $"…" problem:
...
take the states that may open a string, only permit them by virtue of
moving the code out of Subst: to handle $+" and $+' at all; then add
S[Q]BRACE to that
side benefits:
• clearer, cleaner code flow
• smaller code
• better “business logic” ☺
• defuses one heavy use of duff’s device a bit
2013-02-17 06:05:02 +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
47f8a21e3c
SVR4 cc doesn’t like -c -o conftest.o when conftest.o already exists:
...
it errors out with “-o would overwrite conftest.o” (thanks RT for reporting)
2013-02-16 17:55:51 +00:00
tg
85d7059c48
… I fsck’d up and built R42b from MAIN ipv mksh-R42stable… oh well.
...
TODO: convert enum to something like uint8_t to save even more space
2013-02-16 00:21:57 +00:00
tg
ec883318d1
fix too strict fix for LP#1104543 (Debian #700526 )
2013-02-15 18:50:14 +00:00
tg
12f0ff60d2
prevent more access to invalid memories (Debian #700604 )
2013-02-15 18:36:48 +00:00
tg
2c76875ea3
• Document invalid ${a/b/c} patterns in manpage (Debian #698678 )
...
• add speed hints and misc improvements; bump version
2013-02-11 17:17:59 +00:00
tg
6b797a7bc8
• test.sh now is -v (verbose) by default, new option -Q to quieten (like Build.sh)
...
• test.sh handles +P, +Q, +S, +v properly
2013-02-11 16:27:56 +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
63cf38eca7
sync description for funsubs
2013-02-10 23:58:19 +00:00
tg
738f5f54fa
get rid of unneeded variables ⇒ error handling (that wasn’t there
...
previously) ⇒ code ⇒ simplify!
2013-02-10 23:43:59 +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
9bf0509829
provide a layer of locality to FUNSUBs; get rid of a fork for each PS1 thus
2013-02-10 23:30:47 +00:00
tg
1df0cb4093
as a more general solution to fd leak detection, just do CLOEXEC manually
...
(this also allows us to see “real” leaks)
2013-02-10 21:42:16 +00:00
tg
42e1bdc095
doc update
2013-02-10 21:20:57 +00:00
tg
f209a252bc
when leak debugging, free everything even in builtins
2013-02-10 21:17:07 +00:00
tg
51345bd33b
do not leak file descriptors on builtins
...
(this is for valgrind; we use close-on-exec on them in the normal case)
2013-02-10 21:08:35 +00:00
tg
2b06709bf3
improve DEBUG_LEAKS handling and fix freeing some locs
2013-02-10 19:05:37 +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
43a41932e7
make DEBUG_LEAKS safely free all resources before the main shell exits
2013-02-10 18:17:30 +00:00
tg
ce1ab97541
for DEBUG_LEAKS, prevent “leaking” of fds, even if they’re close-on-exit
2013-02-10 17:55:57 +00:00
tg
5741127ab7
experimentally enable afreeall(APERM) too, LP#1106116
2013-02-10 17:43:07 +00:00
tg
59009ac78f
call it DEBUG_LEAKS so Android can always enable it
2013-02-10 17:41:06 +00:00
tg
63b6d920a8
actually, only needed #ifdef DEBUG
2013-02-10 17:39:38 +00:00
tg
cb93db360d
call afreeall(AEDIT) upon close; related to LP#1106116
2013-02-10 17:38:15 +00:00
tg
1da94d6159
pure RCSID sync with oksh, who also added a tabcompletion fix now, with
...
less code, but, even according to their own comments, not as good as ours
2013-02-10 17:18:49 +00:00
tg
72c895c4a1
precmd is required to retain the errorlevel when ${ …;} is used
2013-01-21 15:06:24 +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
72402c4990
permit $'\n' in the bar part of ${foo:-bar}
...
XXX this changes slightly the herestring part
2013-01-19 17:49:46 +00:00
tg
24164e07d4
rcsid-only sync
2013-01-19 17:27:05 +00:00
tg
c99a634f92
remove separate SHERESTRING parsing state, it’s the same as SHEREDELIM
2013-01-19 17:20:02 +00:00
tg
b23d768a9b
Unbreak linking on AIX, reported (with fix) by Torsten Sillke, 10x!
2013-01-12 02:25:01 +00:00
tg
2d9a039ec0
ormaaj reported “command shift” not working correctly; fix
2013-01-06 18:51:43 +00:00
tg
7a2130b02a
do not, ever, even in local-only debugging examples, create anything
...
in /tmp without the use of mkstemp(3) or similar!
2013-01-06 18:44:07 +00:00
tg
d5ba31fd86
fix the set +e cases, too
2013-01-01 22:23:16 +00:00
tg
72a748c891
if you have to look *this* up, danger ahead; point to porter's info
2013-01-01 21:19:36 +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