tg
007cf09db6
use EPOCHREALTIME as variable, somewhat compatible with “zmodload zsh/datetime”, as ormaaj belatedly found out
2012-11-26 22:49:51 +00:00
tg
13da062f92
add MKSH_UNIXTIME
2012-11-20 18:07:45 +00:00
tg
435bc124ef
introduce $BASHPID for ormaaj from #ksh
2012-11-20 17:42:32 +00:00
tg
222d50f1af
save some space for error-less error messages
...
inspired by a bugfix for posh for something that was not a bug in here
2012-11-12 18:28:40 +00:00
tg
5aa7842d33
who would’ve thought proper ^C handling be so hard?
2012-10-30 20:49:44 +00:00
tg
8caee45c60
int → bool
2012-10-30 20:13:20 +00:00
tg
faa0a78df3
restore yyrecursive context in quitenv (LP#1069428)
2012-10-30 20:07:15 +00:00
tg
fc27886680
when ^C’ing out of an interactive shell, also throw away the here documents (probably leaks, maybe not due to quitenv, but not much)
2012-10-30 20:07:00 +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
31f24a4040
add some bounds, for a subsequent commit:
...
• all writers of exstat ensure the value is in [0; 0xFF]
• all readers of exstat AND it with 0xFF (not strictly needed thus)
• trap_exstat is “safe”, i.e. always either -1 or [0; 0xFF]
2012-10-21 21:39:06 +00:00
tg
bebb2d2254
EXPERIMENTAL optimisation for “sh -c 'foo'” to equal “sh -c 'exit foo'” iff
...
several conditions are met as outlined below; for more background, refer to
http://www.FreeBSD.org/cgi/query-pr.cgi?pr=113860
We don’t yet optimise 「% sh -c '{ echo a; sleep 10;}&'; sleep 1; ps T」 so
the FreeBSD® sh approach cannot work for us, but scanning the “sh -c” argu‐
ment for disallowed characters and, if not, setting a flag that enables the
shell to exec the tree when parsed as TCOM *and not c_trap()* was possible.
Disallowed characters are currently C_QUOTE except space, that is:
Tab Newline " # $ & ' ( ) * ; < = > ? [ \ ] ` |
This should catch all cases of magic, variables, subshells, pipelines, etc.
2012-10-21 21:26:41 +00:00
tg
77f5b8f38d
add split-screen debugging; close-on-exec the logfile
2012-10-21 17:16:45 +00:00
tg
9fbdef8e60
pure RCSID sync with OpenBSD, as we introduced SIGWINCH tracking earlier
...
XXX we could track whether tty_fd has already been successfully opened,
XXX the ttystate initialised, and then just never close it unless it is
XXX necessary, then we can keep COLUMNS/LINES accurate in scripts, even
2012-09-21 17:20:22 +00:00
tg
eac85ffdf1
OpenBSD found out that "building argv for $* and $@" manipulates l->argv
...
in place which affects ps(1) output on BSD; create a new array and copy
the original parts from argv[] there without touching argv passed to main
2012-09-07 21:02:43 +00:00
tg
aedb299057
note that some longjmp don’t handle 0 properly
...
cf. <500C1B2E.9030602@zytor.com>
2012-07-22 15:56:51 +00:00
tg
67714b270a
dissolve the hashtab nonsense, ¾ is good, and mirkev will also use that
2012-07-01 15:38:09 +00:00
tg
ea01d80833
hackish work-around the lexer to make alias definitions in mksh -c
...
work (Closes : #517009 ) and mention in the manpage why they sometimes
do not work (doing so for COMSUBs is not worth the effort)
2012-06-28 20:05:11 +00:00
tg
b3b3aec17e
CID 703478: probably can’t happen, but…
2012-06-24 20:15:47 +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
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
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
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
5eea59ad57
rewrite maketemp() obsoleting tempnam(3) and mkstemp(3) external deps
2012-04-14 16:07:48 +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
e67b98e21b
use _setjmp/_longjmp on NeXTstep: its Intel port always restores the signal mask on siglongjmp, which we never have
2012-03-31 17:30:00 +00:00
tg
b82db8764c
only pull entropy from glibc pointer guard if glibc is actually there
2012-03-31 17:08:52 +00:00
tg
95a2c63096
• implement fcntl(2)-based advisory locking as an alternative iff flock(2)
...
is not found, from a suggestion by RT (LP: #912691 )
• try harder (in a loop) to acquire a file lock if the locking mechanism
documents EINTR is a possibility (fcntl always, flock on Linux not .Ox)
• use -std=c99 not -std=gnu99 if it must be at all
2012-03-27 22:36:53 +00:00
tg
87654270ab
fix regression w.r.t. TTY and external programmes:
...
• release the TTY after the initial change_winsz()
• since we release it, we can skip initialising tty_state, too
2012-03-25 14:28:14 +00:00
tg
5dd5edea1a
lewellyn found QNX also doesn’t have a struct timezone ⇒ just DROP it!
2012-03-24 22:11:41 +00:00
tg
c6b498d4fe
meh, hit a regression again
2012-03-23 22:36:23 +00:00
tg
24e8a6996b
always keep x_cols and x_lins valid; check once at start including tty init
...
if we find any, but not later; do not check on every read
⇒ allows changing COLUMNS and LINES (independent of each other, or both)
for script shells by passing them in an environment setting, even if
we get a tty; interactive shells still check before each line is read…
reported by the PLD guys, thanks
2012-03-23 21:58:24 +00:00
tg
c5cc22a13f
efficient debug-to-file output (/tmp racy, but hey)
2012-03-23 19:38:12 +00:00
tg
4f043002be
another int → bool
2012-03-23 18:58:15 +00:00
tg
e141394a83
RCSID sync from oksh; reduce hash table #elements if !MKSH_SMALL to speed up
2012-03-03 21:30:59 +00:00
tg
bc039caa9f
no "struct timezone" on Minix3, despite its manpage
2012-03-03 21:13:50 +00:00
tg
68e73536a0
RCSID sync with OpenBSD 5.1 ksh (we did the same checks ages ago)
2012-02-11 22:45:04 +00:00
tg
bee3bbaaf8
reduce stack usage a bit (several candidates for more, including $CC itself…)
2012-01-29 01:41:15 +00:00
tg
c620f865c1
cid 1004E0F5C27271F5B00 broke integer-base handling of built-in parameters
...
mksh -c 'echo a=$RANDOM; RANDOM=0x12; echo b=$RANDOM' # behaviour changed
2011-11-08 22:07:15 +00:00
tg
9eaf6a8e12
remaining sync with oksh (pointless rcsid, no code diff)
2011-10-07 19:51:29 +00:00
tg
9782f6b4d1
• access(2) is broken in at least kFreeBSD 9.0 as “modern” OS, so bring
...
back the wrapper code as well as refactor most other code calling it
• apparently, names can’t end in ‘_’ or contain ‘__’ anywhere…
2011-09-07 15:24:22 +00:00
tg
577c918beb
patch most of Jerker Bäck’s concerns out, unless not applicable
2011-08-27 18:06:52 +00:00
tg
5d9c88ceeb
jg71 reported -DMKSH_ASSUME_UTF8=* breaks defining stristr
2011-08-27 17:30:07 +00:00
tg
e03b485d75
‣ merge from mksh R40-stable
...
move /etc/{,suid_}profile to /system/etc/ for Android (but do not make
the location of /etc configurable); rewrite manpage section about
/etc/{,suid_}profile, .profile, .mkshrc
2011-07-16 17:08:21 +00:00
tg
3ef67e3296
replace uses of OAAT hash in all its variants by NZAT (mksh internal) or NZAAT (all others)
2011-07-06 22:22:02 +00:00
tg
0739fa74a0
address "env RANDOM=1=2=3 mksh" DoS by integrifying more
2011-07-02 17:57:41 +00:00
tg
e0fb8dc431
• rework hash table interna to avoid gcc-4.1 on Debian etch bug
...
• also improve behaviour with _a lot_ (>2²⁸) entries
• while here, improve comments and whitespace
2011-06-05 19:58:21 +00:00
tg
ebb8bed911
fix segfault due to limit of hashtable entries (global variables) discovered by Jb_boin: unlimit to 2^30 minus epsilon
2011-06-04 16:42:31 +00:00