tg
c3e794c4d0
rework string pooling; disable our own (rely on compiler’s)…
...
• if HAVE_STRING_POOLING is set to 1
• if HAVE_STRING_POOLING is set to 2 and not GCC < 4 is used
• if HAVE_STRING_POOLING is not set to 0 and LLVM or GCC >= 4 is used
Closes: LP#1580348
2016-07-25 00:04:48 +00:00
tg
e8bbf79d8c
invent builtin flags instead of special-casing cat and printf for prefer-external-over-builtin stuff
2016-07-24 23:10:04 +00:00
tg
8370c0dd4d
experimentally use MKSH_CLRTOEOL_STRING instead of lots of spaces followed
...
by lots of backspaces for many clearing scenarios; requested by tmux user
slagtc on IRC
2016-07-12 23:07:10 +00:00
tg
a41a62dad7
efficient $(<<<foo) and $(<<EOF … ) implementation, requested by izabera
2016-06-26 00:44:59 +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
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
92833fc6ce
fix utf_widthadj/utf_skipcols handling for the remaining cases I can spot
2016-05-05 22:56:15 +00:00
tg
3da248755a
bump
2016-04-14 15:38:38 +00:00
tg
4c4131dddf
commitid 10056D5D8AF01B31531 broke fix for Debian #783978 (add testsuite)
2016-04-09 13:55:12 +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
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
f23ed68f00
clean up, avoid aliasing concerns in non-debug case
2016-02-26 21:53:37 +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
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
2a3773b70b
share structures better, less (void *) casts when we can stay typed
2016-02-24 02:08:39 +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
7c58621bc7
so, GCC is a real bitch
2016-01-21 19:58:13 +00:00
tg
27179454a9
hotfix for newer GCC
2016-01-21 19:38:09 +00:00
tg
188691d285
save 200 bytes off .text by revisiting string pooling
...
also, forgotten version bump
2016-01-21 18:24:45 +00:00
tg
61f7661b92
fix errno in print/echo builtin; optimise (with partial rewrite)
2016-01-20 21:34:13 +00:00
tg
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
tg
c51e067e62
incorporate more feedback from schily
2016-01-14 23:18:11 +00:00
tg
1b0e4f54cb
permit 'read -A/-a arr[idx]' as long as only one element is read;
...
fix corruption of array indicēs with this construct (LP#1533396)
2016-01-14 22:49:33 +00:00
tg
2492c5692b
incorporate suggestions by J�rg Schilling
2016-01-13 17:20:52 +00:00
tg
4059e105a2
fstat(2) after open(2) for set -C case when initial stat(2) was !S_ISREG
...
to fix race condition as suggested by jilles
2015-12-31 21:03:47 +00:00
tg
b2b0c0bbb6
update for recent changes
2015-12-12 22:25:15 +00:00
tg
1a4f644d6e
save ~1½K from the bootfloppy by reusing MirBSD libkern wcwidth(3)
...
but don’t bother for this for the regular /bin/mksh either
to keep the generic code path tested well
2015-10-24 19:45:23 +00:00
tg
cef386fb60
make “source” into a built-in command (keepasn, to match ksh93 and “dot”);
...
remove the “stop” alias and drop old Android and OS/2 hacks and auto-unalias
2015-10-09 21:36:59 +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
eb9050b8f8
stop using issetugid(2) for ±p check as it’s probably not the right tool
2015-10-05 17:59:00 +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
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
1b8b792b7e
quote path separator if ; in some cases; pointed out by komh
2015-08-13 22:06:23 +00:00
tg
c674e71377
be more careful with signals and errorlevels; bounds-check them better;
...
don’t trust the OS as POSuX comes up with more-than-8-bit exit codes now;
also, one more int → bool
2015-08-13 21:38:19 +00:00
tg
ba8a6e9461
merge OS/2 style PATH (absolute with drive letters, ‘;’ as separator)
...
From: KO Myung-Hun <komh@chollian.net>
2015-07-10 19:36:38 +00:00
tg
edf76ec8e6
harden the crlf vs lf tests even more; use binary mode explicitly on OS/2
2015-07-09 20:52:43 +00:00
tg
dcd8b6389b
apply the new cat hack to printf, too, to prefer it over the builtin
2015-07-09 20:20:45 +00:00
tg
950827394b
more easy OS/2 fixes
...
From: KO Myung-Hun <komh@chollian.net>
2015-07-09 19:46:43 +00:00
tg
041666eefb
a few more mksh-os2 inspired fixes
2015-07-09 19:28:21 +00:00
tg
f463d9da76
• revert the cat hack for realpath and rename
...
‣ I was convinced by several that more magic is never the solution
• fix a comment: function cat already had precedence
• change cat loader to look for existence, FPATH included, before
ditching the builtin; note that in manpage
2015-07-06 17:48:37 +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
62e27c3e07
simplify print_columns func argument: no need to return the first arg any more
2015-07-05 14:43:08 +00:00
tg
7a1acedd4a
bump; nothing to merge from oksh, and nothing more from me today
2015-06-28 16:23:24 +00:00
tg
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
tg
93ccb42114
overhaul the signal handling:
...
• support NSIG_MAX from http://austingroupbugs.net/view.php?id=741
and make a TODO for later to use sysconf(_SC_NSIG) at runtime
• bounds-check signals (e.g. no smaller than 1, but smaller than NSIG)
• align trap errorlevel with other shells
• make trap match what’s in POSIX and fixup the manpage
• refactor some code related to signals
• hide from kill builtin both EXIT and ERR pseudo-signals
2015-04-29 20:44:37 +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