tg
a1946ba7b8
honour $TMPDIR in test.sh for use as scratch space
2014-02-08 20:20:17 +00:00
tg
89e774fd7e
• fix ${12345678901234567890} segfault (OOB access / integer overflow)
...
‣ not like oksh did, but using mksh’s built-in features
• handle suggested __pure additions
• revert cid 1004F7F096867C83CF0
‣ always use our wcwidth code
‣ only use our strlcpy code if none found
• fix a couple of gcc-snapshot and clang/scan-build warnings
• mksh R49~rc1
2014-01-05 21:57:29 +00:00
tg
d49d03a095
read’s -r option is not portable; discovered by RT
2013-12-02 19:47:33 +00:00
tg
6217904193
detect getsid(2), also spotted by RT, this on MSYS
2013-11-30 17:41:35 +00:00
tg
7cae22ef5c
zsh on BeOS calls sigsuspend() on “dot”, which fails; work around it
...
tested by RT
2013-11-30 15:42:19 +00:00
tg
73106b6e75
make this actually call getopt.sh, correctly, and Heirloom sh compatible
2013-11-20 21:14:50 +00:00
tg
be9bd4c543
static option creating for cmdline and set, too
...
(in preparation of doing something real with set ±p)
2013-11-17 22:22:56 +00:00
tg
d1245ee13a
more clueful (automatic) getopt string generation
2013-11-17 22:21:18 +00:00
tg
cf40c01b45
adapt most __attribute__((…)) occurrences to new KNF style(9)
2013-10-31 20:05:39 +00:00
tg
2e7509548a
integrate latest changes from oksh: Wed Sep 4 15:49:19 2013 UTC by millert
...
Add a proper suspend builtin that saves/restores the tty and pgrp
as needed instead of an alias that just sends SIGSTOP. Login shells
may be suspended if they are not running in an orphan process group.
2013-09-10 17:33:04 +00:00
tg
fda010d8de
SECURITY: Unbreak “set +p”, broken by OpenBSD ksh change.
...
TODO: I am seriously considering following Chet and changing
the way this works, by explicitly dropping privs unless the
shell is run with -p. Every other shell does it like mksh,
except Heirloom sh, which on the other hand doesn’t know any
explicit set -p or set +p (though it doesn’t know set +foo
for any foo either).
┌──┤ QUESTION: Do we need the ability to do this:
│ tg@blau:~ $ ./suidmksh -p -c 'whoami; set +p; whoami'
│ root
│ tg
If not, I’m seriously considering to drop set ±p as well,
only parse -p on the command line, with +p being the default,
and dropping FPRIVILEGED.
Thanks to RT for noticing and jilles for initial follow-up
discussion, as well as Chet Ramey for doing the sane/secure
thing instead of following Debian.
2013-08-23 14:07:39 +00:00
tg
c10e5bd237
reduce amount of .bss memory needed; initialise via AEDIT at x_init
...
or even first run of x_vi
2013-08-10 13:44:33 +00:00
tg
c7f483c16f
also protect the icon file from accidental deletion, and merge the cases
2013-07-25 17:01:03 +00:00
tg
aeea5fd22a
rewrite lots of “elif test” into “case” statements
...
(except those where the condition isn’t related)
2013-07-25 15:54:33 +00:00
tg
31d36b6611
Plan 9 support patch from Jens Staal
2013-07-25 15:43:59 +00:00
tg
8d0a5e6dbe
align the compile-time asserts double-check struct size with padding
2013-07-25 15:36:18 +00:00
tg
ead77623d3
Fix most “set -x” problems (LP#1179287)
...
• “set -x” manually (cmdline too) snapshots fd#2 now
• “set -o inherit-xtrace” introduced; default still enabled
• reverted iodup printing to pre-R45 behaviour
• made Flag(FXTRACE) a proper state machine
2013-07-21 18:47:24 +00:00
tg
80a83f4f0b
use ${SIZE-size} for lewellyn’s cross
2013-07-08 10:12:45 +00:00
tg
6aa08008b3
replace warnings for sig_t detection
2013-06-03 22:27:15 +00:00
tg
8256f266ff
fix a number of warnings and other issues:
...
• sig_t detection was a bit insane, it is a function-pointer type after all
• fix uninitialised variable in c_select which led to mistakenly accepting
invalid (nōn-numeric) input and acting, randomly, upon it
• keep SIGCHLD blocked in child after forking longer, for job list manip
• block SIGCHLD ifdef DEBUG_LEAKS to not run job foo during/after afreeall
• fix annoying ISO C90 vs. C99 (un)signed constant warning
2013-06-02 03:09:17 +00:00
tg
49d1ebfb71
Replace wcwidth code by mine based on Unicode 6.2.0
2013-05-31 23:27:14 +00:00
tg
407734d305
meh, wrong gcc flag
2013-05-22 19:24:32 +00:00
tg
c8a3127ea7
• fix error in warning fix (hah!)
...
• if GCC add -Wno-deprecated for dietlibc (and others) idiocy
2013-05-22 18:56:50 +00:00
tg
d4bf779c7e
also from Sylvestre Ledru’s clang-using Debian buildd, quieten another configure time warning; log before running that /dev/{null,tty} exist (with ls -l, so we see they’re actual devices)
2013-05-08 11:30:45 +00:00
tg
a072c63fe8
declare thiswillneverbedefinedIhope to silence some configure time warnings
2013-05-08 11:16:19 +00:00
tg
f02f8afe6e
• don’t accidentally remove lksh.1 from the srcdir for in-srcdir builds
...
• fix post-build non-‘-Q’ output for lksh
both discovered in Fedora; thanks rsc
2013-05-05 13:38:00 +00:00
tg
1d0409d932
implement VALSUBs
2013-05-02 21:59:54 +00:00
tg
f0f34eb7b6
• Allow setting both -o posix and -o sh (although only in the same
...
command; setting one still unsets the other at first)
• Change subst_exstat to be conformant unless -o sh is set and -o posix isn’t
• In lksh, make subst_exstat (newly) conformant if -o posix
• New MKSH_BINSHPOSIX to accompany MKSH_BINSHREDUCED
• Sync lksh manpage precisely
2013-05-02 20:21:45 +00:00
tg
55e9ca460c
start next development iteration
2013-04-27 18:12:39 +00:00
tg
deb4a3bf20
Oh well… this looks well, is done done, and gcc-snapshot doesn’t complain:
...
• correct order of built-in commands; use POSIX special versus “all others”
plus “keeps assignments” as distinction, no longer play POSIX regular vs.
others game; sync manpage
• fix LP#1156707: map (( internally to “let]” which is no valid function
name and so can’t be overridden but is unlikely to be used otherwhere
and not strictly permitted (by POSIX) anyway
• we do not need -Wno-overflow any more, either
• bump to R45
2013-04-26 21:22:50 +00:00
tg
5571430281
now get rid of the run-time check, the idivwrapv nonsense, and straighten out lksh
2013-04-26 19:40:09 +00:00
tg
4b2e17b828
• let mksh “set -x” print whole TCOM trees
...
• plug some memory leaks in debug (“set -x”) and warning paths while here
• one from Florian (friend of Natureshadow) for WTF
2013-03-24 00:56:27 +00:00
tg
d99e470a64
bump
2013-03-05 15:41:41 +00:00
tg
817aeb8fdb
both mksh(1) and POSIX say: "$@" should always generate multiple words
...
issue in pdksh reported in IRC by engla, thanks!
2013-02-23 20:03:31 +00:00
tg
74e2ef8b0b
one more int → bool; mention “set -o sh” may (on raare OSes) be enabled
...
automatically (and it differs between targets); test MidnightBSD 0.1 ash
compat code and adjust the testsuite so it passes with it enabled
2013-02-19 18:45:22 +00:00
tg
dffb1ab915
put list of check_categories into Makefrag.inc generated; bump patchlevel
2013-02-18 22:55:40 +00:00
tg
e141cab1ac
revert cid 10050DD0C8519194AE9 and 100511FC81525949AF7
...
AT&T SVR4 broke 'cc -c -o foo.o foo.c' totally
switch to an alternative method of finding out the prototypes
provided in IRC by dalias (thanks); RT says this fixes his
issues on SVR4 – let’s just ignore the ominous message from
cid 1004713D70A5362BACF about needing to be a compile-time
check unless something else pops up, I can’t think of something
that isn’t already covered
2013-02-17 07:06:15 +00:00
tg
b684a7c6bd
backpedal with $'…' and $"…" interpolation
...
it turns out this breaks more legacy scripts than anticipated
2013-02-17 05:40:17 +00:00
tg
47f8a21e3c
SVR4 cc doesn’t like -c -o conftest.o when conftest.o already exists:
...
it errors out with “-o would overwrite conftest.o” (thanks RT for reporting)
2013-02-16 17:55:51 +00:00
tg
85d7059c48
… I fsck’d up and built R42b from MAIN ipv mksh-R42stable… oh well.
...
TODO: convert enum to something like uint8_t to save even more space
2013-02-16 00:21:57 +00:00
tg
6b797a7bc8
• test.sh now is -v (verbose) by default, new option -Q to quieten (like Build.sh)
...
• test.sh handles +P, +Q, +S, +v properly
2013-02-11 16:27:56 +00:00
tg
42e1bdc095
doc update
2013-02-10 21:20:57 +00:00
tg
43a41932e7
make DEBUG_LEAKS safely free all resources before the main shell exits
2013-02-10 18:17:30 +00:00
tg
b23d768a9b
Unbreak linking on AIX, reported (with fix) by Torsten Sillke, 10x!
2013-01-12 02:25:01 +00:00
tg
72a748c891
if you have to look *this* up, danger ahead; point to porter's info
2013-01-01 21:19:36 +00:00
tg
0ce1ca41cb
carefully begin owcc (Watcom C’s POSIX cc wrapper) support
2012-12-28 04:58:13 +00:00
tg
113db497ba
RT says QNX 4 has _SIGMAX not SIGMAX or NSIG
2012-12-28 03:35:34 +00:00
tg
192ea7638b
now that we found out the root case for the recent QNX problem…
...
03:11⎜«RT|AO:#!/bin/mksh» YES it WORKS now!
… there’s no reason for sys_nerr to not be const, either ☺
2012-12-28 03:20:35 +00:00
tg
f7acd1f3fc
AIEEE!
...
03:00⎜«RT|AO:#!/bin/mksh» cc -c -o a.out does not output a.out but conftest.o (!!)
evil… just use tcfn=conftest.o for now, cf. cid 1004713D70A5362BACF (but why must it be one?)
2012-12-28 03:05:17 +00:00
tg
b2396677e7
harmonise sys_{sig,err}list ⓐ checks, ⓑ uses, ⓒ _decl values when not needed, ⓓ prototypes; ⓔ “const” is a keyword and thus space-separated from the preceding ‘*’ pointer indicator
2012-12-28 02:28:39 +00:00
tg
64eddba65f
-D__EXT_UNIX_MISC needed for “extern const char * const sys_errlist[];” on QNX
2012-12-27 15:52:47 +00:00
tg
f998054508
16:39⎜«RT|Chatzilla:#!/bin/mksh» ok, tested cc -E outputs preprocessed out with leading space(!).
...
16:49⎜<mirabilos:#!/bin/mksh> that's like NeXTstep which insers spaces around =
16:49⎜<mirabilos:#!/bin/mksh> but we can sed that away I guess.
16:49⎜«RT|Chatzilla:#!/bin/mksh» yeah, modifying grep/sed lines adding " *" works
2012-12-24 17:50:10 +00:00
tg
6d5e27a31a
gcc-snapshot (see below) issued a clobber warning, and both it and mgcc
...
yowled about the memmove test until I found a compromise
gcc version 4.8.0 20121120 (experimental) [trunk revision 193662] (Debian 20121120-1)
2012-12-22 00:03:42 +00:00
tg
8e6fa9a5c6
now we can actually prefer sys_errlist[] (oh, and _sys_errlist[] also exists, a̲n̲d̲ fix a pasto) over strerror(3) like we do for sys_siglist[] and strsignal(3); our implementation is smaller and does more code reuse than even MirBSD libc’s after all
2012-12-17 23:31:30 +00:00
tg
12c662b6e2
thanks to ISC (Interactive) Unix, we now know a few samples of errnos
...
that get used, plus one for the realpath-1 regression test; also make
sys_siglist_decl detection nicer and poison strerror() with non-const
return value ifdef DEBUG, make it always const
2012-12-17 23:18:11 +00:00
tg
ae1ec32dbc
fix whitespace; ACK RT’s Minix-vmd stmts
2012-12-17 22:57:50 +00:00
tg
4c5d7094ef
RT also said what was missing on SunOS 4.1.1 (it also needs -DMKSH_UNEMPLOYED?)
2012-12-17 22:14:27 +00:00
tg
b8d3f12025
merge/genericise RT’s port to Minix-vmd
2012-12-17 21:55:06 +00:00
tg
75af4e244a
add -fno-asynchronous-unwind-tables for all GCC builds, as suggested by dalias and chris2
2012-12-05 19:38:05 +00:00
tg
7fc9e1b492
revert cid 100506499941EC578A6: musl has _ALL_SOURCE now, aliased to
...
_GNU_SOURCE which we already define for convenience; thanks to dalias
and chris2 on IRC for discussion and being accomodating!
2012-12-03 22:10:02 +00:00
tg
2213c5887a
how many times can you botch a gettimeofday mirtoconf check?
2012-12-03 13:07:11 +00:00
tg
6e41c9c2ee
catch MSYS dash printf builtin not working
2012-12-01 14:22:09 +00:00
tg
b868c517b7
remove *all* nonnull assertions and other workarounds for clang scan-build
...
this beast evolved in the last 2½ years, and we’ve had trouble with
some of them earlier
2012-12-01 01:36:30 +00:00
tg
f6728353bd
fix “null argument where non-null required” warning
2012-11-30 22:17:32 +00:00
tg
ce6cdb96f2
regenerate Makefiles
2012-11-30 20:49:18 +00:00
tg
0f3071a8b2
MKSH_DISABLE_EXPERIMENTAL is a NOP again; use ${ precmd;} in dot.mkshrc
2012-11-30 20:19:16 +00:00
tg
2fc5aa487b
RT tells me Minix 2 (i386) also doesn’t have gettimeofday(2)
2012-11-20 18:50:46 +00:00
tg
bfe7d78d40
bring back ${ foo;} sans dot.mkshrc patch, using a temporary file, and as experimental feature
2012-10-22 20:19:18 +00:00
tg
574c024635
introduce MKSH_DISABLE_EXPERIMENTAL and wrap the new feature introduced
...
in cid 1005084678C510CF7E4 in it
2012-10-22 16:53:22 +00:00
tg
59f7279ea2
this is now http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55009
2012-10-21 17:38:22 +00:00
tg
21234f1526
fix detection of penguin flocks
2012-10-14 14:02:10 +00:00
tg
d8662eb228
even more hacks to pass “-O666 -fstrict-overflow -Wstrict-overflow=9 -flto=jobserver” with “gcc version 4.8.0 20120930 (experimental) [trunk revision 191865] (Debian 20120930-1)” ☹ plus make the rtchecks mandatory
2012-10-03 17:24:23 +00:00
tg
0d72035990
make char_is_8_bits assertion more anal
2012-09-28 18:57:49 +00:00
tg
4b2371eebf
add workaround for musl (define _BSD_SOURCE as well) which is even *more*
...
ugly than the one for dietlibc (the other one misunderstanding the *real*
meaning of that flag), by $CC divining, until such time as all the Linux
C libraries will honour _ALL_SOURCE (I wish)…
2012-09-27 18:23:43 +00:00
tg
89613d34d4
detect zsh 2.5.02 as found on NeXTstep 3.3; thanks to ft (Frank Terbeck) and chris2 (Christian Neukirchen)
2012-09-18 14:18:59 +00:00
tg
84020897fd
allow overriding /etc location (LP#1039713), but don’t do it
2012-08-24 19:09:10 +00:00
tg
1d21782419
add -D_DARWIN_C_SOURCE on OSX; should help bsiegert@’s problem
2012-08-03 18:16:43 +00:00
tg
4778a2a62f
lesson learned from http://k1024.org/~iusty/blog/entry/perf-null/ – add -DMKSH_SMALL_BUT_FAST which gives more speed (8/20K less cycles, 5/9K less insns, 1.8/2.4k less branches, 65/275 less branch misses) on Debian/amd64 (klibc-static/eglibc) at cost of 0/2 more page faults and 6K/6K more text size
2012-07-01 15:55:00 +00:00
tg
978d365ab1
-L implies convfds now
2012-07-01 15:51:24 +00:00
tg
c1f821d4e5
(mksh) tighten 32-bit requirements; (lksh) switch to long; allow any bitness
2012-06-28 20:17:39 +00:00
tg
1fa4453946
mh… all I’m gonna hack on upstream today… fix -t for manpage generation and cleanup code snippets; bump vsn; sync clog
2012-06-26 19:33:33 +00:00
tg
967b68e08e
one more thing to implicitly disable (nonsensical anyway) for lksh
2012-06-26 19:15:11 +00:00
tg
967e929e98
add basic LEGACY KSH mode (Build.sh -L), no changes yet
2012-06-25 16:05:10 +00:00
tg
b0543ef064
define $tfn default late (for Things To Come™)
2012-06-24 20:47:07 +00:00
tg
3ebfd6e563
new option -t (target shell filename)
2012-06-24 20:46:07 +00:00
tg
4c65f518af
RT says: libc5 uses __inline__ for its inline stuff, but lcc doesn't support __inline__ but __inline
2012-05-18 01:38:04 +00:00
tg
1eebfa8b85
check whether klibc sigsuspend() is usable: RT or hpa’s two new methods; if not, deactivate it
2012-05-17 19:36:41 +00:00
tg
6b2aa91ddd
add a way to detect varying C libraries or other stuff “extra type”
...
(for now klibc) alongside “compiler type”
if klibc, add -DMKSH_NO_LIMITS automatically
2012-05-17 19:14:07 +00:00
tg
d05c7c4867
recognise (but don’t do anything with, yet) lcc (from RT)
2012-05-17 18:54:28 +00:00
tg
b89b96a4ab
RT says not using sigsuspend helps Syllable (but is still buggy, see http://forum.syllable.org/viewtopic.php?p=8171 and probably (doesn’t work for me) http://pyro-os.org/?section=Forum&forum=Bugs&zpbw_postKey=NUgSMp85XGHKbF751zJ6Ww which show the bug affects all shells)
2012-05-09 23:20:42 +00:00
tg
1117a25748
• sync clog
...
• write more notes on klibc, BeOS, Coherent, PW32, Syllable, Xenix
• sort DOS OE section to where it belongs
• add TARGET_OS=_svr4 for Dell UNIX
2012-05-07 17:03:03 +00:00
tg
d9d2485905
overhaul the grep(1)s and sed(1)s – see re_format(7)
2012-05-06 15:40:31 +00:00
tg
ea8f29f428
sprinkle CONSERVATIVE_FDS for many older OSes; DISABLE_TTY_WARNING for BeOS and Coherent (probably more to come); NO_CMDLINE_EDITING to Plan 9; put Hurd NO_PATH_MAX into MKSH__ private namespace
2012-05-05 17:37:44 +00:00
tg
27387673a4
new MKSH_DISABLE_TTY_WARNING for ports that just can’t help it
...
TODO: add_cppflags this automatically in the TARGET_OS switch for some
2012-05-04 22:34:51 +00:00
tg
e6ace01f12
last parts of Coherent patchkit: O_ACCMODE and termio
2012-05-04 22:18:27 +00:00
tg
fef3808126
more symlink(7) nonexistence support code
2012-05-04 22:05:02 +00:00
tg
401116766b
generalise the skipping sete{u,g}id() case for Coherent, not just BeOS
2012-05-04 21:57:38 +00:00
tg
5488e79d3b
introduce a nosymlink check category (idea by RT); pass it to test.sh; use cp if ln -s fails (me)
2012-05-04 21:42:51 +00:00
tg
b1aa05e36e
do not use $(uname -s || uname) as TARGET_OS if it’s the same as $(uname -n), to weave around many ancient unicēs; idea discussed with RT
2012-05-04 21:37:08 +00:00
tg
000d0eb653
another awk(1) compatibility fix from RT
2012-05-04 21:34:12 +00:00