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
---
 cde/programs/Imakefile                             |    6 +-
 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 +-
 cde/programs/dtksh/ksh93/src/cmd/ksh93/edit/vi.c   |   33 +++----
 .../dtksh/ksh93/src/cmd/ksh93/include/fault.h      |    2 +-
 cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/io.c     |    2 +-
 cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/timers.c |    4 +-
 cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/xec.c    |    2 +-
 .../dtksh/ksh93/src/lib/libast/hash/hashalloc.c    |   14 +--
 .../dtksh/ksh93/src/lib/libast/port/astconf.c      |   15 ---
 .../dtksh/ksh93/src/lib/libast/sfio/sfvprintf.c    |   16 ---
 .../dtksh/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(+), 208 deletions(-)

diff --git a/cde/programs/Imakefile b/cde/programs/Imakefile
index ca66a8b..e80beb2 100644
--- a/cde/programs/Imakefile
+++ b/cde/programs/Imakefile
@@ -12,10 +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 = 
-#else
+#elif defined(FreeBSDArchitecture)
+DTKSHDIR = dtksh
+DTINFODIR = 
 DTKSHDIR = dtksh
 DTINFODIR = dtinfo
 #endif
diff --git a/cde/programs/dtksh/Imakefile b/cde/programs/dtksh/Imakefile
index 0b78726..f5071a3 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 ff5f892..fe69042 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 410a9c4..ee961cb 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 0a00516..e91dbf2 100755
--- a/cde/programs/dtksh/ksh93/ship/shipin
+++ b/cde/programs/dtksh/ksh93/ship/shipin
@@ -728,110 +728,6 @@ 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 787f970..8d4165d 100644
--- a/cde/programs/dtksh/ksh93/ship/shipproto.c
+++ b/cde/programs/dtksh/ksh93/ship/shipproto.c
@@ -104,6 +104,7 @@
 
 # include <sys/types.h>
 # include <sys/stat.h>
+# include <string.h>
 
 # 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 af88050..a0a8291 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 9f7bec0..1af46e2 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 741a477..5a1ddb6 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 c9ccaaf..5d56fb3 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 f0acfec..bfeffba 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 0ad7431..9eaf792 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 4d8587c..f3f8749 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 1f18785..13f4c94 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 a6cf4c4..3736c0d 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 b1b5eff..d09af24 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 233efd7..7133fb7 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,13 +409,7 @@ 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]);
@@ -431,7 +417,6 @@ feature __PARAM__((const char* name, const char* path, 
const char* value), (name
                if (!synthesize(fp, path, value))
                        initialize(fp, path, "echo", "att", "ucb");
 #endif
-#endif
                break;
 
        default:
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 d868300..a95084b 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 f65a7d6..3316b90 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 1a82828..351c52d 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 106e072..5635275 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;
-- 
1.7.9.2


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to