Commit Graph

3231 Commits

Author SHA1 Message Date
tg b903a5e66a make readonly idempotent; spotted by selk from Dragora 2017-07-26 23:02:28 +00:00
tg ac262e5395 Unicode 10.0.0 2017-07-08 15:11:52 +00:00
tg ed36b0956d merge commit b0a2ea76327760a7ecf35172fe525f8aa39320b2 from Harvey-OS:
“Until sigsuspend could work propery”[sic]
2017-05-15 13:35:38 +00:00
tg 4acbb48229 exclude nōn-HPFS-safe pathname-using test from OS/2 (thanks komh)
also exclude on cygwin/msys as not FAT/NTFS-safe
2017-05-14 19:05:44 +00:00
tg fa5eb879c4 oops, reverted not enough in commitid 1005909EE7C16B07DC3 2017-05-05 22:59:36 +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 5c72925bf3 add EBCDIC primer and attribution for iSKUNK 2017-05-05 22:45:58 +00:00
tg e2dcf35cf5 catch z/OS not having $Config not filling in the __perlpath env correctly 2017-05-05 21:17:31 +00:00
tg cc725e67ca switch EBCDIC to “nega-UTF8” 2017-05-05 20:36:03 +00:00
tg 6dc1ab0379 some more small EBCDIC fixes 2017-05-05 19:43:52 +00:00
tg 01b0c107b5 we absolutely require unambiguous mapping between EBCDIC and extended ASCII
to be able to provide a global stronly monotonous order for comparisons and
bracket expression ranges
2017-05-03 21:50:33 +00:00
tg efa4d0d2cf ensure NUL in ASCII and EBCDIC both always occurs ordinal 0 2017-05-03 17:51:06 +00:00
tg c03372e8a4 first cut at the new matching code, IT WORKS!!! in the FIRST try!
missing:
- tons of new testcases
- EBCDIC support with ASCII ordering for POSIX ranges
2017-05-03 17:48:08 +00:00
tg 515df6ab7c split and adapt some testcases for EBCDIC 2017-05-03 16:17:08 +00:00
tg 46865d7fc8 move the constants to an EBCDIC-friendly range 2017-05-03 15:36:12 +00:00
tg c4bcfd944e move magic constants into definitions 2017-05-03 15:33:16 +00:00
tg 4c5d033f75 sprinkle a few ord() and add an indicator of why some code fails on EBCDIC 2017-05-03 14:51:25 +00:00
tg 0ee37a982d move more EBCDIC logic into check.pl 2017-05-03 14:51:15 +00:00
tg d8bd19e23e handle EBCDIC in the testsuite runner (error display)
- move categories for that to test.sh, simplifying it
- $ebcdic in Build.sh is now for the target, not the buildhost
2017-05-03 13:00:10 +00:00
tg 60a9292b2f add -U to test.sh as well, oops… 2017-05-01 20:03:25 +00:00
tg 241b072099 commit my WIP for the Beltane Snapshot of the Mainframe Korn Shell, not going to make finishing it tonight ☹ 2017-05-01 19:44:29 +00:00
tg 86f45be109 nuke unused stuff 2017-05-01 19:44:16 +00:00
tg 7a68ad12d2 require Config only if it exists, which it reportedly doesn’t on OS/390 2017-05-01 19:43:23 +00:00
tg 1b3ef94b7d clarify; default to xlc(1) as $CC on z/OS 2017-05-01 19:22:53 +00:00
tg 7c433ba94b add BSDish [[:<:]] and [[:>:]] matching (angle brackets must be escaped) 2017-05-01 15:59:45 +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 bcf3130230 clean up OS exclusions somewhat: have Perl substitute the UTF-8 locale 2017-04-29 15:18:25 +00:00
tg a6686cfec5 handle expected utf8opt-2a failures better (i.e. don’t even try) 2017-04-29 14:36:13 +00:00
tg 55d20ee9d2 instead of disabling, make it work 2017-04-29 14:20:24 +00:00
tg 12988793b1 optimise <0x20/>0x7E into !C_PRINT 2017-04-28 21:43:30 +00:00
tg 53ae897e1b since we have -DMKSH_ASSUME_UTF8=0 on z/OS, omit the known-to-fail check on OS/390 2017-04-28 21:43:02 +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 c7f9c5a201 const 2017-04-28 11:48:46 +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 7ff7821d6a fill the map backwards (to use first occurrence of duplicates);
add a cache to ensure basic ASCII mapping is bijective
2017-04-28 11:27:58 +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 5c2a0a1efc fix C array arithmetics 2017-04-28 04:13:19 +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 1c6b2d1cb8 allow backslash escapes for bind for ^ and \ o̲n̲l̲y̲; also more EBCDIC-friendly 2017-04-28 03:37:44 +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 4405a995ad adjust 2017-04-28 00:33:15 +00:00
tg 884153131d prepare for EBCDIC target environments (with -E option)
this differs from EBCDIC build hosts which can be autodetected
2017-04-28 00:27:48 +00:00