Commit Graph

1961 Commits

Author SHA1 Message Date
tg
ebb8bed911 fix segfault due to limit of hashtable entries (global variables) discovered by Jb_boin: unlimit to 2^30 minus epsilon 2011-06-04 16:42:31 +00:00
tg
b3d38f9cdf better parsing for x=(…) – bug noted by Frank Terbeck 2011-06-04 16:11:20 +00:00
tg
e0a913181b fix regression found by hondza: the full path was shown when tab-completing 2011-06-04 15:11:29 +00:00
tg
bef346b938 we use tobool() nowadays 2011-06-04 15:06:50 +00:00
tg
00e1a6752d hyphen-used-as-minus-sign 2011-05-29 17:01:26 +00:00
tg
128a2e8fc1 add test for x+=(y z) and ;;& functions in tree dumper (!MKSH_SMALL) 2011-05-29 16:38:58 +00:00
tg
d1b8800ee8 • AIX: display OS version better (tested on 5.3 by cnuke@)
• IBM XL C: display version better (tested on V7.0 by cnuke@)
• do not 'IFS=: read nr name', Cygwin 1.7 dash fails it
• disable cd-pe, glob-range-3 on Cygwin (the former cannot
  succeed because the mv fails, the latter fails from 1.7 on)
• mark heredoc-tmpfile-8 as need-pass: no
• apply __attribute__ only to a function prototype, not to
  the body (even if static), since xlC fails that
• bump version to R40 (beta)
2011-05-29 16:31:42 +00:00
tg
2083c75c1c support ;;& as alternative name for ;| unless MKSH_SMALL 2011-05-29 06:19:27 +00:00
tg
b510e8bf21 now we only fail 416 ipv 1664 tests of ifs.sh 2011-05-29 05:13:12 +00:00
tg
2cfc3e5c3d mksh R40 Release Candidate 1
Testsuite:
• add new need-pass: {yes|no} attribute, default yes
• exit with 1 if a need-pass test failed unexpectedly
  idea by Kacper Kornet <draenog@pld-linux.org>
• mark utf8bom-2 as need-pass: no
Infrstructure:
• add housekeeping function for making a tty raw
• switch functions with unused results to void
• struct op: u.charflag contains last char of ;; in TPAT
• var.c:arraysearch is now a global function
Language:
• add ;& (fall through) and ;| (examine next) delimiters
  in addition to ;; (end case) as zsh extensions, because
  POSIX standardised on ;& already
• add -A (read into array), -N (read exactly n bytes),
  -n (read up to n bytes), -t (timeout) flags for read
  from ksh93
• allow read -N -1 or -n -1 to slurp the entire input
• add -a (read into array the input characters) extension
  specific to mksh to read, idea by David Korn
• add -e (exit with error if PWD was not set correctly
  after a physical cd) to cd builtin, mandated by next
  POSIX, and change error codes accordingly
Rewrites:
• full rewrite of read builtin and its manpage section
• add regression tetss for most of the new functionality
• duplicate hexdump demo tests for use of read -a
• use read -raN-1 in dot.mkshrc to get NUL safe base64,
  DJB cdb hash and Jenkins one-at-a-time hash functions
2011-05-29 02:18:57 +00:00
tg
9fe3ba48d2 handle MKSH_SMALL not doing foo+=(…) 2011-05-07 02:02:47 +00:00
tg
40e914e8a5 • fix an inverted logic bug in the test I wrote
• only trigger deleting an alias in favour of a function for “()”, not
  just the opening parenthesis: “stop( )” is not a function definition
  (well, actually it seems to be, but… not according to POSIX, anyway)
