tg
c995f7ca98
I thought of making COMSUB pass a pointer to the struct op *t->left around
...
instead, but the parser for the so-called “backticks” (U+0060) still emits
plaintext COMSUB wdstrings, and the evaluation code emits plaintext if the
code is not run (‘-n’ option), so it’s not worth the effort and memory ma-
nagement issues, even though it _would_ optimise the most common case…
Bump version numbers, sync regression tests; add one testcase from the old
webpages too. Sync manpage, this now works, but keep the workaround in, as
“portability issue” with slightly changed wording.
Also, /bin/sleep must be used in one manpage example if sleep is built in.
2011-03-06 01:50:11 +00:00
tg
25905b91a7
the long-awaited recursive parser for COMSUB $(…) expressions
...
fixes RedHat BZ#496791
2011-03-06 01:25:35 +00:00
tg
e93daee5f4
dump TCASE as "case $foo in (1) blah ;; esac" not "… (1); blah …"
2011-03-06 00:52:02 +00:00
tg
f3dbbe3f0c
split malloc_os and friends further into
...
• functions called by mksh’s grouping memory allocator
• functions called by mksh code itself
the latter may be changed to call the internal grouping allocator,
if a porter so desires (but if this were recommended, the code in
question would already do so, so…)
2011-03-05 21:48:09 +00:00
tg
0b6afea352
introduce macros for malloc, realloc, free to hide them from mksh
...
no code may henceforth use memory (de-)allocation functions directly
use these macros, porters can change them for abstraction
2011-03-05 21:43:18 +00:00
tg
ad2fd952e4
nvm, got it
2011-02-27 19:41:17 +00:00
tg
3019066e60
no idea why MiNT has this… issue…
2011-02-27 19:31:34 +00:00
tg
6a941a3c39
fix UWIN: don’t close fd #3 (also, int→bool)
2011-02-27 19:29:32 +00:00
tg
e0c4ad7fa9
port to FreeMiNT: add OS uname and flags; 2>&- is evil™; $UNIXMODE must be preserved; unlink(2) is weird
2011-02-27 19:29:20 +00:00
tg
816bf86710
MKSH_NOPROSPECTOFWORK has no co-processes. at all.
2011-02-19 21:39:14 +00:00
tg
0b57abd4d3
• add -u option (POSIX: unbuffered ⇒ nop) to the built-in cat
...
• PIPESTATUS now supported (like bash 2) whose last member
may actually differ from $? since the latter may not be the
result of a pipeline partial command
• add regression tests, documentation, etc.
2011-02-18 22:26:13 +00:00
tg
36d41ed9ee
* plug a regression introduced as a pasto (think, mira!)
...
* add selftest-direct-builtin-call regression test, while here
2011-02-13 21:13:08 +00:00
tg
a796512040
• more comment and int→bool cleanup, add and improve some comments
...
• in interactive mode, always look up {LC_{ALL,CTYPE},LANG} environment
variables if setlocale/nl_langinfo(CODESET) doesn’t suffice
• add the ability to call any builtin (some don't make sense or wouldn't
work) directly by analysing argv[0]
• for direct builtin calls, the {LC_{ALL,CTYPE},LANG} environment
variables determine utf8-mode, even if MKSH_ASSUME_UTF8 was set
• when called as builtin, echo behaves POSIXish
• add domainname as alias for true on MirBSD only, to be able to link it
• sync mksh Makefiles with Build.sh output
• adjust manpage wrt release plans
• link some things to mksh now that we have callable builtins:
bin/echo bin/kill bin/pwd bin/sleep (exact matches)
bin/test bin/[ (were scripts before)
bin/domainname=usr/bin/true usr/bin/false (move to /bin/ now)
• drop linked utilities and, except for echo and kill, their manpages
• adjust instbin and link a few more there as well
2011-02-11 01:18:23 +00:00
tg
81b80af47a
quell a warning when running with __CRAZY=Yes MKC_DEBG=cpp
2011-02-11 00:49:03 +00:00
tg
cc8caf2cf9
add a sleep builtin that can deal with fractions too
2011-02-11 00:41:38 +00:00
tg
4e626ecc30
add smores, a more(1)-like pager
2011-02-09 19:32:35 +00:00
tg
8b73363c20
query for select(2) in preparation of sleep and read-with-timeout builtins; ualarm(3) and friends are too awkward to use so we ifdef these builtins on select support ☹
2011-02-09 19:32:26 +00:00
tg
8610728bf6
forgot
2011-02-09 19:32:15 +00:00
tg
d158038191
Limit history file size to 1 GiB for sanity (especially considering struct stat.sb_size is sometimes unsigned, sometimes signed, and sometimes larger than long, ugh…)
2011-02-09 15:08:01 +00:00
tg
5161342b9b
fix warning about signed vs. unsigned comparision and potential truncation error
2011-02-09 13:08:27 +00:00
tg
4e0f597b5d
fix prev-hist-word again, thanks Jörg-Volker Peetz
2011-02-09 13:08:18 +00:00
tg
d4658a569e
refactor code to be able to track whether we have a parameter substitution
...
or a “proper” glob expansion; if there’s a dollar, but not a glob, refrain
from appending a space later (LP: #710539 )
2011-02-03 15:57:52 +00:00
tg
1c4aab3a3e
when setting a UTF-8 locale, also set -o utf8-mode
...
since we might start on e.g. GNU/Linux with a system-wide C locale
2011-02-02 22:48:15 +00:00
tg
c4e5678c0e
regen
2011-01-30 02:28:31 +00:00
tg
d7c2e16ca0
fix typos
2011-01-30 02:18:25 +00:00
tg
45d99b9ec9
Scan for existence of <sys/file.h> which is not ubiquitous; allows
...
klibc-mksh (despite no hope to get a signal of a job) persistent history
2011-01-30 02:18:20 +00:00
tg
30d8e3934d
SUSv4 says trap foo UNKNOWN is not a syntax error, merely exit ≠0.
...
Inspired by 673dab8698b0399c967216c02262eaf95361a75c.
2011-01-30 01:36:00 +00:00
tg
bdfcdc56c8
introduce MKSH_NOPROSPECTOFWORK which is like pdksh’s JOB_SIGS in reverse, like MKSH_UNEMPLOYED is pdksh’s JOBS in reverse; allows mksh to work (hah! no pun intended…) with klibc (and possibly, Syllable Desktop and Plan 9) for now, until they fix their bugs
2011-01-30 01:35:35 +00:00
tg
07889fb0eb
-DIN_MKSH is not used by anything
2011-01-29 19:07:16 +00:00
tg
414c09ab1a
plug regression introduced with read -d by fixing the problem differently
2011-01-22 20:33:14 +00:00
tg
9b02e15d26
For prev-hist-word, when doing other things in between reset the counter
2011-01-21 22:43:17 +00:00
tg
da9d0f3d97
${foo@x} is now special-expansion for values of x, defined for now:
...
‘#’ = hash of $foo
2011-01-21 22:25:34 +00:00
tg
846fbde3b8
add read with delimiter, like AT&T ksh93 (thanks Dave for the suggestion)
2011-01-21 22:00:17 +00:00
tg
865b267dbf
drop suspend alias in Android too
2011-01-21 21:07:11 +00:00
tg
cc31d86e3b
• implement KSHEGID, KSHGID, KSHUID variables by suggestion of Richard K.
...
(KSHEUID aka USER_ID already exists)
• simplify, speed up LCG and $RANDOM handling again
2011-01-21 21:04:48 +00:00
tg
1d6e0470e0
use header only if found
2011-01-21 20:51:56 +00:00
tg
7326331f30
RT|Chatzilla said in #!/bin/mksh that MSYS probably does mksh
2011-01-15 21:56:36 +00:00
tg
230f59d064
New functionality: assign here document to string variable directly,
...
without cat and temp files. Hacked in Lëtzebuerg ☺
This was the third try. Where to put this was not palpable… same for =(…)
2011-01-09 21:57:29 +00:00
tg
b4948e430f
this is a bashism but might be from ksh93 IIRC… still dead ugly as hell!
2010-12-19 20:00:56 +00:00
tg
ce160a8155
MKSH_SMALL need not imply !HAVE_REVOKE as default
2010-12-12 14:06:35 +00:00
tg
210608b199
regenerate all wcwidth code from UCD 6.0.0 and related tables,
...
and mgk25’s wcwidth.c 5.0 code; add check against 2-byte wchar_t;
optimise libc wcwidth(3) implementation taken from mksh and sync these
2010-12-11 16:05:03 +00:00
tg
beba20ea56
since dot.mkshrc is sourced by interactive shells anyway, and exporting
...
PS1 may hurt other shells, do not export it any more
reported by and fix suggestion / affected variables by Frank Terbeck
2010-11-26 21:08:54 +00:00
tg
27dce9168a
change behaviour of argument-less exit in traps to match SUSv4; Debian #599484 (original patch from Jonathan Nieder, thanks!) in a variant that appears to handle nested traps well
2010-11-01 17:29:05 +00:00
tg
e57379aab7
regenerate from Unicode 6.0.0
2010-11-01 17:28:49 +00:00
tg
29de79c7bf
mknod’s now demoted and only used as special-case builtin, in MirBSD only
...
built for the installer, to save time, as the original OpenBSD hack wanted
2010-10-08 17:56:57 +00:00
tg
c37518d509
ouch! \c? is DEL, not \c~
2010-10-08 17:30:05 +00:00
tg
3365cb8d0f
• Build.sh: fix a compiler warning which, had it not been irrelevant in
...
a mirtoconf check, would’ve been a real problem on an LP64 platform
• sh.h: work around a bad interaction between -Wformat on gcc and manual
string pooling for T_synerr, which is used in place of a format string
in some places
2010-10-01 19:04:38 +00:00
tg
895e8f584b
partial obsd sync:
...
- remove some old groff workarounds in SYNOPSIS
- avoid "Op ... Oc" constructions
except where the latter doesn’t work with nroff
2010-09-24 20:21:43 +00:00
tg
e169648b89
while here, change SETUID_CAN_FAIL_WITH_EAGAIN to abort immediately
...
by suggestion of Chris Palmer again
2010-09-19 19:28:23 +00:00
tg
b0b03a5a75
RNDEBUG showed that using the pushb_fast will have much fewer syscalls
2010-09-19 19:21:20 +00:00