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
tg
d3ffed0331
remove debugging code again
2017-04-27 23:35:09 +00:00
tg
394a8507e8
fix return value to signed
2017-04-27 23:34:20 +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
8db6d22188
refactor
2017-04-27 23:18:05 +00:00
tg
13e91621ca
fixup the remaining issues and last optimisations
2017-04-27 23:12:49 +00:00
tg
8bd529a08c
debugging bugs in optimising
2017-04-27 22:38:49 +00:00
tg
d54d4aab50
batch of optimisations
2017-04-27 20:22:28 +00:00
tg
1080008a8f
eliminate legacy macros
2017-04-27 19:33:53 +00:00
tg
91a3d6751e
fix C_LEX1 which does STILL N̲O̲T̲ include the NUL…
2017-04-27 19:19:05 +00:00
tg
b228c59895
convert to the new fast character classes
2017-04-27 19:16:10 +00:00
tg
5c6936ddc8
debugging 1/2
2017-04-27 18:44:35 +00:00
tg
3dff460cde
prepare the new fast character classes, not live yet: need sanity check
...
unfortunately we need at least 21 or so, maybe 19, classes, so sizing
things down to short is not possible; we can splurge with 32 bit thus
2017-04-22 00:07:10 +00:00
tg
d3be19ac69
now actually do comparisons for sorting ASCIIbetically
2017-04-21 20:06:06 +00:00
tg
e18a509a80
make ord() result unsigned int; add asc() which is:
...
• not designed to be emitted, only used in comparisons with
other asc() results
• on EBCDIC platforms, the mapping of an EBCDIC octet to their
corresponding ASCII or Unicode/UCS-4 codepoint or, if there
is no mapping, a distinct value above all valid Unicode codepoints
• on nōn-EBCDIC platforms, just the identity mapping of the input
octet into their ord() value
Intended use are ASCII-ish character ops, including ranges (“A-Z”),
mapping from those to the corresponding digit offset, and sorting
of things in an ASCIIbetical way
2017-04-21 19:50:09 +00:00
tg
36ea8e6171
on ^C (INTR, QUIT edchars), shove input line into history
2017-04-21 19:08:18 +00:00
tg
74bd8b61a3
fix accidentally defanged PATHSEP test
2017-04-20 21:43:43 +00:00