Commit Graph

1237 Commits

Author SHA1 Message Date
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 08624e7e49 sync with openbsd: only the RCS IDs, because the changed code in
question either does not exist in mksh (lex.c) or refers to the
only “feature” we do not pull, GNU bash-like $PS1 (main.c)
2008-07-08 22:28:26 +00:00
tg b8980a59c1 gcc -v also accepts a file argument, and 'diet gcc -v' croaks, so… 2008-07-08 21:14:42 +00:00
tg 1f0e071c6d dump the perl $^O string in the logs… all Debian GNU/kFreeBSD developers
I can ping right now “need to refresh their keys on io/asdfasdf” or have
their machines unreachable… and I lost my VM to fsck recently (remember)
2008-07-08 21:05:01 +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 a1aff7e194 libc strlfun.c:
• fix file description, history, etc.
• require <stddef.h> for portable size_t declaration (if ! kernel, bootloader)
• mention why we do _not_ include <string.h> (for building on obsd/mbsd)
• sync RCSID definition with that of mksh (more portable)
• fix strlcat description
• sync strlcpy obsd rcsid and licence header with obsd-current
  (their code change 1.10→1.11 was something we already did)
• use “does not”, not “doesn’t”
• make it easier to produce wcslfun.c

libc wcslfun.c:
• sync with strlfun.c (much easier now)

mksh strlcpy.c:
• sync with strlfun.c (in comments, mostly)

no binary changes
2008-07-07 12:59:54 +00:00
tg 077dbf2dd4 fix HP aCC compiler version identification 2008-07-06 23:19:31 +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 667f309387 support arc4random.c in build but not src dir, too 2008-06-29 19:46:56 +00:00
tg 941d228f99 some basic LLVM+clang (with “ccc” driver example) support 2008-06-29 18:18:56 +00:00
tg d20bb52049 remove llvm-clang artefacts in more places 2008-06-29 18:08:55 +00:00
tg edb83bf872 remove a.out.s and a.out.bc (llvm-clang fallout) too 2008-06-28 23:00:43 +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 fcb931ae2e more safe idiom 2008-06-28 22:01:44 +00:00
tg 1863471854 improve Mac OSX version reporting 2008-06-22 20:51:31 +00:00
tg 9fabfb278f SUNw,cc is one of the compilers whose version reporting works better when
compiling a demo programme at the same time
2008-06-21 19:38:41 +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 419600db62 fix the RCS IDs 2008-06-08 17:16:25 +00:00
tg 18bbd23397 • more usage fixes, inspired by sobrado
• bump mksh patchlevel
2008-06-08 17:15:30 +00:00
tg 399157adcc cast two pointer arithmetics to ptrdiff_t
commit inspired by fgsch:
> Log message:
> cast pointer arithmetic to unsigned so we can behave correctly on
> underflows. fixes fc -l 1 in my box where line is 1667511151.
> krw@ ok.

  to signed rather. oops.
2008-06-08 17:14:31 +00:00
tg e91eab65a8 sort argument list, inspired by commit from Igor Sobrado 2008-06-08 16:57:52 +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 f7d5a16363 What is valid for Build.sh should be valid for test.sh too.
In this case: reset the locale to “C” at start.
Otherwise, perl/OpenBSD fails in an UTF-8 environment, just
because OpenBSD 4.3/zaurus still has no locales in 2008.
2008-05-20 18:47:06 +00:00
tg 6eea28c1f3 I’m sorta shocked… 2008-05-17 20:10:52 +00:00
tg 72f9cf1c9b optimise based upon the following assumption:
• my_pid = getpid(); setpgid(0, my_pid);
• if it hasn’t failed, the following is true: getpgrp() == my_pid

at least this is what I gather from TFM and the kernel source
waldi _thinks_ so, too
2008-05-17 19:03:25 +00:00
tg f17b8b1c8b • alloc() can’t fail, afree() can take NULL
‣ macro afreechk() is superfluous
• get rid of macro afreechv() by re-doing the “don’t leak that much” code
• some KNF (mostly, whitespace and 80c) while here
2008-05-17 18:47:03 +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 b40ba2c8d1 beauty error: clear LDFLAGS and LIBS while using -c 2008-05-17 18:19:11 +00:00
tg 4e4ede2442 fix for $HOME with trailing slash (do not expand then either… we could just
strip it, but that might have other problems, better is to use realpath(2),
e.g. via readlink(1), for normalisation, or have the sysop fix it)

XXX make realpath a builtin?
2008-05-16 22:22:11 +00:00
tg 8cf7c94908 if $HOME is / or empty, bash-style tilde replacement yielded funny results 2008-05-16 22:19:11 +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 67b4dc8731 * default to no setlocale for a couple more platforms
* default to UTF-8 on Plan 9
2008-05-13 00:08:12 +00:00
tg 512bee8c32 • GNU/Cygwin has, according to G**gle, only stubbed locale support, like
OpenBSD
• update testsuite results and clog, again
2008-05-11 14:47:04 +00:00
tg 4e53710a01 NUL bytes don’t work 2008-05-10 18:10:02 +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 7a06275658 shrink code size for a corner case 2008-05-04 02:02:32 +00:00
tg 06ff8540a0 remove more dead mirtoconf code 2008-05-04 01:59:46 +00:00
tg c5db7903dd if we don't have setlocale(), just look at the env vars ourselves 2008-05-04 01:58:15 +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 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