Commit Graph

1146 Commits

Author SHA1 Message Date
tg
604ec0ff6c remove dead code and ifdefs, speed up configuring 2008-05-04 01:51:31 +00:00
tg
fed038354d this test even works with the defutf8 mkshen as the shell is !interactive 2008-05-04 01:39:12 +00:00
tg
3a9febd94d HP-sUX has en_US.utf8 but no en_US.UTF-8
as GNU has both, and I don’t know which OS has what and which is more
common, just use that one instead
2008-05-04 01:38:04 +00:00
tg
e27ae086d2 set the "C" locale during runs… otherwise, some OSes’ tr(1) or so might
act strange… 10x Adam “replaced” Hoka for helping to find this
00:51⎜<replaced_> it needs -A
00:52⎜<mirabilos> heh. locale?
00:52⎜<replaced_>            -A             Translates on a byte-by-byte basis. When this flag
00:52⎜<replaced_>                           is specified tr does not support extended
00:52⎜<replaced_>                           characters.
00:52⎜<replaced_> LC_CTYPE=en_US.utf8
00:52⎜<mirabilos> hmmm
00:52⎜<mirabilos> but that is weird too
00:52⎜<mirabilos> I don't see why it shouldn't work
00:52⎜<replaced_> yeah, it should act the same
00:53⎜<mirabilos> try this please:
00:53⎜<mirabilos> without -A
00:53⎜<mirabilos> echo sys/param.h | env LC_ALL=C /bin/tr -c
     ⎜    qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789
     ⎜    ______________________________________________________________
00:53⎜<replaced_> this works of course
2008-05-04 00:55:18 +00:00
tg
4230cf91de thinko: multibyte characters are not always 1 column wide 2008-05-02 18:55:37 +00:00
tg
1ed64c3e26 bump 2008-04-22 19:00:41 +00:00
tg
7b645a40c3 remove the now-unused addition to the ksh_getopt() code
which oksh used for their ulimit change, as I’m not going
to hack on it for now… maybe editing the optstring as it
is parsed (in the first loop), but… naah, not now
2008-04-22 19:00:01 +00:00
tg
677875771e take most of the goodies of the recent c_ulimit() changes, but retain the
old way of working (also add some more casts and simplify the code)
2008-04-22 18:58:20 +00:00
tg
a3dab099d9 sh.h can provide its rcsid itself, no need for that ugly hack 2008-04-22 18:57:26 +00:00
tg
e57f5fc09b • be friendlier to AT&T ksh: use only signed (standard) integers
‣ now, a “ksh93” just requires ‘function precmd { :; }; set -o emacs’
    afterwards to get rid of the annoying error messages
  ‣ I could lose that with the following idiom:
    - PS1='$(precmd)…
    + PS1='$(typeset -i e=$?; typeset -f precmd >&- && { (return $e); precmd })…
    but it didn’t seem worthwhile to me
• remove explicit licence blah, normal ./copyright applies
2008-04-22 13:48:15 +00:00
tg
487da1357e remove advertising clause from mksh distribution: while I’d still prefer
when people mention that their product includes mksh, I won’t enforce to
have them advertise with my name… this should make things easier
2008-04-22 11:47:57 +00:00
tg
7dd741a401 • revert the oksh code to be able to set multiple ulimits in one
invocation, until it works with a common idiom: “ulimit -dS 262144”
  (but keep some goodies)
• add a regression test for that
2008-04-20 21:30:29 +00:00
tg
d6f3f726a6 clean up unused defines 2008-04-20 02:15:12 +00:00
tg
a96b40067b sync with updated libc functions 2008-04-20 02:01:42 +00:00
tg
c21dd61fd3 make it clearer (and most people don’t know what CESU-8 is, anyway) 2008-04-20 01:47:59 +00:00
tg
5fb55148a1 merge the fix for that segfault 2008-04-20 01:41:57 +00:00
tg
8c41fbed15 this example shows how to really do a hexdump parser in unicode mode (safe)
→ this isn’t recommended however
2008-04-20 01:23:49 +00:00
tg
c312619cc9 ok, so instead of removing the “-o utf8-hack” behaviour of the 1#* operator
we just tell the user to only throw valid CESU-8 or single octets on it
2008-04-20 01:12:52 +00:00
tg
f80424e92e even like this, handling mis-formed UTF-8 is kind of impossible…
except we duplicate all of the logic
2008-04-20 00:56:17 +00:00
tg
7573a15ae0 I wish. But '1#\xC2\x0A' converts correctly, as the newline isn't seen… 2008-04-20 00:45:49 +00:00
tg
073890bc57 this one won't work so well though ☹
I tried to use a subshell to try to convert, to make it more robust
against invalid utf-8, but that didn't work out
2008-04-20 00:28:30 +00:00
tg
309c674ed7 mostly revert 100480A853206FB56FA and parse utf-8 lead bytes ourselves 2008-04-20 00:24:26 +00:00
tg
1aa64814c0 add a test more, except that we cannot fulfil a part of it yet 2008-04-20 00:11:29 +00:00
tg
e20694eceb utf-8 function overhaul (size optimisation)
XXX maybe we can get more out of this?
2008-04-20 00:03:50 +00:00
tg
f1ab7789e3 solve the issue (although not quite how I’d like it) 2008-04-19 23:49:59 +00:00
tg
03ce610399 regression: interactive use didn’t work at all oO
the “fix” is to treat NUL bytes as width=len=1…
2008-04-19 22:50:01 +00:00
tg
9b62cf15bf • more unsigned → unsigned int
• more int → bool
• more regression tests: check if the utf8-hack flag is really disabled
  at non-interactive startup, enabled at interactive startup, if the
  current locale is a UTF-8 one
