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
tg
c2333a7dbd
simplify_path: we CANNOT simplify pathnames beginning with //
...
since they’re implementation-defined and *not absolute*!
2011-03-26 19:29:41 +00:00
tg
79862cc1f4
one more from Austin ML
2011-03-26 16:19:29 +00:00
tg
84f7055f8f
special-case another bizarre POSIX corner case
...
after david korn agreed to change ksh93 to match
2011-03-26 16:11:43 +00:00
tg
b1d97ea44e
temporary patch for Cygwin against cd breaking UNC pathnames
...
from Chris “ironhead” Sutcliffe
2011-03-26 15:37:19 +00:00
tg
2dffc771ac
new (some possible) testcases from Austin ML, and one fix
2011-03-26 15:32:37 +00:00
tg
803c51914b
• move funcs.c:do_realpath() to misc.c and make it global
...
⇒ consider merging simplify_path()
• move funcs.c:c_cd() to misc.c
• make misc.c:make_path() static, c_cd() is its only user
⇒ mark as obsolete
• tweak misc.c:set_current_wd() to drop ksh_get_wd() argument
should be no code change, but the entire path stuff is a mess…
so expect actual implementation changes or even rewrites shortly
2011-03-24 19:05:49 +00:00
tg
8d8ee0cc6a
ironhead reported in IRC that some Cygwin guys (not he, he’s just the
...
packager) complain that mksh collapses two leading slashes; IIRC POSIX
has a clause for UNC pathnames, so stop doing that, plus add a test
2011-03-23 18:47:07 +00:00
tg
bc4c3b9af0
• save/restore here document pointer during yyrecursive(), fixes crash
...
• add mirbsd/openbsd (omalloc rules!) specific testcase for the above
• $__progname must be used quoted, fix in comsub-torture testcase (my bad)
2011-03-21 21:57:35 +00:00
tg
3c41d2b063
fix cast; bump version
2011-03-17 22:09:23 +00:00
tg
2f2fe89157
• write a pattern optimiser and call it before invoking do_gmatch(),
...
to catch several very slow cases (especially “*@(*foo)” busy-loops
– spotted by Jb_boin as usual these days ☺) by converting all @(…)
with one case to drop the enclosing MAGIC(…), and in a second pass
collapsing adjacent asterisk (‘*’) wildcards
2011-03-17 22:00:45 +00:00
tg
a1a5922fc6
• make misc.c(gmatch.c):pat_scan() static and fix int → bool
2011-03-17 21:59:30 +00:00
tg
d4e19b6624
• make DEBUG:dumpchar() not static (consider rolling into shf?)
2011-03-17 21:58:40 +00:00
tg
d07bacd44a
• fix check for empty pattern in ${foo/bar/baz} expansion: the
...
character anchoring the pattern (‘#’ or ‘%’) must be skipped
if one was used; fixes “BLA="#test"; echo "${BLA//#/}"” busy
looping (due to null pattern) found by Jb_boin
2011-03-17 21:57:50 +00:00
tg
5239e8ea4c
actually, we need the android lsmod to be a builtin not an alias…
2011-03-16 20:56:33 +00:00
tg
1c22b3cc48
oops
2011-03-16 20:43:34 +00:00
tg
b7824978ad
RCSID sync with openbsd, one we had already, one Okan Demirmen stole
...
from mksh (but attributed, so it’s okay, considering the amount of
patch is not large enough to warrant copyright stuff)
2011-03-16 20:31:33 +00:00
tg
79c6d6043e
• introduce a virtual TARGET_OS=Android that just sets a check category
...
and switches to the TARGET_OS=Linux
• introduce android as regression test suite category
• add an android specific standard alias
• clean up redundant ‘-o sh’ arg in a few checks
2011-03-16 20:26:36 +00:00
tg
750ad16f3d
“__attribute__((format (printf, 1, 2)))” and “#define printf printfoo”
...
don’t play well with each other – Bionic uses the former, unlike most…
2011-03-16 20:03:21 +00:00
tg
fd0d60b71b
testsuite for mksh-small needs adjusting
2011-03-13 17:07:08 +00:00
tg
e4b0313044
sync with oksh (nop, RCS IDs only)
2011-03-13 16:35:54 +00:00
tg
4e7d9bdb33
we need not only store into the retrace buffers recursively but also ungetsc
2011-03-13 16:20:45 +00:00
tg
91ec264cb8
fix/sync comments
2011-03-13 16:07:36 +00:00
tg
af53a7d16a
• speed optimisation: drop SF_FIRST flag, factor out skipping the
...
UTF-8 BOM instead (UTFMODE has a separate value now for activated
during BOM skipping)
• parsing a COMSUB now skips UTF-8 BOM, too, but only temporarily
2011-03-13 16:03:54 +00:00
tg
e66eaab861
let SLETARRAY use SRETRACE, too
2011-03-13 15:57:23 +00:00
tg
f16386954d
drop dead code
2011-03-13 15:31:46 +00:00
tg
68162acef7
if DEBUG, abort() on rogue pointers
2011-03-13 10:50:44 +00:00
tg
2a3d4db123
lint is your friend
2011-03-13 01:20:25 +00:00
tg
5710e78857
implement better SASPAREN handling (actually, reusable very good for the
...
case where SASPAREN→COMSUB downgrading is done) by “logging” input and
restarting from there if needed
2011-03-13 01:11:58 +00:00
tg
9b8fafb757
correct documentation
2011-03-12 23:16:51 +00:00
tg
a3c79ad771
now fix that segfault and other bug from yesternight
...
do it like ksh93 though, not like bash and zsh
2011-03-12 23:06:43 +00:00
tg
75db4cdb56
• back out the EXPRSUB change
...
• optimise some code
• split testcase into two, one with expected-fail
2011-03-12 23:04:48 +00:00
tg
ff0a3c8a8a
SASPAREN changes have the same problem, revert too for now
2011-03-12 22:44:28 +00:00
tg
fc42105199
revert SLETARRAY changes for now, this introduces problems
2011-03-12 22:40:02 +00:00
tg
17dbd3bd83
• make EXPRSUB not initiate an ASCIIZ string any more but a wdstring
...
(token stream, lexer output / parser input), EOS terminated, let
SASPAREN use the same lexing as SBASE (e.g. COMSUB recursively)
• make wdstrip recursive
• fix processing of COMSUB in wdstrip
⇒ pass comsub-1 test
• expose another debugging function
2011-03-12 21:41:15 +00:00
tg
fb1392fb6b
even more test cases for comsub (2 breaking, but one of them fixed already)
2011-03-12 20:20:17 +00:00
tg
97e1987dbf
tests for a segfault and a failure-to-fail from “Jb boin on dedior” on IRC
2011-03-12 01:04:39 +00:00
tg
f8659785ac
• add a tree debugging dumper #ifdef DEBUG
...
• use shf_putc (macro), shf_putchar (function) ipv tputc
• replace shf_putchar(x,y) calls for side-effect-less x with shf_putc
• plug another bug in the tree code – '\' → "\\" (backslashes must be
escaped inside double quotes, too)
• adjust testsuite (and, I _had_ wondered…)
2011-03-08 18:49:51 +00:00
tg
6894618bb9
• x=$(cat <<-EOF
...
EOF) # works again now, plugging a regression
• rewrite the here document parsing code to be *much* more efficient
(and a bit more readable too!) using goto, while here (no kidding)
2011-03-07 20:32:50 +00:00
tg
5f8075fc82
introduce a tobool(cond) abstraction¹ and switch bool to char if !stdbool.h
...
① currently: ((cond) ? true : false) but (!!(cond)) and casting to bool,
the latter only if stdbool.h, would also work – which performs best on
(and across) all supported systems?
2011-03-07 20:30:41 +00:00
tg
009d4c7b75
drop more currently unused
2011-03-07 20:09:34 +00:00
tg
2075dd23b2
drop unused
2011-03-07 20:08:48 +00:00
tg
bfe34ba110
reduce data size by 320 bytes by packing struct lex_state tighter
...
and reducing amount of them allocated in each “pack” from 31 to 7
since $(…) is recursive anyway (I tried hard to need even only 5)
2011-03-07 20:07:52 +00:00
tg
1f392ab09b
• more fixes (some regression, some new)
...
• more testcases, stricter testcases
2011-03-06 17:08:14 +00:00
tg
469da2e5e4
drop IFS-space-colon-3 because dash is the only shell which passes it,
...
but ksh93 passes ifs.sh which I assume is more correct, and mksh and
ksh93 have the same result for this (as do bash2/4, posh; zsh differs)
2011-03-06 17:06:17 +00:00
tg
7a6fb85db5
another _two_, gosh!
2011-03-06 02:28:59 +00:00
tg
14d8cecc82
plug _another_ %; versus %N output formatting bug
...
(apparently, nobody noticed them because everyone outputted to files,
not to strings, and this logic differs for those)
2011-03-06 02:14:09 +00:00