Commit Graph

2306 Commits

Author SHA1 Message Date
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 75af4e244a add -fno-asynchronous-unwind-tables for all GCC builds, as suggested by dalias and chris2 2012-12-05 19:38:05 +00:00
tg d8a6ce41de shuffle declarations around (all shared between even only two files go into sh.h even if they’re not supposed to be used elsewhere) and make some static; libFirm/cparser has -Wmissing-declarations against it 2012-12-05 18:54:10 +00:00
tg cf807eb83a Add assertions and shuffle code around for LLVM+Clang scan-build. 2012-12-04 01:18:34 +00:00
tg 68c4dae6ef Rewrite the getn function (again) to fix any remaining issues. 2012-12-04 01:12:11 +00:00
tg 9d2fefeac4 Be more careful with string array bounds! Found by LLVM+Clang scan-build. 2012-12-04 01:11:17 +00:00
tg 5a70000aaf Keep LLVM+Clang from nagging about “"foo" + 1 ≠ "foo1"” warning. 2012-12-04 01:10:35 +00:00
tg 7fc9e1b492 revert cid 100506499941EC578A6: musl has _ALL_SOURCE now, aliased to
_GNU_SOURCE which we already define for convenience; thanks to dalias
and chris2 on IRC for discussion and being accomodating!
2012-12-03 22:10:02 +00:00
tg 2213c5887a how many times can you botch a gettimeofday mirtoconf check? 2012-12-03 13:07:11 +00:00
tg 6e41c9c2ee catch MSYS dash printf builtin not working 2012-12-01 14:22:09 +00:00
tg b868c517b7 remove *all* nonnull assertions and other workarounds for clang scan-build
this beast evolved in the last 2½ years, and we’ve had trouble with
some of them earlier
2012-12-01 01:36:30 +00:00
tg f6728353bd fix “null argument where non-null required” warning 2012-11-30 22:17:32 +00:00
tg ce6cdb96f2 regenerate Makefiles 2012-11-30 20:49:18 +00:00
tg 0f3071a8b2 MKSH_DISABLE_EXPERIMENTAL is a NOP again; use ${ precmd;} in dot.mkshrc 2012-11-30 20:19:16 +00:00
tg f63bcae02c … oh well, but MidnightBSD gcc picks on "" too, so just stick to NULL, it’s cheapest 2012-11-30 19:58:48 +00:00
tg 0f46c5e321 so’s clang… 2012-11-30 19:57:35 +00:00
tg 9a6ebef8ca The MidnightBSD/amd64 system compiler (Target: amd64-undermydesk-freebsd)
gcc version 4.2.1 20070719  [MidnightBSD] has stricter -Wformat checking
2012-11-30 19:51:25 +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 730bc915bd tty_close() before exec() is not necessary, it’s FD_CLOEXEC anyway
only tty_close() left are now after the early init in main, which
is new, and when not FTALKING…
2012-11-30 19:20:01 +00:00
tg 80e364b7ad use proper parenthesēs; int → bool; use same var (eno) for temp. errno 2012-11-30 19:02:10 +00:00
tg e36075e58d open distinguishes between >=0 and ==-1 but <-1 is undef, make it error 2012-11-30 17:34:46 +00:00
tg 63863a90d8 oops, this list is s’pos’ta be sorted 2012-11-30 16:45:25 +00:00
tg cbf1cea38a sync clog 2012-11-26 23:14:46 +00:00
tg 007cf09db6 use EPOCHREALTIME as variable, somewhat compatible with “zmodload zsh/datetime”, as ormaaj belatedly found out 2012-11-26 22:49:51 +00:00
tg b58d7b8053 fix regression wrt. pdksh (introduced between R40e and R40f)
about how and when the display is redrawn by reverting one
bool back to an int, as it’s used as a counter (hm, should
be an unsigned I guess but…)

on the other hand, xlp_valid should’ve been a bool, make it so
2012-11-26 22:39:14 +00:00
tg 9f15657f7b make cats more flexible 2012-11-26 16:39:43 +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 f284261018 • update documentation and references
• say R41, we’re almost feature-complete, and the missing one
  will not require documentation updates
2012-11-20 18:25:12 +00:00
tg 13da062f92 add MKSH_UNIXTIME 2012-11-20 18:07:45 +00:00
tg 2f41503f8e make more internal consistency checks #ifndef MKSH_SMALL 2012-11-20 18:06:53 +00:00
tg 435bc124ef introduce $BASHPID for ormaaj from #ksh 2012-11-20 17:42:32 +00:00
tg bfda9858f1 sort 2012-11-20 17:34:42 +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
tg 222d50f1af save some space for error-less error messages
inspired by a bugfix for posh for something that was not a bug in here
2012-11-12 18:28:40 +00:00
tg bbc0702cdd make “set -o nounset” friendly (even though people who use THAT are at own fault, IMO!) 2012-10-30 21:04:56 +00:00
tg 5aa7842d33 who would’ve thought proper ^C handling be so hard? 2012-10-30 20:49:44 +00:00
tg 8caee45c60 int → bool 2012-10-30 20:13:20 +00:00
tg faa0a78df3 restore yyrecursive context in quitenv (LP#1069428) 2012-10-30 20:07:15 +00:00
tg fc27886680 when ^C’ing out of an interactive shell, also throw away the here documents (probably leaks, maybe not due to quitenv, but not much) 2012-10-30 20:07:00 +00:00
tg f5ccc2feb3 while we do not condone killing of cats, fix LP#1058815 2012-10-30 20:06:49 +00:00
tg 0ce7dcf856 maybe this makes gcc not bitch… again… anal-retentive arsecompiler…
found in opensuse buildservice logs for centos 5
2012-10-22 20:52:47 +00:00
tg bfe7d78d40 bring back ${ foo;} sans dot.mkshrc patch, using a temporary file, and as experimental feature 2012-10-22 20:19:18 +00:00
tg 574c024635 introduce MKSH_DISABLE_EXPERIMENTAL and wrap the new feature introduced
in cid 1005084678C510CF7E4 in it
2012-10-22 16:53:22 +00:00
tg c7419d9e6a defer setting exstat for eval to 0 (the one used in case shell() is empty)
until after the stuff run in shell() has had a chance to toy with $?

bug forwarded by one of our packagers, found by one of their users
2012-10-21 21:55:05 +00:00
tg 31f24a4040 add some bounds, for a subsequent commit:
• all writers of exstat ensure the value is in [0; 0xFF]
• all readers of exstat AND it with 0xFF (not strictly needed thus)
• trap_exstat is “safe”, i.e. always either -1 or [0; 0xFF]
2012-10-21 21:39:06 +00:00
tg bebb2d2254 EXPERIMENTAL optimisation for “sh -c 'foo'” to equal “sh -c 'exit foo'” iff
several conditions are met as outlined below; for more background, refer to
http://www.FreeBSD.org/cgi/query-pr.cgi?pr=113860

We don’t yet optimise 「% sh -c '{ echo a; sleep 10;}&'; sleep 1; ps T」 so
the FreeBSD® sh approach cannot work for us, but scanning the “sh -c” argu‐
ment for disallowed characters and, if not, setting a flag that enables the
shell to exec the tree when parsed as TCOM *and not c_trap()* was possible.

Disallowed characters are currently C_QUOTE except space, that is:
Tab Newline " # $ & ' ( ) * ; < = > ? [ \ ] ` |

This should catch all cases of magic, variables, subshells, pipelines, etc.
2012-10-21 21:26:41 +00:00