• make the mksh-local multibyte handling functions globally accessible,
  change their names, syntax and semantics a little (XXX more work needed)
• optimise
• utf_wctomb: src → dst, as we’re writing to that char array (pasto?)
• edit.c:x_e_getmbc(): if the second byte of a 2- or 3-byte multibyte
  sequence is invalid utf-8, ungetc it (not possible for the 3rd byte yet)
• edit.c:x_zotc3(): easier (and faster) handling of UTF-8
• implement, document and test for base-1 numbers: they just get the
  ASCII (8-bit) or Unicode (UTF-8) value of the octet(s) after the ‘1#’,
  or do the same as print \x## or \u#### (depending on the utf8-hack flag),
  plus support the PUA assignment of EF80‥EFFF for the MirBSD encoding “hack”
  (print doesn’t, as it has \x## and \u#### to distinguish, but we cannot use
  base-0 numbers which I had planned to use for raw octets first, as they are
  used internally): http://thread.gmane.org/gmane.os.miros.general/7938
• as an application example, add a hexdumper to the regression tests ☺
2008-04-19 22:15:06 +00:00
tg
4ff0ca0f86 improve the use (parsing) of “set +o” output in the examples 2008-04-19 22:03:19 +00:00
tg
4d978af3da mention -Z padding behaviour change (= fix)
pdksh and oksh are wrong here
2008-04-19 21:18:52 +00:00
tg
cfee2b2a61 if typeset -i -Z<n>, pad the value not the base 2008-04-19 21:04:09 +00:00
tg
3e728f7797 invalid 3-octet multibyte sequences are stripped to 1 not 2 bytes 2008-04-19 17:25:49 +00:00
tg
7ddf56dbbc • new ksh_mbswidth
• fix: when printing menus (tab expansion, for instance), honour width of
  the multibyte characters printed
• some int→bool while here
2008-04-19 17:21:55 +00:00
tg
6c6be2a87e _careful_ (feature) sync with oksh:
(3 weeks, 5 days ago) by millert
Make ulimit able to get and set multiple limits in a single invocation
like bash and zsh do.  Requested by espie@, OK deraadt@
2008-04-16 21:56:03 +00:00
tg
92eb2aee78 • make sure “ls” is no shell alias:
‣ first alias ls=ls to define it (so that unalias won’t fail)
  ‣ then unalias ls
• don’t hardcode /bin/ls path
2008-04-11 20:14:02 +00:00
tg
fc607a6c1b SECURITY fix: when spawning mksh on a new terminal (tty, not /dev/null),
flush all of its I/O first – someone could have written on it beforehand
2008-04-11 19:55:24 +00:00
tg
afaa3ffa59 move some portability stuff required only for setmode.c into that
(XXX we somehow do need a sorta libbsd…)
2008-04-06 23:27:19 +00:00
tg
5adfcdbd83 disable utf8bom-2 check on Ultrix, its perl fails on us
(not a problem though, as the code works just fine)
2008-04-02 17:09:45 +00:00
tg
acc2e9a67a • Ultrix doesn’t define MAP_FAILED either
• on Ultrix, mmap() returns a caddr_t instead of a void*, so cast
2008-04-02 16:55:06 +00:00
tg
954352cae3 some more code “folding”
should decrease size
2008-04-01 22:20:20 +00:00
tg
37af1f3087 more
• int → bool
• shprintf("foo") → shf_puts("foo", shl_stdout)
• shprintf("%s", foo) → shf_puts(foo, shl_stdout)
• shf_puts("x", foo) → shf_putc('x', foo)
2008-04-01 21:50:58 +00:00
tg
3ad04ea095 reorganise c_typeset code, fixing that regression test
also some int→bool while here
2008-04-01 21:39:45 +00:00
tg
828fbed741 • adjust the regression test so that the behaviour of export and readonly
matches mksh pre-R29 (the one introducing the bug), and typeset matches
  the behaviour intended with the R29 changes (better AT&T ksh93 compati-
  bility) but never reached
• adjust the man page description of “typeset -p”, as it’s different from
  the “typeset” and “typeset -” actions
2008-04-01 21:07:20 +00:00
tg
e8d61a1d99 • unify ksh_dup2() usage, use bool where appropriate
• apply diff from mirbsdksh-1.11:
  #ifdef DUP2_BROKEN
  /* Ultrix systems like to preserve the close-on-exec flag */
  ‣ XXX we do #ifdef __ultrix here (imake-style) instead of mirtoconfing it
    (but does anyone know of any other OS with the same problem? plus we’d
    see it as we now know the symptoms)
• remove ultrix Build.hs warn=' but might work…' in the hope it DOES
2008-04-01 20:40:22 +00:00
tg
47a7d246ca easier way to fix it, WFM on BSD/OS 2008-04-01 17:25:37 +00:00
tg
5198f4c358 work around problems with old perl 2008-04-01 17:22:54 +00:00
tg
18f38ad75a abort if perl is not working in test.sh 2008-04-01 17:14:31 +00:00
tg
448496a74e use cat with here document instead of a couple of echos for
generation of test.sh (which grew...)
2008-04-01 17:13:49 +00:00
tg
4738940ded … and $__perlname (for perl5 ipv perl, etc.) 2008-04-01 16:26:42 +00:00
tg
c2f4ffea0b add new regression test for funcs.c:c_typeset() output validity
oksh passes this test, mksh-current doesn’t (yet)

From: Danijel Tasov <gmane@korn.shell.la>
Message-ID: <fsqioj$te3$1@ger.gmane.org>
Message-ID: <fsqnng$dq9$1@ger.gmane.org>
2008-04-01 16:12:18 +00:00
tg
803f221fc0 proper quotes 2008-04-01 16:04:58 +00:00