mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-13 19:52:20 +00:00
typeset: Fix stack fencepost error, ISO C90 compat (#159)
src/cmd/ksh93/bltins/typeset.c: - The new_argv[] array was one item too short (should be argc+2). - Use AST stakalloc(3) to allocate it instead of a dynamic array; this restores compatibility with ISO C90. src/lib/libast/features/standards, src/cmd/INIT/cc.unixware.i386: - Add support for UnixWare. - Do not define any standards macros on this system, as on FreeBSD and DragonFly BSD.
This commit is contained in:
parent
bb4d6a2ee5
commit
ff70c27f24
4 changed files with 14 additions and 4 deletions
|
@ -60,7 +60,7 @@ cc ld ldd :PACKAGE_INIT: mamake.c proto.c ratz.c release.c
|
|||
cc.sco.i386 \
|
||||
cc.sgi.mips2 cc.sgi.mips3 cc.sgi.mips3-o32 cc.sgi.mips4 \
|
||||
cc.sgi.mips4-n32 ldd.sgi \
|
||||
cc.unix.mc68k
|
||||
cc.unix.mc68k cc.unixware.i386
|
||||
|
||||
LICENSE : .DONTCARE
|
||||
|
||||
|
|
9
src/cmd/INIT/cc.unixware.i386
Executable file
9
src/cmd/INIT/cc.unixware.i386
Executable file
|
@ -0,0 +1,9 @@
|
|||
: unixware.i386 cc wrapper
|
||||
|
||||
HOSTTYPE=unixware.i386
|
||||
|
||||
case " $* " in
|
||||
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
|
||||
esac
|
||||
|
||||
/bin/cc -D_XOPEN_UNIX -D_XOPEN_SOURCE_EXTENDED "$@"
|
|
@ -196,8 +196,9 @@ int b_typeset(int argc,register char *argv[],Shbltin_t *context)
|
|||
Namdecl_t *ntp = (Namdecl_t*)context->ptr;
|
||||
Dt_t *troot;
|
||||
int isfloat=0, shortint=0, sflag=0;
|
||||
char *new_argv[argc + 1];
|
||||
char **new_argv;
|
||||
|
||||
new_argv = (char **)stakalloc((argc + 2) * sizeof(char*));
|
||||
memset((void*)&tdata,0,sizeof(tdata));
|
||||
tdata.sh = context->shp;
|
||||
troot = tdata.sh->var_tree;
|
||||
|
|
|
@ -6,9 +6,9 @@ set stdio
|
|||
# careful that we don't get fooled by presence of FreeBSD that underpins some
|
||||
# subsystems in Mac OS X; there are other Apple-specific portability hacks
|
||||
# elsewhere we should not interfere with.
|
||||
if tst note{ FreeBSD or DragonFly BSD }end compile{
|
||||
if tst note{ FreeBSD, DragonFly BSD, or UnixWare }end compile{
|
||||
#include <sys/param.h>
|
||||
#if (!defined(__FreeBSD__) && !defined(__DragonFly__)) || defined(APPLE)
|
||||
#if (!defined(__FreeBSD__) && !defined(__DragonFly__) && !defined(__USLC__)) || defined(APPLE)
|
||||
#error not a FreeBSD or DragonFly BSD system
|
||||
#endif
|
||||
}end {
|
||||
|
|
Loading…
Reference in a new issue