tg
5f8075fc82
introduce a tobool(cond) abstraction¹ and switch bool to char if !stdbool.h
...
① currently: ((cond) ? true : false) but (!!(cond)) and casting to bool,
the latter only if stdbool.h, would also work – which performs best on
(and across) all supported systems?
2011-03-07 20:30:41 +00:00
tg
009d4c7b75
drop more currently unused
2011-03-07 20:09:34 +00:00
tg
2075dd23b2
drop unused
2011-03-07 20:08:48 +00:00
tg
bfe34ba110
reduce data size by 320 bytes by packing struct lex_state tighter
...
and reducing amount of them allocated in each “pack” from 31 to 7
since $(…) is recursive anyway (I tried hard to need even only 5)
2011-03-07 20:07:52 +00:00
tg
1f392ab09b
• more fixes (some regression, some new)
...
• more testcases, stricter testcases
2011-03-06 17:08:14 +00:00
tg
469da2e5e4
drop IFS-space-colon-3 because dash is the only shell which passes it,
...
but ksh93 passes ifs.sh which I assume is more correct, and mksh and
ksh93 have the same result for this (as do bash2/4, posh; zsh differs)
2011-03-06 17:06:17 +00:00
tg
7a6fb85db5
another _two_, gosh!
2011-03-06 02:28:59 +00:00
tg
14d8cecc82
plug _another_ %; versus %N output formatting bug
...
(apparently, nobody noticed them because everyone outputted to files,
not to strings, and this logic differs for those)
2011-03-06 02:14:09 +00:00
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