Commit Graph

217 Commits

Author SHA1 Message Date
tg 828fc5cd8b merge OpenBSD’s non-standard <bsd.regress.mk> tests 2008-07-17 12:57:59 +00:00
tg 5f0269ed9a fix attempt to free pointer to stack (function-local storage)
discovered by Elias Pipping
patch by Jared Yanovich
alloc/afree checker by Todd C. Miller
2008-07-14 12:29:06 +00:00
tg f47d20bc85 bump version 2008-07-12 18:09:37 +00:00
tg 1619fa2538 • Build.sh, check.t: bring back the 'smksh' check category, which was
missing for a while yet its disappearance was unnoticed because…
• distrib/special/mksh/Makefile: sync check categories, this was missed
• mksh.hts: sync clog
2008-07-11 19:51:23 +00:00
tg 81a2b6d878 cygwin has... interesting fs semantics (I got an unaccessible yet
undeletable file on running this manually, which vanished after the
parent(!) process exited), so disable this test for it
2008-07-11 00:23:59 +00:00
tg 99ccfb4024 bump versions (since we lowered the fd limit again) 2008-07-10 21:55:08 +00:00
tg 552d3408e7 oops, only half commit 2008-07-10 21:25:00 +00:00
tg c01bda573f switch back to en_US.UTF-8 for GNU/* too: Mandriva has issues with
en_US.utf8, and Debian (tested on gnubber) can do both
2008-07-10 21:20:22 +00:00
tg 93fcb5a892 on Solaris, this testcase won't produce the issue, but let's pass the test☺ 2008-07-10 20:05:01 +00:00
tg 7c7ecc33be • remove bizarre test constraint
• make a test succeed on Tru64, whose cat likes to output
  │Successful
  │cat: output error
  on this test case
2008-07-10 19:06:15 +00:00
tg ca7cd043db • bump NUFILE and FDBASE, allowing for more than 10 fds used by scripts
• change the code to accept more than a single digit for an fd
2008-07-09 21:32:45 +00:00
tg f4790e8773 add another corner case of here documents, which bash and zsh pass
inspired by:
20:14⎜«twkm:#ksh» $ unset foo ; read -u10 foo 10<<< bar ; echo $foo
which works in ksh93 (whose fd>9-support is still incomplete though)
2008-07-09 20:31:19 +00:00
tg 8f7d2292a8 Debian GNU/kFreeBSD $^O value, 10x tarzeau 2008-07-08 22:29:00 +00:00
tg 064ae65dee reverse the sense of check for en_US.UTF-8 vs en_US.utf8:
the latter is required by HP-sUX, okay, and apparently the
preferred one by glibc (GNU libdrepper?), but breaks on al-
most all other systems I have access to (Slowlaris, Midnight
DragonFly NetBSD, Darwin, at least)
2008-07-08 20:54:33 +00:00
tg 3800eed855 NetBSD® 3.0_STABLE is a tad picky about the UTF-8 locale’s naming… 2008-07-08 20:08:02 +00:00
tg d415592b37 check return value of unlink(2) when trying to remove an existing HISTFILE,
since mksh(1) did go into an infinite loop if that fails first

bug spotted, initial patch and help drafting a test case
From: Decklin Foster <decklin@red-bean.com>

note there are more instances of unlink(2) and others (like chmod(2), as
spotted by flawfinder) which aren’t checked… but at least the other case
of unlink(2) use in histrap.c doesn’t cause any trouble (I think)
2008-07-06 22:41:09 +00:00
tg c77d67ef4d • add code to support GNU bash’s “&> file” I/O redirection extension,
and make it fit into mksh’s model (also gives us a couple of things
  GNU bash doesn’t have
• add regression tests for all of these

Lukas “smultron” Upton from MidnightBSD spotted a script with /bin/sh
shebang invalidly using “&>” in some Apple backup toolkit, 10x

XXX why fds are limited to one digit?
2008-06-28 22:51:56 +00:00
tg a89db7b95b Darwin also has other locale 2008-06-21 19:30:49 +00:00
tg 5d73013c02 remove check_category “pdksh”, it starts to make trouble and was never
taken seriously anyway, just historic ballast
2008-06-21 19:20:15 +00:00
tg 18bbd23397 • more usage fixes, inspired by sobrado
• bump mksh patchlevel
2008-06-08 17:15:30 +00:00
tg e0e0876e7e fix regression test: Solaris has $^O solaris not sunos, and locales of
the style xx.UTF-8 not xx.utf8, so just split the test into two
2008-06-02 20:44:07 +00:00
tg b41a72ac2e add new builtin “realpath” calling realpath(3) on its argument, skipping
over “--” for compatibility to Debian realpath(1) and possibly busybox’

“sounds handy” replaced@TNF
2008-05-17 18:27:57 +00:00
tg 6be5205b36 mksh:
* initialise the integers PPID, OPTIND, RANDOM, SECONDS, and TMOUT to base-10
* bring back PGRP as base-10 integer to the process group via getpgrp(2)
* initialise USER_ID as base-10 integer to the effective user id as retrieved
  from geteuid(2) = $(id -u)
* use $USER_ID in dot.mkshrc instead of spawning an id(1) process
  -> dot.mkshrc,v 1.34 now requires mksh R34
* convert more int to bool where appropriate
* remove dead code - getpgrp(2) cannot fail
* sync manual page to reality
* bump to mksh R34(beta) - feature freeze

XXX check if our_pgrp in jobs.c is still really needed, the setpgid call
XXX probably just makes us our own pgrp leader, and we might have to use
XXX and update kshpgrp accordingly - need feedback/help here but I think
XXX this simplification should be possible if I grok the code correctly.

etc/profile:
* adjust to $USER_ID changes in mksh (speed-up here, too)

mksh.hts:
* sync changelog
2008-05-15 15:24:11 +00:00
tg f6b7a09146 • on OpenBSD, default to HAVE_SETLOCALE_CTYPE=0… I wonder if that’ll ever
change – this might affect other OSes too in time for R34
• one of the regression tests had an unexpected failure if running as root
• www: sync clog; log newer mksh built on newer OpenBSD works fine
2008-05-10 03:16:07 +00:00
tg 06ff8540a0 remove more dead mirtoconf code 2008-05-04 01:59:46 +00:00
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 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 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 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 f1ab7789e3 solve the issue (although not quite how I’d like it) 2008-04-19 23:49:59 +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 cfee2b2a61 if typeset -i -Z<n>, pad the value not the base 2008-04-19 21:04:09 +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 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 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 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