side (I don't have capacities to scan 71711 files in MirOS for a
standards-compliance whack)
* copyright: mention CVS changelogs as place of contributors' name
and credit information, too
* check.t, sh.h: bump
until now, set it to '@'
* if LDSTATIC is '@' make it '-static' if MKSH_SMALL, '' otherwise
Yep, this might break, e.g. Darwin or Cygwin. But let's test that.
where we had 'noreturn' etc. but no '__noreturn__')
* Scan for __attribute__((bounded)) and __attribute__((used))
if we have __attribute__((noreturn))
* To be able to scan if certain attributes give warnings,
scan for -Werror with a simple programme which hopefully triggers none
* Convert __attribute__((unused)) to __unused, noreturn -> __dead
* Unify other attributes
* Clean up typography a little more
* 'sigseen' in Build.sh goes away
* Signal name existence is checked in this order:
have our own¹ -> sys_signame[] -> _sys_signame[] -> build our own²
* Signal description existence is checked in this order:
sys_siglist[] -> _sys_siglist[] -> strsignal() -> NULL³
¹ Predefined list of items, for operating systems where we
cannot build² them, i.e. Plan 9 and Minix 3 (e.g. no $CPP -dD)
² The usual cpp(1) stuff
³ Changed later, see below
* Make $CPP test dependent on $NEED_MKSH_SIGNAME (others can
be added here, this is not absolute)
* Make signal name list generation² dependent on $NEED_MKSH_SIGNAME
* Fix check if the generation worked
* Guarantee that sigtraps[*].name and sigtraps[*].mess are valid
C strings; this makes the code shorter *and* removes a few pos-
sible nil pointer dereferences
* Embed autoconf'd usages of sys_sig* / strsignal / mksh_sigpairs
into inittraps()
* Check for each signal 0<=i<=NSIG that
name is not NULL or "" -> replace with ("%d", i)
mess is not NULL or "" -> replace with ("Signal %d", i)
name does not start (case-insensitive) with "SIG" -> name += 3
* In gettrap(), fix check if signal name starts, case-sensitive
or case-insensitive, depending on need, with "SIG" (bug from millert@)
Other changes:
* Build.sh: ac_test[n]() are documented
* Build.sh: ac_test[n]() can have negative prereqs as well now
* Build.sh: use <<-'EOF' consistently
* bump patchlevel to today
* improve output readability
I wonder if I should use ANSI escapes to make the results
from the configuration bold… but then, this'd look worse
in e.g. mc or less. Suggestions?
@Benny: this is why I don't use GNU autoconf: writing configure.in
files is, supposedly, easy - but nobody teaches you which
changes you have to apply to your source files. Here I know.
XXX one of these uses a gcc extension, ok for now tho
* don't include <ctype.h> any more at all
* don't try nl_langinfo in small mode, just check locale
saves 171 .text, 4 .data, 256 .bss, 1 import
tested on Debian stale:
| Total failed: 1 (as expected)
| Total passed: 213
| tg@flyingfish:~/mk b $ uname -a
| Linux flyingfish 2.6.13.1-grsec-aurisp #1 Wed Sep 28 15:13:07 CEST 2005 i686 GNU/Linux
which failed for Han Boetes using zsh as user shell (to test). Now,
the code is integrated into Build.sh as-is, and Test.sh uses $SHELL
no longer either but the mksh just built, in the shebang line.
* mksh.1: rework prompt ($PS1) section, simplify example,
point to packaged dot.mkshrc example
* mksh.1: fix description of 'redraw' regarding redrawal
of prompts longer than one screen line
* all: bump version/date
(yeah, that's what you get from developing with a
16-bit MS-DOS(R) executable of your favourite text editor)
* lex.c, mksh.1: do not print the delimiting character for
not-to-be-counted character sequences (i.e. ANSI escapes)
in prompts any more, mostly because ASCII 01h is printable
on both Interix and Cygwin and I'm lazy
(this also fixes prompt width counting if a printable character
such as 'x' is used as delimiting character)
* lex.c: through printing the prompt character by character,
also print the delimited sequences if skipping, fixes some
prompt redrawal not honouring colours stuff while not totally
redrawing the entire prompt
* sync dot.mkshrc sample with FreeWRT r383
* add some stuff from src/etc/profile and contrib/samples/etc_profile
* sync the latter two with reality and shorten
* teach the user in the mksh installation instructions to install the sample
NB: the sample is also covered by the MirOS licence
but the Pentium 120 with a Hercules graphics card (anno 1981)
survives it:
allow building and running the testsuite if the source or
build directory contain spaces (not unusual on Windows®)
- has an antiquated ed(1)
(I'm lucky it has one, some GNU/Linux don't...)
- cannot build mksh statically linked
* Solaris (SunOS 5.8)
- needs libdl when statically linked (NSSwitch problem)
- /bin/sh is not XPG.4 compatible, don't use test -e
with their more recent counterparts
* no $Log keyword!
* update licence template to most recent version in files touched
* in some places, don't add our own licence boilerplate, just
add my name to the others
* make dev/rndvar.h suitable for inclusion in asm code
* include dev/rndvar.h by in_cksum.s instead of
hardcoding pool size
* ENTRY(a); ENTRY(b) -> NENTRY(a); ENTRY(b)
* RCS IDs belong into .comment not .text
* Build.sh: fix manpage name
* chvt.c: Solaris:
chvt.c:57: `TIOCSCTTY' undeclared (first use in this function)
* chvt.c: GNU/Linux:
/tmp/ccrAeq0h.o(.text+0x5e): In function `chvt':
: warning: warning: revoke is not implemented and will always fail
* sh.h: let it only change to .section .comment ifdef __ELF__
explicit notice to the already existing notice to set $SHELL in
the build environment to a compatible shell
argumenting with POSIX doesn't count: it doesn't count leap seconds.
(Well, he's a Mac user, so let's help these poor children
if they don't know how to do it themselfes ;-)
* fix stripping (now that I know elf.sc by heart...)
* fix catmanpage generation
* detect if catmanpage or stripped binary are generated