tg
b531baa7fd
add a “\builtin” builtin, make it forward assignments, fix some bugs
...
related to that:
• while AT&T ksh may do it, POSIX says nothing about allowing
declaration commands only without vars and redirections, and
“without vars” especially seems against which commands they are
• fix relationship between forwarders and real declaration commands
• clean up c_builtin vs shcomexec mess
Also, re-run “make repool” with a fixed src/scripts/stringpool.sh,v 1.3
2017-03-12 02:04:15 +00:00
tg
950df6491d
add “\builtin” utility
2017-03-11 23:22:36 +00:00
tg
27cdd075c6
remove odd use of KEEPASN, I believe it really unnecessary now
2017-03-11 22:58:51 +00:00
tg
7d387fd54e
fix embarassing pasto and OS/2 UNC logic; thanks komh!
2016-11-12 03:54:48 +00:00
tg
7b4bee7e58
collective R54 release preparation multi-merger:
...
install both lksh and mksh manpages from Build.sh (Martijn Dekker)
spelling fixes (Larry Hynes)
manpage improvements (Martijn Dekker)
initial port to Harvey-OS’ APEX (Ronald G. Minnich, Elbing Miss, Álvaro Jurado)
more from komh’s OS/2 port (KO Myung-Hun)
2016-11-11 23:31:39 +00:00
tg
6c04e4a665
make print -c honour line separator
2016-11-11 21:13:25 +00:00
tg
5ba6be5837
put print_columns options into a helper struct, eases passing things around
2016-11-11 20:14:18 +00:00
tg
e16b0b9d5b
first implementation of “print -c” for columnising, currently hardcoded newlines
2016-11-11 19:59:39 +00:00
tg
56bdf24e54
fix error propagation in TAND/TOR constructs, noted by Martijn Dekker
...
still a bit unsure about the whole XERROK and *xerrok stuff, but…
it seems to work
2016-10-02 22:21:47 +00:00
tg
d18f9133c8
fix English (thanks to Andreas Buschka); TIL:
...
• to start ⇒ a start
• to begin ⇒ a beginning
2016-09-01 12:59:12 +00:00
tg
bb796ff785
simplify manpage and code; streamline manpage formatting and Satzzeichen
2016-08-24 20:40:00 +00:00
tg
757e25fb21
implement $KSH_MATCH and, to make it usable, ${foo@/bar/baz};
...
add a real-life example (for slagtc’s programmable tab completion)
to the manpage
2016-08-01 21:38:07 +00:00
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
5401a55a98
optimise away code for a case that’s almost unlikely to happen; fix pasto(?)
2016-07-24 23:07:19 +00:00
tg
a41a62dad7
efficient $(<<<foo) and $(<<EOF … ) implementation, requested by izabera
2016-06-26 00:44:59 +00:00
tg
97d1d5e4fe
fix var=<< implementation
2016-06-26 00:09:35 +00:00
tg
83cde99aee
fix redefining FKSH functions as !FKSH (e.g. the smores change)
2016-04-09 16:41:07 +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
188691d285
save 200 bytes off .text by revisiting string pooling
...
also, forgotten version bump
2016-01-21 18:24:45 +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
f6d937cc67
also recognise ksh93 compiled binaries and LZIP compressed files
2015-12-31 12:58:43 +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
59e7366036
a bit more careful, even if probably unnecessary
2015-10-09 15:28:20 +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
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
719778193a
add missing colon to two error msgs (no effect on dedup)
2015-09-05 17:20: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
d034be7a84
more mksh-os2 inspired hackery
2015-07-09 19:59:14 +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
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
b9a8fdf905
implement cat thing for realpath and rename too: if flag, call external
2015-07-05 15:45: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
c3efd2abb2
use already-existing ksh_isdash helper macro
2015-04-29 18:32:44 +00:00
tg
b7332de28c
a bit oksh-inspired getn return value checking, plus some code optimisation
2015-04-19 14:40:09 +00:00
tg
a1ba509bb9
oksh RCSID sync: we use mksh getn() instead of OS strtonum() which is just as safe (audited right now)
2015-04-19 14:23:26 +00:00
tg
cad9bc86d3
Implement the “FKSH functions have local scope for shell options” feature
...
for mksh but not lksh; bump to R51-alpha.
While here, tweak build scripts a bit, fixup MirBSD-specific Makefile
things, remove part of a comment that’s uninteresting.
2015-04-11 23:28:21 +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
07898d8a45
only lksh now implies unalias for a POSIX function definition (used e.g. in Debian sysvinit scripts that use a “stop” function)
2015-03-20 23:37:55 +00:00
tg
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
tg
1248a0a521
basically unbreak use of $*/$@ in here documents
...
a bit funny:
with NUL IFS, $* behaves like dash ('ab') and $@ like bash/ksh93 ('a b')
with WS or NWS IFS, all shells behave alike though
2015-02-19 22:00:03 +00:00
tg
ab683420df
fix use of $*/$@ in scalar context in [[ … ]] and case; spotted by Stéphane Chazelas
2015-02-19 21:58:19 +00:00
tg
f6f49a119b
add getopts for exec (unbreaks “exec -- /bin/ls”) and steal -a and -c from ksh93
2015-02-06 10:56:49 +00:00
tg
b94b2e363a
stop (ab)using the OS symbolic constant EOF, always use -1; plus misc fixes
2015-02-06 10:09:07 +00:00
tg
f235766a3d
int → bool
2015-02-06 09:42:46 +00:00