Commit Graph

2524 Commits

Author SHA1 Message Date
tg 3125146b43 Fix typeset issues (LP: #993847)
This was actually more evil:
• use a recursive function to display blocks in reverse order,
  so that local variable values overwrite global ones
• add array support to typeset -p (from typeset -p -)
• display 'set -A varname' line before setting values, for -p
• if -p got arguments, only display those (from the innermost scope)

Also, the usual amount of code cleanup…
2012-05-09 23:21:00 +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 06f8194dfb Valgrind says: close(-1) is not nice 2012-05-05 18:04:20 +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 29e36ed2a2 move x_mkraw() to main.c from edit.c in order to be able to skip the latter 2012-05-05 17:32:33 +00:00
tg 64447e738d my own over-optimisation prevents me from making the MKSH__NO_SYMLINK
case as nice as it could be, since part of the “if (0) {” case is jumped
into for the first run of the loop… thanks RT
2012-05-05 15:10:39 +00:00
tg f34cae3997 keep up 2012-05-04 22:44:34 +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 893ff18d59 fix typo; 10x RT for spotting 2012-05-04 21:48:29 +00:00
tg 7beac6668d provide for Coherent not having gettimeofday(2), imake style (bad, but this is not for others to use without a second thought anyway) 2012-05-04 21:47:04 +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
tg bc61602efc RT points out there may be a tab inside the NSIG expansion 2012-05-04 21:33:14 +00:00
tg cb7dc2b45b fix copy/paste accident; found by RT 2012-05-04 21:30:06 +00:00
tg 2d0ca10629 patch test.sh to support check.t split into multiple chunks
which is apparently needed on Coherent due to OS limits

inspired by a patched test.sh from RT, except I require a
dot before the sequence number for easier globbing, made
the splitting use -S, and the errorlevel is more correct
2012-05-04 21:28:06 +00:00
tg 2d31aca859 more int→bool while trying to let ^D output CR+LF (which shan’t be, oh my…) 2012-05-04 21:15:34 +00:00
tg 5780bc5eb7 new MKSH_NO_CMDLINE_EDITING to disable command line editing in its entirety
mainly for the Plan 9 port though it may also help the WinAPI variant,
other porting efforts, as well as a new project I cannot say yet
2012-05-04 20:49:08 +00:00
tg 7c4bf78446 move bi_getn from misc.c to funcs.c and make it static
even antique gcc versions will usually inline it now
2012-05-04 20:08:25 +00:00
tg 4cc5fc3e29 avoid C99 constructs even in debugging code 2012-05-04 18:45:03 +00:00
tg b67de6ba17 add experimental code to use sigprocmask+pause+sigprocmask ipv sigsuspend (and harden j_sigchld handler for that) to improve working on BeOS 5.0 and Coherent UNIX, found by RT 2012-04-27 16:16:23 +00:00
tg 5204e7cc4f after discussion with ciruZ, switch mksh from NZAT to NZAAT fully
to get rid of the bias introduced by making the hash never zero

… he also pointed out a memory (heap) usage optimisation… which
may impact code size a bit though as I’d need to pass an additional
argument on hashtable function calls… or, forgo the benefit of not
having to pointer-align the key in the structure, which can be as
much as 3/7 octets per item, heap storage… OTOH the saved space is
4/8 octets per not-allocated item, possibly some code (use of an
multiply-add opcode), but the function call overhead/cost would
possibly be quite a bit… I guess I’ll have to measure…
2012-04-22 21:50:35 +00:00
tg 48da83288d work around segfault bug in GNU sed 2.03, spotted by RT on Debian 0.91 2012-04-16 17:49:40 +00:00
tg ea6b0c60f5 write a bit about pcc, 386BSD, klibc 2012-04-14 19:35:43 +00:00
tg 5eea59ad57 rewrite maketemp() obsoleting tempnam(3) and mkstemp(3) external deps 2012-04-14 16:07:48 +00:00
tg 70e6988d25 factor out rndget() code, for adding users
XXX in the future, the entire scheme must be rethinked when we need more
XXX entropy for the hash tables; possibly a cheap add using NZAT and re-
XXX initialise the LCG only on access and when added (so keep NZAT state
XXX separate from LCG state); also, then we will need a more elaborate
XXX scheme, such as adding from environment, editor keypresses and timing
2012-04-14 14:35:13 +00:00
tg b497da1eb4 add 386BSD, thanks to the unbelievable RT 2012-04-14 14:11:07 +00:00
tg b49abfac18 genericise MKSH_NO_SIGSETJMP 2012-04-14 14:07:47 +00:00
tg 0e0b379615 sometimes <stdlib.h> doesn’t provide NULL but <stddef.h> does (386BSD) 2012-04-14 14:04:13 +00:00
tg 29e4269f33 if the OS does not provide sig_atomic_t and/or ssize_t, you can now define
MKSH_TYPEDEF_SIG_ATOMIC_T and MKSH_TYPEDEF_SSIZE_T via CPPFLAGS to the
*correct* definitions (it’s absolutely critical they be correct!)
2012-04-14 14:02:40 +00:00
tg d388de51f9 update to latest portmdoc; apply the Lt/Gt/Ba rule again 2012-04-14 12:51:34 +00:00
tg 536bc0463f make -fwrapv common; at least clang also can do it 2012-04-08 20:02:33 +00:00
tg 5b4d0dbbc5 drop all deprecated code, you have been warned 2012-04-07 11:19:53 +00:00
tg 2d879f3b79 move unexpected TELIF warning into #ifdef DEBUG as it never triggered 2012-04-07 11:19:30 +00:00
tg 0af5e1f288 can’t forget LynxOS, although it’s still preliminary… 2012-04-06 23:10:50 +00:00
tg 5d4492608a more speling 2012-04-06 15:23:11 +00:00
tg 3d3081115b if LDSTATIC is not empty (i.e. "-static" or " "), always add “our” sources:
• strlcpy
• utf_wcwidth
note strchr/strstr from misc.c are still #ifdef DEBUG only, as they are
not eligible: they’re for const-cleanliness debugging purposes

XXX get rid of multiple occurrences of binary search code, too…
2012-04-06 15:20:42 +00:00
tg 8ac32ba793 fix some comments 2012-04-06 15:06:42 +00:00
tg ab1ba32d0b bring back $LDSTATIC support 2012-04-06 15:03:42 +00:00
tg a4eb9795de fix indentation mishap 2012-04-06 14:07:52 +00:00
tg 981ad02dbe drop str{,n}casecmp, too 2012-04-06 13:29:01 +00:00
tg 30949fe090 use a reverse test for sys_siglist_decl – this one works on Dell UNIX 2012-04-06 13:25:51 +00:00
tg 4a89ae1cd0 drop the need for strcasestr: just uppercase a copy and compare with uppercased 2012-04-06 12:59:28 +00:00
tg 5e12953cfe bring back -DMKSH_UNEMPLOYED default on BeOS as it’s less usable otherwise 2012-04-06 12:57:53 +00:00
tg 0c3f231d37 rewrite stateptr-underflow check to be perl-less 2012-04-06 12:30:40 +00:00