68f6e899ef
Merge tag 'mksh-R52c'
2016-03-05 14:59:34 +09:00
9c1568a8cc
fix trimming with ? on $* and $@; missed by Todd Miller in r2.2 in ncvs
...
where it was fixed for ${foo[@]} and ${foo[*]}
2016-02-26 19:05:21 +00:00
a3c28ebd67
plug a few display problems with special parameter name expansions
...
reported by Stéphane Chazelas
2016-02-26 18:48:14 +00:00
c8da180d60
fix substitution error message
2016-02-26 18:05:10 +00:00
e9364a4318
Merge remote-tracking branch 'mksh/master'
2016-02-25 14:56:35 +09:00
08e1c6a9ea
ADELIM can be ‘}’ too, not just ‘/’, in code that checks for / vs. //
...
caught by new code after segfault report by bef0rd on IRC (thanks!)
2016-02-24 01:47:32 +00:00
36ea6b5f88
Merge remote-tracking branch 'mksh/master'
2016-01-24 16:43:45 +09:00
6eb125c18a
Merge commit '91ae6ad199035b1cf'
2016-01-24 16:36:38 +09:00
188691d285
save 200 bytes off .text by revisiting string pooling
...
also, forgotten version bump
2016-01-21 18:24:45 +00:00
046d8e5b7a
align with future POSIX on http://austingroupbugs.net/view.php?id=351
...
with accepted interpretation (*sigh*); merge VARASN|ARRAYVAR→CMDASN
2016-01-19 23:12:15 +00:00
0141794c2e
correctly handle nested ADELIM parsing: ADELIM doubles as CSUBST (LP#1453827)
2016-01-14 22:30:43 +00:00
0c41f2fdc8
Merge remote-tracking branch 'mksh/master'
2015-12-13 17:59:43 +09:00
489fb7e845
further bring ${x/y/z} closer to GNU bash behaviour, we now only miss
...
recursive extglobs
2015-12-12 22:24:07 +00:00
3b2ad0f9d9
fix ${*:+x} constructs; bug reported by carstenh via IRC
2015-12-12 20:38:56 +00:00
8d22d9226f
use evalstr instead of wdstrip+substitute and drop home-grown backslash removal
2015-12-12 18:47:22 +00:00
d4aa35212c
fix a few expansion substitutions to do tilde expansion
...
issue spotted by izabera and confirmed by Geoff Clare
2015-12-12 17:28:10 +00:00
780f220e23
Merge remote-tracking branch 'mksh/master'
...
Conflicts:
check.t
exec.c
sh.h
2015-10-11 19:42:38 +09:00
fc48729336
tweak some iop/conservative_fds-related things I picked up while thinking lksh
2015-10-09 19:29:50 +00:00
af35e9a6de
revert most of commitid 3ec342c92b3a8874 and fixup the rest;
...
this should bring us closer to POSIX again
2015-10-09 17:48:53 +00:00
bd9de444e3
Merge remote-tracking branch 'mksh/master'
2015-09-12 12:50:57 +09:00
ed5cb56849
replace the code related to << changes and <<< with cleaner code,
...
fixing a few bugs also (including new testcases, except x=<< issue)
2015-09-06 19:47:01 +00:00
4adcfe8b58
oksh sync, simplify *all* if(x)free(x); constructs, simplify x_push() and sync boilerplate while here
2015-09-05 19:19:12 +00:00
4c61aeebe5
Use upstream style macro/function names
...
modified: edit.c
modified: eval.c
modified: exec.c
modified: main.c
modified: misc.c
modified: sh.h
2015-07-21 16:30:47 +09:00
65d8ad9dae
Merge remote-tracking branch 'mksh/master'
2015-07-08 19:31:55 +09:00
d09aca4175
do the IFS_QUOTE dance right; this finally fixes ""$@
2015-07-06 17:45:33 +00:00
759b6ec59f
Consider OS/2-style path
...
OS/2 uses 'x:' as a drive prefix and '\' as a directory separator.
2015-06-03 13:00:43 +09:00
babd9c4cf0
The check for empty patterns and patterns matching the empty string
...
in commitid 1004D8283F068C41C3C was bogus; it fixed Jb_boin’s issue
but izabers’s 「var=foo; echo "${var/*/x}"」 was broken; in fact we
only want to not do the looping for // if the pattern matches much.
Also, fix a spelling mistake in the manpage and change some wording
to also work with associative arrays (in the future; no change).
2015-05-23 17:43:22 +00:00
c3efd2abb2
use already-existing ksh_isdash helper macro
2015-04-29 18:32:44 +00:00
e1cda74d04
SECURITY: fix integer overflows related to file descriptor parsing
...
bug initially found by Pawel Wylecial (LP#1440685)
additional bug found and suggested fix by enh (elliott hughes)
This commit also renames struct ioword.flag to ioflag to disambiguate
it from other members named “flag”, changes it to an unsigned type,
and packs ioflag and unit into shorts each, to make the struct smaller
(aligned even: 16 bytes on 32-bit systems) and reviews some of the
code involved in fd handling, though there wasn’t much to be found.
2015-04-11 22:03:32 +00:00
f4ae6f7508
can't set word=IFS_QUOTE if already IFS_WORD (something there)
...
or IFS_QUOTE (third dquote (second OQUOTE) in """something)
2015-02-20 07:14:30 +00:00
73082b9292
• fixup here document expansion (regression wrt. pdksh 5.2.14)
...
• adjust testsuite (and write tons of new tests) after today’s commits
2015-02-19 22:26:50 +00:00
be1a0e3282
unbreak other cases where $@ shares double quotes with something else
2015-02-19 22:01:13 +00:00
b94b2e363a
stop (ab)using the OS symbolic constant EOF, always use -1; plus misc fixes
2015-02-06 10:09:07 +00:00
6f3d362785
rewrite the code a bit to avoid GCC -Wstrict-overflow triggering in one case…
...
most of it is utterly useless though as the line indicated is usually the
closing curly brace of a function, often not even the reported one…
2015-02-06 09:33:41 +00:00
287d4bc216
int → bool
2014-12-05 15:14:23 +00:00
2f52b993a1
• Build.sh: fix NSIG detection for gcc-snapshot
...
• all: bump version to R50-current; add more comments; whitespace
• all: remove all mkssert(); we’ll do full re-runs of scan-build and,
hopefully, Coverity Scan/Prevent
• check.t: fix a testcase (sed could exit false, but we don’t care)
• eval.c: fix tilde_ok data type (only unsigned may shl constantly)
• exec.c: fix shebang buf array accesses to always go via uint8_t *
2014-11-25 21:13:31 +00:00
517bd63fe5
rename the “tilde” function; apparently, some system headers define it
2014-11-19 21:49:12 +00:00
44dc99cb35
first cut at LP#1381993 (probably incomplete) plus test coverage
...
also remove fbsd testsuite link, it’s gone during cvs→svn of theirs ☹
2014-10-19 21:53:08 +00:00
cf2609f3fa
better fix
2014-10-19 21:39:37 +00:00
67d8c69353
IFS_IWS, but doesn’t really change much…
2014-10-19 21:04:47 +00:00
612d92add6
erm yes, committed the wrong patch…
2014-10-19 20:59:43 +00:00
2fd0482761
commit patch from LP#1381965 and two testcases, one showing this is fixed,
...
another showing deeper problems (probably LP#1381993 “non-list contexts” or
the IFS_WS/IFS_IWS story, perhaps *all* IFS_WS (not just ternaries) really
should be IFS_IWS instead?)
2014-10-19 20:56:33 +00:00
0cf0658a0d
fix severe regression in field splitting (LP#1378208)
2014-10-07 15:22:17 +00:00
968dc7a764
overhaul IFS handling, fix bugs reported by Stephane Chazelas and mikeserv
...
now we’re at: 486 passed testsuite items, 0 failed
ifs.sh still: # tests 6856 passed 6856 failed 0
2014-10-03 17:32:12 +00:00
065b42c86f
make the comments match the actual code; bad jaredy@obsd for failing us so
2014-07-29 16:29:11 +00:00
b7c41f240c
LANGUAGE CHANGE: $((…)) results are now IFS-split, as per POSIX 201x
2014-06-09 11:16:07 +00:00
30bbb90f75
next attempt at fixing IFS-subst-2
2014-06-09 10:41:03 +00:00
d8461d400f
fix ${!foo} for when foo is unset
2014-05-27 13:00:31 +00:00
270a86f895
• use BAFH for hash ipv NZAAT
...
• prep for release
• fix minor nits in manpage and tests
2014-01-11 18:09:43 +00:00
89e774fd7e
• fix ${12345678901234567890} segfault (OOB access / integer overflow)
...
‣ not like oksh did, but using mksh’s built-in features
• handle suggested __pure additions
• revert cid 1004F7F096867C83CF0
‣ always use our wcwidth code
‣ only use our strlcpy code if none found
• fix a couple of gcc-snapshot and clang/scan-build warnings
• mksh R49~rc1
2014-01-05 21:57:29 +00:00