Commit Graph

2872 Commits

Author SHA1 Message Date
tg
1563b70658 abort read builtin in case of read(2) errors
noticed by arekm, persuaded by jilles, compared with other equivalent
pieces of code reading in mksh
2016-06-25 23:52:46 +00:00
tg
2dde57ab54 document ^U key binding advice
this is “GNU bash mode”, for bleb via IRC
2016-06-25 23:52:06 +00:00
tg
8a93f7d1dd improve description of default Emacs mode keybindings 2016-06-25 23:51:21 +00:00
tg
58f36a9f3a increase default input line, from PLD Linux
(for as long as we still have the size static, and !MKSH_SMALL)
2016-06-25 23:49:50 +00:00
tg
b5127b03be deprecate *not* using MKSH_CONSERVATIVE_FDS; named fds coming soon
partially reverts commitid 10048752E6271CABA24 (the manpage, mostly)
and adds a deprecation warning at build time; suggested by izabera
2016-06-25 23:49:13 +00:00
tg
f555d1d524 premark <<< for deletion, >>> for SAR, ^< and ^> for ROL/ROR
cf. http://david.tribble.com/text/c0xrot.htm

noted by izabera
2016-06-25 23:48:10 +00:00
tg
8d811d19d4 typo, found by Joerg Schilling 2016-05-31 19:59:53 +00:00
tg
9ab9ee194c fix shf.c-internal buffer overread on printing digits,
introduced by the utf_skipcols()-related fixes, more
specifically the check for combining multibyte characters
past end of given width (bogus mixed-up semantics we have here)
by reïntroducing the NUL byte from commitid 1005474EE1E4024A4E4
2016-05-17 15:36:35 +00:00
tg
55e51d9580 add, with a warning, regression testcases for:
• trailing combining character
• ${!#} and friends

the warning is: pid_t is signed (so PIDs could be negative) and may be
rather long, in some cases even longer than a C “long”; we’ll need to
handle this by adding checks (sizeof pid_t=gid_t, sizeof pid_t must be
either mksh_ari_t or u_short) and code (always print $$/$! as unsigned,
set unsigned attribute on $BASHPID and friends)
2016-05-05 22:58:19 +00:00
tg
92833fc6ce fix utf_widthadj/utf_skipcols handling for the remaining cases I can spot 2016-05-05 22:56:15 +00:00
tg
3d130b606a give C_VAR1 precedence over display variable name; izabera pointed out,
rightfully, that, in POSIX shell, ${!#} is defined, and ${!#123} should work
2016-05-05 22:45:58 +00:00
tg
b6e438037f collapse uselessly nested if 2016-05-05 22:19:04 +00:00
tg
370b3e6008 fix trailing combining characters in all shf functions 2016-05-05 21:38:12 +00:00
tg
152eee2085 handle combining characters at the end of the string correctly 2016-05-05 21:33:46 +00:00
tg
2e74da0953 fix potential off-by-one 2016-05-05 21:29:24 +00:00
tg
3da248755a bump 2016-04-14 15:38:38 +00:00
tg
1cc8f76f07 fix order of bounds checks; inspired by NetBSD#50747 2016-04-14 11:51:26 +00:00
tg
83cde99aee fix redefining FKSH functions as !FKSH (e.g. the smores change) 2016-04-09 16:41:07 +00:00
tg
da085fd7d2 simplify 2016-04-09 16:33:23 +00:00
tg
4c4131dddf commitid 10056D5D8AF01B31531 broke fix for Debian #783978 (add testsuite) 2016-04-09 13:55:12 +00:00
tg
838833ba86 pass on RCSID 2016-03-12 20:45:38 +00:00
tg
842e353011 lintian has new spelling warnings 2016-03-06 21:01:28 +00:00
tg
1a795b7cdb expanded tests for command/whence, from Martijn Dekker 2016-03-05 15:39:36 +00:00
tg
4ccfd5fab5 document upcoming set +o changes; bump 2016-03-04 18:28:42 +00:00
tg
cb0604767f address latest Debian gcc-snapshot’s warnings (some actual bugs!) 2016-03-04 14:26:16 +00:00
tg
e8d6b5c2a3 render PDF manpages in PA4 paper size ipv DIN ISO A4 paper size 2016-03-03 23:51:31 +00:00
tg
fdfd7a2ab8 collapse if, also to avoid braces warning 2016-03-01 20:28:33 +00:00
tg
85c377dfc2 don’t read past buffer for empty nameref targets (fmunozs, Valgrind) 2016-03-01 20:06:15 +00:00
tg
539714f78a there was a comment on 1015; change comments to match, no code change 2016-03-01 19:22:31 +00:00
tg
c2bdb1b9dd check not-begun heredocs at EOF earlier
izabera reported they were not caught with “set -n”
2016-03-01 18:30:05 +00:00
tg
25a564460e explicitly block SIGEXIT and SIGERR in case some idiot defines it 2016-03-01 18:29:48 +00:00
tg
7c93759f66 fix invalid read for ksh93-style base-1 integers
(valgrind; reported by fmunozs via IRC, thanks!)
2016-03-01 18:29:38 +00:00
tg
819229fa50 also flush syntax-failed or interrupted input into the history 2016-03-01 18:00:08 +00:00
tg
ca17c0f090 sync clog 2016-02-26 22:03:10 +00:00
tg
f23ed68f00 clean up, avoid aliasing concerns in non-debug case 2016-02-26 21:53:37 +00:00
tg
4a21365067 yyrecursive needs its own and empty heres[]
fixes http://thread.gmane.org/gmane.comp.shells.dash/1241/focus=1245
2016-02-26 21:24:58 +00:00
tg
3b5f9c744c I didn’t like the code behind command -[Vv] and whence, so I rewrote it.
Bugreport by Martijn Dekker <martijn@inlv.org> about POSIX non-compliance
2016-02-26 20:56:45 +00:00
tg
143c2aa69c bring documentation of command up to date wrt. POSIX and whence wrt. command
(inspired from a bugreport by Martijn Dekker who noted this is currently broken)
2016-02-26 19:38:42 +00:00
tg
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
tg
a3c28ebd67 plug a few display problems with special parameter name expansions
reported by Stéphane Chazelas
2016-02-26 18:48:14 +00:00
tg
c8da180d60 fix substitution error message 2016-02-26 18:05:10 +00:00
tg
80027c9e53 legibility 2016-02-26 17:58:30 +00:00
tg
2a3773b70b share structures better, less (void *) casts when we can stay typed 2016-02-24 02:08:39 +00:00
tg
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
tg
e9fc158472 plug a buffer underflow read we executed with *every* testsuite run and
*every* interactive shell session (history didn’t contain anything when
we tested for ignoredups)… first caught by the new code… d’uuuuuuuuuuh!
2016-02-24 01:45:59 +00:00
tg
f0a042f070 implement mmap-using mechanism to catch buffer underruns inside mksh
(pulls stdio, is rather BSD-specific and memory-hungry and a bit slow)
2016-02-24 01:44:46 +00:00
tg
8e7abc48eb head(1) is not portable (-n 1 not præ-POSIX/ancient, -1 not busybox)
⇒ use sed(1)

bug spotted by wbx@
2016-02-11 20:19:44 +00:00
tg
af94276ea7 merge most recent portmdoc into a̲l̲l̲ of its users; fixup .\& into \&. like
in mksh(1), for Schillix ditroff
2016-02-11 20:12:09 +00:00
tg
19ab699100 fix working with ditroff on Schillix, confirmed by Jvrg 2016-02-11 19:00:50 +00:00
tg
7c58621bc7 so, GCC is a real bitch 2016-01-21 19:58:13 +00:00