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
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
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
cbf1cea38a
sync clog
2012-11-26 23:14:46 +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
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
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
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
tg
d8662eb228
even more hacks to pass “-O666 -fstrict-overflow -Wstrict-overflow=9 -flto=jobserver” with “gcc version 4.8.0 20120930 (experimental) [trunk revision 191865] (Debian 20120930-1)” ☹ plus make the rtchecks mandatory
2012-10-03 17:24:23 +00:00
tg
c39bfe09ee
rewrite some code to avoid gcc 4.8 complaining
2012-10-03 16:16:15 +00:00
tg
b55d9870e3
reorder notoktomul to have the constant as second argument like notoktoadd
2012-10-03 15:55:37 +00:00
tg
0575d07671
rewrite XPtrV to use size_t instead of pointer arithmetic, for gcc-snapshot (20120930-1) -fstrict-overflow -Wstrict-overflow=9
2012-10-03 15:50:32 +00:00
tg
167995da22
repair choiceless select builtin
2012-10-03 15:13:34 +00:00
tg
9fbdef8e60
pure RCSID sync with OpenBSD, as we introduced SIGWINCH tracking earlier
...
XXX we could track whether tty_fd has already been successfully opened,
XXX the ttystate initialised, and then just never close it unless it is
XXX necessary, then we can keep COLUMNS/LINES accurate in scripts, even
2012-09-21 17:20:22 +00:00
tg
eac85ffdf1
OpenBSD found out that "building argv for $* and $@" manipulates l->argv
...
in place which affects ps(1) output on BSD; create a new array and copy
the original parts from argv[] there without touching argv passed to main
2012-09-07 21:02:43 +00:00
tg
0415b74436
Update wcwidth data from Unicode 6.1.0
2012-09-01 23:46:41 +00:00
tg
e6ddeaa53d
sync clog
2012-08-24 21:33:51 +00:00
tg
e2d1f3bf99
related to LP#1025843 fix tab completion for tilde
...
this code is insane, who wrote globbing and expansion for mksh’s
predecessor must have been on very interesting drugs
2012-08-24 21:15:42 +00:00
tg
42ac0dc08e
second attempt at getting '$FOO/b*r/baz' tab-completed right,
...
plus the beginning of the tilde fix… do not use, this is fucking
impossible to get right, but I’d like an archival commit
2012-08-24 20:57:46 +00:00
tg
2ed6e8998c
repair globbing $foo/ba*r/baz
2012-08-24 20:05:13 +00:00
tg
84020897fd
allow overriding /etc location (LP#1039713), but don’t do it
2012-08-24 19:09:10 +00:00
tg
beca8ed86f
more int → bool
2012-08-24 19:02:57 +00:00
tg
bb5e56d4c4
remove ${ foo;} from mksh again due to buffering issues jilles found
2012-08-17 18:34:25 +00:00
tg
f18b1fae85
bump
2012-08-03 18:45:32 +00:00
tg
9b7b7f742e
implement ksh93 feature ${ foo;}
2012-07-30 21:37:17 +00:00
tg
0db4002bd6
remove unused flag
2012-07-30 17:04:31 +00:00
tg
aedb299057
note that some longjmp don’t handle 0 properly
...
cf. <500C1B2E.9030602@zytor.com>
2012-07-22 15:56:51 +00:00
tg
058e7f8ed4
do implement quoting, as ${foo@Q} though, as hommage at mirmake
...
dedicate this “release” to Andi
and use tomorrow’s (UTC) day for version, to cover up my debian fuckup
2012-07-20 23:22:13 +00:00
tg
4778a2a62f
lesson learned from http://k1024.org/~iusty/blog/entry/perf-null/ – add -DMKSH_SMALL_BUT_FAST which gives more speed (8/20K less cycles, 5/9K less insns, 1.8/2.4k less branches, 65/275 less branch misses) on Debian/amd64 (klibc-static/eglibc) at cost of 0/2 more page faults and 6K/6K more text size
2012-07-01 15:55:00 +00:00
tg
516678f4fd
imply MKSH_CONSERVATIVE_FDS by MKSH_LEGACY_MODE, too
2012-07-01 15:44:31 +00:00
tg
35c65bb568
bugfix: make CONSERVATIVE_FDS implied by MKSH_SMALL actually work
2012-07-01 15:41:56 +00:00
tg
67714b270a
dissolve the hashtab nonsense, ¾ is good, and mirkev will also use that
2012-07-01 15:38:09 +00:00
tg
c1f821d4e5
(mksh) tighten 32-bit requirements; (lksh) switch to long; allow any bitness
2012-06-28 20:17:39 +00:00
tg
ea01d80833
hackish work-around the lexer to make alias definitions in mksh -c
...
work (Closes : #517009 ) and mention in the manpage why they sometimes
do not work (doing so for COMSUBs is not worth the effort)
2012-06-28 20:05:11 +00:00
tg
dc5ae267ce
make tempvar() and vtemp global
2012-06-28 20:02:29 +00:00
tg
45fba44292
sync w/ oksh (RCSID only # no change needed)
2012-06-28 20:01:01 +00:00
tg
1fa4453946
mh… all I’m gonna hack on upstream today… fix -t for manpage generation and cleanup code snippets; bump vsn; sync clog
2012-06-26 19:33:33 +00:00