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
tg
915b30adfe
revert part of the “size reduction” diff (zero size change though):
...
shellf() implies an shf_flush()…
2010-09-15 21:08:19 +00:00
tg
667d792d6a
• Address concerns of Chris Palmer from the Android security team
...
– possible integer overflows in memory allocation, mostly
‣ multiplication: all are checked now
‣ addition: reviewed them, most were “proven” or guessed to be
“almost” impossible to run over (e.g. when we have a string
whose length is taken it is assumed that the length will be
more than only a few bytes below SIZE_MAX, since code and
stack have to fit); some are checked now (e.g. when one of
the summands is an off_t); most of the unchecked ones are
annotated now
⇒ cost (MirBSD/i386 static): +76 .text
⇒ cost (Debian sid/i386): +779 .text -4 .data
– on Linux targets, setuid() setresuid() setresgid() can fail
with EAGAIN; check for that and, if so, warn once and retry
infinitely (other targets to be added later once we know that
they are “insane”)
⇒ cost (Debian sid/i386): +192 .text (includes .rodata)
• setmode.c: Do overflow checking for realloc() too; switch back
from calloc() to a checked malloc() for simplification while there
• define -DIN_MKSH and let setmode.c look a tad nicer while here
2010-09-14 21:26:19 +00:00
tg
08862021ee
add size optimisation hacks by me from Android except ifdef’d
...
(note, I’d prefer everyone to keep IDSTRINGs around though)
2010-09-14 21:15:11 +00:00
tg
dcbfc48855
┌──┤ apply Android patch from Jeff Hamilton:
...
│Don't alias 'stop' to 'kill -STOP'
│
│Android has already has a stop command used
│to stop the main runtime and the alias
│interferes with testing tools that expect
│stop to kill the runtime.
│
│Change-Id: I02b7efb9203dc39e97f63eb702a54ff79935b316
Although, this is closer to his first patchset and only takes
care of the alias, not the testsuite (which doesn’t run, at
least not out-of-the-box, nicely anyway) using #ifdef ANDROID.
We certainly want a more flexible testsuite…
2010-09-14 21:00:13 +00:00
tg
4f671299f4
lintian caught hyphen-used-as-minus-sign
2010-09-05 20:43:37 +00:00
tg
56a69907d5
optimise error messages, option parsing, and make more builtins
...
recognise "--", costs us 20 .text 0 .data 0 .bss
2010-09-05 19:51:35 +00:00
tg
07b97d5444
document workaround for the $(…) parsing bug
2010-09-05 19:12:24 +00:00
tg
2c59cc6089
more on the cat
2010-08-28 21:22:24 +00:00
tg
06c6be0a70
shave off another 468 bytes: we’re 300 bytes smaller than BEFORE the
...
cat builtin was added now… (also removed utf-8 from source files, in
favour of just ASCII)
2010-08-28 20:22:24 +00:00
tg
3747722db4
improve string pooling: saves 316 bytes in .text
2010-08-28 18:50:58 +00:00
tg
d09fd67299
make cat an mksh builtin, for things like here documents
...
if any options are given, the external programme is invoked instead
2010-08-28 17:21:46 +00:00
tg
297e2ced89
fix blocking_read prototype
2010-08-28 16:47:11 +00:00
tg
4e08a79555
whitespace
2010-08-28 15:48:20 +00:00