• split Xinit into XinitN and Xinit macro, the former
not initialising the “xp” argument of the latter,
and use this to get rid of two variables that are
only assigned but never referenced (gcc doesn’t see
this, but MIPSpro and IIRC SUNWcc do)
• re-indent while here
• bump patchlevel
• detecting a lot more compilers (stolen from CMake, admittedly, as they
were the first coming up at G**gle with usable #ifdefs)
• handling MIPSpro
• more system info on IRIX
‣ I/O redirection seems broken:
$ (date; date >/dev/null; date) | wc -l
1 (expected: 2)
‣ other than that: working fine
‣ -YBSD (default) and -YSYSTEM_FIVE don’t work, just -YPOSIX, somehow
• Fix $(…) to `…` for OSF/1 V2.0 /bin/sh
‣ this compiler is FUBAR though:
$ cat >t.c
main() { return (foo()); }
$ cc t.c
ld:
Unresolved :
foo
$ echo $?
0
$ ls -l a.out
-rwxr-xr-x 1 mirbsd users 10835 Jul 21 17:12 a.out
‣ it seems to have ucode, but man is not installed
• new mirtoconf check: mkstemp(3)
• if !HAVE_MKSTEMP (Ultrix), use tempnam(3)
• only use printf(1) if it exists (it doesn’t on Ultrix)
• a few more signals
• add S_ISLNK if the OS doesn’t define it
• add strcasecmp(3) proto for Ultrix (it _is_ in <portability.h>, but
only for -YBSD I think)
• fgrep(1) on Ultrix doesn’t do “-e ① -e ②”
10x DEChengst:#UnixNL for giving access
| csh -cf '/command/svscanboot &'
and
| /usr/mpkg/bin/pgrphack /usr/mpkg/bin/svscanboot &
can now be replaced with
| /bin/mksh -T- /usr/mpkg/bin/svscanboot
it can’t do -Werror, that’s why it mis-detects attribute support.
ignore the warnings (unused variables, uninitialised values, control flow)
as I checked them and they are not valid. gcc 1.42 (BSDi modified) compiles
a very fine mksh
| OSF1 rubbereendje.dechengst.nl V5.1 2650 alpha
with the vendor compiler:
| Compaq C V6.5-011 on HP Tru64 UNIX V5.1B (Rev. 2650)
| Compiler Driver V6.5-003 (sys) cc Driver
• the platform’s sig_t is incompatible too (simplify check)
• no compile warnings at all
• results in:
$ size mksh
| text data bss dec hex
| 327680 16384 17808 361872 58590
$ file mksh
| mksh: COFF format alpha dynamically linked, demand paged executable or object module not stripped - version 3.13-14
$ ldd mksh
|
| Main => mksh
| libc.so => /usr/shlib/libc.so
$ ls -l mksh
| -rwxr-xr-x 1 mirbsd users 395200 Mar 5 19:18 mksh
• minor testsuite issues:
FAIL ./check.t:regression-13
unexpected stderr - got too much output
wanted nothing
got:
Successful
cat: output error
⇒ probably harmless
• works like a charm!
• DEC C on OSF/1 (10x Jupp the IceWM coffee pot maintainer)
• other stuff which doesn’t nuke a.out on failure
XXX this must be tested on *ALL* supported platforms!
with GNU groff – add some special handling to the BSD mdoc macros for it so
that the manual pages look good in both utf8 and ps (PDF) mode; also fix in
mksh wrong display of ` (groff: ‘), ' (groff: ’), \' (groff: ´), \- (groff:
U+2212 −), the en dash (nroff doesn’t have it, use the em dash there ONLY),
and ~ and ^ (groff: placed atop and size-reduced, for use as diacritics, in
manual pages bad since these are control characters there)
→ PDF manpage now has ‘’ “” and good-looking hyphens and mini and ~ and ^
→ utf8 manpage now has ‘’ “”, good-looking hyphens, cut’n’pasteable mini
→ nroff manpage still has '' "" instead of ugly `' ``'' or even `´
→ Debian lintian won’t complain any longer
me, which points out that “gnroff -Tutf8” mangles the ‘-’ characters
(hyphen/minus) from the input into ‘‐’ characters (hyphen), which does
not make sense in many cases and prevent copy’n’paste → fix
no change in nrcon output