Commit Graph

2496 Commits

Author SHA1 Message Date
tg d96c733069 looks like multiplication is also the same between signed and unsigned 2013-04-01 01:02:09 +00:00
tg 6a745a01fa begin using unsigned arithmetics internally as much as possible
(i.e. where signedness doesn’t matter, given -fwrapv) and note
where there’s work to do; note future improvements and additions;
optimise a little

mostly untested
2013-03-31 18:33:13 +00:00
tg ece1b28eaf fix bug in comment 2013-03-31 18:30:05 +00:00
tg c59707edd8 sync clog 2013-03-30 23:31:04 +00:00
tg fc2ec318c1 use nicer (and same as in other places!) error message for typeset 2013-03-30 15:39:36 +00:00
tg 57e4c1a19f catch missing variable names in typeset, to avoid confusing Hugues Moretto-Viry with bogus “read-only” messages 2013-03-30 15:39:26 +00:00
tg 5c2f250abc make "%#s" into print_value_quoted (ignoring field width and precision), if you can get it around gcc’s __printf__ __format__ attribute that is… 2013-03-30 15:39:16 +00:00
tg ea657bd4d9 also do not, ever, use &> bashiop in lksh 2013-03-29 17:33:56 +00:00
tg 41ae60bb55 now that funsub() is a separate function, and we don’t have the clobber
issue from longjmp any more, and that I thought to rewind the fd, finally
implement ${ …;} on deleted-after-open tempfiles without the need to reopen
2013-03-29 17:33:07 +00:00
tg 24b81b5969 RCSID-only sync: oksh found out about idivwrapv 2013-03-29 16:54:05 +00:00
tg 94dfda0be0 RCSID sync w/ oksh; whitespace (KNF) 2013-03-24 21:34:14 +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 8697048c2c set (but never export!) PS4 to something timestamped by default, as an example 2013-03-24 15:01:35 +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 d99e470a64 bump 2013-03-05 15:41:41 +00:00
tg d7c28d90f9 optimise prefer_cols print_columns display 2013-02-24 14:22:44 +00:00
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