Merge branch 'master' into autotools-conversion
Lost the ksh93 submodule so will re-add in a later commit.
This commit is contained in:
@@ -1,10 +1,42 @@
|
||||
XCOMM $TOG: Imakefile /main/15 1998/04/07 08:55:29 mgreess $
|
||||
DESKTOP_VERSION_STRING = DesktopVersionString
|
||||
|
||||
#define IHaveSubdirs
|
||||
#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
|
||||
|
||||
SUBDIRS = examples
|
||||
|
||||
MakeSubdirs($(SUBDIRS))
|
||||
|
||||
KSH93SRC = ./ksh93
|
||||
|
||||
SYS_LIBRARIES = -lm $(DYNLIBSYSLIB) $(REGEXSYSLIB) $(ICONVSYSLIB)
|
||||
|
||||
#ifdef LinuxArchitecture
|
||||
SYS_LIBRARIES = -lm -ldl
|
||||
#endif
|
||||
|
||||
#ifdef HPArchitecture
|
||||
EXTRA_DEFINES = -Wl,-E -Wp,-H12000
|
||||
SYS_LIBRARIES = -lm -ldld
|
||||
#endif
|
||||
|
||||
#ifdef RsArchitecture
|
||||
EXTRA_DEFINES = -D_IBMRPC_
|
||||
LOCAL_LDFLAGS = -bE:dtksh.exp
|
||||
#endif
|
||||
|
||||
#ifdef SunArchitecture
|
||||
.NO_PARALLEL:
|
||||
|
||||
SYS_LIBRARIES = -lm -lsecdb -lsocket -lnsl
|
||||
#endif
|
||||
|
||||
DEPEND_DEFINES = $(DEPENDDEFINES)
|
||||
INCLUDES = -I. -I$(KSH93SRC)/include/ast -I$(KSH93SRC)/src/cmd/ksh93/include \
|
||||
-I$(KSH93SRC)/src/cmd/ksh93 $(TIRPCINC)
|
||||
INCLUDES = -I. -I$(KSH93SRC)/include/ast \
|
||||
-I$(KSH93SRC)/src/cmd/ksh93 \
|
||||
-I$(KSH93SRC)/src/cmd/ksh93/include -I$(KSH93SRC)/src/cmd/ksh93 \
|
||||
-I$(KSH93SRC)/src/lib/libast/include $(TIRPCINC)
|
||||
|
||||
/* DEPLIBS contains the list of library depencies for a client.
|
||||
* LOCAL_LIBRARIES contains the list of libraries on the link line.
|
||||
@@ -20,50 +52,24 @@ DEPLIBS = $(DEPDTHELPLIB) $(DEPDTSVCLIB) $(DEPDTWIDGETLIB) $(DEPDTPRINTLIB) \
|
||||
$(KSH93SRC)/lib/libast.a
|
||||
LOCAL_LIBRARIES = $(DTHELPLIB) $(DTWIDGETLIB) $(DTSVCLIB) $(DTPRINTLIB) \
|
||||
$(TTLIB) $(XMLIB) $(XTOOLLIB) $(XLIB) \
|
||||
$(KSH93SRC)/lib/libcmd.a $(KSH93SRC)/lib/libast.a
|
||||
$(KSH93SRC)/lib/libcmd.a $(KSH93SRC)/lib/libast.a \
|
||||
$(KSH93SRC)/lib/libdll.a libshell.a
|
||||
|
||||
SYS_LIBRARIES = -lm $(DYNLIBSYSLIB) $(REGEXSYSLIB) $(ICONVSYSLIB)
|
||||
|
||||
#ifdef HPArchitecture
|
||||
EXTRA_DEFINES = -Wl,-E -DHPUX_DYNLIB -Wp,-H12000
|
||||
SYS_LIBRARIES = -lm -ldld
|
||||
#endif
|
||||
|
||||
#ifdef RsArchitecture
|
||||
EXTRA_DEFINES = -DDYNLIB -D_IBMRPC_
|
||||
LOCAL_LDFLAGS = -bE:dtksh.exp
|
||||
#endif
|
||||
|
||||
#if defined (SunArchitecture)
|
||||
EXTRA_DEFINES = -DDYNLIB
|
||||
#endif
|
||||
EXTRA_DEFINES = -DKSHELL -DSHOPT_RAWONLY '-DAST_VERSION=20111111'
|
||||
|
||||
EXTRA_INCLUDES = -I$(DTHELPSRC) -I$(DTPRINTSRC)
|
||||
|
||||
#ifdef SunArchitecture
|
||||
.NO_PARALLEL:
|
||||
#endif
|
||||
SUIDEXECDEFINES = \
|
||||
-DPROFILEPATH=\"$(CDE_CONFIGURATION_TOP)/config/profile\" \
|
||||
-DSUIDPROFILEPATH=\"$(CDE_CONFIGURATION_TOP)/config/suid_profile\" \
|
||||
-DSUIDEXECPATH=\"$(CDE_INSTALLATION_TOP)/bin/suid_exec\" \
|
||||
-DCDE_INSTALLATION_TOP=\"$(CDE_INSTALLATION_TOP)\" -DBUILD_DTKSH
|
||||
|
||||
#ifdef LinuxArchitecture
|
||||
SYS_LIBRARIES = -lm -ldl
|
||||
#endif
|
||||
|
||||
#define IHaveSubdirs
|
||||
#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
|
||||
|
||||
SUBDIRS = examples ksh93
|
||||
KSH93OBJ = $(KSH93SRC)/ksh93.o
|
||||
|
||||
MakeSubdirs($(SUBDIRS))
|
||||
|
||||
KSH93LIBSHELL = $(KSH93SRC)/src/cmd/ksh93/libshell.a
|
||||
KSH93LIBSHELL = $(KSH93SRC)/lib/libshell.a
|
||||
|
||||
PROGRAMS = dtksh
|
||||
|
||||
SRCS = \
|
||||
userinit.c \
|
||||
builtins.c \
|
||||
widget.c \
|
||||
SRCS = widget.c \
|
||||
dtkcvt.c \
|
||||
dtkcmds.c \
|
||||
XtCvtrs.c \
|
||||
@@ -71,12 +77,12 @@ SRCS = \
|
||||
xmcmds.c \
|
||||
xmwidgets.c \
|
||||
extra.c \
|
||||
xmdtksym.c \
|
||||
findsym.c \
|
||||
msgs.c
|
||||
|
||||
OBJS = \
|
||||
$(KSH93OBJ) \
|
||||
pmain.o \
|
||||
init.o \
|
||||
libshell.a \
|
||||
widget.o \
|
||||
dtkcvt.o \
|
||||
@@ -86,31 +92,28 @@ OBJS = \
|
||||
xmcmds.o \
|
||||
xmwidgets.o \
|
||||
extra.o \
|
||||
xmdtksym.o \
|
||||
findsym.o \
|
||||
msgs.o \
|
||||
$(LOCAL_LIBRARIES2)
|
||||
|
||||
all:: dtksh
|
||||
|
||||
$(KSH93SRC)/ksh93.o:
|
||||
cd $(KSH93SRC); $(MAKE)
|
||||
|
||||
XCOMM
|
||||
XCOMM Must replace standard ksh tables of builtins and aliases
|
||||
XCOMM with our augmented versions.
|
||||
XCOMM
|
||||
|
||||
libshell.a: $(KSH93SLIBSHELL) userinit.o builtins.o
|
||||
libshell.a: $(KSH93LIBSHELL) init.o
|
||||
$(CP) $(KSH93LIBSHELL) libshell.a; \
|
||||
ar d libshell.a userinit.o builtins.o ; \
|
||||
$(AR) libshell.a userinit.o builtins.o
|
||||
ar d libshell.a init.o; \
|
||||
$(AR) libshell.a init.o
|
||||
|
||||
SpecialObjectRule(userinit.o,$(NULL),-DSHOPT_VSH -DKSHELL -D_TRACE_ )
|
||||
SpecialObjectRule(builtins.o,$(NULL),-DSHOPT_VSH -DKSHELL -D_TRACE_ )
|
||||
pmain.o:
|
||||
cd ksh93; ./bin/package flat make CCFLAGS='$(SUIDEXECDEFINES) -g -D_std_malloc'
|
||||
cp ./ksh93/src/cmd/ksh93/sh/init.c init.c
|
||||
patch --posix init.c -i init.patch
|
||||
./setup.sh
|
||||
|
||||
SpecialObjectRule(init.o, $(NULL), -DSHOPT_STATS -DSHOPT_NAMESPACE -DSHOPT_2DMATCH -DSHOPT_PFSH -DSHOPT_MULTIBYTE -DSHOPT_BGX -DSHOPT_AUDIT '-D_API_ast=20100309' -D_PACKAGE_ast -DSHOPT_DYNAMIC -D_BLD_shell -DSHOPT_KIA -DKSHELL -DSHOPT_HISTEXPAND -DSHOPT_EDPREDICT -DSHOPT_ESH -DSHOPT_VSH -DSHOPT_FIXEDARRAY '-DERROR_CONTEXT_T=Error_context_t' -DSHOPT_SUID_EXEC -DSHOPT_BRACEPAT -DBUILD_DTKSH -l$(KSH93SRC)/lib/libcmd.a -l$(KSH93SRC)/lib/libast.a -l$(KSH93SRC)/lib/libdll.a)
|
||||
|
||||
ComplexProgramTarget($(PROGRAMS))
|
||||
|
||||
clean::
|
||||
@echo " Cleaning ksh directories"
|
||||
$(SHELL) MakeClean
|
||||
cd ksh93; ./bin/package flat clean
|
||||
rm -f init.c
|
||||
rm -rf FEATURE
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
#! /bin/ksh
|
||||
|
||||
echo
|
||||
find . -name MAM.time -print -exec rm -f {} \;
|
||||
echo
|
||||
echo "******************"
|
||||
echo
|
||||
find . -name in.log -print -exec rm -f {} \;
|
||||
echo
|
||||
echo "******************"
|
||||
echo
|
||||
find . -name \*.a -print -exec rm -f {} \;
|
||||
echo
|
||||
echo "******************"
|
||||
echo
|
||||
find . -name \*.o -print -exec rm -f {} \;
|
||||
echo
|
||||
echo "******************"
|
||||
echo
|
||||
find . -name BUILT -print -exec rm -f {} \;
|
||||
echo
|
||||
echo "******************"
|
||||
echo
|
||||
find . -name ERROR -print -exec rm -f {} \;
|
||||
echo
|
||||
echo "******************"
|
||||
echo
|
||||
echo "rm ksh93/bin/*"
|
||||
rm -f ksh93/bin/feature
|
||||
rm -f ksh93/bin/iffe
|
||||
rm -f ksh93/bin/ignore
|
||||
rm -f ksh93/bin/pax
|
||||
rm -f ksh93/bin/bax
|
||||
rm -f ksh93/bin/pax.save
|
||||
rm -f ksh93/bin/proto
|
||||
rm -f ksh93/bin/silent
|
||||
rm -f ksh93/bin/suid_exec
|
||||
rm -f ksh93/bin/shcomp
|
||||
rm -f ksh93/bin/nocom
|
||||
rm -f ksh93/bin/*.old
|
||||
echo
|
||||
echo "rm ksh93/src/cmd/ksh93/suid_exec"
|
||||
rm -f ksh93/src/cmd/ksh93/suid_exec
|
||||
echo "rm ksh93/src/cmd/ksh93/shcomp"
|
||||
rm -f ksh93/src/cmd/ksh93/shcomp
|
||||
echo "rm ksh93/src/cmd/ksh93/ksh.msg"
|
||||
rm -f ksh93/src/cmd/ksh93/ksh.msg
|
||||
echo "rm ksh93/src/cmd/pax/pax"
|
||||
rm -f ksh93/src/cmd/pax/pax
|
||||
echo "rm ksh93/src/cmd/pax/bax"
|
||||
rm -f ksh93/src/cmd/pax/bax
|
||||
echo "rm ksh93/src/cmd/pax/nocom"
|
||||
rm -f ksh93/src/cmd/pax/nocom
|
||||
echo "rm ksh93/src/cmd/pax/cpio"
|
||||
rm -f ksh93/src/cmd/pax/cpio
|
||||
echo "rm ksh93/src/cmd/pax/tar"
|
||||
rm -f ksh93/src/cmd/pax/tar
|
||||
#echo "rm ksh93/src/lib/libcmd/cmd.h"
|
||||
#rm -f ksh93/src/lib/libcmd/cmd.h
|
||||
echo "rm ksh93/src/lib/libcmd/cmd.req"
|
||||
rm -f ksh93/src/lib/libcmd/cmd.req
|
||||
echo "rm ksh93/src/cmd/ksh"
|
||||
rm -f ksh93/src/cmd/ksh
|
||||
echo "rm ksh93/bin/ksh"
|
||||
rm -f ksh93/bin/ksh
|
||||
echo "rm ksh93/ship/shipslog/!t_gryphon_dgk"
|
||||
rm -f ksh93/ship/shipslog/!t_gryphon_dgk
|
||||
echo "rm ksh93/ship/shipslog/!t_gryphon_gsf"
|
||||
rm -f ksh93/ship/shipslog/!t_gryphon_gsf
|
||||
|
||||
echo "rm ksh93/src/cmd/ksh93/FEATURE/*"
|
||||
rm -f ksh93/src/cmd/ksh93/FEATURE/*
|
||||
echo "mkdir ksh93/src/cmd/ksh93/FEATURE"
|
||||
mkdir -p ksh93/src/cmd/ksh93/FEATURE
|
||||
echo "cp /dev/null ksh93/src/cmd/ksh93/FEATURE/options"
|
||||
cp /dev/null ksh93/src/cmd/ksh93/FEATURE/options
|
||||
echo "cp /dev/null ksh93/src/cmd/ksh93/FEATURE/setjmp"
|
||||
cp /dev/null ksh93/src/cmd/ksh93/FEATURE/setjmp
|
||||
echo "cp /dev/null ksh93/src/cmd/ksh93/FEATURE/sigfeatures"
|
||||
cp /dev/null ksh93/src/cmd/ksh93/FEATURE/sigfeatures
|
||||
echo "cp /dev/null ksh93/src/cmd/ksh93/FEATURE/dynamic"
|
||||
cp /dev/null ksh93/src/cmd/ksh93/FEATURE/dynamic
|
||||
|
||||
echo "mkdir ksh93/include/ast"
|
||||
mkdir -p ksh93/include/ast
|
||||
echo "cp /dev/null ksh93/include/ast/ast.h"
|
||||
cp /dev/null ksh93/include/ast/ast.h
|
||||
echo "cp /dev/null ksh93/include/ast/cmd.h"
|
||||
cp /dev/null ksh93/include/ast/cmd.h
|
||||
echo "cp /dev/null ksh93/include/ast/error.h"
|
||||
cp /dev/null ksh93/include/ast/error.h
|
||||
echo "cp /dev/null ksh93/include/ast/hash.h"
|
||||
cp /dev/null ksh93/include/ast/hash.h
|
||||
echo "cp /dev/null ksh93/include/ast/option.h"
|
||||
cp /dev/null ksh93/include/ast/option.h
|
||||
echo "cp /dev/null ksh93/include/ast/sfio.h"
|
||||
cp /dev/null ksh93/include/ast/sfio.h
|
||||
echo "cp /dev/null ksh93/include/ast/sig.h"
|
||||
cp /dev/null ksh93/include/ast/sig.h
|
||||
echo "cp /dev/null ksh93/include/ast/stak.h"
|
||||
cp /dev/null ksh93/include/ast/stak.h
|
||||
|
||||
echo "rm ksh93/src/cmd/pax/FEATURE/*"
|
||||
rm -f ksh93/src/cmd/pax/FEATURE/*
|
||||
|
||||
echo "rm ksh93/src/lib/libast/FEATURE/*"
|
||||
rm -f ksh93/src/lib/libast/FEATURE/*
|
||||
|
||||
echo "rm ksh93/src/lib/libcmd/FEATURE/*"
|
||||
rm -f ksh93/src/lib/libcmd/FEATURE/*
|
||||
|
||||
echo "rm ksh93/src/lib/libast/*.h"
|
||||
rm -f ksh93/src/lib/libast/*.h
|
||||
|
||||
echo "rm ksh93/src/lib/libast/conf"
|
||||
rm -f ksh93/src/lib/libast/conf
|
||||
|
||||
echo "rm ksh93/src/lib/lib0ast/hostinfo"
|
||||
rm -f ksh93/src/lib/lib0ast/hostinfo
|
||||
|
||||
echo "rm ksh93/src/cmd/ksh93/ksh"
|
||||
rm -f ksh93/src/cmd/ksh93/ksh
|
||||
|
||||
echo "rm ksh93/ship/SHIP*"
|
||||
rm -f ksh93/ship/SHIP*
|
||||
|
||||
echo "rm ksh93/ship/shipfeature"
|
||||
rm -f ksh93/ship/shipfeature
|
||||
|
||||
echo "rm ksh93/ship/shipproto"
|
||||
rm -f ksh93/ship/shipproto
|
||||
@@ -1,5 +1,12 @@
|
||||
/* $XConsortium: README-DEVELOPER /main/3 1996/07/15 14:12:13 drk $ */
|
||||
|
||||
(NOTE: As of CDE 2.3.1 and later, this entire document is obsolete and only kept
|
||||
for historical purposes, the updating process has been streamlined to a simple
|
||||
two step process:
|
||||
1. cd ksh93; git pull
|
||||
2. Merge upstream init.c with ours, keeping all of our changes.
|
||||
and thats all there is to it.)
|
||||
|
||||
IMPORTANT!!! PLEASE READ ON!!
|
||||
------------------------------
|
||||
|
||||
|
||||
@@ -49,11 +49,11 @@ SOFTWARE.
|
||||
|
||||
/* Conversion.c - implementations of resource type conversion procs */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Intrinsic.h>
|
||||
#include <X11/IntrinsicP.h>
|
||||
#include <X11/StringDefs.h>
|
||||
#include "stdio.h"
|
||||
#include <X11/keysym.h>
|
||||
#include <X11/Xlocale.h>
|
||||
#include "msgs.h"
|
||||
@@ -149,7 +149,7 @@ DtkshCvtStringToPixel(
|
||||
{
|
||||
char * errbuf;
|
||||
|
||||
errmsg = GETMESSAGE(1, 1,
|
||||
errmsg = GETMESSAGE(
|
||||
"DtkshCvtStringToPixel: The color '%s' is not defined");
|
||||
errbuf = XtMalloc(strlen(errmsg) + strlen(str) + 10);
|
||||
sprintf(errbuf, errmsg, str);
|
||||
|
||||
@@ -1,300 +0,0 @@
|
||||
/*
|
||||
* CDE - Common Desktop Environment
|
||||
*
|
||||
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
||||
*
|
||||
* These libraries and programs are free software; you can
|
||||
* redistribute them and/or modify them under the terms of the GNU
|
||||
* Lesser General Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* These libraries and programs are distributed in the hope that
|
||||
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU Lesser General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with these libraries and programs; if not, write
|
||||
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
||||
* Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
/* $XConsortium: builtins.c /main/3 1995/11/01 15:50:47 rswiston $ */
|
||||
/***************************************************************
|
||||
* *
|
||||
* AT&T - PROPRIETARY *
|
||||
* *
|
||||
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF *
|
||||
* AT&T BELL LABORATORIES *
|
||||
* AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN *
|
||||
* ACCORDANCE WITH APPLICABLE AGREEMENTS *
|
||||
* *
|
||||
* Copyright (c) 1994 AT&T Bell Laboratories *
|
||||
* Unpublished & Not for Publication *
|
||||
* All Rights Reserved *
|
||||
* *
|
||||
* The copyright notice above does not evidence any *
|
||||
* actual or intended publication of such source code *
|
||||
* *
|
||||
* This software was created by the *
|
||||
* Advanced Software Technology Department *
|
||||
* AT&T Bell Laboratories *
|
||||
* *
|
||||
* For further information contact *
|
||||
* {research,attmail}!dgk *
|
||||
* dgk@research.att.com *
|
||||
* David Korn 908-582-7975 *
|
||||
* *
|
||||
***************************************************************/
|
||||
|
||||
/* : : generated by proto : : */
|
||||
|
||||
#line 1
|
||||
|
||||
#if !defined(__PROTO__)
|
||||
#if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
|
||||
#if defined(__cplusplus)
|
||||
#define __MANGLE__ "C"
|
||||
#else
|
||||
#define __MANGLE__
|
||||
#endif
|
||||
#define __STDARG__
|
||||
#define __PROTO__(x) x
|
||||
#define __OTORP__(x)
|
||||
#define __PARAM__(n,o) n
|
||||
#if !defined(__STDC__) && !defined(__cplusplus)
|
||||
#if !defined(c_plusplus)
|
||||
#define const
|
||||
#endif
|
||||
#define signed
|
||||
#define void int
|
||||
#define volatile
|
||||
#define __V_ char
|
||||
#else
|
||||
#define __V_ void
|
||||
#endif
|
||||
#else
|
||||
#define __PROTO__(x) ()
|
||||
#define __OTORP__(x) x
|
||||
#define __PARAM__(n,o) o
|
||||
#define __MANGLE__
|
||||
#define __V_ char
|
||||
#define const
|
||||
#define signed
|
||||
#define void int
|
||||
#define volatile
|
||||
#endif
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
#define __VARARG__ ...
|
||||
#else
|
||||
#define __VARARG__
|
||||
#endif
|
||||
#if defined(__STDARG__)
|
||||
#define __VA_START__(p,a) va_start(p,a)
|
||||
#else
|
||||
#define __VA_START__(p,a) va_start(p)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#line 3
|
||||
#define mount _AST_mount
|
||||
#include <shell.h>
|
||||
#include <signal.h>
|
||||
#include "shtable.h"
|
||||
#include "name.h"
|
||||
#ifdef KSHELL
|
||||
# include "builtins.h"
|
||||
# include "jobs.h"
|
||||
# include "FEATURE/cmds"
|
||||
#if defined(__STDC__) || defined(__STDPP__)
|
||||
# define bltin(x) (b_##x)
|
||||
#else
|
||||
# define bltin(x) (b_/**/x)
|
||||
#endif
|
||||
|
||||
#line 13
|
||||
#else
|
||||
# define bltin(x) 0
|
||||
#endif
|
||||
|
||||
#include <X11/X.h>
|
||||
#include <X11/Intrinsic.h>
|
||||
#include <X11/IntrinsicP.h>
|
||||
#define NO_AST
|
||||
#include "dtksh.h"
|
||||
#undef NO_AST
|
||||
#include "dtextra.h"
|
||||
#include "xmextra.h"
|
||||
#include "msgs.h"
|
||||
|
||||
|
||||
/*
|
||||
* The order up through "[" is significant
|
||||
*/
|
||||
const struct shtable3 shtab_builtins[] =
|
||||
{
|
||||
"login", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(login),
|
||||
"exec", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(exec),
|
||||
"set", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(set),
|
||||
":", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(true),
|
||||
"true", NV_BLTIN|BLT_ENV, bltin(true),
|
||||
"command", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(command),
|
||||
"cd", NV_BLTIN|BLT_ENV, bltin(cd),
|
||||
"break", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(brk_cont),
|
||||
"continue", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(brk_cont),
|
||||
"typeset", NV_BLTIN|BLT_ENV|BLT_SPC|BLT_DCL,bltin(typeset),
|
||||
"test", NV_BLTIN|BLT_ENV|NV_NOFREE, bltin(test),
|
||||
"[", NV_BLTIN|BLT_ENV, bltin(test),
|
||||
#ifdef _bin_newgrp
|
||||
"newgrp", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(login),
|
||||
#endif /* _bin_newgrp */
|
||||
".", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(dot_cmd),
|
||||
"alias", NV_BLTIN|BLT_SPC|BLT_DCL, bltin(alias),
|
||||
"hash", NV_BLTIN|BLT_SPC|BLT_DCL, bltin(alias),
|
||||
"exit", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(ret_exit),
|
||||
"export", NV_BLTIN|BLT_SPC|BLT_DCL, bltin(read_export),
|
||||
"eval", NV_BLTIN|BLT_ENV|BLT_SPC|BLT_EXIT,bltin(eval),
|
||||
"fc", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(hist),
|
||||
"hist", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(hist),
|
||||
"readonly", NV_BLTIN|BLT_ENV|BLT_SPC|BLT_DCL,bltin(read_export),
|
||||
"return", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(ret_exit),
|
||||
"shift", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(shift),
|
||||
"trap", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(trap),
|
||||
"unalias", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(unalias),
|
||||
"unset", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(unset),
|
||||
"builtin", NV_BLTIN, bltin(builtin),
|
||||
#ifdef SHOPT_ECHOPRINT
|
||||
"echo", NV_BLTIN|BLT_ENV, bltin(print),
|
||||
#else
|
||||
"echo", NV_BLTIN|BLT_ENV, bltin(echo),
|
||||
#endif /* SHOPT_ECHOPRINT */
|
||||
#ifdef JOBS
|
||||
# ifdef SIGTSTP
|
||||
"bg", NV_BLTIN|BLT_ENV, bltin(bg_fg),
|
||||
"fg", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(bg_fg),
|
||||
"disown", NV_BLTIN|BLT_ENV, bltin(bg_fg),
|
||||
"kill", NV_BLTIN|BLT_ENV|NV_NOFREE, bltin(kill),
|
||||
# else
|
||||
"/bin/kill", NV_BLTIN|BLT_ENV|NV_NOFREE, bltin(kill),
|
||||
# endif /* SIGTSTP */
|
||||
"jobs", NV_BLTIN|BLT_ENV, bltin(jobs),
|
||||
#endif /* JOBS */
|
||||
"false", NV_BLTIN|BLT_ENV, bltin(false),
|
||||
"getconf", NV_BLTIN|BLT_ENV, bltin(getconf),
|
||||
"getopts", NV_BLTIN|BLT_ENV, bltin(getopts),
|
||||
"let", NV_BLTIN|BLT_ENV, bltin(let),
|
||||
"print", NV_BLTIN|BLT_ENV, bltin(print),
|
||||
"printf", NV_BLTIN|NV_NOFREE, bltin(printf),
|
||||
"pwd", NV_BLTIN|NV_NOFREE, bltin(pwd),
|
||||
"read", NV_BLTIN|BLT_ENV, bltin(read),
|
||||
"sleep", NV_BLTIN|NV_NOFREE, bltin(sleep),
|
||||
"alarm", NV_BLTIN, bltin(alarm),
|
||||
"ulimit", NV_BLTIN|BLT_ENV, bltin(ulimit),
|
||||
"umask", NV_BLTIN|BLT_ENV, bltin(umask),
|
||||
#ifdef _cmd_universe
|
||||
"universe", NV_BLTIN|BLT_ENV, bltin(universe),
|
||||
#endif /* _cmd_universe */
|
||||
#ifdef SHOPT_FS_3D
|
||||
"vpath", NV_BLTIN|BLT_ENV, bltin(vpath_map),
|
||||
"vmap", NV_BLTIN|BLT_ENV, bltin(vpath_map),
|
||||
#endif /* SHOPT_FS_3D */
|
||||
"wait", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(wait),
|
||||
"type", NV_BLTIN|BLT_ENV, bltin(whence),
|
||||
"whence", NV_BLTIN|BLT_ENV, bltin(whence),
|
||||
"/bin/basename",NV_BLTIN|NV_NOFREE, bltin(basename),
|
||||
"/bin/chmod", NV_BLTIN|NV_NOFREE, bltin(chmod),
|
||||
"/bin/dirname", NV_BLTIN|NV_NOFREE, bltin(dirname),
|
||||
"/bin/head", NV_BLTIN|NV_NOFREE, bltin(head),
|
||||
"/bin/mkdir", NV_BLTIN|NV_NOFREE, bltin(mkdir),
|
||||
#if defined(_usr_bin_logname) && !defined(_bin_logname)
|
||||
"/usr/bin/logname", NV_BLTIN|NV_NOFREE, bltin(logname),
|
||||
#else
|
||||
"/bin/logname", NV_BLTIN|NV_NOFREE, bltin(logname),
|
||||
#endif
|
||||
"/bin/cat", NV_BLTIN|NV_NOFREE, bltin(cat),
|
||||
"/bin/cmp", NV_BLTIN|NV_NOFREE, bltin(cmp),
|
||||
#if defined(_usr_bin_cut) && !defined(_bin_cut)
|
||||
"/usr/bin/cut", NV_BLTIN|NV_NOFREE, bltin(cut),
|
||||
#else
|
||||
"/bin/cut", NV_BLTIN|NV_NOFREE, bltin(cut),
|
||||
#endif
|
||||
"/bin/uname", NV_BLTIN|NV_NOFREE, bltin(uname),
|
||||
#if defined(_usr_bin_wc) && !defined(_bin_wc)
|
||||
"/usr/bin/wc", NV_BLTIN|NV_NOFREE, bltin(wc),
|
||||
#else
|
||||
# if defined(_usr_ucb_wc) && !defined(_bin_wc)
|
||||
"/usr/ucb/wc", NV_BLTIN|NV_NOFREE, bltin(wc),
|
||||
# else
|
||||
"/bin/wc", NV_BLTIN|NV_NOFREE, bltin(wc),
|
||||
# endif
|
||||
#endif
|
||||
DTK_EXTRA_TABLE
|
||||
DTK_EXTRA_TABLE2
|
||||
DTK_TK_EXTRA_TABLE
|
||||
DTK_TK_LIST_TABLE
|
||||
DTK_TK_TEXT_TABLE
|
||||
"", 0, 0
|
||||
};
|
||||
|
||||
const char sh_optalarm[] = "r [varname seconds]";
|
||||
const char sh_optalias[] = "ptx [name=[value]...]";
|
||||
const char sh_optbuiltin[] = "dsf:[library] [name...]";
|
||||
const char sh_optcd[] = "LP [dir] [change]";
|
||||
const char sh_optcflow[] = " [n]";
|
||||
const char sh_optcommand[] = "pvV name [arg]...";
|
||||
const char sh_optdot[] = " name [arg...]";
|
||||
#ifndef ECHOPRINT
|
||||
const char sh_optecho[] = " [-n] [arg...]";
|
||||
#endif /* !ECHOPRINT */
|
||||
const char sh_opteval[] = " [arg...]";
|
||||
const char sh_optexec[] = "a:[name]c [command [args...] ]";
|
||||
const char sh_optexport[] = "p [name[=value]...]";
|
||||
const char sh_optgetopts[] = ":a:[name] optstring name [args...]";
|
||||
const char sh_optgetconf[] = " [name [pathname] ]";
|
||||
const char sh_optjoblist[] = " [job...]";
|
||||
const char sh_opthist[] = "e:[editor]lnrsN# [first] [last]";
|
||||
const char sh_optjobs[] = "nlp [job...]";
|
||||
const char sh_optkill[] = "ln#[signum]s:[signame] sig...";
|
||||
const char sh_optlet[] = " expr...";
|
||||
const char sh_optprint[] = "f:[format]enprsu:[filenum] [arg...]";
|
||||
const char sh_optprintf[] = " format [arg...]";
|
||||
const char sh_optpwd[] = "LP";
|
||||
const char sh_optread[] = "Ad:[delim]prst#[timeout]u#[filenum] [name...]";
|
||||
#ifdef SHOPT_KIA
|
||||
const char sh_optksh[] = "+DircabefhkmnpstuvxCR:[file]o:?[option] [arg...]";
|
||||
const char sh_optset[] = "+abefhkmnpstuvxCR:[file]o:?[option]A:[name] [arg...]";
|
||||
#else
|
||||
const char sh_optksh[] = "+DircabefhkmnpstuvxCo:?[option] [arg...]";
|
||||
const char sh_optset[] = "+abefhkmnpstuvxCo:?[option]A:[name] [arg...]";
|
||||
#endif /* SHOPT_KIA */
|
||||
const char sh_optsleep[] = " seconds";
|
||||
const char sh_opttrap[] = "p [action condition...]";
|
||||
#ifdef SHOPT_OO
|
||||
const char sh_opttypeset[] = "+AC:E#?F#?H:[name]L#?R#?Z#?fi#?[base]lnprtux [name=[value]...]";
|
||||
#else
|
||||
const char sh_opttypeset[] = "+AE#?F#?HL#?R#?Z#?fi#?[base]lnprtux [name=[value]...]";
|
||||
#endif /* SHOPT_OO */
|
||||
const char sh_optulimit[] = "HSacdfmnstv [limit]";
|
||||
const char sh_optumask[] = "S [mask]";
|
||||
const char sh_optuniverse[] = " [name]";
|
||||
const char sh_optunset[] = "fnv name...";
|
||||
const char sh_optunalias[] = "a name...";
|
||||
#ifdef SHOPT_FS_3D
|
||||
const char sh_optvpath[] = " [top] [base]";
|
||||
const char sh_optvmap[] = " [dir] [list]";
|
||||
#endif /* SHOPT_FS_3D */
|
||||
const char sh_optwhence[] = "afpv name...";
|
||||
|
||||
|
||||
|
||||
const char e_alrm1[] = "alarm -r %s +%.3g\n";
|
||||
const char e_alrm2[] = "alarm %s %.3f\n";
|
||||
const char e_badfun[] = "%s: illegal function name";
|
||||
const char e_baddisc[] = "%s: invalid discipline function";
|
||||
const char e_nospace[] = "out of memory";
|
||||
const char e_nofork[] = "cannot fork";
|
||||
const char e_nosignal[] = "%s: unknown signal name";
|
||||
const char e_numeric[] = "*([0-9])?(.)*([0-9])";
|
||||
const char e_condition[] = "condition(s) required";
|
||||
const char e_cneedsarg[] = "-c requires argument";
|
||||
@@ -1,195 +0,0 @@
|
||||
/*
|
||||
* CDE - Common Desktop Environment
|
||||
*
|
||||
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
||||
*
|
||||
* These libraries and programs are free software; you can
|
||||
* redistribute them and/or modify them under the terms of the GNU
|
||||
* Lesser General Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* These libraries and programs are distributed in the hope that
|
||||
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU Lesser General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with these libraries and programs; if not, write
|
||||
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
||||
* Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
/* $XConsortium: dtextra.h /main/3 1995/11/01 15:51:46 rswiston $ */
|
||||
/* Copyright (c) 1991, 1992 UNIX System Laboratories, Inc. */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
|
||||
/* UNIX System Laboratories, Inc. */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ifndef _Dtksh_dtextra_h
|
||||
#define _Dtksh_dtextra_h
|
||||
|
||||
#include "widget.h"
|
||||
#include "dtkcmds.h"
|
||||
#include "xmcmds.h"
|
||||
|
||||
/*
|
||||
* CDExc17788
|
||||
*
|
||||
* The following corrects for a type-mismatch throughout the following
|
||||
* functions with the element in the table into which they are to be
|
||||
* inserted.
|
||||
*/
|
||||
|
||||
#if defined(bltin) && ( defined(__STDC__) || defined(__STDPP__) )
|
||||
#define lcl_cast(x) ((int (*)__PROTO__((int, char*[], __V_*)))x)
|
||||
#else
|
||||
#define lcl_cast(x) x
|
||||
#endif
|
||||
|
||||
#define DTK_EXTRA_TABLE \
|
||||
{ "DtLoadWidget", NV_BLTIN|BLT_ENV, lcl_cast(do_DtLoadWidget) }, \
|
||||
{ "DtWidgetInfo", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWidgetInfo) }, \
|
||||
{ "XBell", NV_BLTIN|BLT_ENV, lcl_cast(do_XBell) }, \
|
||||
{ "XRootWindowOfScreen", NV_BLTIN|BLT_ENV, lcl_cast(do_XRootWindowOfScreen) }, \
|
||||
{ "XWidthOfScreen", NV_BLTIN|BLT_ENV, lcl_cast(do_XWidthOfScreen) }, \
|
||||
{ "XHeightOfScreen", NV_BLTIN|BLT_ENV, lcl_cast(do_XHeightOfScreen) }, \
|
||||
{ "XDefineCursor", NV_BLTIN|BLT_ENV, lcl_cast(do_XDefineCursor) }, \
|
||||
{ "XUndefineCursor", NV_BLTIN|BLT_ENV, lcl_cast(do_XUndefineCursor) }, \
|
||||
{ "XFlush", NV_BLTIN|BLT_ENV, lcl_cast(do_XFlush) }, \
|
||||
{ "XSync", NV_BLTIN|BLT_ENV, lcl_cast(do_XSync) }, \
|
||||
{ "XRaiseWindow", NV_BLTIN|BLT_ENV, lcl_cast(do_XRaiseWindow) }, \
|
||||
{ "XtInitialize", NV_BLTIN|BLT_ENV, lcl_cast(do_XtInitialize) }, \
|
||||
{ "XtIsSensitive", NV_BLTIN|BLT_ENV, lcl_cast(do_XtIsSensitive) }, \
|
||||
{ "XtIsShell", NV_BLTIN|BLT_ENV, lcl_cast(do_XtIsShell) }, \
|
||||
{ "XtIsRealized", NV_BLTIN|BLT_ENV, lcl_cast(do_XtIsRealized) }, \
|
||||
{ "XtIsManaged", NV_BLTIN|BLT_ENV, lcl_cast(do_XtIsManaged) }, \
|
||||
{ "XtCreateManagedWidget", NV_BLTIN|BLT_ENV, lcl_cast(do_XtCreateManagedWidget) }, \
|
||||
{ "XtCreateApplicationShell", NV_BLTIN|BLT_ENV, lcl_cast(do_XtCreateApplicationShell) }, \
|
||||
{ "XtCreateWidget", NV_BLTIN|BLT_ENV, lcl_cast(do_XtCreateWidget) }, \
|
||||
{ "XtDestroyWidget", NV_BLTIN|BLT_ENV, lcl_cast(do_XtDestroyWidget) }, \
|
||||
{ "XtSetValues", NV_BLTIN|BLT_ENV, lcl_cast(do_XtSetValues) }, \
|
||||
{ "XtSetSensitive", NV_BLTIN|BLT_ENV, lcl_cast(do_XtSetSensitive) }, \
|
||||
{ "XtAugmentTranslations", NV_BLTIN|BLT_ENV, lcl_cast(do_XtAugmentTranslations) }, \
|
||||
{ "XtOverrideTranslations", NV_BLTIN|BLT_ENV, lcl_cast(do_XtOverrideTranslations) }, \
|
||||
{ "XtUninstallTranslations", NV_BLTIN|BLT_ENV, lcl_cast(do_XtUninstallTranslations) }, \
|
||||
{ "XtAddCallback", NV_BLTIN|BLT_ENV, lcl_cast(do_XtAddCallback) }, \
|
||||
{ "XtRemoveCallback", NV_BLTIN|BLT_ENV, lcl_cast(do_XtRemoveCallback) }, \
|
||||
{ "XtRemoveAllCallbacks", NV_BLTIN|BLT_ENV, lcl_cast(do_XtRemoveAllCallbacks) }, \
|
||||
{ "XtCallCallbacks", NV_BLTIN|BLT_ENV, lcl_cast(do_XtCallCallbacks) }, \
|
||||
{ "XtHasCallbacks", NV_BLTIN|BLT_ENV, lcl_cast(do_XtHasCallbacks) }, \
|
||||
{ "XtAddEventHandler", NV_BLTIN|BLT_ENV, lcl_cast(do_XtAddEventHandler) }, \
|
||||
{ "XtRemoveEventHandler", NV_BLTIN|BLT_ENV, lcl_cast(do_XtRemoveEventHandler) }, \
|
||||
{ "XtGetValues", NV_BLTIN|BLT_ENV, lcl_cast(do_XtGetValues) }, \
|
||||
{ "XtCreatePopupShell", NV_BLTIN|BLT_ENV, lcl_cast(do_XtCreatePopupShell) }, \
|
||||
{ "XtPopup", NV_BLTIN|BLT_ENV, lcl_cast(do_XtPopup) }, \
|
||||
{ "XtPopdown", NV_BLTIN|BLT_ENV, lcl_cast(do_XtPopdown) }, \
|
||||
{ "XtMapWidget", NV_BLTIN|BLT_ENV, lcl_cast(do_XtMapWidget) }, \
|
||||
{ "XtUnmapWidget", NV_BLTIN|BLT_ENV, lcl_cast(do_XtUnmapWidget) }, \
|
||||
{ "XtManageChild", NV_BLTIN|BLT_ENV, lcl_cast(do_XtManageChildren) }, \
|
||||
{ "XtManageChildren", NV_BLTIN|BLT_ENV, lcl_cast(do_XtManageChildren) }, \
|
||||
{ "XtIsSubclass", NV_BLTIN|BLT_ENV, lcl_cast(do_XtIsSubclass) }, \
|
||||
{ "XtClass", NV_BLTIN|BLT_ENV, lcl_cast(do_XtClass) }, \
|
||||
{ "XtUnmanageChild", NV_BLTIN|BLT_ENV, lcl_cast(do_XtUnmanageChildren) }, \
|
||||
{ "XtUnmanageChildren", NV_BLTIN|BLT_ENV, lcl_cast(do_XtUnmanageChildren) }, \
|
||||
{ "XtAddTimeOut", NV_BLTIN|BLT_ENV, lcl_cast(do_XtAddTimeOut) }, \
|
||||
{ "XtRemoveTimeOut", NV_BLTIN|BLT_ENV, lcl_cast(do_XtRemoveTimeOut) }, \
|
||||
{ "XtAddInput", NV_BLTIN|BLT_ENV, lcl_cast(do_XtAddInput) }, \
|
||||
{ "XtRemoveInput", NV_BLTIN|BLT_ENV, lcl_cast(do_XtRemoveInput) }, \
|
||||
{ "XtAddWorkProc", NV_BLTIN|BLT_ENV, lcl_cast(do_XtAddWorkProc) }, \
|
||||
{ "XtRemoveWorkProc", NV_BLTIN|BLT_ENV, lcl_cast(do_XtRemoveWorkProc) }, \
|
||||
{ "XtRealizeWidget", NV_BLTIN|BLT_ENV, lcl_cast(do_XtRealizeWidget) }, \
|
||||
{ "XtUnrealizeWidget", NV_BLTIN|BLT_ENV, lcl_cast(do_XtUnrealizeWidget) }, \
|
||||
{ "DtSessionRestorePath", NV_BLTIN|BLT_ENV, lcl_cast(do_DtSessionRestorePath) }, \
|
||||
{ "DtSessionSavePath", NV_BLTIN|BLT_ENV, lcl_cast(do_DtSessionSavePath) }, \
|
||||
{ "DtShellIsIconified", NV_BLTIN|BLT_ENV, lcl_cast(do_DtShellIsIconified) }, \
|
||||
{ "DtSetStartupCommand", NV_BLTIN|BLT_ENV, lcl_cast(do_DtSetStartupCommand) }, \
|
||||
{ "DtSetIconifyHint", NV_BLTIN|BLT_ENV, lcl_cast(do_DtSetIconifyHint) }, \
|
||||
{ "DtWsmAddWorkspaceFunctions", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmAddWorkspaceFunctions) }, \
|
||||
{ "DtWsmRemoveWorkspaceFunctions", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmRemoveWorkspaceFunctions) }, \
|
||||
{ "DtWsmGetCurrentWorkspace", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmGetCurrentWorkspace) }, \
|
||||
{ "DtWsmSetCurrentWorkspace", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmSetCurrentWorkspace) }, \
|
||||
{ "DtWsmGetWorkspaceList", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmGetWorkspaceList) }, \
|
||||
{ "DtWsmGetWorkspacesOccupied", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmGetWorkspacesOccupied) }, \
|
||||
{ "DtWsmSetWorkspacesOccupied", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmSetWorkspacesOccupied) }, \
|
||||
{ "DtWsmGetCurrentBackdropWindow", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmGetCurrentBackdropWindow) }, \
|
||||
{ "DtWsmOccupyAllWorkspaces", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmOccupyAllWorkspaces) }, \
|
||||
{ "DtGetHourGlassCursor", NV_BLTIN|BLT_ENV, lcl_cast(do__DtGetHourGlassCursor) }, \
|
||||
{ "DtTurnOnHourGlass", NV_BLTIN|BLT_ENV, lcl_cast(do__DtTurnOnHourGlass) }, \
|
||||
{ "DtTurnOffHourGlass", NV_BLTIN|BLT_ENV, lcl_cast(do__DtTurnOffHourGlass) }, \
|
||||
{ "_DtGetHourGlassCursor", NV_BLTIN|BLT_ENV, lcl_cast(do__DtGetHourGlassCursor) }, \
|
||||
{ "_DtTurnOnHourGlass", NV_BLTIN|BLT_ENV, lcl_cast(do__DtTurnOnHourGlass) }, \
|
||||
{ "_DtTurnOffHourGlass", NV_BLTIN|BLT_ENV, lcl_cast(do__DtTurnOffHourGlass) }, \
|
||||
{ "DtWsmAddCurrentWorkspaceCallback", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmAddCurrentWorkspaceCallback) }, \
|
||||
{ "DtWsmRemoveWorkspaceCallback", NV_BLTIN|BLT_ENV, lcl_cast(do_DtWsmRemoveWorkspaceCallback) }, \
|
||||
{ "DtDbLoad", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDbLoad) }, \
|
||||
{ "DtDbReloadNotify", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDbReloadNotify) }, \
|
||||
{ "DtActionExists", NV_BLTIN|BLT_ENV, lcl_cast(do_DtActionExists) }, \
|
||||
{ "DtActionLabel", NV_BLTIN|BLT_ENV, lcl_cast(do_DtActionLabel) }, \
|
||||
{ "DtActionDescription", NV_BLTIN|BLT_ENV, lcl_cast(do_DtActionDescription) }, \
|
||||
{ "DtActionInvoke", NV_BLTIN|BLT_ENV, lcl_cast(do_DtActionInvoke) }, \
|
||||
{ "DtDtsLoadDataTypes", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsLoadDataTypes) }, \
|
||||
{ "DtDtsFileToDataType", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsFileToDataType) }, \
|
||||
{ "DtDtsFileToAttributeValue", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsFileToAttributeValue) }, \
|
||||
{ "DtDtsFileToAttributeList", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsFileToAttributeList) }, \
|
||||
{ "DtDtsDataTypeToAttributeValue", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsDataTypeToAttributeValue) }, \
|
||||
{ "DtDtsDataTypeToAttributeList", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsDataTypeToAttributeList) }, \
|
||||
{ "DtDtsFindAttribute", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsFindAttribute) }, \
|
||||
{ "DtDtsDataTypeNames", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsDataTypeNames) }, \
|
||||
{ "DtDtsSetDataType", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsSetDataType) }, \
|
||||
{ "DtDtsDataTypeIsAction", NV_BLTIN|BLT_ENV, lcl_cast(do_DtDtsDataTypeIsAction) }, \
|
||||
{ "ttdt_open", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_open) }, \
|
||||
{ "ttdt_close", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_close) }, \
|
||||
{ "tttk_Xt_input_handler", NV_BLTIN|BLT_ENV, lcl_cast(do_tttk_Xt_input_handler) }, \
|
||||
{ "ttdt_session_join", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_session_join) }, \
|
||||
{ "ttdt_session_quit", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_session_quit) }, \
|
||||
{ "ttdt_file_event", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_file_event) }, \
|
||||
{ "ttdt_file_join", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_file_join) }, \
|
||||
{ "ttdt_file_quit", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_file_quit) }, \
|
||||
{ "ttdt_Get_Modified", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_Get_Modified) }, \
|
||||
{ "ttdt_Save", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_Save) }, \
|
||||
{ "ttdt_Revert", NV_BLTIN|BLT_ENV, lcl_cast(do_ttdt_Revert) }, \
|
||||
{ "tt_error_pointer", NV_BLTIN|BLT_ENV, lcl_cast(do_tt_error_pointer) }, \
|
||||
{ "tttk_message_destroy", NV_BLTIN|BLT_ENV, lcl_cast(do_tttk_message_destroy) }, \
|
||||
{ "tttk_message_reject", NV_BLTIN|BLT_ENV, lcl_cast(do_tttk_message_reject) }, \
|
||||
{ "tttk_message_fail", NV_BLTIN|BLT_ENV, lcl_cast(do_tttk_message_fail) }, \
|
||||
{ "tt_file_netfile", NV_BLTIN|BLT_ENV, lcl_cast(do_tt_file_netfile) }, \
|
||||
{ "tt_netfile_file", NV_BLTIN|BLT_ENV, lcl_cast(do_tt_netfile_file) }, \
|
||||
{ "tt_host_file_netfile", NV_BLTIN|BLT_ENV, lcl_cast(do_tt_host_file_netfile) }, \
|
||||
{ "tt_host_netfile_file", NV_BLTIN|BLT_ENV, lcl_cast(do_tt_host_netfile_file) }, \
|
||||
{ "tt_message_reply", NV_BLTIN|BLT_ENV, lcl_cast(do_tt_message_reply) },
|
||||
|
||||
#define DTK_EXTRA_TABLE2 \
|
||||
{ "XClearArea", NV_BLTIN|BLT_ENV, lcl_cast(do_XClearArea) }, \
|
||||
{ "XClearWindow", NV_BLTIN|BLT_ENV, lcl_cast(do_XClearWindow) }, \
|
||||
{ "XCopyArea", NV_BLTIN|BLT_ENV, lcl_cast(do_XCopyArea) }, \
|
||||
{ "XDrawArc", NV_BLTIN|BLT_ENV, lcl_cast(do_XDrawArc) }, \
|
||||
{ "XDrawImageString", NV_BLTIN|BLT_ENV, lcl_cast(do_XDrawImageString) }, \
|
||||
{ "XDrawLine", NV_BLTIN|BLT_ENV, lcl_cast(do_XDrawLine) }, \
|
||||
{ "XDrawLines", NV_BLTIN|BLT_ENV, lcl_cast(do_XDrawLines) }, \
|
||||
{ "XDrawPoint", NV_BLTIN|BLT_ENV, lcl_cast(do_XDrawPoint) }, \
|
||||
{ "XDrawPoints", NV_BLTIN|BLT_ENV, lcl_cast(do_XDrawPoints) }, \
|
||||
{ "XDrawRectangle", NV_BLTIN|BLT_ENV, lcl_cast(do_XDrawRectangle) }, \
|
||||
{ "XDrawSegments", NV_BLTIN|BLT_ENV, lcl_cast(do_XDrawSegments) }, \
|
||||
{ "XDrawString", NV_BLTIN|BLT_ENV, lcl_cast(do_XDrawString) }, \
|
||||
{ "XFillArc", NV_BLTIN|BLT_ENV, lcl_cast(do_XFillArc) }, \
|
||||
{ "XFillPolygon", NV_BLTIN|BLT_ENV, lcl_cast(do_XFillPolygon) }, \
|
||||
{ "XFillRectangle", NV_BLTIN|BLT_ENV, lcl_cast(do_XFillRectangle) }, \
|
||||
{ "XTextWidth", NV_BLTIN|BLT_ENV, lcl_cast(do_XTextWidth) }, \
|
||||
{ "XtMainLoop", NV_BLTIN, lcl_cast(do_XtMainLoop) }, \
|
||||
{ "XtDisplay", NV_BLTIN|BLT_ENV, lcl_cast(do_XtDisplay) }, \
|
||||
{ "XtDisplayOfObject", NV_BLTIN|BLT_ENV, lcl_cast(do_XtDisplayOfObject) }, \
|
||||
{ "XtNameToWidget", NV_BLTIN|BLT_ENV, lcl_cast(do_XtNameToWidget) }, \
|
||||
{ "XtScreen", NV_BLTIN|BLT_ENV, lcl_cast(do_XtScreen) }, \
|
||||
{ "XtWindow", NV_BLTIN|BLT_ENV, lcl_cast(do_XtWindow) }, \
|
||||
{ "XtParent", NV_BLTIN|BLT_ENV, lcl_cast(do_XtParent) }, \
|
||||
{ "XtLastTimestampProcessed", NV_BLTIN|BLT_ENV, lcl_cast(do_XtLastTimestampProcessed) }, \
|
||||
{ "catopen", NV_BLTIN|BLT_ENV, lcl_cast(do_catopen) }, \
|
||||
{ "catgets", NV_BLTIN|BLT_ENV, lcl_cast(do_catgets) }, \
|
||||
{ "catclose", NV_BLTIN|BLT_ENV, lcl_cast(do_catclose) },
|
||||
|
||||
#endif /* _Dtksh_dtextra_h */
|
||||
/* DON'T ADD ANYTHING AFTER THIS #endif */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -50,6 +50,8 @@
|
||||
#define CONVERT_POSTPONED 0
|
||||
#define CONVERT_FAILED -1
|
||||
|
||||
#define ADDBUILTIN(a,b) sh_addbuiltin(a, ((int (*)__PROTO__((int, char*[], Shbltin_t*)))b), (void*) 0)
|
||||
|
||||
extern Widget Toplevel;
|
||||
extern char str_nill[];
|
||||
extern wtab_t * DTKSHConversionWidget;
|
||||
@@ -578,90 +580,112 @@ extern void FreeNestedVariables( void ) ;
|
||||
extern Namval_t * nopCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * dftCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * ehCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * transCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * scaleCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * arrowCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * comboCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * cmdCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * dAreaCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * dbtnCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * dtPrintSetupProcDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp);
|
||||
extern Namval_t * fselCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * listCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * pbtnCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * rcCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * sbarCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * swinCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * sboxCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * tbtnCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * textCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * textCreateDisc2(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern Namval_t * helpCreateDisc(
|
||||
Namval_t *np,
|
||||
char *name,
|
||||
int flags,
|
||||
Namfun_t *fp) ;
|
||||
extern int * LockKshFileDescriptors( void ) ;
|
||||
extern void UnlockKshFileDescriptors(
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
/* X includes */
|
||||
|
||||
#include "shell.h"
|
||||
#include "shell.h"
|
||||
#include <signal.h>
|
||||
#include <fcntl.h>
|
||||
#include <X11/X.h>
|
||||
@@ -55,9 +55,7 @@
|
||||
#include <Dt/Print.h>
|
||||
#include "hash.h"
|
||||
#include "stdio.h"
|
||||
#define NO_AST
|
||||
#include "dtksh.h"
|
||||
#undef NO_AST
|
||||
#include "xmksh.h"
|
||||
#include "XtCvtrs.h"
|
||||
#include "dtkcmds.h"
|
||||
@@ -105,7 +103,7 @@ DtkshCvtWindowToString(
|
||||
|
||||
if (fval->size != sizeof(Window))
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,1,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtWindowToString: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -135,7 +133,7 @@ DtkshCvtScreenToString(
|
||||
|
||||
if (fval->size != sizeof(Screen *))
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,14,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtScreenToString: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -225,7 +223,7 @@ DtkshCvtHexIntToString(
|
||||
if (fval->size != sizeof(long) && fval->size != sizeof(int) &&
|
||||
fval->size != sizeof(short) && fval->size != sizeof(char))
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,2,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtHexIntToString: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -257,7 +255,7 @@ DtkshCvtIntToString(
|
||||
|
||||
if (fval->size != sizeof(int) && fval->size != sizeof(short))
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,3,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtIntToString: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -286,7 +284,7 @@ DtkshCvtBooleanToString(
|
||||
if (fval->size != sizeof(int) && fval->size != sizeof(short) &&
|
||||
fval->size != sizeof(char))
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,4,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtBooleanToString: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -347,7 +345,7 @@ DtkshCvtStringToWidget(
|
||||
|
||||
if (fval->size <= 0)
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,5,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtStringToWidget: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -387,7 +385,7 @@ DtkshCvtStringToWidget(
|
||||
{
|
||||
char errbuf[1024];
|
||||
|
||||
errmsg = strdup(GETMESSAGE(6,6,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtStringToWidget: Unable to find a widget named '%s'"));
|
||||
sprintf(errbuf, errmsg, wname);
|
||||
XtWarning(errbuf);
|
||||
@@ -414,7 +412,7 @@ DtkshCvtStringToCallback(
|
||||
|
||||
if (fval->size <= 0)
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,7,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtStringToCallback: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -451,7 +449,7 @@ DtkshCvtCallbackToString(
|
||||
|
||||
if (fval->size != sizeof(XtCallbackList))
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,8,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtCallbackToString: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -508,7 +506,7 @@ DtkshCvtWidgetToString(
|
||||
|
||||
if (fval->size != sizeof(Widget) || fval->addr == NULL)
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,9,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtWidgetToString: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -525,7 +523,7 @@ DtkshCvtWidgetToString(
|
||||
}
|
||||
if ((w = widget_to_wtab(widget)) == NULL)
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,10,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtWidgetToString: Unable to find a name for the widget"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -646,7 +644,7 @@ DtkshCvtWidgetClassToString(
|
||||
|
||||
if (fval->size != sizeof(WidgetClass))
|
||||
{
|
||||
errmsg = strdup(GETMESSAGE(6,11,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtWidgetClassToString: The 'from' value is an invalid size"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -673,7 +671,7 @@ DtkshCvtWidgetClassToString(
|
||||
}
|
||||
|
||||
/* No match found */
|
||||
errmsg = strdup(GETMESSAGE(6,12,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtWidgetClassToString: Unknown widget class"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
@@ -717,7 +715,7 @@ DtkshCvtStringToWidgetClass(
|
||||
}
|
||||
|
||||
/* No match found */
|
||||
errmsg = strdup(GETMESSAGE(6,13,
|
||||
errmsg = strdup(GETMESSAGE(
|
||||
"DtkshCvtStringToWidgetClass: Unknown widget class name"));
|
||||
XtWarning(errmsg);
|
||||
free(errmsg);
|
||||
|
||||
@@ -33,10 +33,6 @@
|
||||
#ifndef _Dtksh_dtksh_h
|
||||
#define _Dtksh_dtksh_h
|
||||
|
||||
#if !defined(NO_AST)
|
||||
#include "nval.h"
|
||||
#endif
|
||||
|
||||
#define SUCCESS 0
|
||||
#define FAIL (-1)
|
||||
|
||||
|
||||
0
cde/programs/dtksh/examples/CallDataTest4.src
Executable file → Normal file
0
cde/programs/dtksh/examples/CallDataTest4.src
Executable file → Normal file
0
cde/programs/dtksh/examples/CallbackTest2.src
Executable file → Normal file
0
cde/programs/dtksh/examples/CallbackTest2.src
Executable file → Normal file
0
cde/programs/dtksh/examples/DtCursorTest2.src
Executable file → Normal file
0
cde/programs/dtksh/examples/DtCursorTest2.src
Executable file → Normal file
0
cde/programs/dtksh/examples/DtWsTest1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/DtWsTest1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/EventHandlerTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/EventHandlerTest.src
Executable file → Normal file
@@ -1,31 +1,30 @@
|
||||
XCOMM $XConsortium: Imakefile /main/4 1996/04/21 19:30:42 drk $
|
||||
DESKTOP_VERSION_STRING = DesktopVersionString
|
||||
|
||||
MODULE=dtksh/examples
|
||||
LOCAL_CPP_DEFINES = -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP)
|
||||
|
||||
LOCAL_CPP_DEFINES = -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \
|
||||
-DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP)
|
||||
PROGRAMS = CallDataTest4 CallbackTest2 DtCursorTest2 DtWsTest1 \
|
||||
EventHandlerTest ListBounds1 ListItemPos1 ListPosSel1 PopupTest \
|
||||
SelBoxResTest SessionTest TextCutBuf1 TextDisp1 TextFXYPos1 \
|
||||
TransEventTest TransTest1 WorkProcTest1 XdrawTest crMovesText1
|
||||
|
||||
CppSourceFile(CallDataTest4,CallDataTest4.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(CallbackTest2,CallbackTest2.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(DtCursorTest2,DtCursorTest2.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(DtWsTest1,DtWsTest1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(EventHandlerTest,EventHandlerTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(ListBounds1,ListBounds1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(ListItemPos1,ListItemPos1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(ListPosSel1,ListPosSel1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(PipeTest,PipeTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(PopupTest,PopupTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(SelBoxResTest,SelBoxResTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(SessionTest,SessionTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(TextCutBuf1,TextCutBuf1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(TextDisp1,TextDisp1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(TextFXYPos1,TextFXYPos1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(TransEventTest,TransEventTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(TransTest1,TransTest1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(WorkProcTest1,WorkProcTest1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(XCursorTest1,XCursorTest1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(XdrawTest,XdrawTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppSourceFile(crMovesText1,crMovesText1.src,$(LOCAL_CPP_DEFINES),)
|
||||
all:: $(PROGRAMS)
|
||||
|
||||
all::
|
||||
CppScriptTarget(CallDataTest4,CallDataTest4.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(CallbackTest2,CallbackTest2.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(DtCursorTest2,DtCursorTest2.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(DtWsTest1,DtWsTest1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(EventHandlerTest,EventHandlerTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(ListBounds1,ListBounds1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(ListItemPos1,ListItemPos1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(ListPosSel1,ListPosSel1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(PopupTest,PopupTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(SelBoxResTest,SelBoxResTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(SessionTest,SessionTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(TextCutBuf1,TextCutBuf1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(TextDisp1,TextDisp1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(TextFXYPos1,TextFXYPos1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(TransEventTest,TransEventTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(TransTest1,TransTest1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(WorkProcTest1,WorkProcTest1.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(XdrawTest,XdrawTest.src,$(LOCAL_CPP_DEFINES),)
|
||||
CppScriptTarget(crMovesText1,crMovesText1.src,$(LOCAL_CPP_DEFINES),)
|
||||
|
||||
0
cde/programs/dtksh/examples/ListBounds1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/ListBounds1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/ListItemPos1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/ListItemPos1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/ListPosSel1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/ListPosSel1.src
Executable file → Normal file
@@ -1,43 +0,0 @@
|
||||
XCOMM! CDE_INSTALLATION_TOP/bin/dtksh
|
||||
XCOMM $XConsortium: PipeTest.src /main/3 1996/04/23 20:18:30 drk $
|
||||
|
||||
XCOMM #########################################################################
|
||||
XCOMM (c) Copyright 1993, 1994 Hewlett-Packard Company
|
||||
XCOMM (c) Copyright 1993, 1994 International Business Machines Corp.
|
||||
XCOMM (c) Copyright 1993, 1994 Sun Microsystems, Inc.
|
||||
XCOMM (c) Copyright 1993, 1994 Unix System Labs, Inc., a subsidiary of
|
||||
XCOMM Novell, Inc.
|
||||
XCOMM #########################################################################
|
||||
|
||||
|
||||
XCOMM
|
||||
XCOMM This sample shell script demonstrates some of the more advanced features
|
||||
XCOMM of dtksh. It shows how a structure can be defined and accessed, and
|
||||
XCOMM how a C library function can be called.
|
||||
XCOMM
|
||||
|
||||
XCOMM Define a structure made up of 2 integer fields: pipe_in and pipe_out
|
||||
struct pipe_fds pipe_in:int pipe_out:int
|
||||
typedef 'struct pipe_fds *' pipe_fds_ptr
|
||||
|
||||
echo "Test 1"
|
||||
XCOMM Malloc space for the structure, and initialize the fields
|
||||
call -F nop '@pipe_fds_ptr:{0,0}'
|
||||
PIPE_FDS=$RET
|
||||
XCOMM Call the pipe(2) kernel intrinsic
|
||||
call pipe $PIPE_FDS
|
||||
RESULT=$RET
|
||||
XCOMM Print the values of the fields in the structure
|
||||
call strprint pipe_fds_ptr $PIPE_FDS
|
||||
echo RESULT = $RESULT
|
||||
echo
|
||||
|
||||
XCOMM Repeat the test, to make sure we get different file descriptors
|
||||
echo "Test 2"
|
||||
call -F nop '@pipe_fds_ptr:{0,0}'
|
||||
PIPE_FDS=$RET
|
||||
call pipe $PIPE_FDS
|
||||
RESULT=$RET
|
||||
call strprint pipe_fds_ptr $PIPE_FDS
|
||||
echo RESULT = $RESULT
|
||||
echo
|
||||
0
cde/programs/dtksh/examples/PopupTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/PopupTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/SelBoxResTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/SelBoxResTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/SessionTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/SessionTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TextCutBuf1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TextCutBuf1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TextDisp1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TextDisp1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TextFXYPos1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TextFXYPos1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TransEventTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TransEventTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TransTest1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/TransTest1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/WorkProcTest1.src
Executable file → Normal file
0
cde/programs/dtksh/examples/WorkProcTest1.src
Executable file → Normal file
@@ -1,63 +0,0 @@
|
||||
XCOMM! CDE_INSTALLATION_TOP/bin/dtksh
|
||||
XCOMM $XConsortium: XCursorTest1.src /main/3 1996/04/23 20:19:21 drk $
|
||||
|
||||
XCOMM #########################################################################
|
||||
XCOMM (c) Copyright 1993, 1994 Hewlett-Packard Company
|
||||
XCOMM (c) Copyright 1993, 1994 International Business Machines Corp.
|
||||
XCOMM (c) Copyright 1993, 1994 Sun Microsystems, Inc.
|
||||
XCOMM (c) Copyright 1993, 1994 Unix System Labs, Inc., a subsidiary of
|
||||
XCOMM Novell, Inc.
|
||||
XCOMM #########################################################################
|
||||
|
||||
|
||||
XCOMM
|
||||
XCOMM This sample shell script demonstrates how the 'call' command can be used
|
||||
XCOMM to obtain an 'X' cursor, and then how that cursor can be set for a
|
||||
XCOMM widget hierarchy.
|
||||
XCOMM
|
||||
|
||||
XCOMM Pushbutton Callback: set the cursor for the widget hierarchy
|
||||
DefineCursor()
|
||||
{
|
||||
XDefineCursor $(XtDisplay "-" $TOPLEVEL) $(XtWindow "-" $TOPLEVEL) $CURSOR
|
||||
}
|
||||
|
||||
XCOMM Pushbutton Callback: unset the cursor for the widget hierarchy
|
||||
UndefineCursor()
|
||||
{
|
||||
XUndefineCursor $(XtDisplay "-" $TOPLEVEL) $(XtWindow "-" $TOPLEVEL)
|
||||
}
|
||||
|
||||
XCOMM ###################### Create the Main UI ###############################
|
||||
|
||||
XtInitialize TOPLEVEL xCursorTest XCursorTest "$0" "$@"
|
||||
XtSetValues $TOPLEVEL allowShellResize:True
|
||||
|
||||
XtCreateManagedWidget DA da XmDrawingArea $TOPLEVEL
|
||||
XtSetValues $DA height:200 width:200
|
||||
|
||||
XtRealizeWidget $TOPLEVEL
|
||||
|
||||
XtCreateApplicationShell TOPLEVEL2 xCursorTesta TopLevelShell
|
||||
|
||||
XtCreateManagedWidget RC rc XmRowColumn $TOPLEVEL2 \
|
||||
orientation:HORIZONTAL \
|
||||
numColumns:2 \
|
||||
packing:PACK_COLUMN
|
||||
|
||||
XtCreateManagedWidget PB1 pb1 XmPushButton $RC \
|
||||
labelString:"Define Cursor"
|
||||
XtAddCallback $PB1 activateCallback "DefineCursor"
|
||||
|
||||
XtCreateManagedWidget PB2 pb2 XmPushButton $RC \
|
||||
labelString:"Undefine Cursor"
|
||||
XtAddCallback $PB2 activateCallback "UndefineCursor"
|
||||
|
||||
XCOMM Call the X function for getting a cursor
|
||||
call XCreateFontCursor $(XtDisplay "-" $TOPLEVEL) 10
|
||||
CURSOR=$RET
|
||||
echo "Cursor = "$CURSOR
|
||||
|
||||
XtRealizeWidget $TOPLEVEL2
|
||||
|
||||
XtMainLoop
|
||||
0
cde/programs/dtksh/examples/XdrawTest.src
Executable file → Normal file
0
cde/programs/dtksh/examples/XdrawTest.src
Executable file → Normal file
@@ -1,240 +0,0 @@
|
||||
/*
|
||||
* CDE - Common Desktop Environment
|
||||
*
|
||||
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
||||
*
|
||||
* These libraries and programs are free software; you can
|
||||
* redistribute them and/or modify them under the terms of the GNU
|
||||
* Lesser General Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* These libraries and programs are distributed in the hope that
|
||||
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU Lesser General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with these libraries and programs; if not, write
|
||||
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
||||
* Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
/* $XConsortium: exksh.h /main/3 1995/11/01 15:54:01 rswiston $ */
|
||||
/* "%W%" */
|
||||
|
||||
/* Copyright (c) 1991, 1992 UNIX System Laboratories, Inc. */
|
||||
/* All Rights Reserved */
|
||||
|
||||
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
|
||||
/* UNIX System Laboratories, Inc. */
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#ifndef _Dtksh_exksh_h
|
||||
#define _Dtksh_exksh_h
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifndef SYMS_ONLY
|
||||
|
||||
#define SH_FAIL 1
|
||||
#define SH_SUCC 0
|
||||
|
||||
#define PRSYMBOLIC 1
|
||||
#define PRMIXED 2
|
||||
#define PRDECIMAL 4
|
||||
#define PRHEX 8
|
||||
#define PRMIXED_SYMBOLIC 16
|
||||
#define PRNAMES 32
|
||||
|
||||
#define UPP(CH) (islower(CH) ? toupper(CH) : (CH))
|
||||
#define C_PAIR(STR, CH1, CH2) (((STR)[0] == (CH1)) && ((STR)[1] == (CH2)))
|
||||
#define XK_USAGE(X) return(xk_usage(X), SH_FAIL);
|
||||
|
||||
/* In the future, this will require following pointers, unless we
|
||||
** can always trace back types to typedefs. For example, unsigned long is
|
||||
** a typedef, but it is simple because it is really just a long.
|
||||
*/
|
||||
#define IS_SIMPLE(TBL) ((TBL)->flags & F_SIMPLE)
|
||||
|
||||
#ifndef N_DEFAULT /* From name.h */
|
||||
/* Stolen out of include/name.h, the problems of including things
|
||||
** out of the ksh code is major. Hence, the copy rather than the
|
||||
** include.
|
||||
*/
|
||||
|
||||
struct Bfunction {
|
||||
long (*f_vp)(); /* value function */
|
||||
long (*f_ap)(); /* assignment function */
|
||||
};
|
||||
|
||||
#endif /* N_DEFAULT: From name.h */
|
||||
|
||||
#define ALLDATA INT_MAX
|
||||
|
||||
#define BIGBUFSIZ (10 * BUFSIZ)
|
||||
|
||||
#define IN_BAND 1
|
||||
#define OUT_BAND 2
|
||||
#define NEW_PRIM 4
|
||||
|
||||
struct fd {
|
||||
int vfd;
|
||||
int flags;
|
||||
char mode;
|
||||
struct strbuf *lastrcv;
|
||||
int rcvcount;
|
||||
int sndcount;
|
||||
int uflags;
|
||||
};
|
||||
|
||||
struct vfd {
|
||||
int fd;
|
||||
};
|
||||
|
||||
extern struct fd *Fds;
|
||||
extern struct vfd *Vfds;
|
||||
|
||||
struct libdesc {
|
||||
char *name;
|
||||
void *handle;
|
||||
};
|
||||
struct libstruct {
|
||||
char *prefix;
|
||||
int nlibs;
|
||||
struct libdesc *libs;
|
||||
};
|
||||
|
||||
|
||||
#ifndef OSI_LIB_CODE
|
||||
#define PARPEEK(b, s) (((b)[0][0] == s[0]) ? 1 : 0 )
|
||||
#define PAREXPECT(b, s) (((b)[0][0] == s[0]) ? 0 : -1 )
|
||||
#define OFFSET(T, M) ((int)(&((T)NULL)->M))
|
||||
|
||||
typedef char *string_t;
|
||||
|
||||
/*
|
||||
* Structures for driving generic print/parse/copy/free routines
|
||||
*/
|
||||
|
||||
typedef struct memtbl {
|
||||
char *name; /* name of the member */
|
||||
char *tname; /* name of the typedef */
|
||||
char kind; /* kind of member, see #defines below */
|
||||
char flags; /* flags for member, see #defines below */
|
||||
short tbl; /* -1 or index into ASL_allmems[] array */
|
||||
short ptr; /* number of "*" in front of member */
|
||||
short subscr; /* 0 if no subscript, else max number of elems */
|
||||
short delim; /* 0 if no length delim, +1 if next field, -1 if prev */
|
||||
short id; /* Id of the ASL in which this def is made */
|
||||
short offset; /* offset into the C structure */
|
||||
short size; /* size of this member, for easy malloc'ing */
|
||||
long choice; /* def of tag indicating field chosen for unions */
|
||||
} memtbl_t;
|
||||
|
||||
struct envsymbols {
|
||||
char *name;
|
||||
int id;
|
||||
int (*parsefunc)();
|
||||
int (*printfunc)();
|
||||
char *tname;
|
||||
int intlike;
|
||||
int string;
|
||||
int topptr;
|
||||
int valbits;
|
||||
struct {
|
||||
char *name;
|
||||
unsigned long val;
|
||||
int cover;
|
||||
} vals[64];
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Definitions for the kind field of the above structure
|
||||
*/
|
||||
|
||||
#define K_CHAR (0) /* char or unchar */
|
||||
#define K_SHORT (1) /* short or ushort */
|
||||
#define K_INT (2) /* int or uint */
|
||||
#define K_LONG (3) /* long, unsigned long, PRIM, etc. */
|
||||
#define K_STRING (4) /* char * or char [] */
|
||||
#define K_OBJID (5) /* objid_t *, note the star is included */
|
||||
#define K_ANY (6) /* any_t */
|
||||
#define K_STRUCT (7) /* struct { } */
|
||||
#define K_UNION (8) /* union { } */
|
||||
#define K_TYPEDEF (9) /* typedef */
|
||||
#define K_DSHORT (10) /* short delimiter */
|
||||
#define K_DINT (11) /* int delimiter */
|
||||
#define K_DLONG (12) /* long delimiter */
|
||||
|
||||
/*
|
||||
* Definitions for the flags field of the above structure, bitmask
|
||||
*/
|
||||
|
||||
#define F_SIMPLE (1) /* simple, flat type */
|
||||
#define F_FIELD (2) /* memtbl is a field of a structure, not the
|
||||
name of a type */
|
||||
#define F_TBL_IS_PTR (4) /* tbl field is pointer, not number; */
|
||||
#define F_TYPE_IS_PTR (8) /* type is built-in, but is already a pointer, like K_STRING */
|
||||
|
||||
#define SUCCESS 0
|
||||
#define FAIL (-1)
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
/* The following macro, RIF, stands for Return If Fail. Practically
|
||||
* every line of encode/decode functions need to do this, so it aids
|
||||
* in readability.
|
||||
*/
|
||||
#define RIF(X) do { if ((X) == FAIL) return(FAIL); } while(0)
|
||||
|
||||
#endif /* not OSI_LIB_CODE */
|
||||
|
||||
#if !defined(OSI_LIB_CODE) || defined(NEED_SYMLIST)
|
||||
struct symlist {
|
||||
struct memtbl tbl;
|
||||
int isflag;
|
||||
int nsyms;
|
||||
struct symarray *syms;
|
||||
};
|
||||
#endif
|
||||
|
||||
#define DYNMEM_ID (1)
|
||||
#define BASE_ID (2)
|
||||
|
||||
#define ALTPUTS(STR) puts(STR)
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL (0)
|
||||
#endif
|
||||
|
||||
#ifdef SPRINTF_RET_LEN
|
||||
#define lsprintf sprintf
|
||||
#endif
|
||||
|
||||
#define MAX_CALL_ARGS 15
|
||||
|
||||
#define TREAT_SIMPLE(TBL) ((TBL)->ptr || IS_SIMPLE(TBL))
|
||||
|
||||
#ifdef EXKSH_INCLUDED
|
||||
#define XK_PRINT(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) (_Delim = 0, xk_print(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7))
|
||||
#define XK_PARSE(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) (_Delim = 0, xk_parse(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7))
|
||||
#define XK_FREE(ARG1, ARG2, ARG3, ARG4, ARG5) (_Delim = 0, xk_free(ARG1, ARG2, ARG3, ARG4, ARG5))
|
||||
#endif
|
||||
|
||||
#define NOHASH 1
|
||||
#define TYPEONLY 2
|
||||
#define STRUCTONLY 4
|
||||
|
||||
#endif /* not SYMS_ONLY */
|
||||
|
||||
struct symarray {
|
||||
const char *str;
|
||||
unsigned long addr;
|
||||
};
|
||||
|
||||
#endif /* _Dtksh_exksh_h */
|
||||
/* DON'T ADD ANYTHING AFTER THIS #endif */
|
||||
@@ -70,7 +70,7 @@ int
|
||||
ksh_eval(
|
||||
char *cmd )
|
||||
{
|
||||
sh_eval(sfopen(NIL(Sfile_t*),cmd,"s"),0);
|
||||
sh_eval(sfopen(NIL(Sfio_t*),cmd,"s"),0);
|
||||
sfsync(sh.outpool);
|
||||
return(sh.exitval);
|
||||
}
|
||||
@@ -154,3 +154,73 @@ printerrf(
|
||||
else
|
||||
printf("%s\n", buf);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* The following two functions are ugly, but necessary. Ksh reserves file
|
||||
* descriptors 0 - 9 for use by shell scripts, and has intimate knowledge
|
||||
* of how and when they were opened. Unfortunately, certain dtksh functions
|
||||
* (XtInitialize, catopen, ttdt_open, _DtActionInvoke, others) open file
|
||||
* descriptors which are not known to ksh. We can't let these file
|
||||
* descriptors fall in the 0 - 9 range, because we can't afford to have
|
||||
* the shell script overriding our file descriptors. Therefore, any of
|
||||
* our commands which open files must first lock our file descriptors 0 - 9,
|
||||
* thus forcing the command to get a file descriptor out of the shell's
|
||||
* range. After the command has opened its file descriptor, it then needs
|
||||
* to unlock file descriptors 0 - 9, so that the shell script will have
|
||||
* access to them again.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* Return a list of the file descriptors we had to open, to lock out file
|
||||
* descriptors 0 - 9; this list should be freed (and the file descriptors
|
||||
* closed) by calling UnlockkshFileDescriptors().
|
||||
*/
|
||||
|
||||
int *LockKshFileDescriptors(void)
|
||||
{
|
||||
int * fdList;
|
||||
int i;
|
||||
int fd, newfd;
|
||||
|
||||
fdList = (int *)malloc(sizeof(int) * 10);
|
||||
for (i = 0; i < 10; i++)
|
||||
fdList[i] = -1;
|
||||
|
||||
if ((fd = open("/dev/null", O_RDONLY)) >= 0)
|
||||
{
|
||||
if (fd < 10)
|
||||
{
|
||||
fdList[0] = fd;
|
||||
for (i = 1; i < 10; i++)
|
||||
{
|
||||
if ((newfd = dup(fd)) < 10)
|
||||
fdList[i] = newfd;
|
||||
else
|
||||
{
|
||||
close(newfd);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
close(fd);
|
||||
}
|
||||
|
||||
return(fdList);
|
||||
}
|
||||
|
||||
void UnlockKshFileDescriptors(int *fdList)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
if (fdList[i] != (-1))
|
||||
close(fdList[i]);
|
||||
}
|
||||
|
||||
free((char *)fdList);
|
||||
}
|
||||
|
||||
@@ -30,74 +30,42 @@
|
||||
/* The copyright notice above does not evidence any */
|
||||
/* actual or intended publication of such source code. */
|
||||
|
||||
#include "shell.h"
|
||||
#include "stdio.h"
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef DYNLIB
|
||||
#ifdef __aix
|
||||
#include <sys/ldr.h>
|
||||
#else
|
||||
#include <dlfcn.h>
|
||||
#endif
|
||||
/* from ksh93/include/ast/shell.h */
|
||||
extern void **sh_getliblist(void);
|
||||
#endif
|
||||
#ifdef HPUX_DYNLIB
|
||||
#include <dl.h>
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <search.h>
|
||||
#include <ctype.h>
|
||||
#include "xmdtksym.h"
|
||||
#include "msgs.h"
|
||||
|
||||
/*
|
||||
* This function is currently only used to locate a widget class record,
|
||||
* as requested by a DtLoadWidget request. In the future, if the exksh
|
||||
* commands are ever added back in, then it will also need to be able
|
||||
* to locate any arbitrary symbol.
|
||||
* as requested by a DtLoadWidget request.
|
||||
*/
|
||||
|
||||
unsigned long
|
||||
void *
|
||||
fsym(
|
||||
char *str,
|
||||
int lib )
|
||||
{
|
||||
#ifdef DYNLIB
|
||||
void ** liblist;
|
||||
int i = 0;
|
||||
long addr;
|
||||
#endif
|
||||
#ifdef HPUX_DYNLIB
|
||||
void *found;
|
||||
shl_t handle;
|
||||
#endif
|
||||
void * addr;
|
||||
|
||||
#ifdef DYNLIB
|
||||
if ((liblist = sh_getliblist()) == NULL)
|
||||
return(NULL);
|
||||
|
||||
while (liblist[i])
|
||||
if (liblist == NULL)
|
||||
return (NULL);
|
||||
while (liblist[i].dll)
|
||||
{
|
||||
if (addr = dlsym(liblist[i], str))
|
||||
return((unsigned long)addr);
|
||||
if (addr = dlsym(liblist[i].dll, str))
|
||||
return(addr);
|
||||
i++;
|
||||
}
|
||||
#else
|
||||
#ifdef HPUX_DYNLIB
|
||||
handle = NULL;
|
||||
if ((shl_findsym(&handle, str, TYPE_PROCEDURE, &found)) == 0)
|
||||
return((unsigned long) found);
|
||||
if ((shl_findsym(&handle, str, TYPE_DATA, &found)) == 0)
|
||||
return((unsigned long) found);
|
||||
handle = PROG_HANDLE;
|
||||
if ((shl_findsym(&handle, str, TYPE_PROCEDURE, &found)) == 0)
|
||||
return((unsigned long) found);
|
||||
if ((shl_findsym(&handle, str, TYPE_DATA, &found)) == 0)
|
||||
return((unsigned long) found);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
47
cde/programs/dtksh/init.patch
Normal file
47
cde/programs/dtksh/init.patch
Normal file
@@ -0,0 +1,47 @@
|
||||
--- ./ksh93/src/cmd/ksh93/sh/init.c 2021-01-16 15:27:03.589079734 -0600
|
||||
+++ init.c 2021-01-16 15:53:50.700864511 -0600
|
||||
@@ -48,6 +48,28 @@
|
||||
#include "lexstates.h"
|
||||
#include "version.h"
|
||||
|
||||
+#ifdef BUILD_DTKSH
|
||||
+#include <Dt/DtNlUtils.h>
|
||||
+#include <Dt/EnvControlP.h>
|
||||
+#include <X11/X.h>
|
||||
+#include <X11/Intrinsic.h>
|
||||
+#include <X11/IntrinsicP.h>
|
||||
+#include <X11/CoreP.h>
|
||||
+#include <X11/StringDefs.h>
|
||||
+#include <Xm/XmStrDefs.h>
|
||||
+#include <Xm/Xm.h>
|
||||
+#include <Xm/Protocols.h>
|
||||
+
|
||||
+#include "dtksh.h"
|
||||
+#include "xmksh.h"
|
||||
+#include "dtkcmds.h"
|
||||
+#include "xmcvt.h"
|
||||
+#include "widget.h"
|
||||
+#include "extra.h"
|
||||
+#include "xmwidgets.h"
|
||||
+#include "msgs.h"
|
||||
+#endif
|
||||
+
|
||||
#if _hdr_wctype
|
||||
#include <ast_wchar.h>
|
||||
#include <wctype.h>
|
||||
@@ -1481,6 +1503,16 @@
|
||||
shp->exittrap = 0;
|
||||
shp->errtrap = 0;
|
||||
shp->end_fn = 0;
|
||||
+#ifdef BUILD_DTKSH
|
||||
+ int * lockedFds = LockKshFileDescriptors();
|
||||
+ (void) XtSetLanguageProc((XtAppContext)NULL, (XtLanguageProc)NULL,
|
||||
+ (XtPointer)NULL);
|
||||
+ DtNlInitialize();
|
||||
+ _DtEnvControl(DT_ENV_SET);
|
||||
+ UnlockKshFileDescriptors(lockedFds);
|
||||
+
|
||||
+ dtksh_init();
|
||||
+#endif
|
||||
return(shp);
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
XCOMM $XConsortium: Imakefile /main/7 1996/05/09 17:33:38 drk $
|
||||
LOCAL_LIBRARIES =
|
||||
SRCS =
|
||||
SUBCFLAGS = -O
|
||||
UFLAGS = $(SUBCFLAGS)
|
||||
ULDFLAGS =
|
||||
IFFECDEBUGFLAGS = -O0
|
||||
|
||||
#ifdef RsArchitecture
|
||||
CCFLAGS = CCFLAGS=" "
|
||||
#else
|
||||
CCFLAGS =
|
||||
#endif
|
||||
|
||||
#ifdef SunArchitecture
|
||||
.NO_PARALLEL:
|
||||
#endif /* SunArchitecture */
|
||||
|
||||
FORCE_SHIP = -F
|
||||
|
||||
MALLOCOBJ =
|
||||
|
||||
KSHSRC = ./src/cmd/ksh93
|
||||
|
||||
KSHLIBS = \
|
||||
$(KSHSRC)/../../lib/libcmd/libcmd.a
|
||||
|
||||
KSH_OBJS = \
|
||||
$(KSHSRC)/main.o \
|
||||
$(KSHSRC)/timers.o \
|
||||
$(KSHLIBS)
|
||||
|
||||
OBJS = $(KSH_OBJS) $(KSH_LIBS)
|
||||
|
||||
SUIDEXECDEFINES = \
|
||||
-DPROFILEPATH=\"$(CDE_CONFIGURATION_TOP)/config/profile\" \
|
||||
-DSUIDPROFILEPATH=\"$(CDE_CONFIGURATION_TOP)/config/suid_profile\" \
|
||||
-DSUIDEXECPATH=\"$(CDE_INSTALLATION_TOP)/bin/suid_exec\" \
|
||||
-DCDE_INSTALLATION_TOP=\"$(CDE_INSTALLATION_TOP)\"
|
||||
|
||||
CCFLAGS = $(CDEBUGFLAGS) $(SUIDEXECDEFINES) $(STD_DEFINES) $(ANSI_DEFINES)
|
||||
ICCFLAGS = $(IFFECDEBUGFLAGS) $(STD_DEFINES) $(ANSI_DEFINES)
|
||||
|
||||
all:: ksh93src ksh93.o
|
||||
|
||||
XCOMM
|
||||
XCOMM A temporary hack until we get Imakefiles in the base of ksh-93.
|
||||
XCOMM
|
||||
XCOMM We test for presense of /bin/ksh because on HP/UX there is a
|
||||
XCOMM limitation in the size of environment variables that prevents the
|
||||
XCOMM ksh-93 build scripts from functioning. That will be worked around
|
||||
XCOMM in a near future release of ksh-93 as well, but then again this
|
||||
XCOMM whole target will change anyway.
|
||||
XCOMM
|
||||
|
||||
SHIP_DIR = ship
|
||||
ALL_SUBS = *
|
||||
|
||||
ksh93src:
|
||||
$(RM) $(SHIP_DIR)/$(ALL_SUBS)/$(ALL_SUBS)/BUILT; \
|
||||
SHELL=$(KORNSHELL) CC="$(CC)" CCFLAGS="$(CCFLAGS)" ICCFLAGS="$(ICCFLAGS)" $(KORNSHELL) ship/shipin $(FORCE_SHIP)
|
||||
|
||||
ksh93.o: $(OBJS)
|
||||
$(LD) -r -o $@ $(OBJS)
|
||||
|
||||
clobber:: clobmine
|
||||
|
||||
clobmine:
|
||||
$(RM) -f libksh93.a
|
||||
|
||||
depend::
|
||||
|
||||
install::
|
||||
@@ -1,154 +0,0 @@
|
||||
/* $XConsortium: README /main/2 1996/07/15 14:13:29 drk $ */
|
||||
Software shipment information. [better documentation forthcoming ...]
|
||||
|
||||
All files and directories, except for those in /var/spool/uucppublic,
|
||||
are rooted at the shipment/installation directory named by
|
||||
$INSTALLROOT. The $INSTALLROOT hierarchy is similar to the System V
|
||||
/usr hierarchy.
|
||||
|
||||
The $INSTALLROOT/ship subdirectory is automatically maintained by
|
||||
shipin and shipout. If you expect to receive future shipments then
|
||||
do not change files in this directory.
|
||||
|
||||
pax is the Bell Labs implementation of the proposed POSIX (01/90)
|
||||
portable archive interchange command. The default output format is
|
||||
`cpio -c'. The pax delta format is a Bell Labs extension.
|
||||
|
||||
The following assumes:
|
||||
|
||||
INSTALLROOT=<path name of software installation root directory>
|
||||
|
||||
After each shipment:
|
||||
|
||||
<follow specific shipment instructions>
|
||||
cd $INSTALLROOT
|
||||
ship/shipin
|
||||
|
||||
`ship/shipin -n' shows actions but does not unbundle or build.
|
||||
`ship/shipin -s <dir>' unbundles from <dir> rather than /var/spool/uucppublic.
|
||||
`ship/shipin -u' unbundles the shipment but does not build.
|
||||
`ship/shipin -i' copies from spool area but does not unbundle or build.
|
||||
`ship/shipin -E' rebuild components that failed last time (use after fixes).
|
||||
|
||||
Any non-option arguments to shipin are passed as arguments to the
|
||||
generating make or shell script for each component.
|
||||
|
||||
To pass the shipment to another machine (requires ksh):
|
||||
|
||||
# rcp # TO=host:ship
|
||||
# uucp # TO=machine!user
|
||||
# list of files # TO=%list
|
||||
# remote dk pull script # TO=%pull
|
||||
cd $INSTALLROOT
|
||||
ship/shipin -i # if not installed on this machine
|
||||
cd ship
|
||||
shipout $TO
|
||||
|
||||
{rcp,uucp} initiate copies whereas {list,pull} generate information on
|
||||
stdout. {uucp} copies to an intermediate spool area on the other machine
|
||||
whereas {rcp,list,pull} are relative to $INSTALLROOT on the other machine.
|
||||
|
||||
To copy a command <cmd> from $INSTALLROOT to a new root you must copy:
|
||||
|
||||
$INSTALLROOT/bin/<cmd>
|
||||
$INSTALLROOT/lib/<cmd>
|
||||
|
||||
to the new root directory for all interdependent <cmd>'s. Depending on
|
||||
<cmd>, only one of the above files/directories may exist.
|
||||
|
||||
Be sure to maintain a different $INSTALLROOT for each machine architecture.
|
||||
If the same $INSTALLROOT/ship must be reused for a different architecture
|
||||
then delete everything except ship from $INSTALLROOT and run ship/shipin -F.
|
||||
An alternative would be to use nmake and optionally 3d to viewpath a new
|
||||
architecture hierarchy on top of $INSTALLROOT. In this case nmake would
|
||||
be run from within the $INSTALLROOT/src/(cmd|lib) hierarchy.
|
||||
|
||||
The files below may appear on the shipment side, the installation side,
|
||||
or both. <installer-login> and <shipper-system> are defined in the
|
||||
shipment mail announcement.
|
||||
|
||||
Each shipment is identified by a two part version number [R]YYMMDD
|
||||
|
||||
R release -- if specified then it must match for compatibility
|
||||
YYMMDD shipment year, month and day number
|
||||
|
||||
/var/spool/uucppublic/<installer-login>/<shipper-system> directory hierarchy:
|
||||
|
||||
<shipper-login>.<YYMMDD> shipment control directory
|
||||
<shipper-login>.<YYMMDD>/manifest list of all files in shipment
|
||||
|
||||
$INSTALLROOT directory hierarchy:
|
||||
|
||||
bin/ executable binaries and scripts
|
||||
include/ common header files
|
||||
lib/ object archives a common data
|
||||
man/ man page subtree
|
||||
man1/ command man pages
|
||||
man3/ library man pages
|
||||
man8/ adminstration and maintenance man pages
|
||||
src/ source subtree
|
||||
cmd/ command source
|
||||
lib/ library source
|
||||
ship/ shipment and installation info
|
||||
|
||||
$INSTALLROOT/ship contents:
|
||||
|
||||
README installation info
|
||||
!<mach_user> shipment installation message for machine!user
|
||||
ship.body optional shipment announcement main body
|
||||
ship.head optional shipment announcement header
|
||||
ship.tail optional shipment announcement trailer
|
||||
shipcost show relative cost of delta/update shipment
|
||||
shipcrate crate all components for shipout
|
||||
shipin unbundle, build and install shipment
|
||||
shiplist shipout using name-tool list
|
||||
shipop shipin/shipout support executable
|
||||
shipout split and send shipment
|
||||
shipslog shipment log and recipient address info
|
||||
shipswab clean old stuff from the ship area
|
||||
shipyard shipment support tools component name
|
||||
lib* library components
|
||||
* command components
|
||||
|
||||
$INSTALLROOT/ship/<component> contents:
|
||||
|
||||
<[R]YYMMDD> information for the <[R]YYMMDD> shipment
|
||||
base link to the newest pax base archive
|
||||
delta link to the newest pax delta archive
|
||||
in.log shipin log
|
||||
items required components (excluding this one)
|
||||
list optional list of persons to send to
|
||||
message optional message to include in shipment announcement
|
||||
owner mail address for installation report
|
||||
release the the current shipment release number
|
||||
report optional list of $INSTALLROOT relative files to report
|
||||
|
||||
$INSTALLROOT/ship/<component>/<[R]YYMMDD> contents:
|
||||
|
||||
<[R]YYMMDD> pax delta archive for ../[R]YYMMDD/base
|
||||
<[R]YYMMDD>.<NNN> delta archive split for uucp
|
||||
BUILT present if release build succeeded
|
||||
ERROR present if release build failed
|
||||
GENERATED present if base archive was generated from a delta
|
||||
UNCRATED present if release uncrate succeeded
|
||||
base pax base archive
|
||||
base.<NNN> base archive split for uucp
|
||||
items items for this release
|
||||
message message for this release
|
||||
owner owner for this release
|
||||
report report for this release
|
||||
|
||||
Each component $NAME is extracted into either $INSTALLROOT/src/lib/$NAME
|
||||
or $INSTALLROOT/src/cmd/$NAME. The following are attempted, in order,
|
||||
to build and install $NAME under $INSTALLROOT:
|
||||
|
||||
$INSTALLROOT/bin/nmake -f Makefile install
|
||||
mamexec install < Mamfile # mamexec is built into ship/shipin
|
||||
make -f makefile install
|
||||
sh Makescript
|
||||
|
||||
where Mamfile, Makescript and makefile are usually generated from the
|
||||
corresponding nmake Makefile.
|
||||
|
||||
Glenn Fowler ulysses!gsf
|
||||
David Korn ulysses!dgk
|
||||
@@ -1,5 +0,0 @@
|
||||
AT&T Bell Laboratories
|
||||
Advanced Software Technology Department
|
||||
{ulysses,attmail}!dgk
|
||||
dgk@ulysses.att.com
|
||||
David Korn 908-582-7975
|
||||
@@ -1 +0,0 @@
|
||||
libcmd libast
|
||||
@@ -1 +0,0 @@
|
||||
liszt!easy!liszt!easy!usl!att!gryphon!dgk
|
||||
@@ -1,5 +0,0 @@
|
||||
AT&T Bell Laboratories
|
||||
Advanced Software Technology Department
|
||||
{ulysses,attmail}!dgk
|
||||
dgk@ulysses.att.com
|
||||
David Korn 908-582-7975
|
||||
@@ -1 +0,0 @@
|
||||
libcmd libast
|
||||
@@ -1 +0,0 @@
|
||||
liszt!easy!liszt!easy!usl!att!gryphon!dgk
|
||||
@@ -1,5 +0,0 @@
|
||||
AT&T Bell Laboratories
|
||||
Advanced Software Technology Department
|
||||
{research,attmail}!dgk
|
||||
dgk@research.att.com
|
||||
David Korn 908-582-7975
|
||||
@@ -1 +0,0 @@
|
||||
libcmd libast
|
||||
@@ -1,32 +0,0 @@
|
||||
The is the fourth point release for ksh-93. The RELEASEa
|
||||
file contains a list of changes since the first release for ksh-93.
|
||||
The file RELEASE lists the major changes since ksh-88. I have updated
|
||||
the man page, sh.1, and the introductory memo, sh.memo. I have also
|
||||
started to write a guideline for adding runtime builtins, builtins.mm.
|
||||
This release should correspond very closely to the information in the
|
||||
New KornShell Command and Programming Language book, by Bolsky
|
||||
and Korn.
|
||||
|
||||
This official release is being distributed and supported by the
|
||||
Software Technology Center. They are the distributor of
|
||||
ksh93 within AT&T and will provide support. I will only be
|
||||
supplying ksh93 for research needs and for machine architectures
|
||||
that are not supported by the Software Technology Center.
|
||||
You can contact the STC by sending mail to ksh@mozart.att.com.
|
||||
|
||||
I have fixed most of the bugs that have been reported in
|
||||
the previous release. Let me know about any remaining bugs.
|
||||
|
||||
There continues to be very few reports of compatibility
|
||||
problems. The file COMPATIBILITY lists the known incompatibilities.
|
||||
Please let me know about any script which runs under ksh-88 but
|
||||
does not run under ksh-93.
|
||||
|
||||
Please look at the man page (troff -man) and the sh.memo
|
||||
file (troff -mm) and let me know what problems you find.
|
||||
|
||||
I encourage you to run ksh -n script on each of your scripts
|
||||
since the -n option produces warning messages for obsolete
|
||||
features that you are using in the script. The file
|
||||
OBSOLETE, written by Kevin Wall, contains a list of
|
||||
obsolete features.
|
||||
@@ -1 +0,0 @@
|
||||
dgk
|
||||
@@ -1,146 +0,0 @@
|
||||
.SA 1
|
||||
.sp 2
|
||||
.H 1 "KSH-93 - The KornShell Command and Programming Language"
|
||||
.sp 2
|
||||
.al
|
||||
.P
|
||||
KSH-93 is the most recent version of the KornShell Language
|
||||
described in
|
||||
"The KornShell Command and Programming Language,"
|
||||
by Morris Bolsky and David Korn of AT&T Bell Laboratories.
|
||||
The KornShell is a shell programming language,
|
||||
which is upward compatible with "sh" (the Bourne Shell),
|
||||
and is intended to conform to the IEEE P1003.2/ISO 9945.2 Shell and
|
||||
Utilities standard.
|
||||
KSH-93 provides an enhanced programming environment in
|
||||
addition to the major command-entry features of the BSD
|
||||
shell "csh". With KSH-93, medium-sized programming tasks can be
|
||||
performed at shell-level without a significant loss in performance.
|
||||
In addition, "sh" scripts can be run on KSH-93 without modification.
|
||||
.P
|
||||
The code should conform to the IEEE POSIX 1003.1 standard and to the
|
||||
proposed ANSI-C standard so that it should be portable to all
|
||||
such systems. Like the previous version, KSH-88,
|
||||
it is designed to accept eight bit character sets
|
||||
transparently, thereby making it internationally compatible.
|
||||
It can support multi-byte characters sets with some characteristics
|
||||
of the character set given at run time.
|
||||
.P
|
||||
KSH-93 provides the following features, many of which were also inherent
|
||||
in KSH-88:
|
||||
.BL
|
||||
.LI
|
||||
Enhanced Command Re-entry Capability: The KSH-93 history
|
||||
function records commands entered at any shell level and stores
|
||||
them, up to a user-specified limit, even after you log off.
|
||||
This allows you to re-enter long commands with a few keystrokes
|
||||
- even those commands you entered yesterday.
|
||||
The history file allows for eight bit characters in
|
||||
commands and supports essentially unlimited size histories.
|
||||
.LI
|
||||
In-line Editing: In "sh", the only way to fix mistyped
|
||||
commands is to backspace or retype the line. KSH-93 allows you
|
||||
to edit a command line using a choice of EMACS-TC or "vi"
|
||||
functions.
|
||||
You can use the in-line editors to complete filenames as
|
||||
you type them.
|
||||
You may also use this editing feature when entering
|
||||
command lines from your history file.
|
||||
A user can capture keystrokes and rebind keys to customize the
|
||||
editing interface.
|
||||
.LI
|
||||
Extended I/O Capabilities: KSH-93 provides several I/O
|
||||
capabilities not available in "sh", including the ability to:
|
||||
.BL
|
||||
.LI
|
||||
specify a file descriptor for input and output
|
||||
.LI
|
||||
start up and run co-processes
|
||||
.LI
|
||||
produce a prompt at the terminal before a read
|
||||
.LI
|
||||
easily format and interpret responses to a menu
|
||||
.LI
|
||||
echo lines exactly as output without escape processing
|
||||
.LI
|
||||
format output using printf formats.
|
||||
.LI
|
||||
read and echo lines ending in "\e".
|
||||
.LE
|
||||
.LI
|
||||
Improved performance: KSH-93 executes many scripts faster
|
||||
than the System V Bourne shell. A major reason for this is
|
||||
that many of the standard utilities are built-in.
|
||||
To reduce the time to initiate a command, KSH-93 allows
|
||||
commands to be added as built-ins at run time
|
||||
on systems that support dynamic loading such as System V Release 4.
|
||||
.LI
|
||||
Arithmetic: KSH-93 allows you to do integer arithmetic in any
|
||||
base from two to sixty-four. You can also do double
|
||||
precision floating point arithmetic.
|
||||
Almost the complete set of C language operators are available
|
||||
with the same syntax and precedence.
|
||||
Arithmetic expressions can be used to as an argument expansion
|
||||
or as a separate command.
|
||||
In addition there is an arithmetic for command that works
|
||||
like the for statement in C.
|
||||
.LI
|
||||
Arrays: KSH-93 supports both indexed and associative arrays.
|
||||
The subscript for an indexed array is an arithmetic expression,
|
||||
whereas, the subscript for an associative array is a string.
|
||||
.LI
|
||||
Shell Functions and Aliases: Two mechanisms - functions and
|
||||
aliases - can be used to assign a user-selected identifier to
|
||||
an existing command or shell script.
|
||||
Functions allow local variables and provide scoping
|
||||
for exception handling.
|
||||
Functions can be searched for and loaded on first reference the
|
||||
way scripts are.
|
||||
.LI
|
||||
Substring Capabilities: KSH-93 allows you to create a
|
||||
substring of any given string either by specifying the starting
|
||||
offset and length, or by stripping off leading
|
||||
or trailing substrings during parameter substitution.
|
||||
You can also specify attributes, such as upper and lower case,
|
||||
field width, and justification to shell variables.
|
||||
.LI
|
||||
More pattern matching capabilities: KSH-93 allows you to specify
|
||||
extended regular expressions for file and string matches.
|
||||
.LI
|
||||
KSH-93 uses a hierarchal name space for variables.
|
||||
Compound variables can be defined and variables can
|
||||
be passed by reference. In addition, each variable
|
||||
can have one or more disciplines associated with
|
||||
it to intercept assignments and references.
|
||||
.LI
|
||||
Improved debugging: KSH-93 can generate line numbers on execution
|
||||
traces. Also, I/O redirections are now traced.
|
||||
There is a DEBUG trap that gets evaluated after each command
|
||||
so that errors can be localized.
|
||||
.LI
|
||||
Job Control: On systems that support job control, including
|
||||
System V Release 4, KSH-93
|
||||
provides a job-control mechanism almost identical to that of
|
||||
the BSD "csh", version 4.1.
|
||||
This feature allows you
|
||||
to stop and restart programs, and to move programs between the
|
||||
foreground and the background.
|
||||
.LI
|
||||
Added security:
|
||||
KSH-93 can execute scripts which do not have read permission
|
||||
and scripts which have the setuid and/or setgid set when
|
||||
invoked by name, rather than as an argument to the shell.
|
||||
It is possible to log or control the execution of setuid and/or
|
||||
setgid scripts.
|
||||
The noclobber option prevents you from accidentally erasing
|
||||
a file by redirecting to an existing file.
|
||||
.LI
|
||||
KSH-93 can be extended by adding built-in commands at run time.
|
||||
In addition, KSH-93 can be used as a library that can
|
||||
be embedded into an application to allow scripting.
|
||||
.LE
|
||||
Documentation for KSH-93 consists of an "Introduction to KSH-93",
|
||||
"Compatibility with the Bourne Shell" and a manual page and a
|
||||
README file. In addition, the "New KornShell Command and Programming
|
||||
Language," book is available from Prentice Hall.
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
src/cmd/ksh93/FEATURE/options
|
||||
src/cmd/ksh93/FEATURE/ttys
|
||||
src/cmd/ksh93/FEATURE/dymamic
|
||||
src/cmd/ksh93/FEATURE/externs
|
||||
src/cmd/ksh93/FEATURE/poll
|
||||
@@ -1,5 +0,0 @@
|
||||
AT&T Bell Laboratories
|
||||
Advanced Software Technology Department
|
||||
{ulysses,attmail}!dgk
|
||||
dgk@ulysses.att.com
|
||||
David Korn 908-582-7975
|
||||
@@ -1,6 +0,0 @@
|
||||
type=proprietary
|
||||
corporation=AT&T
|
||||
company="Bell Laboratories"
|
||||
organization="Software Engineering Research Department"
|
||||
license=http://www.research.att.com/orgs/ssr/book/reuse
|
||||
contact=gsf@research.att.com
|
||||
@@ -1 +0,0 @@
|
||||
gsf
|
||||
@@ -1,5 +0,0 @@
|
||||
AT&T Bell Laboratories
|
||||
Software Engineering Research Department
|
||||
advsoft@research.att.com
|
||||
Randy Hackbarth 908-582-5245
|
||||
Dave Belanger 908-582-7427
|
||||
@@ -1 +0,0 @@
|
||||
liszt!easy!liszt!easy!usl!att!gryphon!gsf
|
||||
@@ -1,5 +0,0 @@
|
||||
AT&T Bell Laboratories
|
||||
Software Engineering Research Department
|
||||
advsoft@research.att.com
|
||||
Randy Hackbarth 908-582-5245
|
||||
Dave Belanger 908-582-7427
|
||||
@@ -1 +0,0 @@
|
||||
libAST
|
||||
@@ -1 +0,0 @@
|
||||
liszt!easy!liszt!easy!usl!att!gryphon!gsf
|
||||
@@ -1,5 +0,0 @@
|
||||
AT&T Bell Laboratories
|
||||
Software Engineering Research Department
|
||||
advsoft@research.att.com
|
||||
Randy Hackbarth 908-582-5245
|
||||
Dave Belanger 908-582-7427
|
||||
@@ -1 +0,0 @@
|
||||
lib0ast
|
||||
@@ -1 +0,0 @@
|
||||
liszt!easy!liszt!easy!usl!att!gryphon!gsf
|
||||
@@ -1,6 +0,0 @@
|
||||
type=proprietary
|
||||
corporation=AT&T
|
||||
company="Bell Laboratories"
|
||||
organization="Software Engineering Research Department"
|
||||
license=http://www.research.att.com/orgs/ssr/book/reuse
|
||||
contact=gsf@research.att.com
|
||||
@@ -1 +0,0 @@
|
||||
lib0ast
|
||||
@@ -1 +0,0 @@
|
||||
gsf
|
||||
@@ -1,5 +0,0 @@
|
||||
AT&T Bell Laboratories
|
||||
Software Engineering Research Department
|
||||
advsoft@research.att.com
|
||||
Randy Hackbarth 908-582-5245
|
||||
Dave Belanger 908-582-7427
|
||||
@@ -1 +0,0 @@
|
||||
libast
|
||||
@@ -1 +0,0 @@
|
||||
liszt!easy!liszt!easy!usl!att!gryphon!gsf
|
||||
@@ -1,5 +0,0 @@
|
||||
AT&T Bell Laboratories
|
||||
Software Engineering Research Department
|
||||
advsoft@research.att.com
|
||||
Randy Hackbarth 908-582-5245
|
||||
Dave Belanger 908-582-7427
|
||||
@@ -1 +0,0 @@
|
||||
libast
|
||||
@@ -1 +0,0 @@
|
||||
liszt!easy!liszt!easy!usl!att!gryphon!gsf
|
||||
@@ -1,6 +0,0 @@
|
||||
type=proprietary
|
||||
corporation=AT&T
|
||||
company="Bell Laboratories"
|
||||
organization="Software Engineering Research Department"
|
||||
license=http://www.research.att.com/orgs/ssr/book/reuse
|
||||
contact=gsf@research.att.com
|
||||
@@ -1 +0,0 @@
|
||||
lib0ast
|
||||
@@ -1 +0,0 @@
|
||||
gsf
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user