From d3206f451496035dbd5db5ed62a95e67e499c712 Mon Sep 17 00:00:00 2001 From: Marcin Cieslak Date: Tue, 14 Aug 2012 15:31:55 +0200 Subject: [PATCH] Compile dtksh on FreeBSD dtksh can be now compiled on FreeBSD. Work in progress. Needs a real Korn shell to bootstrap as $(KSHELL). KSHELL is set by default to /usr/local/bin/ksh93 (generic POSIX shell may not work) Tested on: FreeBSD 9.0-BETA1 #0 r224912M amd64 Known issues: xvmstat: * sleep does not work well (SIGSTOP is delivered) xpong: * xpong: line 220: ball1x = max_x * 2.2 / 3 : arithmetic syntax error * dtksh is rebuilt uncondtionally every time make is invoked --- cde/programs/Imakefile | 5 +- cde/programs/dtksh/Imakefile | 2 +- cde/programs/dtksh/dtkcvt.c | 11 +- cde/programs/dtksh/ksh93/Imakefile | 13 +-- cde/programs/dtksh/ksh93/ship/shipin | 104 ------------------ cde/programs/dtksh/ksh93/ship/shipproto.c | 3 +- .../dtksh/ksh93/src/cmd/ksh93/bltins/alarm.c | 2 +- .../dtksh/ksh93/src/cmd/ksh93/bltins/read.c | 2 +- .../dtksh/ksh93/src/cmd/ksh93/bltins/sleep.c | 2 +- .../dtksh/ksh93/src/cmd/ksh93/edit/history.c | 2 +- .../dtksh/ksh93/src/cmd/ksh93/edit/vi.c | 33 +++--- .../dtksh/ksh93/src/cmd/ksh93/include/fault.h | 2 +- .../dtksh/ksh93/src/cmd/ksh93/sh/io.c | 2 +- .../dtksh/ksh93/src/cmd/ksh93/sh/timers.c | 4 +- .../dtksh/ksh93/src/cmd/ksh93/sh/xec.c | 2 +- .../ksh93/src/lib/libast/hash/hashalloc.c | 14 +-- .../dtksh/ksh93/src/lib/libast/port/astconf.c | 15 --- .../ksh93/src/lib/libast/sfio/sfvprintf.c | 16 --- .../ksh93/src/lib/libast/string/tokscan.c | 12 +- cde/programs/dtksh/xmcmds.c | 14 ++- cde/programs/dtksh/xmdtksym.h | 1 + 21 files changed, 54 insertions(+), 207 deletions(-) diff --git a/cde/programs/Imakefile b/cde/programs/Imakefile index ca66a8bc..f6b18353 100644 --- a/cde/programs/Imakefile +++ b/cde/programs/Imakefile @@ -12,9 +12,12 @@ EXTRADIRS += util XCOMM some of these cannot be built on linux yet. XCOMM dtksh dtinfo -#if defined(LinuxArchitecture) || defined(OpenBSDArchitecture) || defined(FreeBSDArchitecture) +#if defined(LinuxArchitecture) || defined(OpenBSDArchitecture) DTKSHDIR = DTINFODIR = +#elif defined(FreeBSDArchitecture) +DTKSHDIR = dtksh +DTINFODIR = #else DTKSHDIR = dtksh DTINFODIR = dtinfo diff --git a/cde/programs/dtksh/Imakefile b/cde/programs/dtksh/Imakefile index 0b787269..f5071a30 100644 --- a/cde/programs/dtksh/Imakefile +++ b/cde/programs/dtksh/Imakefile @@ -135,4 +135,4 @@ ComplexProgramTarget($(PROGRAMS)) clean:: @echo " Cleaning ksh directories" - ./MakeClean + $(SHELL) MakeClean diff --git a/cde/programs/dtksh/dtkcvt.c b/cde/programs/dtksh/dtkcvt.c index ff5f892e..fe69042d 100644 --- a/cde/programs/dtksh/dtkcvt.c +++ b/cde/programs/dtksh/dtkcvt.c @@ -67,7 +67,8 @@ #include "xmwidgets.h" #include "msgs.h" -#if defined(SYSV) || defined(SVR4_0) || defined(SVR4) || defined(DEC) +#if defined(SYSV) || defined(SVR4_0) || defined(SVR4) || defined(DEC) \ + || defined(CSRG_BASED) || defined(linux) #define lsprintf sprintf #endif @@ -430,7 +431,7 @@ DtkshCvtStringToCallback( cb = (XtCallbackList)XtMalloc(sizeof(XtCallbackRec)*2); cb[0].callback = (XtCallbackProc)stdCB; - cdata = GetNewCBData((String)fval->addr, w, DTKSHConversionResource, NULL); + cdata = GetNewCBData((String)fval->addr, w, DTKSHConversionResource, None); cb[0].closure = (caddr_t)cdata; cb[1].callback = NULL; @@ -572,7 +573,7 @@ static EventMaskTable eventMasks[] = { {"PropertyChangeMask", PropertyChangeMask}, {"ColormapChangeMask", ColormapChangeMask}, {"OwnerGrabButtonMask", OwnerGrabButtonMask}, - {NULL, NULL}, + {NULL, NoEventMask}, }; @@ -739,7 +740,7 @@ static MWMTable mwmDecorations[] = { {"MWM_DECOR_MENU", MWM_DECOR_MENU}, {"MWM_DECOR_MINIMIZE", MWM_DECOR_MINIMIZE}, {"MWM_DECOR_MAXIMIZE", MWM_DECOR_MAXIMIZE}, - {NULL, NULL}, + {NULL, 0}, }; static MWMTable mwmFunctions[] = { @@ -749,7 +750,7 @@ static MWMTable mwmFunctions[] = { {"MWM_FUNC_MINIMIZE", MWM_FUNC_MINIMIZE}, {"MWM_FUNC_MAXIMIZE", MWM_FUNC_MAXIMIZE}, {"MWM_FUNC_CLOSE", MWM_FUNC_CLOSE}, - {NULL, NULL}, + {NULL, 0}, }; static void diff --git a/cde/programs/dtksh/ksh93/Imakefile b/cde/programs/dtksh/ksh93/Imakefile index 410a9c49..ee961cbe 100644 --- a/cde/programs/dtksh/ksh93/Imakefile +++ b/cde/programs/dtksh/ksh93/Imakefile @@ -15,7 +15,7 @@ CCFLAGS = .NO_PARALLEL: #endif /* SunArchitecture */ -FORCE_SHIP = -E +FORCE_SHIP = -F MALLOCOBJ = @@ -31,6 +31,7 @@ KSH_OBJS = \ OBJS = $(KSH_OBJS) $(KSH_LIBS) +KSHELL?= /usr/local/bin/ksh93 SUIDEXECDEFINES = \ -DPROFILEPATH=\"$(CDE_CONFIGURATION_TOP)/config/profile\" \ @@ -57,15 +58,7 @@ ALL_SUBS = * ksh93src: $(RM) $(SHIP_DIR)/$(ALL_SUBS)/$(ALL_SUBS)/BUILT; \ - if [ -f /bin/ksh ]; \ - then \ - SHELL=/bin/ksh CC=$(CC) CCFLAGS="$(CCFLAGS)" /bin/ksh ship/shipin $(FORCE_SHIP); \ - elif [ -f /bin/sh ]; \ - then \ - SHELL=/bin/sh CC=$(CC) CCFLAGS="$(CCFLAGS)" /bin/sh ship/shipin $(FORCE_SHIP); \ - else \ - SHELL="" CC=$(CC) CCFLAGS="$(CCFLAGS)" ship/shipin $(FORCE_SHIP); \ - fi + SHELL=$(KSHELL) CC=$(CC) CCFLAGS="$(CCFLAGS)" $(KSHELL) ship/shipin $(FORCE_SHIP) ksh93.o: $(OBJS) $(LD) -r -o $@ $(OBJS) diff --git a/cde/programs/dtksh/ksh93/ship/shipin b/cde/programs/dtksh/ksh93/ship/shipin index 0a005168..e91dbf26 100755 --- a/cde/programs/dtksh/ksh93/ship/shipin +++ b/cde/programs/dtksh/ksh93/ship/shipin @@ -727,110 +727,6 @@ esac esac trap 'exit 2' 1 2 -# -# check if we can use pax -- punt to cpio -# - -AR_DELTA= -NEED_pax= -_cpio_= -_cpio_local= -_pax_= -_pax_local= -for p in $_path_ -do case $AR_DELTA in - "") for f in $p/pax $p/pax.save - do if ($f -f /dev/null -z /dev/null) >/dev/null 2>&1 - then _pax_=$p/pax - c=pax; eval new=$_stamp_ - if test "$new" -ge "$OLDEST_pax" - then case $f in - $BIN/pax) if test ! -f $f.save - then $_trace_ cp $f $f.save - fi - ;; - esac - AR_DELTA=$f - break 2 - fi - fi - done - ;; - esac - case $_cpio_ in - "") if test -f $p/cpio - then case $p in - $BIN) _cpio_local=$p/cpio - ;; - *) _cpio_=$p/cpio - case $AR_DELTA in - ?*) break ;; - esac - ;; - esac - fi - ;; - esac - case $_pax_ in - "") if test -f $p/pax - then case $p in - $BIN) _pax_local=$p/pax - ;; - *) _pax_=$p/pax - case $AR_DELTA in - ?*) break ;; - esac - ;; - esac - fi - ;; - esac -done -case $_cpio_ in -"") _cpio_=$_cpio_local ;; -esac -case $_pax_ in -"") _pax_=$_pax_local ;; -esac -case $_pax_ in -?*) AR_PATH=$_pax_ - case $AR_DELTA in - "") AR_LIST="$AR_PATH" ;; - *) AR_LIST="$AR_PATH -x ignore" ;; - esac - AR_READ="$AR_PATH -r" - AR_WRITE="$AR_PATH -w" - ;; -*) AAR_PATH=tar - AAR_LIST="$AAR_PATH t" - AAR_READ="$AAR_PATH x" - AAR_WRITE="$AAR_PATH c" - case $_cpio_ in - ?*) AR_PATH=$_cpio_ - AR_LIST="$AR_PATH -ict" - AR_READ="$AR_PATH -icdmu" - AR_WRITE="$AR_PATH -oc" - ;; - *) AR_PATH=$AAR_PATH - AR_LIST=$AAR_LIST - AR_READ=$AAR_READ - AR_WRITE=$AAR_WRITE - AAR_PATH= - AAR_LIST= - AAR_READ= - AAR_WRITE= - ;; - esac -esac -case $AR_PATH in -"") echo $_command_: must have pax, cpio, or tar to uncrate >&2; exit 1 ;; -esac -OAR_PATH=$AR_PATH -OAR_LIST=$AR_LIST -OAR_READ=$AR_READ -OAR_WRITE=$AR_WRITE -OAR_DELTA=$AR_DELTA - # # check if we can use nmake from the start # if so then limit proto to notices only diff --git a/cde/programs/dtksh/ksh93/ship/shipproto.c b/cde/programs/dtksh/ksh93/ship/shipproto.c index 787f9700..8d4165d3 100644 --- a/cde/programs/dtksh/ksh93/ship/shipproto.c +++ b/cde/programs/dtksh/ksh93/ship/shipproto.c @@ -104,6 +104,7 @@ # include # include +# include # undef ctime @@ -1331,7 +1332,7 @@ struct ppsymkey extern __MANGLE__ int access __PROTO__((const char*, int)); -extern __MANGLE__ __V_* calloc __PROTO__((int, int)); +extern __MANGLE__ __V_* calloc __PROTO__((size_t, size_t)); extern __MANGLE__ int close __PROTO__((int)); extern __MANGLE__ int creat __PROTO__((const char*, int)); extern __MANGLE__ char* ctime __PROTO__((time_t*)); diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/alarm.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/alarm.c index af880508..a0a82914 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/alarm.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/alarm.c @@ -134,7 +134,7 @@ static __V_ *time_add __PARAM__((struct tevent *item, __V_ *list), (item, list)) tp->next = item; } tp = item; - tp->timeout = (__V_*)timeradd(tp->milli,tp->flags&R_FLAG,trap_timeout,(__V_*)tp); + tp->timeout = (__V_*)kshtimeradd(tp->milli,tp->flags&R_FLAG,trap_timeout,(__V_*)tp); return(list); } diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/read.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/read.c index 9f7bec03..1af46e23 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/read.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/read.c @@ -271,7 +271,7 @@ int sh_readline __PARAM__((char **names, int fd, int flags,long timeout), (names jmpval = sigsetjmp(buff.buff,0); if(jmpval) goto done; - timeslot = (__V_*)timeradd(timeout,0,timedout,(__V_*)iop); + timeslot = (__V_*)kshtimeradd(timeout,0,timedout,(__V_*)iop); } if(!(cp = (unsigned char*)sfgetr(iop,delim,0))) cp = (unsigned char*)sfgetr(iop,delim,-1); diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/sleep.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/sleep.c index 741a477d..5a1ddb6b 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/sleep.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/bltins/sleep.c @@ -157,7 +157,7 @@ unsigned sleep __PARAM__((unsigned sec), (sec)) __OTORP__(unsigned sec;){ __V_ *tp; expired = 0; sh.lastsig = 0; - tp = (__V_*)timeradd(1000*sec, 0, completed, (__V_*)0); + tp = (__V_*)kshtimeradd(1000*sec, 0, completed, (__V_*)0); do { pause(); diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/edit/history.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/edit/history.c index c9ccaaf5..5d56fb32 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/edit/history.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/edit/history.c @@ -372,7 +372,7 @@ retry: #ifdef KSHELL (HISTCUR)->nvalue.lp = (&hp->histind); #endif /* KSHELL */ - timeradd(1000L*(HIST_RECENT-30), 1, hist_touch, (__V_*)hp->histname); + kshtimeradd(1000L*(HIST_RECENT-30), 1, hist_touch, (__V_*)hp->histname); #ifdef SHOPT_ACCTFILE if(sh_isstate(SH_INTERACTIVE)) acctinit(); diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/edit/vi.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/edit/vi.c index f0acfecb..bfeffba7 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/edit/vi.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/edit/vi.c @@ -124,7 +124,6 @@ #define MAXCHAR MAXLINE-2 /* max char per line */ -#undef isblank #ifdef SHOPT_MULTIBYTE static int bigvi; # define gencpy(a,b) ed_gencpy(a,b) @@ -134,14 +133,14 @@ # define is_print(c) ((c&~STRIP) || isprint(c)) static int isalph __PROTO__((int)); static int ismetach __PROTO__((int)); - static int isblank __PROTO__((int)); + static int kshisblank __PROTO__((int)); # include "lexstates.h" #else # define gencpy(a,b) strcpy((char*)(a),(char*)(b)) # define genncpy(a,b,n) strncpy((char*)(a),(char*)(b),n) # define genlen(str) strlen(str) # define isalph(v) ((_c=virtual[v])=='_'||isalnum(_c)) -# define isblank(v) isspace(virtual[v]) +# define kshisblank(v) isspace(virtual[v]) # define ismetach(v) ismeta(virtual[v]) # define digit(c) isdigit(c) # define is_print(c) isprint(c) @@ -220,7 +219,7 @@ static char paren_chars[] = "([{)]}"; /* for % command */ #ifdef FIORDCHK static clock_t typeahead; /* typeahead occurred */ - extern __MANGLE__ int ioctl __PROTO__((int, int, ...)); + extern __MANGLE__ int ioctl __PROTO__((int, unsigned long, ...)); #else static int typeahead; /* typeahead occurred */ #endif /* FIORDCHK */ @@ -680,7 +679,7 @@ static void backword __PARAM__((int nwords, register int cmd), (nwords, cmd)) __ register int tcur_virt = cur_virt; while( nwords-- && tcur_virt > first_virt ) { - if( !isblank(tcur_virt) && isblank(tcur_virt-1) + if( !kshisblank(tcur_virt) && kshisblank(tcur_virt-1) && tcur_virt>first_virt ) --tcur_virt; else if(cmd != 'B') @@ -690,11 +689,11 @@ static void backword __PARAM__((int nwords, register int cmd), (nwords, cmd)) __ if((!cur && last) || (cur && !last)) --tcur_virt; } - while( isblank(tcur_virt) && tcur_virt>=first_virt ) + while( kshisblank(tcur_virt) && tcur_virt>=first_virt ) --tcur_virt; if( cmd == 'B' ) { - while( !isblank(tcur_virt) && tcur_virt>=first_virt ) + while( !kshisblank(tcur_virt) && tcur_virt>=first_virt ) --tcur_virt; } else @@ -703,7 +702,7 @@ static void backword __PARAM__((int nwords, register int cmd), (nwords, cmd)) __ while( isalph(tcur_virt) && tcur_virt>=first_virt ) --tcur_virt; else - while( !isalph(tcur_virt) && !isblank(tcur_virt) + while( !isalph(tcur_virt) && !kshisblank(tcur_virt) && tcur_virt>=first_virt ) --tcur_virt; } @@ -1185,7 +1184,7 @@ static int delmotion __PARAM__((int motion, int mode), (motion, mode)) __OTORP__ { /*** called by change operation, user really expects ***/ /* the effect of the eE commands, so back up to end of word */ - while( end>begin && isblank(end-1) ) + while( end>begin && kshisblank(end-1) ) --end; if( end == begin ) ++end; @@ -1220,13 +1219,13 @@ static void endword __PARAM__((int nwords, register int cmd), (nwords, cmd)) __O register int tcur_virt = cur_virt; while( nwords-- ) { - if( !isblank(tcur_virt) && tcur_virt<=last_virt ) + if( !kshisblank(tcur_virt) && tcur_virt<=last_virt ) ++tcur_virt; - while( isblank(tcur_virt) && tcur_virt<=last_virt ) + while( kshisblank(tcur_virt) && tcur_virt<=last_virt ) ++tcur_virt; if( cmd == 'E' ) { - while( !isblank(tcur_virt) && tcur_virt<=last_virt ) + while( !kshisblank(tcur_virt) && tcur_virt<=last_virt ) ++tcur_virt; } else @@ -1235,7 +1234,7 @@ static void endword __PARAM__((int nwords, register int cmd), (nwords, cmd)) __O while( isalph(tcur_virt) && tcur_virt<=last_virt ) ++tcur_virt; else - while( !isalph(tcur_virt) && !isblank(tcur_virt) + while( !isalph(tcur_virt) && !kshisblank(tcur_virt) && tcur_virt<=last_virt ) ++tcur_virt; } @@ -1258,7 +1257,7 @@ static void forward __PARAM__((register int nwords, int cmd), (nwords, cmd)) __O { if( cmd == 'W' ) { - while( !isblank(tcur_virt) && tcur_virt < last_virt ) + while( !kshisblank(tcur_virt) && tcur_virt < last_virt ) ++tcur_virt; } else @@ -1270,12 +1269,12 @@ static void forward __PARAM__((register int nwords, int cmd), (nwords, cmd)) __O } else { - while( !isalph(tcur_virt) && !isblank(tcur_virt) + while( !isalph(tcur_virt) && !kshisblank(tcur_virt) && tcur_virt < last_virt ) ++tcur_virt; } } - while( isblank(tcur_virt) && tcur_virt < last_virt ) + while( kshisblank(tcur_virt) && tcur_virt < last_virt ) ++tcur_virt; } cur_virt = tcur_virt; @@ -2528,7 +2527,7 @@ yankeol: } - static int isblank __PARAM__((register int c), (c)) __OTORP__(register int c;){ + static int kshisblank __PARAM__((register int c), (c)) __OTORP__(register int c;){ register int v = virtual[c]; return((v&~STRIP)==0 && isspace(v)); } diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/include/fault.h b/cde/programs/dtksh/ksh93/src/cmd/ksh93/include/fault.h index 0ad74319..9eaf7921 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/include/fault.h +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/include/fault.h @@ -176,7 +176,7 @@ extern __MANGLE__ void sh_siginit __PROTO__((void)); extern __MANGLE__ void sh_sigtrap __PROTO__((int)); extern __MANGLE__ void sh_sigreset __PROTO__((int)); extern __MANGLE__ void sh_timetraps __PROTO__((void)); -extern __MANGLE__ __V_ *timeradd __PROTO__((unsigned long,int ,void (*)(__V_*),__V_*)); +extern __MANGLE__ __V_ *kshtimeradd __PROTO__((unsigned long,int ,void (*)(__V_*),__V_*)); extern __MANGLE__ void timerdel __PROTO__((__V_*)); extern __MANGLE__ const char e_alarm[]; diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/io.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/io.c index 4d8587c4..f3f87494 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/io.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/io.c @@ -964,7 +964,7 @@ static int slowread __PARAM__((Sfio_t *iop,__V_ *buff,register int size,Sfdisc_t if(io_prompt(sh.nextprompt)<0 && errno==EIO) return(0); if(sh.timeout) - timeout = (__V_*)timeradd(sh_isstate(SH_GRACE)?1000L*TGRACE:1000L*sh.timeout,0,time_grace,NIL(__V_*)); + timeout = (__V_*)kshtimeradd(sh_isstate(SH_GRACE)?1000L*TGRACE:1000L*sh.timeout,0,time_grace,NIL(__V_*)); # ifdef SHOPT_ESH if(sh_isoption(SH_EMACS|SH_GMACS)) readf = ed_emacsread; diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/timers.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/timers.c index 1f18785c..13f4c94e 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/timers.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/timers.c @@ -236,7 +236,7 @@ static void oldalrm __PARAM__((__V_ *handle), (handle)) __OTORP__(__V_ *handle;) (*fn)(SIGALRM); } -__V_ *timeradd __PARAM__((unsigned long msec,int flags,void (*action)(__V_*),__V_ *handle), (msec, flags, action, handle)) __OTORP__(unsigned long msec;int flags;void (*action)();__V_ *handle;){ +__V_ *kshtimeradd __PARAM__((unsigned long msec,int flags,void (*action)(__V_*),__V_ *handle), (msec, flags, action, handle)) __OTORP__(unsigned long msec;int flags;void (*action)();__V_ *handle;){ register Timer_t *tp; double t; Handler_t fn; @@ -260,7 +260,7 @@ __V_ *timeradd __PARAM__((unsigned long msec,int flags,void (*action)(__V_*),__V if(hp) { *hp = fn; - timeradd((long)(1000*t), 0, oldalrm, (__V_*)hp); + kshtimeradd((long)(1000*t), 0, oldalrm, (__V_*)hp); } } tp = tptop; diff --git a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/xec.c b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/xec.c index a6cf4c4c..3736c0d4 100644 --- a/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/xec.c +++ b/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/xec.c @@ -1322,7 +1322,7 @@ pid_t _sh_fork __PARAM__((register pid_t parent,int flags,int *jobid), (parent, error(ERROR_system(ERROR_NOEXEC),e_nofork); } sh_sigcheck(); - timeout = (__V_*)timeradd(forkcnt, 0, timed_out, NIL(__V_*)); + timeout = (__V_*)kshtimeradd(forkcnt, 0, timed_out, NIL(__V_*)); job_wait((pid_t)-1); if(timeout) { diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/hash/hashalloc.c b/cde/programs/dtksh/ksh93/src/lib/libast/hash/hashalloc.c index b1b5eff4..d09af247 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/hash/hashalloc.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/hash/hashalloc.c @@ -112,7 +112,7 @@ hashalloc __PARAM__((Hash_table_t* ref, ...), (va_alist)) __OTORP__(va_dcl) register Hash_table_t* ret = 0; register int internal; int n; - va_list ap; + va_list ap, vl; va_list va[4]; va_list* vp = va; HASHregion region = 0; @@ -214,27 +214,19 @@ hashalloc __PARAM__((Hash_table_t* ref, ...), (va_alist)) __OTORP__(va_dcl) tab->flags |= HASH_STATIC; break; case HASH_va_list: -#ifdef __ppc if (vp < &va[elementsof(va)]) { __va_copy( *vp, ap ); vp++; } - __va_copy(ap, *((va_list *) va_arg(ap, va_list)) ); -#else - if (vp < &va[elementsof(va)]) *vp++ = ap; - ap = va_arg(ap, va_list); -#endif + vl = va_arg(ap, va_list); + __va_copy(ap, vl); break; case 0: if (vp > va) { -#ifdef __ppc vp--; __va_copy( ap, *vp ); -#else - ap = *--vp; -#endif break; } if (tab->flags & HASH_SCOPE) diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/port/astconf.c b/cde/programs/dtksh/ksh93/src/lib/libast/port/astconf.c index 233efd79..7133fb71 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/port/astconf.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/port/astconf.c @@ -285,8 +285,6 @@ initialize __PARAM__((register Feature_t* fp, const char* path, const char* comm if (fp->op != OP_path_resolve || !fs3d(FS3D_TEST)) { - if (fp->op == OP_universe) - ok = streq(_UNIV_DEFAULT, "att"); if (p = getenv("PATH")) { register int r = 1; @@ -402,12 +400,6 @@ feature __PARAM__((const char* name, const char* path, const char* value), (name break; case OP_universe: -#if _lib_universe - if (getuniverse(fp->value) < 0) - strcpy(fp->value, "att"); - if (value) - setuniverse(value); -#else #ifdef UNIV_MAX n = 0; if (value) @@ -417,20 +409,13 @@ feature __PARAM__((const char* name, const char* path, const char* value), (name if (n >= univ_max) return(0); } -#ifdef ATT_UNIV - n = setuniverse(n + 1); - if (!value && n > 0) - setuniverse(n); -#else n = universe(value ? n + 1 : U_GET); -#endif if (n <= 0 || n >= univ_max) n = 1; strcpy(fp->value, univ_name[n - 1]); #else if (!synthesize(fp, path, value)) initialize(fp, path, "echo", "att", "ucb"); -#endif #endif break; diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c index d8683001..a95084bb 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c @@ -90,7 +90,6 @@ goto pop_fa; \ else elt = (etype)arge; \ } -#ifdef __ppc #define GETARGL(elt,arge,argf,args,etype,type,fmt,t_user,n_user) \ { if(!argf) \ __va_copy( elt, va_arg(args,type) ); \ @@ -98,7 +97,6 @@ goto pop_fa; \ else __va_copy( elt, arge ); \ } -#endif #if __STD_C sfvprintf(Sfio_t* f, const char* form, va_list args) @@ -303,15 +301,9 @@ loop_fa : GETARG(form,form,argf,args,char*,char*,'1',t_user,n_user); if(!form) form = ""; -#ifdef __ppc GETARGL(argsp,argsp,argf,args,va_list*,va_list*,'2',t_user,n_user); __va_copy( fa->args, args ); __va_copy( args, argsp ); -#else - GETARG(argsp,argsp,argf,args,va_list*,va_list*,'2',t_user,n_user); - memcpy((Void_t*)(&(fa->args)), (Void_t*)(&args), sizeof(va_list)); - memcpy((Void_t*)(&args), (Void_t*)argsp, sizeof(va_list)); -#endif fa->argf.p = argf; fa->extf.p = extf; fa->next = fast; @@ -321,12 +313,8 @@ loop_fa : default : /* unknown directive */ if(extf) { -#ifdef __ppc va_list savarg; /* is this portable? Sorry .. NO. */ __va_copy( savarg, args ); -#else - va_list savarg = args; /* is this portable? */ -#endif GETARG(sp,astr,argf,args,char*,char*,fmt,t_user,n_user); astr = NIL(char*); @@ -334,11 +322,7 @@ loop_fa : if((sp = astr) ) goto s_format; -#ifdef __ppc __va_copy( args, savarg ); /* extf failed, treat as if unmatched */ -#else - args = savarg; /* extf failed, treat as if unmatched */ -#endif } /* treat as text */ diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/string/tokscan.c b/cde/programs/dtksh/ksh93/src/lib/libast/string/tokscan.c index f65a7d6b..3316b904 100644 --- a/cde/programs/dtksh/ksh93/src/lib/libast/string/tokscan.c +++ b/cde/programs/dtksh/ksh93/src/lib/libast/string/tokscan.c @@ -228,11 +228,7 @@ tokscan __PARAM__((register char* s, char** nxt, const char* fmt, ...), (va_alis if (f = prv_f) { prv_f = 0; -#ifdef __ppc __va_copy( ap, prv_ap ); -#else - ap = prv_ap; -#endif continue; } goto done; @@ -261,15 +257,9 @@ tokscan __PARAM__((register char* s, char** nxt, const char* fmt, ...), (va_alis case ':': prv_f = f; f = va_arg(ap, char*); -#ifdef __ppc __va_copy( prv_ap, ap ); - pap = va_arg(ap, va_list*)) ); - __va_copy( ap, pap ); -#else - prv_ap = ap; pap = va_arg(ap, va_list*); - memcpy(&ap, pap, sizeof(ap)); -#endif + __va_copy( ap, pap ); continue; case 'c': p_char = va_arg(ap, char*); diff --git a/cde/programs/dtksh/xmcmds.c b/cde/programs/dtksh/xmcmds.c index 1a828286..351c52d8 100644 --- a/cde/programs/dtksh/xmcmds.c +++ b/cde/programs/dtksh/xmcmds.c @@ -171,12 +171,12 @@ static int Text_Widget( int argc, char *argv[]) ; static int Text_VarAndWidget( - int (*func)(), + int (*func)(Widget w), Boolean varIsString, int argc, char *argv[]) ; static int Text_WidgetAndBoolean( - void (*func)(), + void (*func)(Widget w, int b), int argc, char *argv[]) ; static int Text_WidgetAndOneParam( @@ -3737,7 +3737,8 @@ do_catopen( char * ptr; nl_catd nlmsg_fd = (nl_catd)-1; char * errmsg; -#if defined(SVR4) || defined (_AIX) || defined(sco) || defined(DEC) +#if defined(SVR4) || defined (_AIX) || defined(sco) || defined(DEC) || \ + defined(CSRG_BASED) || defined(linux) char * nextMatch; #endif @@ -3761,7 +3762,8 @@ do_catopen( */ altCatName = XtMalloc(strlen(catName) + 10); -#if defined(SVR4) || defined (_AIX) || defined(sco) || defined(DEC) +#if defined(SVR4) || defined (_AIX) || defined(sco) || defined(DEC) || \ + defined(CSRG_BASED) || defined(linux) /* These platforms don't have strrstr() */ ptr = NULL; nextMatch = catName; @@ -3965,7 +3967,7 @@ do_XmTextRemove( static int Text_VarAndWidget( - int (*func)(), + int (*func)(Widget w), Boolean varIsString, int argc, char *argv[] ) @@ -4077,7 +4079,7 @@ do_XmTextGetString( static int Text_WidgetAndBoolean( - void (*func)(), + void (*func)(Widget w, int b), int argc, char *argv[] ) { diff --git a/cde/programs/dtksh/xmdtksym.h b/cde/programs/dtksh/xmdtksym.h index 106e0727..5635275a 100644 --- a/cde/programs/dtksh/xmdtksym.h +++ b/cde/programs/dtksh/xmdtksym.h @@ -42,6 +42,7 @@ #ifndef _Dtksh_xmdtksym_h #define _Dtksh_xmdtksym_h +#include "exksh.h" extern struct symarray Symarray[]; extern int Symsize; -- 2.25.1