• defer dropping the alias until the function is actually defined (õÕ)
2011-05-07 00:51:12 +00:00
tg
c38dfbf51a fix problem #1 and a comment 2011-05-07 00:24:35 +00:00
tg
88686b81bd a regression and a new bug, found during cvs development 2011-05-07 00:02:26 +00:00
tg
3f21a0e199 • add patch from Robert Luberda <robert@debian.org> fixing the
four-argument form of test (yet again…), thanks
• drop the obsolete (pre-POSIX) form “test -t” without fd
2011-05-06 15:41:25 +00:00
tg
c021aa4cad • use a flag for determining here strings, don’t parse delimiter every time
• don’t leak memory parsing possible I/O redirection tokens
• get rid of volatile by using more const (also helps codegen, methinks)
• support empty here document markers (mksh extension)
• pimp the manpage
2011-05-05 00:05:01 +00:00
tg
4345dd1fb8 += support for variables and arrays 2011-05-04 23:16:05 +00:00
tg
0d6e622b14 return EOS on EOS just to be on the safe side 2011-05-04 22:38:27 +00:00
tg
1a316664ef RCS Id sync with oksh (no change; their diff is bogus with nroff and gnroff) 2011-05-02 22:57:22 +00:00
tg
69f98bca9a • fix wtf(1) by keeping the paren in ${foo#\(} properly escaped in COMSUB
• merge tputS and wdstrip_internal
⇒ net save: 604 .text 0 .data 0 .bss (MirBSD/i386)
2011-05-02 22:52:54 +00:00
tg
d69ffbf9e0 elaborate on 「${arrname[*]}」 and 「"${arrname[@]}"」 for wbx@ 2011-04-23 10:40:27 +00:00
tg
8bc51681b1 sync clog 2011-04-22 21:44:35 +00:00
tg
45cd3a340b this is about the amount -Wl,--gc-sections can help me to eliminate 2011-04-22 12:21:55 +00:00
tg
d72669c66b this one is trickier 2011-04-22 12:16:38 +00:00
tg
6c0255ecb2 more static initialisers (verified using nm comparision between mksh
built with/-out "-ffunction-sections -fdata-sections -Wl,--gc-sections"
2011-04-22 12:15:42 +00:00
tg
c0e1e7645a static initialisers implicitly null out a variable (I think)
so take care of that (for global variables) to avoid them
moving from .bss to .data
2011-04-22 12:10:14 +00:00
tg
51607e17b2 funnily enough “typeset -ft” description already was “correct” as to
the today’s behaviour (and AT&T ksh’s) but the general function overview
(and description) wasn’t…
2011-04-17 15:43:12 +00:00
tg
fb93c5e225 by prodding of wbx@ let functions inherit a global xtrace
(also since all other shells seem to do it, save posh which doesn’t trace‽)
2011-04-17 15:40:35 +00:00
tg
61a8888213 always catch SIGALRM even in non-interactive shells to make sleep work 2011-04-17 12:24:44 +00:00
tg
6c45e3e764 avoid namespace conflicts with __attribute__(…) 2011-04-09 21:01:03 +00:00
tg
e39dea490f sync… various things 2011-04-09 18:47:14 +00:00
tg
8c46637835 cnuke says Haiku is like GNU in that it has no /usr whatsoever 2011-04-09 15:39:50 +00:00
tg
cd9f846852 missed one FKSH use 2011-04-09 15:21:36 +00:00
tg
d57a033057 • no longer use <stdbool.h> even if it’s available
• ensure that bool/true/false are cpp macros, overriding any pre-defined
• document the requirement that tobool(x) must map any-type 'x' into bool
• document the requirement that a bool must only be true or false, and
  that it (tobool() rather) must have an identity mapping to 'short'
• possibly fix ksh_func for/and fpFUNCTf – maybe spotted by cnuke@
2011-04-09 15:14:55 +00:00
tg
2dbf82a737 no // style comments in my source code! 2011-04-09 15:05:44 +00:00
tg
63a08586be easier debugging with HAVE_STDBOOL_H=0 for if bool is indeed built-in 2011-04-09 14:58:53 +00:00
tg
e4e5229513 shut up valgrind, thanks wbx@ for prodding 2011-04-02 13:55:35 +00:00
tg
7d3643d7b4 skip the UTF-8 BOM early, then check the magic (ELF, a.out, COFF, …) 2011-04-02 10:30:11 +00:00
tg
a7091123aa Add “-C regress:no-ctty” option to test.sh for Fedora chroots
STRONGLY DISCOURAGED
2011-03-28 21:58:06 +00:00
tg
b91b037e6a we got a decision on pathnames with exactly two leading slashes
thanks, Eric and David!
2011-03-28 21:31:01 +00:00
tg
6fddfc009b I made a mistake in the tests; this stuff works always (and can be tested)
but triggers only for /bin/sh if MKSH_BINSHREDUCED (otherwise needs -o sh)
2011-03-28 21:18:00 +00:00
tg
6784af6dbd • use mksh getopts to parse options in test.sh, collapse multiple -C args
• sort arguments
2011-03-28 21:15:05 +00:00
tg
19e128c4e1 add testcases, bump vsn 2011-03-28 08:40:42 +00:00
tg
e19d8612ad another Debian workaround for /bin/sh: don’t pattern in trims 2011-03-28 08:27:09 +00:00
tg
e8ea9954aa • Implement http://austingroupbugs.net/view.php?id=367 and align things
a bit more with POSIX and the other shells

I considered http://austingroupbugs.net/view.php?id=253 but the use
of bi_errorf() is interesting, especially as it’s often enough a
noreturn function, and funnily enough, 'cd -P /foo' returns 0 while
'chdir -P /foo' fails (so idk where to put -e)…
2011-03-27 18:50:06 +00:00
tg
ad3707d17d don’t leak memory (pdksh did), and forgot a hunk 2011-03-27 01:30:38 +00:00
tg
5f31b8c97a • bring back test -H ifdef S_ISCDF (for HP-UX)
• whitespace, etc.
• bump version for tonight, I’m not gonna hack on c_cd,
  all this pathname stuff is mind-boggling…
2011-03-26 21:46:06 +00:00
tg
a55de5f840 • rewrite simplify_path() to keep more in line with do_realpath()
• add regression test to ensure that //foo pathnames are never simplified
2011-03-26 21:09:09 +00:00
tg
7d86eaba8c simplify code to use existing $PWD 2011-03-26 19:43:49 +00:00
tg
e3ed074981 use existing code 2011-03-26 19:35:35 +00:00