mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-15 04:32:24 +00:00
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
This commit is contained in:
parent
441a25b361
commit
d3206f4514
21 changed files with 54 additions and 207 deletions
|
@ -12,9 +12,12 @@ EXTRADIRS += util
|
||||||
|
|
||||||
XCOMM some of these cannot be built on linux yet.
|
XCOMM some of these cannot be built on linux yet.
|
||||||
XCOMM dtksh dtinfo
|
XCOMM dtksh dtinfo
|
||||||
#if defined(LinuxArchitecture) || defined(OpenBSDArchitecture) || defined(FreeBSDArchitecture)
|
#if defined(LinuxArchitecture) || defined(OpenBSDArchitecture)
|
||||||
DTKSHDIR =
|
DTKSHDIR =
|
||||||
DTINFODIR =
|
DTINFODIR =
|
||||||
|
#elif defined(FreeBSDArchitecture)
|
||||||
|
DTKSHDIR = dtksh
|
||||||
|
DTINFODIR =
|
||||||
#else
|
#else
|
||||||
DTKSHDIR = dtksh
|
DTKSHDIR = dtksh
|
||||||
DTINFODIR = dtinfo
|
DTINFODIR = dtinfo
|
||||||
|
|
|
@ -135,4 +135,4 @@ ComplexProgramTarget($(PROGRAMS))
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
@echo " Cleaning ksh directories"
|
@echo " Cleaning ksh directories"
|
||||||
./MakeClean
|
$(SHELL) MakeClean
|
||||||
|
|
|
@ -67,7 +67,8 @@
|
||||||
#include "xmwidgets.h"
|
#include "xmwidgets.h"
|
||||||
#include "msgs.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
|
#define lsprintf sprintf
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -430,7 +431,7 @@ DtkshCvtStringToCallback(
|
||||||
cb = (XtCallbackList)XtMalloc(sizeof(XtCallbackRec)*2);
|
cb = (XtCallbackList)XtMalloc(sizeof(XtCallbackRec)*2);
|
||||||
cb[0].callback = (XtCallbackProc)stdCB;
|
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[0].closure = (caddr_t)cdata;
|
||||||
cb[1].callback = NULL;
|
cb[1].callback = NULL;
|
||||||
|
@ -572,7 +573,7 @@ static EventMaskTable eventMasks[] = {
|
||||||
{"PropertyChangeMask", PropertyChangeMask},
|
{"PropertyChangeMask", PropertyChangeMask},
|
||||||
{"ColormapChangeMask", ColormapChangeMask},
|
{"ColormapChangeMask", ColormapChangeMask},
|
||||||
{"OwnerGrabButtonMask", OwnerGrabButtonMask},
|
{"OwnerGrabButtonMask", OwnerGrabButtonMask},
|
||||||
{NULL, NULL},
|
{NULL, NoEventMask},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -739,7 +740,7 @@ static MWMTable mwmDecorations[] = {
|
||||||
{"MWM_DECOR_MENU", MWM_DECOR_MENU},
|
{"MWM_DECOR_MENU", MWM_DECOR_MENU},
|
||||||
{"MWM_DECOR_MINIMIZE", MWM_DECOR_MINIMIZE},
|
{"MWM_DECOR_MINIMIZE", MWM_DECOR_MINIMIZE},
|
||||||
{"MWM_DECOR_MAXIMIZE", MWM_DECOR_MAXIMIZE},
|
{"MWM_DECOR_MAXIMIZE", MWM_DECOR_MAXIMIZE},
|
||||||
{NULL, NULL},
|
{NULL, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
static MWMTable mwmFunctions[] = {
|
static MWMTable mwmFunctions[] = {
|
||||||
|
@ -749,7 +750,7 @@ static MWMTable mwmFunctions[] = {
|
||||||
{"MWM_FUNC_MINIMIZE", MWM_FUNC_MINIMIZE},
|
{"MWM_FUNC_MINIMIZE", MWM_FUNC_MINIMIZE},
|
||||||
{"MWM_FUNC_MAXIMIZE", MWM_FUNC_MAXIMIZE},
|
{"MWM_FUNC_MAXIMIZE", MWM_FUNC_MAXIMIZE},
|
||||||
{"MWM_FUNC_CLOSE", MWM_FUNC_CLOSE},
|
{"MWM_FUNC_CLOSE", MWM_FUNC_CLOSE},
|
||||||
{NULL, NULL},
|
{NULL, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -15,7 +15,7 @@ CCFLAGS =
|
||||||
.NO_PARALLEL:
|
.NO_PARALLEL:
|
||||||
#endif /* SunArchitecture */
|
#endif /* SunArchitecture */
|
||||||
|
|
||||||
FORCE_SHIP = -E
|
FORCE_SHIP = -F
|
||||||
|
|
||||||
MALLOCOBJ =
|
MALLOCOBJ =
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ KSH_OBJS = \
|
||||||
|
|
||||||
OBJS = $(KSH_OBJS) $(KSH_LIBS)
|
OBJS = $(KSH_OBJS) $(KSH_LIBS)
|
||||||
|
|
||||||
|
KSHELL?= /usr/local/bin/ksh93
|
||||||
|
|
||||||
SUIDEXECDEFINES = \
|
SUIDEXECDEFINES = \
|
||||||
-DPROFILEPATH=\"$(CDE_CONFIGURATION_TOP)/config/profile\" \
|
-DPROFILEPATH=\"$(CDE_CONFIGURATION_TOP)/config/profile\" \
|
||||||
|
@ -57,15 +58,7 @@ ALL_SUBS = *
|
||||||
|
|
||||||
ksh93src:
|
ksh93src:
|
||||||
$(RM) $(SHIP_DIR)/$(ALL_SUBS)/$(ALL_SUBS)/BUILT; \
|
$(RM) $(SHIP_DIR)/$(ALL_SUBS)/$(ALL_SUBS)/BUILT; \
|
||||||
if [ -f /bin/ksh ]; \
|
SHELL=$(KSHELL) CC=$(CC) CCFLAGS="$(CCFLAGS)" $(KSHELL) ship/shipin $(FORCE_SHIP)
|
||||||
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
|
|
||||||
|
|
||||||
ksh93.o: $(OBJS)
|
ksh93.o: $(OBJS)
|
||||||
$(LD) -r -o $@ $(OBJS)
|
$(LD) -r -o $@ $(OBJS)
|
||||||
|
|
|
@ -727,110 +727,6 @@ esac
|
||||||
esac
|
esac
|
||||||
trap 'exit 2' 1 2
|
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
|
# check if we can use nmake from the start
|
||||||
# if so then limit proto to notices only
|
# if so then limit proto to notices only
|
||||||
|
|
|
@ -104,6 +104,7 @@
|
||||||
|
|
||||||
# include <sys/types.h>
|
# include <sys/types.h>
|
||||||
# include <sys/stat.h>
|
# include <sys/stat.h>
|
||||||
|
# include <string.h>
|
||||||
|
|
||||||
# undef ctime
|
# undef ctime
|
||||||
|
|
||||||
|
@ -1331,7 +1332,7 @@ struct ppsymkey
|
||||||
|
|
||||||
|
|
||||||
extern __MANGLE__ int access __PROTO__((const char*, int));
|
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 close __PROTO__((int));
|
||||||
extern __MANGLE__ int creat __PROTO__((const char*, int));
|
extern __MANGLE__ int creat __PROTO__((const char*, int));
|
||||||
extern __MANGLE__ char* ctime __PROTO__((time_t*));
|
extern __MANGLE__ char* ctime __PROTO__((time_t*));
|
||||||
|
|
|
@ -134,7 +134,7 @@ static __V_ *time_add __PARAM__((struct tevent *item, __V_ *list), (item, list))
|
||||||
tp->next = item;
|
tp->next = item;
|
||||||
}
|
}
|
||||||
tp = 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);
|
return(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -271,7 +271,7 @@ int sh_readline __PARAM__((char **names, int fd, int flags,long timeout), (names
|
||||||
jmpval = sigsetjmp(buff.buff,0);
|
jmpval = sigsetjmp(buff.buff,0);
|
||||||
if(jmpval)
|
if(jmpval)
|
||||||
goto done;
|
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)))
|
if(!(cp = (unsigned char*)sfgetr(iop,delim,0)))
|
||||||
cp = (unsigned char*)sfgetr(iop,delim,-1);
|
cp = (unsigned char*)sfgetr(iop,delim,-1);
|
||||||
|
|
|
@ -157,7 +157,7 @@ unsigned sleep __PARAM__((unsigned sec), (sec)) __OTORP__(unsigned sec;){
|
||||||
__V_ *tp;
|
__V_ *tp;
|
||||||
expired = 0;
|
expired = 0;
|
||||||
sh.lastsig = 0;
|
sh.lastsig = 0;
|
||||||
tp = (__V_*)timeradd(1000*sec, 0, completed, (__V_*)0);
|
tp = (__V_*)kshtimeradd(1000*sec, 0, completed, (__V_*)0);
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
pause();
|
pause();
|
||||||
|
|
|
@ -372,7 +372,7 @@ retry:
|
||||||
#ifdef KSHELL
|
#ifdef KSHELL
|
||||||
(HISTCUR)->nvalue.lp = (&hp->histind);
|
(HISTCUR)->nvalue.lp = (&hp->histind);
|
||||||
#endif /* KSHELL */
|
#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
|
#ifdef SHOPT_ACCTFILE
|
||||||
if(sh_isstate(SH_INTERACTIVE))
|
if(sh_isstate(SH_INTERACTIVE))
|
||||||
acctinit();
|
acctinit();
|
||||||
|
|
|
@ -124,7 +124,6 @@
|
||||||
|
|
||||||
#define MAXCHAR MAXLINE-2 /* max char per line */
|
#define MAXCHAR MAXLINE-2 /* max char per line */
|
||||||
|
|
||||||
#undef isblank
|
|
||||||
#ifdef SHOPT_MULTIBYTE
|
#ifdef SHOPT_MULTIBYTE
|
||||||
static int bigvi;
|
static int bigvi;
|
||||||
# define gencpy(a,b) ed_gencpy(a,b)
|
# define gencpy(a,b) ed_gencpy(a,b)
|
||||||
|
@ -134,14 +133,14 @@
|
||||||
# define is_print(c) ((c&~STRIP) || isprint(c))
|
# define is_print(c) ((c&~STRIP) || isprint(c))
|
||||||
static int isalph __PROTO__((int));
|
static int isalph __PROTO__((int));
|
||||||
static int ismetach __PROTO__((int));
|
static int ismetach __PROTO__((int));
|
||||||
static int isblank __PROTO__((int));
|
static int kshisblank __PROTO__((int));
|
||||||
# include "lexstates.h"
|
# include "lexstates.h"
|
||||||
#else
|
#else
|
||||||
# define gencpy(a,b) strcpy((char*)(a),(char*)(b))
|
# define gencpy(a,b) strcpy((char*)(a),(char*)(b))
|
||||||
# define genncpy(a,b,n) strncpy((char*)(a),(char*)(b),n)
|
# define genncpy(a,b,n) strncpy((char*)(a),(char*)(b),n)
|
||||||
# define genlen(str) strlen(str)
|
# define genlen(str) strlen(str)
|
||||||
# define isalph(v) ((_c=virtual[v])=='_'||isalnum(_c))
|
# 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 ismetach(v) ismeta(virtual[v])
|
||||||
# define digit(c) isdigit(c)
|
# define digit(c) isdigit(c)
|
||||||
# define is_print(c) isprint(c)
|
# define is_print(c) isprint(c)
|
||||||
|
@ -220,7 +219,7 @@ static char paren_chars[] = "([{)]}"; /* for % command */
|
||||||
|
|
||||||
#ifdef FIORDCHK
|
#ifdef FIORDCHK
|
||||||
static clock_t typeahead; /* typeahead occurred */
|
static clock_t typeahead; /* typeahead occurred */
|
||||||
extern __MANGLE__ int ioctl __PROTO__((int, int, ...));
|
extern __MANGLE__ int ioctl __PROTO__((int, unsigned long, ...));
|
||||||
#else
|
#else
|
||||||
static int typeahead; /* typeahead occurred */
|
static int typeahead; /* typeahead occurred */
|
||||||
#endif /* FIORDCHK */
|
#endif /* FIORDCHK */
|
||||||
|
@ -680,7 +679,7 @@ static void backword __PARAM__((int nwords, register int cmd), (nwords, cmd)) __
|
||||||
register int tcur_virt = cur_virt;
|
register int tcur_virt = cur_virt;
|
||||||
while( nwords-- && tcur_virt > first_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>first_virt )
|
||||||
--tcur_virt;
|
--tcur_virt;
|
||||||
else if(cmd != 'B')
|
else if(cmd != 'B')
|
||||||
|
@ -690,11 +689,11 @@ static void backword __PARAM__((int nwords, register int cmd), (nwords, cmd)) __
|
||||||
if((!cur && last) || (cur && !last))
|
if((!cur && last) || (cur && !last))
|
||||||
--tcur_virt;
|
--tcur_virt;
|
||||||
}
|
}
|
||||||
while( isblank(tcur_virt) && tcur_virt>=first_virt )
|
while( kshisblank(tcur_virt) && tcur_virt>=first_virt )
|
||||||
--tcur_virt;
|
--tcur_virt;
|
||||||
if( cmd == 'B' )
|
if( cmd == 'B' )
|
||||||
{
|
{
|
||||||
while( !isblank(tcur_virt) && tcur_virt>=first_virt )
|
while( !kshisblank(tcur_virt) && tcur_virt>=first_virt )
|
||||||
--tcur_virt;
|
--tcur_virt;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -703,7 +702,7 @@ static void backword __PARAM__((int nwords, register int cmd), (nwords, cmd)) __
|
||||||
while( isalph(tcur_virt) && tcur_virt>=first_virt )
|
while( isalph(tcur_virt) && tcur_virt>=first_virt )
|
||||||
--tcur_virt;
|
--tcur_virt;
|
||||||
else
|
else
|
||||||
while( !isalph(tcur_virt) && !isblank(tcur_virt)
|
while( !isalph(tcur_virt) && !kshisblank(tcur_virt)
|
||||||
&& tcur_virt>=first_virt )
|
&& tcur_virt>=first_virt )
|
||||||
--tcur_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 ***/
|
/*** called by change operation, user really expects ***/
|
||||||
/* the effect of the eE commands, so back up to end of word */
|
/* 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;
|
--end;
|
||||||
if( end == begin )
|
if( end == begin )
|
||||||
++end;
|
++end;
|
||||||
|
@ -1220,13 +1219,13 @@ static void endword __PARAM__((int nwords, register int cmd), (nwords, cmd)) __O
|
||||||
register int tcur_virt = cur_virt;
|
register int tcur_virt = cur_virt;
|
||||||
while( nwords-- )
|
while( nwords-- )
|
||||||
{
|
{
|
||||||
if( !isblank(tcur_virt) && tcur_virt<=last_virt )
|
if( !kshisblank(tcur_virt) && tcur_virt<=last_virt )
|
||||||
++tcur_virt;
|
++tcur_virt;
|
||||||
while( isblank(tcur_virt) && tcur_virt<=last_virt )
|
while( kshisblank(tcur_virt) && tcur_virt<=last_virt )
|
||||||
++tcur_virt;
|
++tcur_virt;
|
||||||
if( cmd == 'E' )
|
if( cmd == 'E' )
|
||||||
{
|
{
|
||||||
while( !isblank(tcur_virt) && tcur_virt<=last_virt )
|
while( !kshisblank(tcur_virt) && tcur_virt<=last_virt )
|
||||||
++tcur_virt;
|
++tcur_virt;
|
||||||
}
|
}
|
||||||
else
|
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 )
|
while( isalph(tcur_virt) && tcur_virt<=last_virt )
|
||||||
++tcur_virt;
|
++tcur_virt;
|
||||||
else
|
else
|
||||||
while( !isalph(tcur_virt) && !isblank(tcur_virt)
|
while( !isalph(tcur_virt) && !kshisblank(tcur_virt)
|
||||||
&& tcur_virt<=last_virt )
|
&& tcur_virt<=last_virt )
|
||||||
++tcur_virt;
|
++tcur_virt;
|
||||||
}
|
}
|
||||||
|
@ -1258,7 +1257,7 @@ static void forward __PARAM__((register int nwords, int cmd), (nwords, cmd)) __O
|
||||||
{
|
{
|
||||||
if( cmd == 'W' )
|
if( cmd == 'W' )
|
||||||
{
|
{
|
||||||
while( !isblank(tcur_virt) && tcur_virt < last_virt )
|
while( !kshisblank(tcur_virt) && tcur_virt < last_virt )
|
||||||
++tcur_virt;
|
++tcur_virt;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1270,12 +1269,12 @@ static void forward __PARAM__((register int nwords, int cmd), (nwords, cmd)) __O
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
while( !isalph(tcur_virt) && !isblank(tcur_virt)
|
while( !isalph(tcur_virt) && !kshisblank(tcur_virt)
|
||||||
&& tcur_virt < last_virt )
|
&& tcur_virt < last_virt )
|
||||||
++tcur_virt;
|
++tcur_virt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while( isblank(tcur_virt) && tcur_virt < last_virt )
|
while( kshisblank(tcur_virt) && tcur_virt < last_virt )
|
||||||
++tcur_virt;
|
++tcur_virt;
|
||||||
}
|
}
|
||||||
cur_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];
|
register int v = virtual[c];
|
||||||
return((v&~STRIP)==0 && isspace(v));
|
return((v&~STRIP)==0 && isspace(v));
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,7 +176,7 @@ extern __MANGLE__ void sh_siginit __PROTO__((void));
|
||||||
extern __MANGLE__ void sh_sigtrap __PROTO__((int));
|
extern __MANGLE__ void sh_sigtrap __PROTO__((int));
|
||||||
extern __MANGLE__ void sh_sigreset __PROTO__((int));
|
extern __MANGLE__ void sh_sigreset __PROTO__((int));
|
||||||
extern __MANGLE__ void sh_timetraps __PROTO__((void));
|
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__ void timerdel __PROTO__((__V_*));
|
||||||
|
|
||||||
extern __MANGLE__ const char e_alarm[];
|
extern __MANGLE__ const char e_alarm[];
|
||||||
|
|
|
@ -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)
|
if(io_prompt(sh.nextprompt)<0 && errno==EIO)
|
||||||
return(0);
|
return(0);
|
||||||
if(sh.timeout)
|
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
|
# ifdef SHOPT_ESH
|
||||||
if(sh_isoption(SH_EMACS|SH_GMACS))
|
if(sh_isoption(SH_EMACS|SH_GMACS))
|
||||||
readf = ed_emacsread;
|
readf = ed_emacsread;
|
||||||
|
|
|
@ -236,7 +236,7 @@ static void oldalrm __PARAM__((__V_ *handle), (handle)) __OTORP__(__V_ *handle;)
|
||||||
(*fn)(SIGALRM);
|
(*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;
|
register Timer_t *tp;
|
||||||
double t;
|
double t;
|
||||||
Handler_t fn;
|
Handler_t fn;
|
||||||
|
@ -260,7 +260,7 @@ __V_ *timeradd __PARAM__((unsigned long msec,int flags,void (*action)(__V_*),__V
|
||||||
if(hp)
|
if(hp)
|
||||||
{
|
{
|
||||||
*hp = fn;
|
*hp = fn;
|
||||||
timeradd((long)(1000*t), 0, oldalrm, (__V_*)hp);
|
kshtimeradd((long)(1000*t), 0, oldalrm, (__V_*)hp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tp = tptop;
|
tp = tptop;
|
||||||
|
|
|
@ -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);
|
error(ERROR_system(ERROR_NOEXEC),e_nofork);
|
||||||
}
|
}
|
||||||
sh_sigcheck();
|
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);
|
job_wait((pid_t)-1);
|
||||||
if(timeout)
|
if(timeout)
|
||||||
{
|
{
|
||||||
|
|
|
@ -112,7 +112,7 @@ hashalloc __PARAM__((Hash_table_t* ref, ...), (va_alist)) __OTORP__(va_dcl)
|
||||||
register Hash_table_t* ret = 0;
|
register Hash_table_t* ret = 0;
|
||||||
register int internal;
|
register int internal;
|
||||||
int n;
|
int n;
|
||||||
va_list ap;
|
va_list ap, vl;
|
||||||
va_list va[4];
|
va_list va[4];
|
||||||
va_list* vp = va;
|
va_list* vp = va;
|
||||||
HASHregion region = 0;
|
HASHregion region = 0;
|
||||||
|
@ -214,27 +214,19 @@ hashalloc __PARAM__((Hash_table_t* ref, ...), (va_alist)) __OTORP__(va_dcl)
|
||||||
tab->flags |= HASH_STATIC;
|
tab->flags |= HASH_STATIC;
|
||||||
break;
|
break;
|
||||||
case HASH_va_list:
|
case HASH_va_list:
|
||||||
#ifdef __ppc
|
|
||||||
if (vp < &va[elementsof(va)])
|
if (vp < &va[elementsof(va)])
|
||||||
{
|
{
|
||||||
__va_copy( *vp, ap );
|
__va_copy( *vp, ap );
|
||||||
vp++;
|
vp++;
|
||||||
}
|
}
|
||||||
__va_copy(ap, *((va_list *) va_arg(ap, va_list)) );
|
vl = va_arg(ap, va_list);
|
||||||
#else
|
__va_copy(ap, vl);
|
||||||
if (vp < &va[elementsof(va)]) *vp++ = ap;
|
|
||||||
ap = va_arg(ap, va_list);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
if (vp > va)
|
if (vp > va)
|
||||||
{
|
{
|
||||||
#ifdef __ppc
|
|
||||||
vp--;
|
vp--;
|
||||||
__va_copy( ap, *vp );
|
__va_copy( ap, *vp );
|
||||||
#else
|
|
||||||
ap = *--vp;
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (tab->flags & HASH_SCOPE)
|
if (tab->flags & HASH_SCOPE)
|
||||||
|
|
|
@ -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_path_resolve || !fs3d(FS3D_TEST))
|
||||||
{
|
{
|
||||||
if (fp->op == OP_universe)
|
|
||||||
ok = streq(_UNIV_DEFAULT, "att");
|
|
||||||
if (p = getenv("PATH"))
|
if (p = getenv("PATH"))
|
||||||
{
|
{
|
||||||
register int r = 1;
|
register int r = 1;
|
||||||
|
@ -402,12 +400,6 @@ feature __PARAM__((const char* name, const char* path, const char* value), (name
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_universe:
|
case OP_universe:
|
||||||
#if _lib_universe
|
|
||||||
if (getuniverse(fp->value) < 0)
|
|
||||||
strcpy(fp->value, "att");
|
|
||||||
if (value)
|
|
||||||
setuniverse(value);
|
|
||||||
#else
|
|
||||||
#ifdef UNIV_MAX
|
#ifdef UNIV_MAX
|
||||||
n = 0;
|
n = 0;
|
||||||
if (value)
|
if (value)
|
||||||
|
@ -417,20 +409,13 @@ feature __PARAM__((const char* name, const char* path, const char* value), (name
|
||||||
if (n >= univ_max)
|
if (n >= univ_max)
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
#ifdef ATT_UNIV
|
|
||||||
n = setuniverse(n + 1);
|
|
||||||
if (!value && n > 0)
|
|
||||||
setuniverse(n);
|
|
||||||
#else
|
|
||||||
n = universe(value ? n + 1 : U_GET);
|
n = universe(value ? n + 1 : U_GET);
|
||||||
#endif
|
|
||||||
if (n <= 0 || n >= univ_max)
|
if (n <= 0 || n >= univ_max)
|
||||||
n = 1;
|
n = 1;
|
||||||
strcpy(fp->value, univ_name[n - 1]);
|
strcpy(fp->value, univ_name[n - 1]);
|
||||||
#else
|
#else
|
||||||
if (!synthesize(fp, path, value))
|
if (!synthesize(fp, path, value))
|
||||||
initialize(fp, path, "echo", "att", "ucb");
|
initialize(fp, path, "echo", "att", "ucb");
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,6 @@
|
||||||
goto pop_fa; \
|
goto pop_fa; \
|
||||||
else elt = (etype)arge; \
|
else elt = (etype)arge; \
|
||||||
}
|
}
|
||||||
#ifdef __ppc
|
|
||||||
#define GETARGL(elt,arge,argf,args,etype,type,fmt,t_user,n_user) \
|
#define GETARGL(elt,arge,argf,args,etype,type,fmt,t_user,n_user) \
|
||||||
{ if(!argf) \
|
{ if(!argf) \
|
||||||
__va_copy( elt, va_arg(args,type) ); \
|
__va_copy( elt, va_arg(args,type) ); \
|
||||||
|
@ -98,7 +97,6 @@
|
||||||
goto pop_fa; \
|
goto pop_fa; \
|
||||||
else __va_copy( elt, arge ); \
|
else __va_copy( elt, arge ); \
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if __STD_C
|
#if __STD_C
|
||||||
sfvprintf(Sfio_t* f, const char* form, va_list args)
|
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);
|
GETARG(form,form,argf,args,char*,char*,'1',t_user,n_user);
|
||||||
if(!form)
|
if(!form)
|
||||||
form = "";
|
form = "";
|
||||||
#ifdef __ppc
|
|
||||||
GETARGL(argsp,argsp,argf,args,va_list*,va_list*,'2',t_user,n_user);
|
GETARGL(argsp,argsp,argf,args,va_list*,va_list*,'2',t_user,n_user);
|
||||||
__va_copy( fa->args, args );
|
__va_copy( fa->args, args );
|
||||||
__va_copy( args, argsp );
|
__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->argf.p = argf;
|
||||||
fa->extf.p = extf;
|
fa->extf.p = extf;
|
||||||
fa->next = fast;
|
fa->next = fast;
|
||||||
|
@ -321,12 +313,8 @@ loop_fa :
|
||||||
default : /* unknown directive */
|
default : /* unknown directive */
|
||||||
if(extf)
|
if(extf)
|
||||||
{
|
{
|
||||||
#ifdef __ppc
|
|
||||||
va_list savarg; /* is this portable? Sorry .. NO. */
|
va_list savarg; /* is this portable? Sorry .. NO. */
|
||||||
__va_copy( savarg, args );
|
__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);
|
GETARG(sp,astr,argf,args,char*,char*,fmt,t_user,n_user);
|
||||||
astr = NIL(char*);
|
astr = NIL(char*);
|
||||||
|
@ -334,11 +322,7 @@ loop_fa :
|
||||||
if((sp = astr) )
|
if((sp = astr) )
|
||||||
goto s_format;
|
goto s_format;
|
||||||
|
|
||||||
#ifdef __ppc
|
|
||||||
__va_copy( args, savarg ); /* extf failed, treat as if unmatched */
|
__va_copy( args, savarg ); /* extf failed, treat as if unmatched */
|
||||||
#else
|
|
||||||
args = savarg; /* extf failed, treat as if unmatched */
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* treat as text */
|
/* treat as text */
|
||||||
|
|
|
@ -228,11 +228,7 @@ tokscan __PARAM__((register char* s, char** nxt, const char* fmt, ...), (va_alis
|
||||||
if (f = prv_f)
|
if (f = prv_f)
|
||||||
{
|
{
|
||||||
prv_f = 0;
|
prv_f = 0;
|
||||||
#ifdef __ppc
|
|
||||||
__va_copy( ap, prv_ap );
|
__va_copy( ap, prv_ap );
|
||||||
#else
|
|
||||||
ap = prv_ap;
|
|
||||||
#endif
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
goto done;
|
goto done;
|
||||||
|
@ -261,15 +257,9 @@ tokscan __PARAM__((register char* s, char** nxt, const char* fmt, ...), (va_alis
|
||||||
case ':':
|
case ':':
|
||||||
prv_f = f;
|
prv_f = f;
|
||||||
f = va_arg(ap, char*);
|
f = va_arg(ap, char*);
|
||||||
#ifdef __ppc
|
|
||||||
__va_copy( prv_ap, ap );
|
__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*);
|
pap = va_arg(ap, va_list*);
|
||||||
memcpy(&ap, pap, sizeof(ap));
|
__va_copy( ap, pap );
|
||||||
#endif
|
|
||||||
continue;
|
continue;
|
||||||
case 'c':
|
case 'c':
|
||||||
p_char = va_arg(ap, char*);
|
p_char = va_arg(ap, char*);
|
||||||
|
|
|
@ -171,12 +171,12 @@ static int Text_Widget(
|
||||||
int argc,
|
int argc,
|
||||||
char *argv[]) ;
|
char *argv[]) ;
|
||||||
static int Text_VarAndWidget(
|
static int Text_VarAndWidget(
|
||||||
int (*func)(),
|
int (*func)(Widget w),
|
||||||
Boolean varIsString,
|
Boolean varIsString,
|
||||||
int argc,
|
int argc,
|
||||||
char *argv[]) ;
|
char *argv[]) ;
|
||||||
static int Text_WidgetAndBoolean(
|
static int Text_WidgetAndBoolean(
|
||||||
void (*func)(),
|
void (*func)(Widget w, int b),
|
||||||
int argc,
|
int argc,
|
||||||
char *argv[]) ;
|
char *argv[]) ;
|
||||||
static int Text_WidgetAndOneParam(
|
static int Text_WidgetAndOneParam(
|
||||||
|
@ -3737,7 +3737,8 @@ do_catopen(
|
||||||
char * ptr;
|
char * ptr;
|
||||||
nl_catd nlmsg_fd = (nl_catd)-1;
|
nl_catd nlmsg_fd = (nl_catd)-1;
|
||||||
char * errmsg;
|
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;
|
char * nextMatch;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3761,7 +3762,8 @@ do_catopen(
|
||||||
*/
|
*/
|
||||||
|
|
||||||
altCatName = XtMalloc(strlen(catName) + 10);
|
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() */
|
/* These platforms don't have strrstr() */
|
||||||
ptr = NULL;
|
ptr = NULL;
|
||||||
nextMatch = catName;
|
nextMatch = catName;
|
||||||
|
@ -3965,7 +3967,7 @@ do_XmTextRemove(
|
||||||
|
|
||||||
static int
|
static int
|
||||||
Text_VarAndWidget(
|
Text_VarAndWidget(
|
||||||
int (*func)(),
|
int (*func)(Widget w),
|
||||||
Boolean varIsString,
|
Boolean varIsString,
|
||||||
int argc,
|
int argc,
|
||||||
char *argv[] )
|
char *argv[] )
|
||||||
|
@ -4077,7 +4079,7 @@ do_XmTextGetString(
|
||||||
|
|
||||||
static int
|
static int
|
||||||
Text_WidgetAndBoolean(
|
Text_WidgetAndBoolean(
|
||||||
void (*func)(),
|
void (*func)(Widget w, int b),
|
||||||
int argc,
|
int argc,
|
||||||
char *argv[] )
|
char *argv[] )
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
#ifndef _Dtksh_xmdtksym_h
|
#ifndef _Dtksh_xmdtksym_h
|
||||||
#define _Dtksh_xmdtksym_h
|
#define _Dtksh_xmdtksym_h
|
||||||
|
|
||||||
|
#include "exksh.h"
|
||||||
|
|
||||||
extern struct symarray Symarray[];
|
extern struct symarray Symarray[];
|
||||||
extern int Symsize;
|
extern int Symsize;
|
||||||
|
|
Loading…
Reference in a new issue