Commit Graph

1344 Commits

Author SHA1 Message Date
tg
ca17798533 this is bash compatibility week, and by suggestion of actual users,
namely Dr. Robert “Pfeffer” Arnold (in this case, in FreeWRT), make
a half-completed attempt at implementing ${foo:2:3} substring evals
(of course, negatives can't work right now and that the numbers are
in face expressions is something I only read later too – this is to
be revisited later, but it's already late)

don't depend on this behaviour yet though

if someone wants to add more regression tests, feel free to…
2007-06-27 23:12:59 +00:00
tg
0675b8f25b one check seems to fail on ecce!GNU/Linux 1.0 – but that is perl’s fault 2007-06-23 22:48:47 +00:00
tg
265e82757f kludge for intel's c(rap) compiler 2007-06-23 20:51:21 +00:00
tg
7796820c82 now that we're definitively at 40 pages for the PDF manual, revert some of
the changes in r1.81, and improve wording further
2007-06-23 19:07:14 +00:00
tg
0cd850b207 optimise – we already did that one range check before 2007-06-23 00:05:04 +00:00
tg
3a94b076a0 implement bash-style array initialisation, as requested by many
still experimental
2007-06-22 23:34:42 +00:00
tg
4fef868b6d solve the ugly warnings, be more consistent, allow __attribute__ to depend
on compiler option features, etc.
2007-06-21 16:11:37 +00:00
tg
d42f966d22 rewrite some code; bug found by HP's C compiler 2007-06-21 16:04:46 +00:00
tg
f738b28b3b this solves
| HP-UX td193 B.11.31 U ia64 2909796781 unlimited-user license
| cc: HP C/aC++ B3910B A.06.14 [Feb 22 2007]
| ld: 92453-07 linker ld HP Itanium(R) B.12.43  IPF/IPF
| Total failed: 1 (as expected)
| Total passed: 220
except for an ugly warning
2007-06-21 15:53:14 +00:00
tg
bf503a1fa0 make this build with
| cpp.ansi: HP92453-01 B.11.31.01 HP C Preprocessor (ANSI)
| ccom: HP92453-01 B.11.X.36086-36089-36092.GP HP C Compiler
| /usr/ccs/bin/ld: 92453-07 linker linker ld B.11.60 070209
on
| mirbsd@td191:~/mksh $ uname -a
| HP-UX td191 B.11.31 U 9000/800 3397116299 unlimited-user license
resulting in
| Total failed: 1 (as expected)
| Total passed: 220

so I suppose it's no longer experimental on HP-UX… it also works on/with
| HP-UX td192 B.11.11 U 9000/800 1839940656 unlimited-user license
| gcc version 3.4.2
| Can't locate POSIX.pm in @INC…
and
| HP-UX td192 B.11.11 U 9000/800 1839940656 unlimited-user license
| cpp.ansi: HP92453-01 B.11.X.35175-35176.GP HP C Preprocessor (ANSI)
| ccom: HP92453-01 B.11.X.36086-36089-36092.GP HP C Compiler
| /usr/ccs/bin/ld: 92453-07 linker linker ld B.11.60 070209
and
| HP-UX td176 B.11.23 U ia64 1928826293 unlimited-user license
| Reading specs from /usr/local/lib/gcc/ia64-hp-hpux11.23/3.4.3/specs
| Total failed: 1 (as expected)
| Total passed: 219

still work to do for HP C on IA64
2007-06-21 15:43:33 +00:00
tg
3a563948ec accomodate stupid Slackware 11 (if you're a slack user, pity you) 2007-06-20 13:38:18 +00:00
tg
e596de4759 make sure that “integer” and “local” are defined even in FPOSIX mode, which
is a compromise anyway; these lunox people will have to live with that, too
many existing korn shell alike scripts depend on it even if not on the full
korn shell syntax availability (note: this doesn't mean using these in some
script with #!/bin/sh is ok)
2007-06-17 00:50:09 +00:00
tg
199994fed8 we can do all that 2007-06-16 15:02:56 +00:00
tg
5fe1f4d416 document the FPOSIX stuff 2007-06-15 22:04:06 +00:00
tg
a7ce246a37 if invoked as /bin/sh, -sh, sh.static, whatever, activate FPOSIX
this should help inferiour operating systems like Debian… (where
some of the devs, hi waldi@, don't consider stop() { } invalid…)
2007-06-15 22:00:00 +00:00
tg
17b7a28ac8 • check.t: add some FPOSIX regression tests (1 still fails)
• all: remove vi editing mode #if defined(MKSH_SMALL) || defined(MKSH_NOVI)
  saves 12608 byts on i386
• check.t: add $0 quoting
2007-06-15 21:55:20 +00:00
tg
f280b66d0a make sure ELF, a.out, COFF, MZ/PE and gzip binaries aren't executed via sh
should save us some error messages
2007-06-15 21:22:40 +00:00
tg
1b16db54f1 implement that if we run in FPOSIX mode we don't set up the standard
Korn aliases
2007-06-15 20:52:19 +00:00
tg
f9b33dffea from my change in debian mksh-29.6-2: if arc4random exists, use it 2007-06-10 17:06:07 +00:00
tg
eb47c62e8d fix -xO2 to environment addition, discovered by cnuke@ 2007-06-09 22:06:55 +00:00
tg
e258f1e9fe bump 2007-06-09 22:02:04 +00:00
tg
bf671f42fa don't use __extension__, cought by sunpro on linux 2007-06-09 22:01:42 +00:00
tg
40484a2f21 from sunpro 12 on linux: optimise use of the const-vs-unconst catcher
thanks cnuke@ for testing
2007-06-09 21:59:21 +00:00
tg
81014fa81b more errno cleanup 2007-06-06 23:41:24 +00:00
tg
3dcf22a319 ok, icc _did_ track down a few ones, and I fixed errno abuse a little too
however, bad S/N ratio

side effect bonus: smaller code size now
2007-06-06 23:28:17 +00:00
tg
ffd63798f3 ugh… (no comment) 2007-06-06 23:25:28 +00:00
tg
1e0ca54bf6 out of a 50-line diff which STILL didn't shut up icc, these are the actual
problems. icc's warnings are bogus:
• it says int x_getc(void); is invalid (hm well, it may be static?)
• char c, d; d = c | 0x40; -> warning because (c | 0x40) is an int
  (it apparently can't track value bounds)
2007-06-06 22:26:26 +00:00
tg
dd4b823c07 oops 2007-06-06 22:03:24 +00:00
tg
799a89e9cf remove support for $CPP, just use $CC -E (-) instead consistently 2007-06-06 21:59:38 +00:00
tg
7c76e5752d part 1 of the icc support diff (experimental, untested)
icc sucks…
2007-06-06 21:56:12 +00:00
tg
5dfde5c670 first part of the Intel C Compiler (Linux) shaddap
| tglaser@hephaistos:~ $ /usr/local/intel/cc/9.1.042/bin/icc -V
| Intel(R) C Compiler for 32-bit applications, Version 9.1    Build 20060706Z Package ID: l_cc_c_9.1.042
this one is muuuuch too verbose IMHO, _and_ it #defines __GNUC__ (eek)
2007-06-06 21:36:29 +00:00
tg
e74e6fae7e even if Solaris 10 still doesn't have the mdoc libraries, don't make it
impossible to, e.g. by setenv NROFF, create catman pages on it
2007-06-05 23:10:51 +00:00
tg
91431e4cf6 with this, we don't need the special list of pre-known signal names
any more either, and can make use of code sharing between detection
of sys_siglist and sys_signame (and the underscored variants); nuke
the now-useless signames.c file too (merge struct into histrap.c)
2007-06-05 21:47:49 +00:00
tg
5835e7d3aa HAVE_PERSISTENT_HISTORY is req'd in CPPFLAGS, oops 2007-06-05 21:17:05 +00:00
tg
ae4a7272e7 even without cpp -dD scan for a number of common signal names
enables “kill -TERM 1” on solaris with the SUNpro 5.8 compiler
2007-06-05 21:10:52 +00:00
tg
7e4a39b11c ignore any whitespace between preprocessor output tokens 2007-06-05 20:57:46 +00:00
tg
dbdda6f14e sort the signals list; this has the effect to, on Solaris, prefer
SIGABRT to SIGIOT (good), SIGCHLD to SIGCLD (necessary and reason),
SIGIO to SIGPOLL (the former also exists on mirbsd so okay); changes
on other OSes should be monitored by porters
2007-06-05 20:18:54 +00:00
tg
7c2efd083e shortcut 2007-06-05 20:01:26 +00:00
tg
63c31c43e3 fix for the SUNpro 8 on yofuh's E420:
cc: Sun C 5.8 Patch 121015-04 2007/01/10
2007-06-05 19:48:47 +00:00
tg
487eff541d ugh, echo -n is NOT portable… 2007-06-05 19:39:20 +00:00
tg
10b48d1f92 on Linux 2.0, <sys/sysmacros.h> defines makedev(), but on Solaris, both it
and <sys/mkdev.h> do it, where the latter seems to contain the newer ones,
it undefines them before redefining too, so move its inclusion up a little
2007-06-05 19:35:13 +00:00
tg
697e3b7560 On Solaris:
../mksh/funcs.c:2254: warning: declaration of 'major' shadows a global declaration
/usr/include/sys/mkdev.h:68: warning: shadowed declaration is here
../mksh/funcs.c:2254: warning: declaration of 'minor' shadows a global declaration
/usr/include/sys/mkdev.h:69: warning: shadowed declaration is here

(that's yofuh's system)
SunOS mirfoo 5.10 Generic_125100-04 sun4u sparc SUNW,Ultra-80
Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.10/3.4.6/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --enable-shared --enable-languages=c,c++,f77
Thread model: posix
gcc version 3.4.6
2007-06-05 19:18:11 +00:00
tg
4cbd2c31b9 quieten gcc __CRAZY (-m32) on sparc64 2007-06-05 18:59:54 +00:00
tg
dee38c5be7 sync 2007-06-04 21:55:38 +00:00
tg
1e93f97b8c compile warning-free on SUNpro (regression test suite pass) for MirBSD 2007-06-04 21:33:28 +00:00
tg
6e1bfd6e4b When compiling native MirOS BSD binaries with SUNpro 12 (don't look like a
car only slower, yes this is possible, and the resulting binary passes the
testsuite just fine), the definition of __RCSID() in <sys/cdefs.h> expands
to something with __attribute__((used)), which triggers a warning, because
__attribute__ in general is supported but the used attribute isn't. Thusly
always use our own strings and get rid of the MULTI_RCSID test (introduced
because __RCSID() on Darwin is inferiour).

Maybe we should fix <sys/cdefs.h> too? #ifdef __SUNPRO_C helps here.
2007-06-04 21:27:53 +00:00
tg
0926a6d182 remove the .o files too 2007-06-04 21:15:27 +00:00
tg
33038853cb glibc headers with SUNpro make this test pass incorrectly 2007-06-04 20:26:47 +00:00
tg
76f015e2ab use our includes first 2007-06-04 20:22:08 +00:00
tg
11312995b4 do not compile all files at once any more; collect .o files in $curdir rather 2007-06-04 20:14:34 +00:00