tg
305599031d
improve reparsing of ((…) |…) as ( (…) |…)
2015-12-12 19:05:52 +00:00
tg
7a47656efe
fix \u0000 and \x00 being ignored in $'…' and print +r expansion
2015-10-24 19:46:10 +00:00
tg
fc48729336
tweak some iop/conservative_fds-related things I picked up while thinking lksh
2015-10-09 19:29:50 +00:00
tg
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
tg
3fc8b5eb94
partial oksh sync, up to commit 80be547da108d5c241ae068290ca3e331446aa41?
2015-10-09 16:11:19 +00:00
tg
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
tg
0f6aa7eaab
fix more int vs. size_t mismatches
2015-09-06 13:10:48 +00:00
tg
edc2acd61d
fix tree printing multiple heredocs in one command, bug found by izabera
2015-09-05 20:20:48 +00:00
tg
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
tg
9d30e9c9d6
oksh sync: one rcsid-only plus this one by guenther:
...
Zero-pad the seconds in the output of 'time' to make columns line up
2015-08-13 21:04:12 +00:00
tg
2e4cd72899
make certain actions flush the history buffer
2015-07-05 19:53:46 +00:00
tg
e0196f47d5
implement completely new multiline code by delaying history store
...
this commit is valgrind-tested
2015-07-05 19:37:18 +00:00
tg
11a2f9d822
make $LINENO in PS1 equivalent to ! (bug spotted by carstenh in IRC)
2015-07-05 13:49:42 +00:00
tg
609b311919
more low-hanging fruits for EBCDIC; notes:
...
• ord() new, From: Daniel Richard G. <skunk@iSKUNK.ORG>
‣ used in some places
• (c - '0') → ksh_numdig(c) # may take *x++ argument
• (c - 'A') → ksh_numuc(c) # may NOT take *x+= argument
‣ idem for ksh_numlc(c) and 'a'
‣ these need changing for EBCDIC
‣ add testsuite for this
• use macros more, they exist already often
• use digits_lc[foo] instead of ('0' + foo), especially for letters
• caught another ksh_eq case…
• also caught a maybe-UB overflow check, but we don’t have TIME_T_MAX ☹
2015-04-29 20:07:35 +00:00
tg
65f9b93926
ordinarily, lineno must be mksh_uari_t, but edit.c most of all isn’t ready,
...
so we mitigate a bit (in var.c mostly) and tweak another type already, and
add some checks (mksh_{,u}ari_t must fit into {,unsigned }long) and print
line numbers with %lu already
2015-04-19 18:50:38 +00:00
tg
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
tg
8641829e21
fix comment no longer true since commit 1004DC49710562ACCB2
2015-03-20 23:37:39 +00:00
tg
0d72355038
“local x=$1” is supposed to not field-split and so
2015-03-14 05:23:18 +00:00
tg
8546943535
KNF
2015-03-01 16:02:48 +00:00
tg
dcdc828c41
fix here string parsing problem found by Stéphane Chazelas
2014-12-15 22:50:11 +00:00
tg
9b31399aec
fix buffer overflow found by zacts from IRC (bad length calculation)
...
now zsh and mksh are even… :|
2014-11-19 18:44:11 +00:00
tg
e4c01375aa
fix access-after-free crash spotted by Enjolras via IRC, thanks!
2014-06-29 11:28:28 +00:00
tg
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
tg
2f7eec765d
merge oksh’s “ctype cleanups” commit
...
(not much of it applies since we don’t use the OS’ table-based lookup)
2014-01-05 19:11:46 +00:00
tg
61886de5ee
oksh sync (RCSID only)
2013-11-17 22:19:42 +00:00
tg
5eb6995d75
Ypnose discovered a problem with multi-line prompts and SIGWINCH
...
related to caching some values (downside, pprompt gets back doprint option)
2013-08-16 10:59:03 +00:00
tg
c10e5bd237
reduce amount of .bss memory needed; initialise via AEDIT at x_init
...
or even first run of x_vi
2013-08-10 13:44:33 +00:00
tg
247e20c524
• Completely overhaul prompt length calculation and
...
prompt display routines; make Emacs and Vi share
code, permitting reducing of duplication and code
removal as well as more consistent behaviour; put
some common code into shared helper functions, too
• New x_adjust() logic (Emacs mode): when determining
what portion of a line to render use a much more
sophisticated algorithm and try to fill up ⅔ of the
total screen width (with line and prompt both) also
as wished from Steffen Daode Nurpmeso
2013-07-26 20:33:39 +00:00
tg
ec1bc74d41
pull some quoting fixes from oksh; original patch from Alexander Polakov
2013-06-01 00:15:58 +00:00
tg
1d0409d932
implement VALSUBs
2013-05-02 21:59:54 +00:00
tg
ea657bd4d9
also do not, ever, use &> bashiop in lksh
2013-03-29 17:33:56 +00:00
tg
a3b5e77c6c
disable parsing of &> as GNU bash iop if -o posix or -o sh, based on IRC discussion where jilles(IIRC) pointed out it breaks existing valid scripts
2013-03-24 15:01:50 +00:00
tg
74e2ef8b0b
one more int → bool; mention “set -o sh” may (on raare OSes) be enabled
...
automatically (and it differs between targets); test MidnightBSD 0.1 ash
compat code and adjust the testsuite so it passes with it enabled
2013-02-19 18:45:22 +00:00
tg
e21a2166f7
use a different approach to the $"…" problem:
...
take the states that may open a string, only permit them by virtue of
moving the code out of Subst: to handle $+" and $+' at all; then add
S[Q]BRACE to that
side benefits:
• clearer, cleaner code flow
• smaller code
• better “business logic” ☺
• defuses one heavy use of duff’s device a bit
2013-02-17 06:05:02 +00:00
tg
b684a7c6bd
backpedal with $'…' and $"…" interpolation
...
it turns out this breaks more legacy scripts than anticipated
2013-02-17 05:40:17 +00:00
tg
1da94d6159
pure RCSID sync with oksh, who also added a tabcompletion fix now, with
...
less code, but, even according to their own comments, not as good as ours
2013-02-10 17:18:49 +00:00
tg
9111faeeb5
besides more code reuse, fix $'…' everywhere (but keep it ignored in here document bodies that aren’t here strings)
2013-01-19 19:47:13 +00:00
tg
e307cb34c4
use the full parser code for handling here strings (and here document words)
...
as ormaaj requested, including a testcase
2013-01-19 18:32:56 +00:00
tg
72402c4990
permit $'\n' in the bar part of ${foo:-bar}
...
XXX this changes slightly the herestring part
2013-01-19 17:49:46 +00:00
tg
c99a634f92
remove separate SHERESTRING parsing state, it’s the same as SHEREDELIM
2013-01-19 17:20:02 +00:00
tg
f654a3dea4
fix libFirm/cparser -Wsign-compare
2012-12-05 19:38:25 +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
0f3071a8b2
MKSH_DISABLE_EXPERIMENTAL is a NOP again; use ${ precmd;} in dot.mkshrc
2012-11-30 20:19:16 +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
5aa7842d33
who would’ve thought proper ^C handling be so hard?
2012-10-30 20:49:44 +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
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
bb5e56d4c4
remove ${ foo;} from mksh again due to buffering issues jilles found
2012-08-17 18:34:25 +00:00
tg
9b7b7f742e
implement ksh93 feature ${ foo;}
2012-07-30 21:37:17 +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