Commit Graph

932 Commits

Author SHA1 Message Date
tg dddf3694e9 add O_MAYEXEC support for CLIP OS, zero cost otherwise
cf. https://lwn.net/Articles/768819/
2018-10-30 17:10:16 +00:00
tg 886aee865d fixup high-bit7 chars to be dumped (XXX probably want M- there) 2018-10-20 18:46:00 +00:00
tg 6cea111ef1 same as in commitid 1005B6CF36E3932B560, plus assorted cleanup 2018-08-10 02:53:39 +00:00
tg 2e1150c8e8 against better judgement, allow unsetting COLUMNS:
• GNU coreutils’ test suite insists on it, even despite it can run
  successfully without doing it (WTF‽)…
• we already unspecial, explicitly commented as “hands-off” it,
  when imported from the environment
• it was already changeable (though that didn’t unspecial it on the
  command line)
2018-07-15 17:21:24 +00:00
tg 3d08263d69 Unicode 11.0.0 2018-06-26 21:22:24 +00:00
tg 28637e55fd fix using “-m” on the command line; spotted by G.raud <graud@gmx.com> on ML 2018-05-08 17:37:37 +00:00
tg 3560784571 fix typeset -L vs. Unicode: snprintf second arg was wrong 2018-05-07 00:07:23 +00:00
tg 09c8df8058 fix allexport for arrays; add testcase that also catches exporting arrays 2018-04-28 07:07:39 +00:00
tg 4abbaa0400 make ${foo#'bar'} in here document behave like ksh93
reported by Martijn Dekker <martijn@inlv.org>
2018-03-09 01:29:11 +00:00
tg 1474437b57 bump; add testcase provided by @mvdan on github 2018-01-14 01:47:36 +00:00
tg 5c920fe4db clean up 2018-01-14 01:44:02 +00:00
tg f7b0277504 shf_getc{,har} need to return properly casted 2018-01-14 01:28:16 +00:00
tg 9691e330b9 after literally HOURS of debugging, I got a working-ish expression… 2018-01-14 00:47:11 +00:00
tg 609f5c2256 plug the first couple of ctype bugs 2018-01-14 00:22:30 +00:00
tg 9e4868fb06 oops, casting negative char to size_t is… not nice 2018-01-14 00:09:34 +00:00
tg c763e7b0e9 revert the CORD debugging aid
(introduced so that ORD could eval its args twice in !DEBUG)
2018-01-14 00:03:05 +00:00
tg dde8500a24 some ord() debugging; CORD for case, ORD evaluates twice, for debugging 2018-01-13 23:55:15 +00:00
tg aa530d4343 implement early (mediæval) locale tracking, as a compile-time option,
for SuSE; slightly inspired by the original patch submitted by
From: Dr. Werner Fink <werner@suse.de>
2018-01-13 21:38:10 +00:00
tg 0e478dceae tentatively fix Debian #878947 by putting an end to (some) nesting
‣ also makes the error message nicer:
tg@blau:/usr/obj/bin/mksh $ mksh -n -c '${0$(($(o[))&$(($(p[))&)'
internal error: can't allocate 8388628 data bytes
tg@blau:/usr/obj/bin/mksh $ mksh -n -c '${0$(($(o[))&$(($(p[))&)^J'
mksh: no closing quote
1|tg@blau:/usr/obj/bin/mksh $ ./mksh -n -c '${0$(($(o[))&$(($(p[))&)'
./mksh: syntax error: unmatched '('
1|tg@blau:/usr/obj/bin/mksh $ ./mksh -n -c '${0$(($(o[))&$(($(p[))&)^J'
./mksh: syntax error: unmatched '('

‣ alternative fix would be to keep the block and do…
-					} else {
+					} else if (source->type != SEOF) {
… but that would keep “no closing quote” for the case with newline,
and since this seems to not break… nuking unused code is always good ☻
2017-10-17 23:45:19 +00:00
tg cfa08b1c3f move getdrvwd() declaration out of OS/2-specific part:
each MKSH_DOSPATH port is required to define it (and, later, others)
2017-10-14 21:09:48 +00:00
tg 5db583cd81 handle drive-qualified nōn-absolute pathnames in do_realpath(), untested
the idea here is that:

- /foo/bar and a:/foo/bar are absolute
- foo/bar is relative
- a:foo/bar needs to be handled specially,
  mostly per making it into an absolute (“a:/” + getcwd(a:) + “foo/bar”)
2017-10-11 23:23:03 +00:00
tg d5a29d5e60 mksh_abspath() on OS/2 now requires a dir separator after the drive letter
and colon for it to recognise a pathname as absolute, as it should be

XXX make_path() unreviewed wrt this change
2017-10-11 21:52:46 +00:00
tg af61fd186a all uses of mksh_vdirsep should exclude “\builtin” from triggering it 2017-10-11 21:09:24 +00:00
tg f578d7cd10 eval.c has the only mksh_sdirsep caller and uses it on substrings,
so OS/2 drive letter checks are not correct there
2017-10-11 20:55:06 +00:00
tg 99db3ecb5c inline OS/2’s mksh_sdirsep() into its mksh_vdirsep()
because we must separate these two
2017-10-11 20:50:46 +00:00
tg 2b329c9343 introduce mksh_drvltr(s) short-hand macro 2017-10-11 20:29:05 +00:00
tg 4d23a65454 monkey-patch offsetof for a klibc/dietlibc warning; bump to R56b (bugfixes) 2017-08-29 13:38:31 +00:00
tg bee53eb667 bump 2017-08-08 21:11:20 +00:00
tg 5f58b04c54 fix a GCC 7 pointer target signedness warning 2017-08-07 21:56:54 +00:00
tg de7e092ad7 release 2017-08-07 21:39:26 +00:00
tg b903a5e66a make readonly idempotent; spotted by selk from Dragora 2017-07-26 23:02:28 +00:00
tg 868d982efb sprinkle tons more ord() around
this is really not funny… mksh-ng will use even more “unsigned only”
2017-05-05 22:53:32 +00:00
tg 86f45be109 nuke unused stuff 2017-05-01 19:44:16 +00:00
tg e6395046df use strnul(); optimise 2017-04-29 22:04:31 +00:00
tg f2de19c41f reimplement has_globbing() with proper bracket expression parsing,
and take ahead parsing collating symbols, equivalence classes and
character classes already (heck my first draft of this already did
better than GNU bash, ksh93 I still don’t grok its code at all)
2017-04-29 21:49:07 +00:00
tg 55d20ee9d2 instead of disabling, make it work 2017-04-29 14:20:24 +00:00
tg bf0404e331 add C_ASCII (0x01 .. 0x7F: 7-bit ASCII except NUL) 2017-04-28 12:02:41 +00:00
tg 1e763eeb7b move three variables into common data, meaning .bss (hopefully) 2017-04-28 11:51:40 +00:00
tg cb4bac0615 keep ksh_ctypes[] array keys in EBCDIC
we set $IFS massively less often than use ctype()
2017-04-28 11:31:53 +00:00
tg 5743c00a5b add -DMKSH_FAUX_EBCDIC to test the codepaths better
waking up to: Lanfear - Just Another Broken Shell
2017-04-28 11:13:49 +00:00
tg dba2efa290 oops, ctypes are indexed by ASCII value even on EBCDIC systems 2017-04-28 03:51:14 +00:00
tg d905bd16e1 rename asc() to asciibetical() to make clear it’s for POSIX ordering only
and switch remaining consumers, except the allowed one, to rtt2asc()
2017-04-28 03:46:50 +00:00
tg fba6940ba4 control character madness, but more compiler-friendly 2017-04-28 03:28:19 +00:00
tg 2482c8b73d fill two complete round-trip maps EBCDIC <-> ASCII 2017-04-28 02:40:26 +00:00
tg 1289bc69fb apply most of the remaining parts of the EBCDIC patch, sans the CTRL() changes 2017-04-28 02:24:58 +00:00
tg d658ad626b commit the EBCDIC run-time table conversion code, so it can be reviewed
XXX there’s still the issue of compile-time character conversion, and
XXX that runtime m̲u̲s̲t̲ use a compatible codepage, which we cannot check,
XXX and that we need the POSIX portable character set mapped, which we
XXX decide to not check (due to the above, mostly)
2017-04-28 01:15:51 +00:00
tg 8df7c0c94a BEL was, and Vi mode is, not EBCDIC-safe 2017-04-28 00:49:33 +00:00
tg 2231ff566d commit the optimisation result from the new fast character classes 2017-04-28 00:38:33 +00:00
tg 9db3cb57b9 allow : and [ in alias names (but forbid [[ explicitly)
to make 'enable' completely work again
2017-04-27 23:33:22 +00:00
tg 13e91621ca fixup the remaining issues and last optimisations 2017-04-27 23:12:49 +00:00