From 3152b0bc4e5f47beed3fc78a78f0744bc2906282 Mon Sep 17 00:00:00 2001 From: Chase Date: Sun, 15 Dec 2019 10:19:37 -0600 Subject: [PATCH] dtksh: remove unused files and functions --- cde/programs/dtksh/basetbl.c | 124 --- cde/programs/dtksh/basetbl.h | 51 -- cde/programs/dtksh/define.c | 346 --------- cde/programs/dtksh/define.h | 63 -- cde/programs/dtksh/docall.c | 774 ------------------- cde/programs/dtksh/docall.h | 73 -- cde/programs/dtksh/dtksh.c | 137 ---- cde/programs/dtksh/exextra.h | 60 -- cde/programs/dtksh/exksh_prpar.c | 662 ---------------- cde/programs/dtksh/exksh_prpar.h | 98 --- cde/programs/dtksh/exksh_tbls.c | 1201 ------------------------------ cde/programs/dtksh/exksh_tbls.h | 90 --- cde/programs/dtksh/extra.c | 33 - cde/programs/dtksh/genlib.c | 258 ------- cde/programs/dtksh/genlib.h | 75 -- cde/programs/dtksh/lclvars | 72 -- cde/programs/dtksh/libdtkxm.list | 207 ----- cde/programs/dtksh/misc.c | 176 ----- cde/programs/dtksh/misc.h | 62 -- cde/programs/dtksh/struct.c | 741 ------------------ cde/programs/dtksh/struct.h | 97 --- cde/programs/dtksh/symbolic.c | 180 ----- cde/programs/dtksh/symbolic.h | 61 -- cde/programs/dtksh/variables.c | 180 ----- cde/programs/dtksh/xmdtksh.rc | 13 - cde/programs/dtksh/xmname.c | 77 -- 26 files changed, 5911 deletions(-) delete mode 100644 cde/programs/dtksh/basetbl.c delete mode 100644 cde/programs/dtksh/basetbl.h delete mode 100644 cde/programs/dtksh/define.c delete mode 100644 cde/programs/dtksh/define.h delete mode 100644 cde/programs/dtksh/docall.c delete mode 100644 cde/programs/dtksh/docall.h delete mode 100644 cde/programs/dtksh/dtksh.c delete mode 100644 cde/programs/dtksh/exextra.h delete mode 100644 cde/programs/dtksh/exksh_prpar.c delete mode 100644 cde/programs/dtksh/exksh_prpar.h delete mode 100644 cde/programs/dtksh/exksh_tbls.c delete mode 100644 cde/programs/dtksh/exksh_tbls.h delete mode 100644 cde/programs/dtksh/genlib.c delete mode 100644 cde/programs/dtksh/genlib.h delete mode 100644 cde/programs/dtksh/lclvars delete mode 100644 cde/programs/dtksh/libdtkxm.list delete mode 100644 cde/programs/dtksh/misc.c delete mode 100644 cde/programs/dtksh/misc.h delete mode 100644 cde/programs/dtksh/struct.c delete mode 100644 cde/programs/dtksh/struct.h delete mode 100644 cde/programs/dtksh/symbolic.c delete mode 100644 cde/programs/dtksh/symbolic.h delete mode 100644 cde/programs/dtksh/variables.c delete mode 100755 cde/programs/dtksh/xmdtksh.rc delete mode 100644 cde/programs/dtksh/xmname.c diff --git a/cde/programs/dtksh/basetbl.c b/cde/programs/dtksh/basetbl.c deleted file mode 100644 index 3302de7e..00000000 --- a/cde/programs/dtksh/basetbl.c +++ /dev/null @@ -1,124 +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: basetbl.c /main/3 1995/11/01 15:50:27 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. */ - -#include "stdio.h" -#include -#include "exksh.h" -#include "msgs.h" - -/* - * Declare all strings in one place to avoid duplication - */ -char STR_uint[] = "uint"; -static char STR_intp[] = "intp"; -static char STR_int[] = "int"; -static char STR_dint[] = "dint"; -char STR_unsigned_long[] = "unsigned_long"; -static char STR_longp[] = "longp"; -static char STR_long[] = "long"; -static char STR_dlong[] = "dlong"; -static char STR_ushort[] = "ushort"; -static char STR_short[] = "short"; -static char STR_dshort[] = "dshort"; -static char STR_unchar[] = "unchar"; -static char STR_char[] = "char"; -char STR_string_t[] = "string_t"; - -struct memtbl T_uint[] = { - { (char *) STR_uint, (char *) STR_uint, K_INT, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(uint), 0 }, NULL -}; -struct memtbl T_dint[] = { - { (char *) STR_dint, (char *) STR_dint, K_DINT, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(int) }, NULL -}; -struct memtbl T_int[] = { - { (char *) STR_int, (char *) STR_int, K_INT, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(int) }, NULL -}; -struct memtbl T_intp[] = { - { (char *) STR_intp, (char *) STR_intp, K_INT, F_SIMPLE, -1, 1, 0, 0, 0, 0, sizeof(int) }, NULL -}; -struct memtbl T_unsigned_long[] = { - { (char *) STR_unsigned_long, (char *) STR_unsigned_long, K_LONG, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(unsigned long), 0 }, NULL -}; -struct memtbl T_long[] = { - { (char *) STR_long, (char *) STR_long, K_LONG, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(long) }, NULL -}; -struct memtbl T_dlong[] = { - { (char *) STR_dlong, (char *) STR_dlong, K_DLONG, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(long) }, NULL -}; -struct memtbl T_longp[] = { - { (char *) STR_longp, (char *) STR_longp, K_LONG, F_SIMPLE, -1, 1, 0, 0, 0, 0, sizeof(long) }, NULL -}; -struct memtbl T_ushort[] = { - { (char *) STR_ushort, (char *) STR_ushort, K_SHORT, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(ushort) }, NULL -}; -struct memtbl T_short[] = { - { (char *) STR_dshort, (char *) STR_dshort, K_DSHORT, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(short) }, NULL -}; -struct memtbl T_dshort[] = { - { (char *) STR_short, (char *) STR_short, K_SHORT, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(short) }, NULL -}; -struct memtbl T_unchar[] = { - { (char *) STR_unchar, (char *) STR_unchar, K_CHAR, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(unsigned char) }, NULL -}; -struct memtbl T_char[] = { - { (char *) STR_char, (char *) STR_char, K_CHAR, F_SIMPLE, -1, 0, 0, 0, 0, 0, sizeof(char) }, NULL -}; -struct memtbl T_string_t[] = { - { (char *) STR_string_t, (char *) STR_string_t, K_STRING, F_TYPE_IS_PTR, -1, 0, 0, -1, 0, 0, sizeof(char *) }, NULL -}; -struct memtbl *basemems[] = { - T_uint, - T_int, - T_dint, - T_intp, - T_unsigned_long, - T_long, - T_dlong, - T_longp, - T_ushort, - T_short, - T_dshort, - T_unchar, - T_char, - T_string_t, - NULL -}; - -struct symarray basedefs[] = { - { "PRDECIMAL", PRDECIMAL }, - { "PRHEX", PRHEX }, - { "PRMIXED", PRMIXED }, - { "PRMIXED_SYMBOLIC", PRMIXED_SYMBOLIC }, - { "PRNAMES", PRNAMES }, - { "PRSYMBOLIC", PRSYMBOLIC }, - { NULL, 0 } -}; diff --git a/cde/programs/dtksh/basetbl.h b/cde/programs/dtksh/basetbl.h deleted file mode 100644 index 253d2042..00000000 --- a/cde/programs/dtksh/basetbl.h +++ /dev/null @@ -1,51 +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: basetbl.h /main/3 1995/11/01 15:50:37 rswiston $ */ -/************************************<+>************************************* - **************************************************************************** - ** - ** File: basetbl.h - ** - ** Project: CDE - ** - ** Description: Public include file for basetbl.c - ** - ** - ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 - ** by Hewlett-Packard Company - ** - ** - ** - **************************************************************************** - ************************************<+>*************************************/ - -#ifndef _Dtksh_basetbl_h -#define _Dtksh_basetbl_h - -extern struct memtbl *basemems[]; -extern struct symarray basedefs[]; -extern struct memtbl T_unsigned_long[]; -extern struct memtbl T_string_t[]; - -#endif /* _Dtksh_basetbl_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/define.c b/cde/programs/dtksh/define.c deleted file mode 100644 index 6d145343..00000000 --- a/cde/programs/dtksh/define.c +++ /dev/null @@ -1,346 +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: define.c /main/4 1995/11/01 15:51:03 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. */ - -#include "stdio.h" -#include "exksh.h" /* which includes sys/types.h */ -#include -#include -#include -#include -#include "misc.h" -#include "docall.h" -#include "basetbl.h" -#include "msgs.h" - - - -static growdef( void ) ; -static int add_deflist( - struct symarray *defptr, - char *prefix) ; -static def_init( void ) ; - - - -static struct symarray *Dyndef = NULL; -static int Ndyndef = 0; -static int Sdyndef = 0; -static char defInited = 0; - -static char use[] = "0x%x"; -static char use2[] = "%s=0x%x"; - -struct deflist { - char *prefix; - int size; - struct symarray *defs; -}; - -struct deflist *Deflist = NULL; -int Ndeflist; - - -static -growdef( void ) -{ - int i; - - if (!defInited) - def_init(); - - if (!(Dyndef = (struct symarray *) realloc(Dyndef, (Sdyndef + 20) * - sizeof(struct symarray)))) - { - return(SH_FAIL); - } - Deflist->defs = Dyndef; - memset(((char *) Dyndef) + Sdyndef * sizeof(struct symarray), '\0', - 20 * sizeof(struct symarray)); - Sdyndef += 20; -} - -int -do_define( - int argc, - char **argv ) -{ - int i, argstart, redo; - char *name; - struct symarray *found, dummy; - - if (!defInited) - def_init(); - - if (argc > 1 && C_PAIR(argv[1], '-', 'R')) - { - redo = 0; - argstart = 2; - } - else - { - argstart = 1; - redo = 1; - } - - if ((argstart +1) >= argc) - XK_USAGE(argv[0]); - - name = argv[argstart++]; - dummy.str = name; - found = (struct symarray *) bsearch((char *) &dummy, Dyndef, Ndyndef, - sizeof(struct symarray), symcomp); - - if (found) - { - if (!redo) - return(SH_SUCC); - i = found - Dyndef; - } - else - { - if (Sdyndef == Ndyndef) - growdef(); - Ndyndef++; - if (Ndyndef > 1) - for (i = Ndyndef - 1; i > 0; i--) - { - if (strcmp(name, Dyndef[i - 1].str) >= 0) - break; - Dyndef[i] = Dyndef[i - 1]; - } - else - i = 0; - Dyndef[i].str = strdup(name); - Deflist->size++; - } - RIF(xk_par_int(argv + argstart, &Dyndef[i].addr, NULL)); - return(SH_SUCC); -} - -int -fdef( - char *str, - unsigned long *val ) -{ - struct symarray *found, dummy; - int i; - - dummy.str = str; - if (!Deflist) - return(0); - - for (i = 0; i < Ndeflist; i++) - { - if (Deflist[i].defs) - { - if (Deflist[i].size < 0) - { - found = (struct symarray *) lfind((char *) &dummy, Deflist[i].defs, - (unsigned int *) &Deflist[i].size, sizeof(struct symarray), - symcomp); - } - else - { - found = (struct symarray *) bsearch((char *) &dummy, - Deflist[i].defs, Deflist[i].size, sizeof(struct symarray), - symcomp); - } - - if (found != NULL) - { - *val = found->addr; - return(1); - } - } - } - return(0); -} - -int -do_deflist( - int argc, - char **argv ) -{ - int i, j; - char *prefix = NULL; - struct symarray *defptr = NULL; - char * errmsg; - - for (i = 1; (i < argc) && argv[i]; i++) - { - if (argv[i][0] == '-') - { - for (j = 1; argv[i][j]; j++) - { - switch(argv[i][j]) - { - case 'p': - { - if (argv[i][j + 1]) - { - prefix = argv[i] + j; - j += strlen(prefix) - 2; - } - else - { - prefix = argv[++i]; - j = strlen(prefix) - 1; - } - } - } - } - } - else - { - if ((defptr = (struct symarray *) getaddr(argv[i])) == NULL) - { - errmsg=strdup(GETMESSAGE(3,1, - "Unable to locate the definition list '%s'")); - printerrf(argv[0], errmsg, argv[i], NULL, NULL, - NULL, NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - } - } - - if (defptr == NULL) - { - XK_USAGE(argv[0]); - } - - for (i = 0; i < Ndeflist; i++) - if ((Deflist[i].defs == defptr) && - (!prefix || (strcmp(Deflist[i].prefix, prefix) == 0))) - { - return(SH_SUCC); - } - - return(add_deflist(defptr, prefix)); -} - -static int -add_deflist( - struct symarray *defptr, - char *prefix ) -{ - int i; - - if (!Deflist) - { - Deflist = (struct deflist *) malloc((Ndeflist + 1) * - sizeof(struct deflist)); - } - else - { - Deflist = (struct deflist *) realloc(Deflist, (Ndeflist + 1) * - sizeof(struct deflist)); - } - - if (!Deflist) - return(SH_FAIL); - - Deflist[Ndeflist].defs = defptr; - Deflist[Ndeflist].prefix = strdup(prefix); - if (!defptr[0].str) - Deflist[Ndeflist].size = 0; - else - { - for (i = 1; defptr[i].str && defptr[i].str[0]; i++) - if (symcomp((void *) (defptr + i), (void *) (defptr + i - 1)) < 0) - break; - - if (!(defptr[i].str && defptr[i].str[0])) - Deflist[Ndeflist].size = i; - else - Deflist[Ndeflist].size = -1; - } - Ndeflist++; - return(SH_SUCC); -} - -int -do_finddef( - int argc, - char **argv ) -{ - unsigned long found; - struct symarray dummy; - char * errmsg; - - if (argc < 2) - XK_USAGE(argv[0]); - - if (fdef(argv[1], &found)) - { - if (argc >= 3) - { - char buf[50]; - - sprintf(buf, use2, argv[2], found); - env_set(buf); - } - else - { - sprintf(xk_ret_buffer, use, found); - xk_ret_buf = xk_ret_buffer; - } - return(SH_SUCC); - } - errmsg = strdup(GETMESSAGE(3, 2, "Unable to locate the define '%s'")); - printerrf(argv[0], errmsg, argv[1], NULL, NULL, NULL, - NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); -} - -static -def_init( void ) -{ - char * errhdr; - char * errmsg; - - defInited = 1; - if (!(Dyndef = (struct symarray *) malloc(20 * sizeof(struct symarray)))) - { - errhdr = strdup(GetSharedMsg(DT_ERROR)); - errmsg = strdup(GetSharedMsg(DT_ALLOC_FAILURE)); - printerr(errhdr, errmsg, NULL); - free(errhdr); - free(errmsg); - exit(1); - } - Dyndef[0].str = NULL; - Sdyndef = 20; - Ndyndef = 0; - add_deflist(Dyndef, "dynamic"); - add_deflist(basedefs, "base"); -} diff --git a/cde/programs/dtksh/define.h b/cde/programs/dtksh/define.h deleted file mode 100644 index 699cbd7b..00000000 --- a/cde/programs/dtksh/define.h +++ /dev/null @@ -1,63 +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: define.h /main/4 1995/11/01 15:51:12 rswiston $ */ -/************************************<+>************************************* - **************************************************************************** - ** - ** File: define.h - ** - ** Project: CDE - ** - ** Description: Public include file for define.c - ** - ** - ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 - ** by Hewlett-Packard Company - ** - ** - ** - **************************************************************************** - ************************************<+>*************************************/ - -#ifndef _Dtksh_define_h -#define _Dtksh_define_h - - - -extern int do_define( - int argc, - char **argv) ; -extern int fdef( - char *str, - unsigned long *val) ; -extern int do_deflist( - int argc, - char **argv) ; -extern int do_finddef( - int argc, - char **argv) ; - - - -#endif /* _Dtksh_define_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/docall.c b/cde/programs/dtksh/docall.c deleted file mode 100644 index f9367682..00000000 --- a/cde/programs/dtksh/docall.c +++ /dev/null @@ -1,774 +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 - */ -/* $TOG: docall.c /main/7 1998/04/17 11:22:59 mgreess $ */ -/* 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. */ - -#include "stdio.h" -#include "exksh.h" /* which includes sys/types.h */ -#include "docall.h" -#include -#include -#include -#include -#include "struct.h" -#include "misc.h" -#include "exksh_tbls.h" -#include "basetbl.h" -#include "msgs.h" - -#include -#include -#ifdef X_NOT_STDC_ENV -extern int errno; -#endif - -static int allprint( - unsigned long *pargs, - memtbl_t *tbls) ; -static pp_usage( void ) ; -static int call_postprompt( - char * argv0, - unsigned long *pargs, - memtbl_t *tbls, - int *freeit) ; -static long get_prdebug( void ) ; -static long set_prdebug( - long n) ; -static int myprompt( - char *prompt) ; - - - -struct memtbl Null_tbl = { NULL }; - -static char use[] = "0x%x"; -static char use2[] = "%s=0x%x"; - -int Xk_errno = 0; - -int Xkdebug = 0; - -char xk_ret_buffer[100]; -char *xk_ret_buf = xk_ret_buffer; -struct Bfunction xk_prdebug = { get_prdebug, set_prdebug }; - -int -do_field_get( - int argc, - char **argv ) -{ - char buf[BIGBUFSIZ], *p, *bufstart; - char *fld, *type, *ptr, *ptr2, **pptr2; - memtbl_t tbl[2], *tbl2; - int i; - char *targvar = NULL; - char fail = 0, always_ptr; - char * errmsg; - - always_ptr = 0; - for (i = 1; (i < argc) && argv[i] != NULL && argv[i][0] == '-'; i++) { - switch(argv[i][1]) { - case 'p': - always_ptr = 1; - break; - case 'v': - targvar = argv[++i]; - break; - } - } - - if ((i + 1) >= argc) - { - XK_USAGE(argv[0]); - } - - type = argv[i++]; - if (!isdigit(argv[i][0])) - always_ptr = 1; - ptr = (char *) getaddr(argv[i++]); - tbl[1] = Null_tbl; - if (!type || !ptr || (parse_decl(argv[0], tbl, type, 1) == FAIL)) { - if (!type || !ptr) - { - XK_USAGE(argv[0]); - } - else - { - errmsg = strdup(GETMESSAGE(4,1, - "Cannot parse the structure named '%s'; it may not have been defined")); - printerrf(argv[0], errmsg, type, NULL, NULL, - NULL, NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - } - if ((always_ptr || !IS_SIMPLE(tbl)) && !tbl->ptr && !(tbl->flags & F_TYPE_IS_PTR)) - tbl->ptr = 1; - else while (tbl->ptr > 1) { - ptr = *((void **) ptr); - tbl->ptr--; - } - Pr_tmpnonames = 1; - p = buf; - if (targvar) { - strcpy(p, targvar); - p += strlen(p); - *p++ = '='; - bufstart = p; - } - else - bufstart = buf; - while ((i < argc) && (fld = argv[i++])) { - if (p != bufstart) - *p++ = targvar ? ' ' : '\n'; - tbl2 = tbl; - ptr2 = ptr; - pptr2 = &ptr2; - if (!C_PAIR(fld, '.', '\0')) - tbl2 = ffind(tbl, fld, (char **)&pptr2); - if (!tbl2) { - errmsg = strdup(GetSharedMsg(DT_BAD_FIELD_NAME)); - printerrf(argv[0], errmsg, fld, type, - NULL, NULL, NULL, NULL, NULL, NULL); - free(errmsg); - fail = 1; - break; - } - if (XK_PRINT(tbl2, &p, (char *)pptr2, 0, 0, NULL, - all_tbl_find) == FAIL) - { - errmsg=strdup(GETMESSAGE(4,2, - "Cannot print the field '%s' in structure '%s'")); - printerrf(argv[0], errmsg, fld, type, - NULL, NULL, NULL, NULL, NULL, NULL); - free(errmsg); - fail = 1; - break; - } - } - if (!fail) { - *p = '\0'; - if (targvar) - env_set(buf); - else - ALTPUTS(buf); - } - Pr_tmpnonames = 0; - return(fail ? SH_FAIL : SH_SUCC); -} - -static int -allprint( - unsigned long *pargs, - memtbl_t *tbls ) -{ - char buf[BIGBUFSIZ], *p; - int i; - char * errmsg; - - for (i = 0; tbls[i].name; i++) { - errmsg = strdup(GETMESSAGE(4,3, "Argument %d (type %s):\n\t")); - printf(errmsg, i + 1, tbls[i].name); - free(errmsg); - p = buf; - XK_PRINT(tbls + i, &p, (char *)(pargs + i), 0, 0, NULL, - all_tbl_find); - ALTPUTS(buf); - } -} - -static -pp_usage( void ) -{ - char * errmsg; - - errmsg = strdup(GETMESSAGE(4,4, - "Please enter p(rint), s(end), q(uit) or field=value\n")); - printf(errmsg); - free(errmsg); -} - -static int -call_postprompt( - char * argv0 , - unsigned long *pargs, - memtbl_t *tbls, - int *freeit ) -{ - char buf[BUFSIZ]; - char * errmsg; - char * quitStr, *printStr, *sendStr, *promptStr; - int returnVal = 0; - - quitStr = strdup(GETMESSAGE(4,5, "q")); - printStr = strdup(GETMESSAGE(4,6, "p")); - sendStr = strdup(GETMESSAGE(4,7, "s")); - promptStr = strdup(GETMESSAGE(4,8, "Postprompt: ")); - - for ( ; ; ) { - myprompt(promptStr); - strcpy(buf, quitStr); - - *buf = '\0'; - fgets(buf, sizeof(buf), stdin); - if (strlen(buf) && buf[strlen(buf)-1] == '\n') - buf[strlen(buf)-1] = '\0'; - - if (xk_Strncmp(buf, quitStr, 2) == 0) - { - errmsg=strdup(GETMESSAGE(4,9, - "Warning: command was not executed\n")); - printf(errmsg); - free(errmsg); - returnVal = 0; - break; - } - else if (xk_Strncmp(buf, printStr, 2) == 0) - allprint(pargs, tbls); - else if (xk_Strncmp(buf, sendStr, 2) == 0) - { - returnVal = 1; - break; - } - else if (!strchr(buf, '=') || - (asl_set(argv0,tbls, buf, (unsigned char **)pargs) == SH_FAIL)) - { - pp_usage(); - } - } - - free(quitStr); - free(printStr); - free(sendStr); - free(promptStr); - return(returnVal); -} - -#define ZERORET 0 -#define NONZERO 1 -#define NONNEGATIVE 2 - -/* In shell, 0 is success so, ZERORET means direct return, NONZERO means -** return the opposite of its truth value and NONNEGATIVE means return -** true if the value IS negative (since FALSE is success) -*/ -#define CALL_RETURN(RET) return(SET_RET(RET), ((ret_type == ZERORET) ? (RET) : ((ret_type == NONZERO) ? !(RET) : ((RET) < 0)))) -#define EARLY_RETURN(RET) return(SET_RET(RET)) -#define SET_RET(RET) (((int) sprintf(xk_ret_buffer, use, (RET))), (int) (xk_ret_buf = xk_ret_buffer), RET) - -int -do_call( - int argc, - char **argv ) -{ - void *pargs[MAX_CALL_ARGS]; - memtbl_t tblarray[MAX_CALL_ARGS]; - char freeit[MAX_CALL_ARGS]; - unsigned long (*func)(); - char *p; - char dorun, promptflag; - unsigned char freeval, ret_type; - int i, j, ret; - char * msg; - char * errbuf; - char * errmsg; - - promptflag = 0; - freeval = 1; - ret_type = ZERORET; - dorun = 1; - if (argc == 1) { - errmsg = strdup(GetSharedMsg(DT_NO_FUNC_NAME)); - printerr(argv[0], errmsg, NULL); - free(errmsg); - xk_usage(argv[0]); - EARLY_RETURN(1); - } - - for (j = 1; (j < argc) && argv[j][0] == '-'; j++) { - for (i = 1; argv[j][i]; i++) { - switch(argv[j][i]) { - case 'F': - /* Do not free */ - freeval = 0; - break; - case 'r': - /* reverse sense of return value */ - ret_type = NONZERO; - break; - case 'n': - /* Non-negative return value is okay */ - ret_type = NONNEGATIVE; - break; - default: - errmsg =strdup(GetSharedMsg(DT_UNKNOWN_OPTION)); - printerrf(argv[0], errmsg, - argv[j], NULL, NULL, NULL, - NULL, NULL, NULL, NULL); - free(errmsg); - xk_usage(argv[0]); - EARLY_RETURN(1); - } - } - } - if (j >= argc) { - errmsg = strdup(GetSharedMsg(DT_NO_FUNC_NAME)); - printerr(argv[0], errmsg, NULL); - free(errmsg); - xk_usage(argv[0]); - CALL_RETURN(1); - } - memset(tblarray, '\0', MAX_CALL_ARGS * sizeof(memtbl_t)); - memset(pargs, '\0', MAX_CALL_ARGS * sizeof(void *)); - memset(freeit, '\0', MAX_CALL_ARGS * sizeof(char)); - func = (unsigned long (*)()) fsym(argv[j], -1); - if (!func && ((argv[j][0] != '0') || (UPP(argv[j][1]) != 'X') || !(func = (unsigned long (*)()) strtoul(argv[j], &p, 16)) || *p)) { - errmsg = strdup(GETMESSAGE(4,10, - "Unable to locate the function '%s'")); - printerrf(argv[0], errmsg, - argv[j], NULL, NULL, NULL, NULL, NULL, NULL, NULL); - free(errmsg); - CALL_RETURN(1); - } - j++; - for (i = 0; (i < MAX_CALL_ARGS) && (j < argc) && argv[j]; j++, i++) { - char *val; - char type[100]; - - if (C_PAIR(argv[j], '+', '?')) { - promptflag = 1; - continue; - } - else if (C_PAIR(argv[j], '+', '+')) { - j++; - break; - } - if (argv[j][0] == '@') { - if (!(val = strchr(argv[j] + 1, ':'))) { - dorun = 0; - ret = -1; - break; - } - strncpy(type, argv[j] + 1, val - argv[j] - 1); - type[val - argv[j] - 1] = '\0'; - val++; - if (parse_decl(argv[0], tblarray + i, type, 1) == FAIL) - { - dorun = 0; - ret = -1; - break; - } - else { - if (!strparse(tblarray + i, - (char **)(pargs + i), val)) - { - errmsg=strdup(GETMESSAGE(4,11, - "The value descriptor '%s' does not match the definition for structure '%s'")); - printerrf(argv[0], errmsg, - val, type, NULL, NULL, NULL, - NULL, NULL, NULL); - free(errmsg); - dorun = 0; - ret = -1; - break; - } - else - freeit[i] = freeval; - } - } - else if (isdigit(argv[j][0])) { - char *p; - - p = argv[j]; - tblarray[i] = T_unsigned_long[0]; - xk_par_int(&p, pargs + i, NULL); - } - else if (strcmp(argv[j], (char *) "NULL") == 0) { - tblarray[i] = T_unsigned_long[0]; - pargs[i] = NULL; - } - else { - pargs[i] = (void *) argv[j]; - tblarray[i] = T_string_t[0]; - } - } - /* Process special arguments */ - while (j < argc) { - asl_set(argv[0], tblarray, argv[j], (unsigned char **)pargs); - j++; - } - if (dorun) { - if (!promptflag || - call_postprompt(argv[0], (unsigned long *)pargs, tblarray, - (int *)freeit)) - { - ret = (*func)(pargs[0], pargs[1], pargs[2], pargs[3], - pargs[4], pargs[5], pargs[6], pargs[7], - pargs[8], pargs[9], pargs[10], pargs[11], - pargs[12], pargs[13], pargs[14]); - } - else - ret = 0; - Xk_errno = errno; - } - for (i = 0; i < MAX_CALL_ARGS; i++) { - if (pargs[i] && freeit[i]) - { - /* There is no recourse for failure */ - XK_FREE(tblarray + i, (char *)(pargs + i), 0, 0, - all_tbl_find); - } - } - CALL_RETURN(ret); -} - -int _Prdebug; - -static long -get_prdebug( void ) -{ - return(_Prdebug); -} - -static long -set_prdebug( - long n ) -{ - _Prdebug = n; -} - - -int -asl_set( - char *argv0, - memtbl_t *tblarray, - char *desc, - unsigned char **pargs ) -{ - char *ptr; - char *val; - memtbl_t *tbl; - memtbl_t usetbl[2]; - char op; - char field[80], *fldp = field; - unsigned long intval, i, newval; - unsigned long top, bottom; - char * errmsg; - - if ((val = strchr(desc, '=')) == NULL) - return(SH_FAIL); - if (ispunct(val[-1]) && (val[-1] != ']')) { - op = val[-1]; - strncpy(field, desc, val - desc - 1); - field[val - desc - 1] = '\0'; - val++; - } - else { - op = '\0'; - strncpy(field, desc, val - desc); - field[val - desc] = '\0'; - val++; - } - if (isdigit(fldp[0])) { - top = bottom = strtoul(fldp, &fldp, 0) - 1; - if (*fldp == '.') - fldp++; - } - else { - top = 9; - bottom = 0; - } - usetbl[1] = Null_tbl; - for (i = bottom; i <= top; i++) { - usetbl[0] = tblarray[i]; - ptr = (char *) (pargs + i); - if (tbl = ffind(usetbl, fldp, &ptr)) - break; - } - if (!tbl || (i > top)) { - errmsg=strdup(GETMESSAGE(4,12, "Cannot locate the field '%s'")); - printerrf(argv0, errmsg, fldp, NULL, NULL, NULL, - NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - if (!op || !(tbl->flags & F_SIMPLE)) - { - if (XK_PARSE(tbl, &val, ptr, 0, 0, NULL, all_tbl_find) < 0) - { - errmsg = strdup(GETMESSAGE(4,13, - "Cannot set the following value for the field '%s': %s")); - printerrf(argv0, errmsg, val, NULL, - NULL, NULL, NULL, NULL, NULL, NULL); - free(errmsg); - } - } - else { - xk_par_int(&val, &newval, NULL); - switch (tbl->size) { - case sizeof(long): - intval = ((unsigned long *) ptr)[0]; - break; - case sizeof(short): - intval = ((unsigned short *) ptr)[0]; - break; - case sizeof(char): - intval = ((unsigned char *) ptr)[0]; - break; - default: - if (tbl-size == sizeof(int)) - { - intval = ((unsigned int *) ptr)[0]; - break; - } - } - switch(op) { - case '+': - intval += newval; - break; - case '-': - intval -= newval; - break; - case '*': - intval *= newval; - break; - case '/': - intval /= newval; - break; - case '%': - intval %= newval; - break; - case '&': - intval &= newval; - break; - case '|': - intval |= newval; - break; - case '^': - intval ^= newval; - break; - } - switch (tbl->size) { - case sizeof(long): - ((unsigned long *) ptr)[0] = intval; - break; - case sizeof(short): - ((unsigned short *) ptr)[0] = intval; - break; - case sizeof(char): - ((unsigned char *) ptr)[0] = intval; - break; - default: - if (tbl->size == sizeof(int)) - { - ((unsigned int *) ptr)[0] = intval; - break; - } - } - } - return(SH_SUCC); -} - -int -do_field_comp( - int argc, - char **argv ) -{ - char *val, *type; - void *ptr, *ptr2, **pptr2, *nuptr; - memtbl_t tbl[2], *tbl2; - unsigned int i; - unsigned char always_ptr; - char pr1[5 * BUFSIZ], pr2[5 * BUFSIZ], *p1, *p2; - char * errbuf; - char * msg; - char * errmsg; - - i = 1; - if (argc > 1 && C_PAIR(argv[i], '-', 'p')) { - i++; - always_ptr = 1; - } - else - always_ptr = 0; - - if ((i + 2) > argc) - { - XK_USAGE(argv[0]); - } - - type = argv[i++]; - if (!isdigit(argv[i][0])) - always_ptr = 1; - ptr = getaddr(argv[i++]); - tbl[1] = Null_tbl; - if (!type || !ptr || (parse_decl(argv[0], tbl, type, 1) == FAIL)) - { - XK_USAGE(argv[0]); - } - if ((always_ptr || !IS_SIMPLE(tbl)) && !tbl->ptr && !(tbl->flags & F_TYPE_IS_PTR)) - tbl->ptr = 1; - else while (tbl->ptr > 1) { - ptr = *((void **) ptr); - tbl->ptr--; - } - for ( ; (i < argc) && argv[i]; i++) { - tbl2 = tbl; - ptr2 = ptr; - pptr2 = &ptr2; - if (val = strchr(argv[i], '=')) { - *val++ = '\0'; - tbl2 = ffind(tbl, argv[i], (char **)&pptr2); - if (!tbl2) { - errmsg = strdup(GetSharedMsg(DT_BAD_FIELD_NAME)); - printerrf(argv[0], errmsg, argv[i], - type, NULL, NULL, NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - val[-1] = '='; - } - else - val = argv[i]; - p1 = pr1; - p2 = pr2; - Pr_tmpnonames = 1; - XK_PRINT(tbl2, &p1, (char *)pptr2, 0, 0, NULL, all_tbl_find); - if (XK_PARSE(tbl2, &val, (char *)&nuptr, 0, 0, NULL, - all_tbl_find) < 0) - { - errmsg=strdup(GETMESSAGE(4,15, - "Cannot parse the following expression: %s")); - printerrf(argv[0], errmsg, argv[i], - NULL, NULL, NULL, NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - XK_PRINT(tbl2, &p2, (char *)&nuptr, 0, 0, NULL, all_tbl_find); - XK_FREE(tbl2, (char *)&nuptr, 0, 0, all_tbl_find); - Pr_tmpnonames = 0; - if (strcmp(pr1, pr2)) { - if (env_get((char *) "PRCOMPARE")) - { - errmsg=strdup(GETMESSAGE(4,16, - "The following comparision failed: '%s'\n\tActual: %s\n\tCompare: %s")); - printerrf(argv[0], errmsg, - argv[i], pr1, pr2, NULL, NULL, NULL, - NULL, NULL); - free(errmsg); - } - return(SH_FAIL); - } - } - return(SH_SUCC); -} - -static int -myprompt( - char *prompt ) -{ - fprintf(stderr,prompt); -} - - -#if 0 -/* This needs a functional proto, and needs to be extern'ed in docall.h */ -unsigned long -strprint(va_alist) -va_dcl -{ - va_list ap; - char *arg; - char *variable = NULL; - memtbl_t tbl; - char *p; - char buf[5 * BUFSIZ]; - char *name; - void *val; - char always_ptr; - int nonames = 0; - int ret; - - va_start(ap); - always_ptr = 0; - while ((arg = (char *) va_arg(ap, unsigned long)) && (arg[0] == '-')) { - int i; - - for (i = 1; arg[i]; i++) { - switch (arg[i]) { - case 'v': - variable = va_arg(ap, char *); - i = strlen(arg) - 1; - break; - case 'p': - always_ptr = 1; - break; - case 'N': - nonames = 1; - } - } - } - name = arg; - if (!arg) { - printerr(argv[0], "Insufficient arguments", NULL); - va_end(ap); - return(SH_FAIL); - } - val = (void *) va_arg(ap, unsigned long); - va_end(ap); - if (parse_decl("strprintf", &tbl, name, 1) == FAIL) - return(SH_FAIL); - if (variable) - p = buf + lsprintf(buf, "%s=", variable); - else - p = buf; - if ((always_ptr || !IS_SIMPLE(&tbl)) && !tbl.ptr && !(tbl.flags & F_TYPE_IS_PTR)) - tbl.ptr = 1; - if (!val && (tbl.ptr || (tbl.flags & F_TYPE_IS_PTR))) { - printerr(argv[0], "NULL value argument to strprint", NULL); - return(SH_FAIL); - } - if (always_ptr && (tbl.flags & F_TYPE_IS_PTR)) - val = *((void **) val); - else while (tbl.ptr > 1) { - val = *((void **) val); - tbl.ptr--; - } - Pr_tmpnonames = nonames; - ret = XK_PRINT(&tbl, &p, (void *) &val, 0, 0, NULL, all_tbl_find); - Pr_tmpnonames = 0; - if (ret == FAIL) - return(SH_FAIL); - if (variable) - env_set(buf); - else - ALTPUTS(buf); - return(SH_SUCC); -} -#endif diff --git a/cde/programs/dtksh/docall.h b/cde/programs/dtksh/docall.h deleted file mode 100644 index bf976704..00000000 --- a/cde/programs/dtksh/docall.h +++ /dev/null @@ -1,73 +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: docall.h /main/4 1995/11/01 15:51:36 rswiston $ */ -/************************************<+>************************************* - **************************************************************************** - ** - ** File: docall.h - ** - ** Project: CDE - ** - ** Description: Public include file for docall.c - ** - ** - ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 - ** by Hewlett-Packard Company - ** - ** - ** - **************************************************************************** - ************************************<+>*************************************/ - -#ifndef _Dtksh_docall_h -#define _Dtksh_docall_h - -#include "exksh.h" - -extern int _Prdebug; -extern struct memtbl Null_tbl; -extern char xk_ret_buffer[]; -extern char * xk_ret_buf; -extern struct Bfunction xk_prdebug; - - - -extern int do_field_get( - int argc, - char **argv) ; -extern int do_call( - int argc, - char **argv) ; -extern int asl_set( - char *argv0, - memtbl_t *tblarray, - char *desc, - unsigned char **pargs) ; -extern int do_field_comp( - int argc, - char **argv) ; - - - -#endif /* _Dtksh_docall_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/dtksh.c b/cde/programs/dtksh/dtksh.c deleted file mode 100644 index afd7272c..00000000 --- a/cde/programs/dtksh/dtksh.c +++ /dev/null @@ -1,137 +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: dtksh.c /main/3 1995/11/01 15:53:19 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. */ - - -#include "stdio.h" -#include -#include -#include - -#define CONSTCHAR (const char *) -#define TRUE 1 -#define FALSE 0 - -#ifndef DTKSHBINDIR -#define DTKSHBINDIR "/usr/bin" -#endif - -static int -FileExists(dir, file) -char *dir, *file; -{ - struct stat sbuf; - char path[1024]; - - sprintf(path, "%s/%s", dir, file); - return(stat(path, &sbuf) != -1); -} - -/* - * Bootstrap dtksh by calling xmcoeksh and forcing it to execute - * an rc file that calls the dtksh init function and does some - * other minor housekeeping. - * - * The rc file then sees if there was a previous user rc file (in $_HOLDENV_) - * and if so executes it. - */ - -int -main(argc, argv) -int argc; -char *argv[]; -{ - char *env; - char *bindir = NULL; - char *executable, *envfile; - char *buf; - char envbuf[1024]; - - /* - * Set the ENV variable to the standard dtksh rc file, which - * will do a libdirload of the dtksh shared object file and add all - * the dtksh commands and widgets to the exksh. If the user already - * had an ENV file, then set the variable _HOLDENV_ to it so the - * standard dtksh rc file can execute it later. - */ - env = getenv((const char *)"ENV"); - buf = (char *)malloc((env ? strlen(env) : 0) + 12); - strcpy(buf, "_HOLDENV_="); - strcat(buf, env ? env : ""); - putenv(buf); - - executable = "xmcoeksh"; - envfile = "xmcoeksh.rc"; - - /* - * Search order for DTKSH binaries: - * - * 1. if $DTKSHBINDIR is set, use that path if it exists. - * 2. if the hard-wired #define DTKSHBINDIR is set and is a - * readable directory, use it. - * 3. punt. - */ - - if ((bindir = getenv((const char *)"DTKSHBINDIR")) != NULL) { - if ((!FileExists(bindir, executable)) || - (!FileExists(bindir, envfile))) - { - bindir = NULL; - } - } - - if (bindir == NULL) - { - bindir = DTKSHBINDIR; - - if ((!FileExists(bindir, executable)) || - (!FileExists(bindir, envfile))) - { - bindir = NULL; - } - } - - if (bindir == NULL) { - fprintf(stderr, - "dtksh: bootstrap failed. Unable to locate both\nxmcoeksh and xmcoeksh.rc in the same directory.\n Try setting $DTKSHBINDIR.\n"); - exit(1); - } - sprintf(envbuf, "DTKSHBINDIR=%s", bindir); - putenv(strdup(envbuf)); - - sprintf(envbuf, "ENV=%s/%s", bindir, envfile); - putenv(strdup(envbuf)); - sprintf(envbuf, "%s/%s", bindir, executable); - execv(envbuf, argv); - - fprintf(stderr, "dtksh: Bootstrap of dtksh failed: '%s'\n", envbuf); - perror("Reason"); - return(1); /* failure */ -} diff --git a/cde/programs/dtksh/exextra.h b/cde/programs/dtksh/exextra.h deleted file mode 100644 index ccc12fa5..00000000 --- a/cde/programs/dtksh/exextra.h +++ /dev/null @@ -1,60 +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: exextra.h /main/3 1995/11/01 15:53:50 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_exextra_h -#define _Dtksh_exextra_h - - -#define EXKSH_EXTRA_TABLE \ - { "call", NV_BLTIN|BLT_ENV|BLT_SPC, do_call }, \ - { "field_comp", NV_BLTIN|BLT_ENV|BLT_SPC, do_field_comp }, \ - { "field_get", NV_BLTIN|BLT_ENV|BLT_SPC, do_field_get }, \ - { "sizeof", NV_BLTIN|BLT_ENV|BLT_SPC, do_sizeof }, \ - { "findsym", NV_BLTIN|BLT_ENV|BLT_SPC, do_findsym }, \ - { "finddef", NV_BLTIN|BLT_ENV|BLT_SPC, do_finddef }, \ - { "deflist", NV_BLTIN|BLT_ENV|BLT_SPC, do_deflist }, \ - { "define", NV_BLTIN|BLT_ENV|BLT_SPC, do_define }, \ - { "structlist", NV_BLTIN|BLT_ENV|BLT_SPC, do_structlist }, \ - { "deref", NV_BLTIN|BLT_ENV|BLT_SPC, do_deref }, \ - { "struct", NV_BLTIN|BLT_ENV|BLT_SPC, do_struct }, \ - { "typedef", NV_BLTIN|BLT_ENV|BLT_SPC, do_typedef }, \ - { "symbolic", NV_BLTIN|BLT_ENV|BLT_SPC, do_symbolic }, \ - - -#define EXKSH_EXTRA_VAR \ - "RET", NV_NOFREE|NV_RDONLY, (char*)(&xk_ret_buffer[0]), \ - "PRDEBUG", NV_NOFREE|NV_INTEGER, (char*)(&xk_prdebug), - -#define EXKSH_EXTRA_ALIAS \ - "args", NV_NOFREE|NV_EXPORT, "setargs \"$@\"", - -#endif /* _Dtksh_exextra_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/exksh_prpar.c b/cde/programs/dtksh/exksh_prpar.c deleted file mode 100644 index 85dfcc71..00000000 --- a/cde/programs/dtksh/exksh_prpar.c +++ /dev/null @@ -1,662 +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_prpar.c /main/4 1995/11/01 15:54:12 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. */ - - -#include "name.h" -#include "shell.h" -#include -#include -#include -#include -#include "exksh.h" -#include "stdio.h" -#include "exksh_prpar.h" -#include "symbolic.h" -#include "msgs.h" - - - -static int xk_uppercase( - char *s) ; -static int getsize( - int fd, - int *psize) ; - - - -#define OBJ_END 100 - -struct symlist Val_list; - -unsigned int Pr_format = PRSYMBOLIC|PRMIXED|PRNAMES; - - -/* - * Takes a pointer to a pointer to a character buffer, and skips any - * whitespace, as defined by isspace(section 3). Increments the - * buf parameter to the first non-whitespace character. - * Returns SUCCESS, there are no known ways for it to fail. - */ - -int -xk_skipwhite( - char **buf ) -{ - while (isspace(**buf)) - (*buf)++; - return(SUCCESS); -} - -int -xk_backskip( - char **buf, - int *n ) -{ - *n = 0; - while (isspace(**buf)) { - (*buf)--; - *n++; - } - if ((*buf)[0] == '\\') - return(TRUE); - else - return(FALSE); -} - -/* - * Takes a pointer to a character buffer and a string. Sees if - * the str is present as the first part of the buffer (minus any - * whitespace), and if so increments the buffer past the string. - * If not, returns FAIL without incrementing buffer (except perhaps - * by eating leading whitespace). - */ - -int -xk_parexpect( - char **buf, - char *str ) -{ - RIF(xk_skipwhite(buf)); - if (strncmp(*buf, str, strlen(str)) == 0) { - *buf += strlen(str); - } else { - return(FAIL); - } - return(SUCCESS); -} - -/* - * Takes a pointer to a char buffer, and a string. Returns - * TRUE if the string appears immediately (after skipping whitespace). - * or FALSE otherwise. - */ - -int -xk_parpeek( - char **buf, - char *str ) -{ - RIF(xk_skipwhite(buf)); - if (strncmp(*buf, str, strlen(str)) == 0) - return(TRUE); - else - return(FALSE); -} - -int -xk_prin_int( - memtbl_t *tbl, - char **buf, - unsigned long *old_v ) - -{ - int i, printed = 0; - struct symlist *sym; - unsigned long v; - - switch (tbl->kind) { - case K_CHAR: - v = *((unsigned char *) old_v); - break; - case K_SHORT: - v = *((unsigned short *) old_v); - break; - case K_INT: - v = *((unsigned int *) old_v); - break; - default: - v = *old_v; - } - **buf = '\0'; - if ((Pr_format & PRSYMBOLIC) && ((Val_list.syms != NULL) || ((sym = fsymbolic(tbl)) != NULL))) { - if (Val_list.syms != NULL) - sym = &Val_list; - if (sym->isflag) { - if (v == 0) { - *buf += lsprintf(*buf, "0"); - return(SUCCESS); - } - for (i = 0; i < sym->nsyms; i++) { - if (sym->syms[i].addr & v) { - if (Pr_format & PRMIXED_SYMBOLIC) { - if (Pr_format & PRDECIMAL) - *buf += lsprintf(*buf, "%s%s(%d)", printed ? "|" : "", sym->syms[i].str, sym->syms[i].addr); - else - *buf += lsprintf(*buf, "%s%s(0x%x)", printed ? "|" : "", sym->syms[i].str, sym->syms[i].addr); - } - else - *buf += lsprintf(*buf, "%s%s", printed ? "|" : "", sym->syms[i].str); - v &= ~(sym->syms[i].addr); - printed++; - } - } - if (v) { - if (Pr_format & PRMIXED_SYMBOLIC) { - if (Pr_format & PRDECIMAL) - *buf += lsprintf(*buf, "%sNOSYMBOLIC(%d)", printed ? "|" : "", v); - else - *buf += lsprintf(*buf, "%sNOSYMBOLIC(0x%x)", printed ? "|" : "", v); - } - else { - if (Pr_format & PRDECIMAL) - *buf += lsprintf(*buf, "%s%d", printed ? "|" : "", v); - else - *buf += lsprintf(*buf, "%s0x%x", printed ? "|" : "", v); - } - } - return(SUCCESS); - } - else { - for (i = 0; i < sym->nsyms; i++) { - if (sym->syms[i].addr == v) { - if (Pr_format & PRMIXED_SYMBOLIC) { - if (Pr_format & PRDECIMAL) - *buf += lsprintf(*buf, "%s(%d)", sym->syms[i].str, v); - else - *buf += lsprintf(*buf, "%s(0x%x)", sym->syms[i].str, v); - } - else - *buf += lsprintf(*buf, "%s", sym->syms[i].str); - return(SUCCESS); - } - } - } - } - if (Pr_format & PRHEX) - *buf += lsprintf(*buf, "0x%x", v); - else if (Pr_format & PRDECIMAL) - *buf += lsprintf(*buf, "%d", v); - else - *buf += lsprintf(*buf, "%d(0x%x)", v, v); - return(SUCCESS); -} - -int -xk_par_int( - char **buf, - long *v, - struct envsymbols *env ) -{ - int ret, base; - char *p, *q, *pp; - char nbuf[512]; - - xk_skipwhite(buf); - strncpy(nbuf, *buf, sizeof(nbuf)-1); - if (strchr(nbuf, '|') == NULL) { - for (p = nbuf; *p && *p != ' ' && *p != ',' && *p != ']' - && *p != '{' && *p != '}' && *p != '/' && *p != '@' - && *p != ':' && *p != '.' && *p != 13 && *p != 10 && *p != 11 - && *p != 12 && *p != 9; p++) - ; - *p = '\0'; - } - else { - for (p = nbuf; *p && *p != ',' - && *p != '{' && *p != '}' && *p != '/' && *p != '@' - && *p != ':' && *p != '.' ; p++) - ; - *p = '\0'; - - } - ret = strlen(nbuf); - if (ret == 0) - return(OBJ_END); - *v = 0; - - if ((p = strchr(nbuf, '"')) != NULL) { - return(FAIL); - } - if ((p = strchr(nbuf, '+')) != NULL) { - char *qq; - long v1, v2; - - *p = '\0'; - v1 = v2 = 0; - qq = nbuf; - p++; - xk_par_int(&qq, &v1, env); - xk_par_int(&p, &v2, env); - *v = v1 + v2; - *buf += ret; - return(SUCCESS); - } - if ((p = strchr(&nbuf[1], '-')) != NULL) { - long v1, v2; - char *qq; - - *p = '\0'; - v1 = v2 = 0; - qq = nbuf; - p++; - xk_par_int(&qq, &v1, env); - xk_par_int(&p, &v2, env); - *v = v1 - v2; - *buf += ret; - return(SUCCESS); - } - for (p = strtok(nbuf, " |\t\n"); p; p = strtok(NULL, " |\t\n")) { - for (pp = p; *pp && *pp != ' ' && *pp != ',' - && *pp != '{' && *pp != '}' && *pp != '/' && *pp != '@' - && *pp != ':' && *pp != '.' && *pp != 13 && - *pp != 11 && *pp != 12 && *pp != 9; pp++) - ; - *pp = '\0'; - if ((pp = strchr(p, '#')) != NULL) { - base = strtol(p, &p, 10); - if (p != pp) - return(FAIL); - p++; - } - else - base = 0; - xk_skipwhite(&p); - if (*p == '\0') - continue; - if (isdigit(*p) || *p == '-') { - *v |= strtoul(p, (char **)NULL, base); - } - else { - unsigned long val; - - /* knock out commentary parenthesized things */ - if ((q = strchr(p, '(' /*)*/ )) != NULL) - *q = '\0'; - /* Search through available names for partial match */ - if (!fdef(p, &val)) { - return(FAIL); - } - else - *v |= val; - } - } - *buf += ret; - return(SUCCESS); -} - - -int -xk_prin_nts( - char **buf, - char *str ) -{ - return(xk_prin_charstr(buf, (unsigned char *)str, - str ? strlen(str) : 0)); -} - -int -xk_prin_charstr( - char **buf, - unsigned char *str, - int len ) -{ - int i; - - if (str == NULL) - *buf += lsprintf(*buf, "NULL"); - else { - *buf += lsprintf(*buf, "\""); - for (i = 0; i < len; i++) { - if (str[i] == '"') { - *buf += lsprintf(*buf, "\\\""); - } else if (isprint(str[i])) { - *buf += lsprintf(*buf, "%c", str[i]); - } else { - switch (str[i]) { - case '\n': - *buf += lsprintf(*buf, "\\n"); - break; - case '\t': - *buf += lsprintf(*buf, "\\t"); - break; - case '\b': - *buf += lsprintf(*buf, "\\b"); - break; - case '\v': - *buf += lsprintf(*buf, "\\v"); - break; - case '\f': - *buf += lsprintf(*buf, "\\f"); - break; - case '\r': - *buf += lsprintf(*buf, "\\r"); - break; - case '\0': - *buf += lsprintf(*buf, "\\00"); - break; - default: - *buf += lsprintf(*buf, "\\%x", (unsigned int)str[i]); - break; - } - } - } - *buf += lsprintf(*buf, "\""); - } - return(SUCCESS); -} - -int -xk_prin_hexstr( - char **buf, - char *str, - int len ) -{ - int i; - unsigned char tempc; - - if (str == NULL) - *buf += lsprintf(*buf, "NULL"); - else { - *buf += lsprintf(*buf, "%s", "0x"); - for (i = 0; i < len; i++) { - tempc = str[i]; - if (str[i] & 0xf0) { - *buf += lsprintf(*buf, "%x", tempc); - } - else - *buf += lsprintf(*buf, "0%x", tempc); - } - } - return(SUCCESS); -} - -#define MALSIZ 16 /* initial size of string to malloc */ - -int -xk_par_chararr( - char **buf, - char *str, - int *len ) -{ - return(xk_par_charstr(buf, &str, len)); -} - -#define CHAR_QUOTED 0 -#define CHAR_HEXSTR 1 -#define CHAR_FILE 2 - -int -xk_par_nts( - char **buf, - char **str ) -{ - int temp = 0; - - RIF(xk_par_charstr(buf, str, &temp)); - if (temp >= 0) - str[0][temp] = '\0'; - return(SUCCESS); -} - -int -xk_par_charstr( - char **buf, - char **str, - int *len ) -{ - int i; - char delim; - int didmalloc = FALSE, getmode; - char cbuf[3]; /* conversion buffer for hex strings */ - char filename[128]; - char * errmsg; - - RIF(xk_skipwhite(buf)); - if (xk_parpeek(buf, "NULL")) { - RIF(xk_parexpect(buf, "NULL")); - *str = NULL; - *len = -1; - return(SUCCESS); - } - /* this is pure internal feature, no error setting */ - if (**buf == '<') { - char *p; - FILE *fp; - char gbuf[BUFSIZ]; - int line; - int size; - - (*buf)++; - xk_skipwhite(buf); - for (p = &filename[0]; - **buf != ',' && **buf != /* { */ '}' && **buf != ' ' && - **buf != '\t' && p < &filename[sizeof(filename)]; - *p++ = *(*buf)++) - ; - *p++ = '\0'; - if ((fp = fopen(filename, "r")) == NULL) { - errmsg=strdup(GETMESSAGE(7,1, - "Unable to open the file '%s'; verify that it exists and is readable")); - lsprintf(gbuf, errmsg, filename); - fprintf(stderr, gbuf); - free(errmsg); - return(FAIL); - } - if (*len == 0) { - if (getsize(fileno(fp), &size) == FAIL) { - errmsg=strdup(GETMESSAGE(7,2, - "Unable to access the file '%s'; verify you have permission to access it")); - lsprintf(gbuf, errmsg, filename); - fprintf(stderr, gbuf); - free(errmsg); - return(FAIL); - } - *len = size/2 + 1; - if ((*str = malloc(*len)) == NULL) { - return(FAIL); - } - } - line = i = 0; - while (fgets(gbuf, sizeof(gbuf), fp) != NULL) { - line++; - p = gbuf; - /* eat any leading 0x */ - if (p[0] == '0' && (p[1] == 'x' || p[1] == 'X')) { - p += 2; - } - for ( ; *p && *p != '\n'; ) { - if (i > *len - 1) { - fclose(fp); - return(FAIL); - } - if (!isxdigit(*p)) { - p++; - continue; - } - if (!isxdigit(p[1])) { - fclose(fp); - return(FAIL); - } - cbuf[0] = p[0]; - cbuf[1] = p[1]; - cbuf[2] = '\0'; - str[0][i++] = (char)strtol(cbuf, (char **)NULL, 16); - p += 2; - xk_skipwhite(&p); - } - } - *len = i; - fclose(fp); - return(SUCCESS); - } else if (!ispunct(**buf)) { - getmode = CHAR_HEXSTR; - if ((*buf)[0] == '0' && ((*buf)[1] == 'x' || (*buf)[1] == 'X')) - (*buf) += 2; - } else { - delim = *((*buf)++); - getmode = CHAR_QUOTED; - } - if (*len == 0) { - if ((*str = malloc(MALSIZ)) == NULL) { - return(FAIL); - } - didmalloc = TRUE; - *len = MALSIZ; - } - i = 0; - while ((*buf)[0] != '\0' && ((getmode == CHAR_QUOTED && (*buf)[0] != delim) || - (getmode == CHAR_HEXSTR && (isxdigit((*buf)[0]))) || - (getmode == CHAR_HEXSTR && (isspace((*buf)[0]))))) { - /* NOTE: must always leave 1 additional byte for a null - * termination, because could be called by xk_par_nts! - */ - if (i >= *len - 1) { - if (didmalloc == FALSE) { - return(FAIL); - } else { - if ((*str = realloc(*str, *len + MALSIZ)) == NULL) { - return(FAIL); - } - *len += MALSIZ; - } - } - if (getmode == CHAR_QUOTED) { - if ((*buf)[0] == '\\') { - (*buf)++; - switch ((*buf)[0]) { - case 't': - str[0][i++] = '\t'; - (*buf)++; - break; - case 'v': - str[0][i++] = '\v'; - (*buf)++; - break; - case 'f': - str[0][i++] = '\f'; - (*buf)++; - break; - case 'n': - str[0][i++] = '\n'; - (*buf)++; - break; - case 'r': - str[0][i++] = '\r'; - (*buf)++; - break; - case 'b': - str[0][i++] = '\b'; - (*buf)++; - break; - case '0': - str[0][i++] = (char)strtol(*buf, buf, 8); - break; - case 's': - (*buf)++; - break; - default: - str[0][i++] = *(*buf)++; - } - } else - str[0][i++] = *(*buf)++; - } else { - if (!isxdigit((*buf)[1])) { - return(FAIL); - } - cbuf[0] = (*buf)[0]; - cbuf[1] = (*buf)[1]; - cbuf[2] = '\0'; - str[0][i++] = (char)strtol(cbuf, (char **)NULL, 16); - (*buf) += 2; - xk_skipwhite(buf); - } - } - if (getmode == CHAR_QUOTED) - (*buf)++; /* eat the trailing quote */ - /* - * NOTE: We leave a malloced buffer the same size rather - * than realloc()'ing it to be the exact size in order - * to save time and avoid malloc arena fragmentation - */ - *len = i; - return(SUCCESS); -} - -/* Case Ignoring String Functions. */ - -static int -xk_uppercase( - char *s ) -{ - while (*s) { - if (islower(*s)) - *s = toupper(*s); - s++; - } -} - -int -xk_Strncmp( - char *s1, - char *s2, - int len ) -{ - int diff, i; - - for (i=0; i < len && s1[i] != '\0' && s2[i] != '\0'; i++) - if ((diff = tolower(s1[i]) - tolower(s2[i])) != 0) - return (diff); - return(i == len ? 0 : s1[i] - s2[i]); -} - -static int -getsize( - int fd, - int *psize ) -{ - struct stat stat; - - if (fstat(fd, &stat) == FAIL) - return(FAIL); - *psize = stat.st_size; - return(SUCCESS); -} diff --git a/cde/programs/dtksh/exksh_prpar.h b/cde/programs/dtksh/exksh_prpar.h deleted file mode 100644 index 17e32369..00000000 --- a/cde/programs/dtksh/exksh_prpar.h +++ /dev/null @@ -1,98 +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_prpar.h /main/4 1995/11/01 15:54:23 rswiston $ */ -/************************************<+>************************************* - **************************************************************************** - ** - ** File: exksh_prpar.h - ** - ** Project: CDE - ** - ** Description: Public include file for exksh_prpar.c - ** - ** - ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 - ** by Hewlett-Packard Company - ** - ** - ** - **************************************************************************** - ************************************<+>*************************************/ - -#ifndef _Dtksh_exksh_prpar_h -#define _Dtksh_exksh_prpar_h - -extern unsigned int Pr_format; - - - -extern int xk_skipwhite( - char **buf) ; -extern int xk_backskip( - char **buf, - int *n) ; -extern int xk_parexpect( - char **buf, - char *str) ; -extern int xk_parpeek( - char **buf, - char *str) ; -extern int xk_prin_int( - memtbl_t *tbl, - char **buf, - unsigned long *old_v) ; -extern int xk_par_int( - char **buf, - long *v, - struct envsymbols *env) ; -extern int xk_prin_nts( - char **buf, - char *str) ; -extern int xk_prin_charstr( - char **buf, - unsigned char *str, - int len) ; -extern int xk_prin_hexstr( - char **buf, - char *str, - int len) ; -extern int xk_par_chararr( - char **buf, - char *str, - int *len) ; -extern int xk_par_nts( - char **buf, - char **str) ; -extern int xk_par_charstr( - char **buf, - char **str, - int *len) ; -extern int xk_Strncmp( - char *s1, - char *s2, - int len) ; - - - -#endif /* _Dtksh_exksh_prpar_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/exksh_tbls.c b/cde/programs/dtksh/exksh_tbls.c deleted file mode 100644 index 4b157464..00000000 --- a/cde/programs/dtksh/exksh_tbls.c +++ /dev/null @@ -1,1201 +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_tbls.c /main/4 1995/11/01 15:54:33 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. */ - -#include "name.h" -#include "shell.h" -#include "stdio.h" -#include -#include -#include -#include "exksh.h" -#include "exksh_tbls.h" -#include "exksh_prpar.h" -#include "docall.h" -#include "msgs.h" - -int _Delim; -static int strglen; -static int struct_size; - -int Pr_tmpnonames = 0; - -static const char *Str_close_curly = "}"; -static const char *Str_open_curly = "{"; - -#define MALMEMBERS (4) /* initial number of members of malloc'ed array to malloc */ - -#define UPPER(C) (islower(C) ? toupper(C) : (C)) -#define isvarchar(C) (isalnum(C) || ((C) == '_')) - -/* - * Some of our test programs use xk_parse() to parse cdata from command - * lines. This has the drawback that anys or externals will get a malloc'ed - * buffer for their char * on the send side, which would not normally be - * freed, because xk_free() knows that such any's usually point into the - * ubuf rather than being malloced. On the receive side, this would be - * true even in our test program. So, on the send side, we keep a table - * of any any or external char * that is malloc'ed, and xk_free checks - * this table before free'ing the given item. After being freed, the - * stack is decremented for efficiency. - */ - -#define ANYTBLINC (4) - -static char **Anytbl = NULL; -static int Nanytbl = 0; -static int Maxanytbl = 0; - -struct special { - char *name; - int (*free)(); - int (*parse)(); - int (*print)(); -}; - -#define SPEC_FREE 0 -#define SPEC_PARSE 1 -#define SPEC_PRINT 2 - -static struct special *Special = NULL; -static int Nspecs = 0; - -static char **Dont = NULL; -static int Ndont, Sdont; - -int -(*find_special( - int type, - char *name ))() -{ - int i; - - if (!Special) - return(NULL); - for (i = 0; i < Nspecs; i++) { - if (strcmp(Special[i].name, name) == 0) { - switch(type) { - case SPEC_PRINT: - return(Special[i].print); - case SPEC_FREE: - return(Special[i].free); - case SPEC_PARSE: - return(Special[i].parse); - } - } - } - return(NULL); -} - -int -set_special( - char *name, - int (*free)(), - int (*parse)(), - int (*print)() ) -{ - int i; - - for (i = 0; i < Nspecs; i++) - if (strcmp(Special[i].name, name) == 0) - break; - if (i == Nspecs) { - if (!Special) { - Special = (struct special *) malloc(sizeof(struct special)); - Special[0].name = strdup(name); - Nspecs = 1; - } - else { - Special = (struct special *) realloc(Special, (Nspecs + 1) * sizeof(struct special)); - Special[i].name = strdup(name); - Nspecs++; - } - } - if (!Special) - return(FAIL); - Special[i].free = free; - Special[i].parse = parse; - Special[i].print = print; - return(SUCCESS); -} - -/* - * xk_parse: Takes a pointer to a structure member table, a pointer - * to a buffer containing an ascii representation of the structure - * represented by the table pointer, and the number of pointers saved - * from previous recursive calls to this routine, and parses the - * buf into p. - * - * Increments buf to the last point at which it read a character, - * and returns SUCCESS or FAIL. - */ - -int -xk_parse( - memtbl_t *tbl, - char **buf, - char *p, - int nptr, - int sub, - void *pass, - memtbl_t *(*tbl_find)() ) -{ - memtbl_t *ntbl; - int i = 0; - int skind, delim_type; - long val = 0; /* used for choice selection */ - char *np; - int delim = _Delim; - int nmal; /* number of members malloc'ed arrays */ - char *pp; - int (*spec_parse)(); - char * errmsg; - - if (tbl == NULL) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,1, - "xk_parse: A NULL 'type' table was specified\n")); - fprintf(stderr, errmsg); - free(errmsg); - } - return(FAIL); - } - xk_skipwhite(buf); - /* - * If this is supposed to be a pointer, and we have a string that - * starts with "P" and a number then we should take the pointer - * itself. This is done by stripping off the 'p' and parsing it as a - * unsigned long. - * - * Further, if it starts with an '&', then we want the address of - * a variable, use fsym() to find it. - */ - if (((tbl->flags & F_TYPE_IS_PTR) || ((tbl->ptr + nptr) > 0)) && - (((UPPER((*buf)[0]) == 'P') && isdigit((*buf)[1])) || ((*buf)[0] == '&'))) { - if ((*buf)[0] == '&') { - char *start; - - (*buf)++; - for (start = *buf; isvarchar(*buf[0]); (*buf)++) - ; - if ((((unsigned long *) p)[0] = fsym(start, -1)) == NULL) - return(FAIL); - } - else { - (*buf)++; - RIF(xk_par_int(buf, (long *)p, pass)); - } - if (Ndont == Sdont) { - if (Dont) - Dont = (char **) realloc(Dont, (Sdont + 20) * sizeof(char *)); - else - Dont = (char **) malloc((Sdont + 20) * sizeof(char *)); - if (!Dont) { - errmsg = strdup(GetSharedMsg(DT_ALLOC_FAILURE)); - ALTPUTS(errmsg); - free(errmsg); - exit(1); - } - Sdont += 20; - } - Dont[Ndont++] = ((char **) p)[0]; - return(SUCCESS); - } - if (tbl->tname && (spec_parse = find_special(SPEC_PARSE, tbl->tname))) - return(spec_parse(tbl, buf, p, nptr, sub, pass, tbl_find)); - if (tbl->name && (spec_parse = find_special(SPEC_PARSE, tbl->name))) - return(spec_parse(tbl, buf, p, nptr, sub, pass, tbl_find)); - nptr += tbl->ptr; - if (sub > 0 && tbl->subscr > 0) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,2, - "xk_parse: Multiple array subscripts are not handled in '%s'\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(FAIL); - } - /* - * If there is exactly one pointer associated with this - * member, and no length delimiters, and no subscripts, - * or there are multiple pointers, - * then malloc space for the structure and call ourself - * recursively. - */ - if ((nptr > 1 && tbl->delim != 0) || (nptr == 1 && tbl->delim == 0 && tbl->subscr == 0)) { - if (PARPEEK(buf, ",") || PARPEEK(buf, Str_close_curly)) { - ((char **)p)[0] = NULL; - if (_Prdebug) - { - errmsg=strdup(GetSharedMsg(DT_XK_PARSE_SET_NULL)); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(SUCCESS); - } - if (xk_parpeek(buf, "NULL")) { - RIF(xk_parexpect(buf, "NULL")); - ((char **)p)[0] = NULL; - if (_Prdebug) - { - errmsg=strdup(GetSharedMsg( - DT_XK_PARSE_SET_NULL)); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(SUCCESS); - } - - if ((((char **)p)[0] = malloc(tbl->size)) == NULL) { - return(FAIL); - } - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,3, - "xk_parse: Setting '%s' to malloc'ed address 0x%x, of size %d\n")); - fprintf(stderr,errmsg,tbl->name, ((char **)p)[0], tbl->size); - free(errmsg); - } - return(xk_parse(tbl, buf, ((char **)p)[0], nptr-1-tbl->ptr, sub, pass, tbl_find)); - } - /* - * If there is exactly one pointer level, or one subscripting level, - * and there is a delimiter, - * and no subscript, then we are a length delimited malloced array. - */ - xk_skipwhite(buf); - if (tbl->delim != 0 && ((nptr == 1 && tbl->subscr == 0) || - (nptr == 0 && tbl->subscr != 0 && tbl->kind != K_STRING))) { - - if (tbl->subscr == 0) { - if (PARPEEK(buf, ",") || PARPEEK(buf, Str_close_curly)) { - ((char **)p)[0] = NULL; - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,4, - "xk_parse: Setting malloc'ed array '%s' to NULL\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(SUCCESS); - } - if (xk_parpeek(buf, "NULL")) { - RIF(xk_parexpect(buf, "NULL")); - ((char **)p)[0] = NULL; - if (_Prdebug) - { - errmsg=strdup(GetSharedMsg( - DT_XK_PARSE_SET_NULL)); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(SUCCESS); - } - nmal = MALMEMBERS; - if ((np = malloc(nmal*tbl->size)) == NULL) { - return(FAIL); - } - ((char **)p)[0] = np; - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,5, - "xk_parse: Setting member '%s' to malloc'ed pointer 0x%x, of size %d\n")); - fprintf(stderr, errmsg, tbl->name, np, 4*tbl->size); - free(errmsg); - } - } else { - np = p; - } - xk_skipwhite(buf); - RIF(PAREXPECT(buf, Str_open_curly)); - *buf += 1; - i = 0; - xk_skipwhite(buf); - while (PARPEEK(buf, Str_close_curly) == FALSE) { - if (tbl->subscr == 0 && i >= nmal) { - nmal += MALMEMBERS; - if((np = realloc(np, nmal*tbl->size)) == NULL) { - return(FAIL); - } - ((char **)p)[0] = np; - if (_Prdebug) { - errmsg=strdup(GetSharedMsg( - DT_XK_PARSE_ARRAY_OVERFLOW)); - fprintf(stderr, errmsg, tbl->name, nmal, nmal*tbl->size); - free(errmsg); - } - } else if (tbl->subscr > 0 && i > tbl->subscr) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,6, - "xk_parse: The array '%s' overflowed at element number %d\n")); - fprintf(stderr, errmsg, tbl->name, i); - free(errmsg); - } - } - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,7, - "xk_parse: Parsing array element [%d] of '%s' into address 0x%x\n")); - fprintf(stderr, errmsg, i, tbl->name, &np[i*tbl->size]); - free(errmsg); - } - if (i) { - xk_skipwhite(buf); - if (PARPEEK(buf, ",") == FALSE) { - if (PARPEEK(buf, Str_close_curly) == FALSE) { - RIF(PAREXPECT(buf, ",")); - *buf += 1; - } - } - else { - RIF(PAREXPECT(buf, ",")); - *buf += 1; - } - } - RIF(xk_parse(tbl, buf, &np[i*tbl->size], nptr ? -1 : 0, - 0, (void *)-1, tbl_find)); - i++; - struct_size = i; - xk_skipwhite(buf); - } - RIF(PAREXPECT(buf, Str_close_curly)); - *buf += 1; - return(SUCCESS); - } - /* - * If there is no delimiter, and there are two levels of pointer, - * then we are a NULL terminated array of pointers - */ - if (tbl->delim == 0 && - ((nptr == 2 && sub == 0) || (sub == 1 && nptr == 1))) { - /* - * malloc a few members, realloc as needed - */ - nmal = MALMEMBERS; - if ((((char **)p)[0] = malloc(nmal*tbl->size)) == NULL) { - return(FAIL); - } - xk_skipwhite(buf); - RIF(PAREXPECT(buf, Str_open_curly)); - *buf += 1; - xk_skipwhite(buf); - while (PARPEEK(buf, Str_close_curly) == FALSE) { - if (i >= nmal) { - nmal += MALMEMBERS; - if ((((char **)p)[0] = realloc(((char **)p)[0], nmal*tbl->size)) == NULL) { - return(FAIL); - } - if (_Prdebug) { - errmsg=strdup(GetSharedMsg( - DT_XK_PARSE_ARRAY_OVERFLOW)); - fprintf(stderr, errmsg, tbl->name, nmal, nmal*tbl->size); - free(errmsg); - } - } - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,8, - "xk_parse: Parsing array element [%d] of '%s'\n")); - fprintf(stderr, errmsg, i, tbl->name); - free(errmsg); - } - if (i) { - RIF(PAREXPECT(buf, ",")); - *buf += 1; - } - RIF(xk_parse(tbl, buf, &p[i*tbl->size], - nptr == 2 ? -2 : -1, 0, (void *)-1, - tbl_find)); - - xk_skipwhite(buf); - } - RIF(PAREXPECT(buf, Str_close_curly)); - *buf++; - ((char **)p)[i*tbl->size] = NULL; - return(SUCCESS); - } - - switch(tbl->kind) { - case K_CHAR: - RIF(xk_par_int(buf, &val, pass)); - ((unsigned char *)p)[0] = val; - break; - case K_SHORT: - RIF(xk_par_int(buf, &val, pass)); - ((ushort *)p)[0] = val; - break; - case K_INT: - RIF(xk_par_int(buf, &val, pass)); - ((int *)p)[0] = val; - break; - case K_LONG: - RIF(xk_par_int(buf, (long *)p, pass)); - break; - case K_STRING: - if (tbl->subscr) { - val = tbl->subscr; - RIF(xk_par_chararr(buf, (char *)p, (int *)&val)); - if (tbl->delim <= 0 && val > -1) { - p[val] = '\0'; - } - } else { - val = 0; - RIF(xk_par_charstr(buf, (char **)p, (int *)&val)); - /* If this is not a delimited char string, - * then it must be null terminated - */ - if (tbl->delim <= 0 && val > -1) { - ((char **) p)[0][val] = '\0'; - } - strglen = val; - } - break; - case K_TYPEDEF: - ntbl = tbl_find(tbl->tname, tbl->tbl, tbl->id); - RIF(xk_parse(ntbl, buf, p, nptr, 0, pass, tbl_find)); - return(SUCCESS); - case K_STRUCT: - xk_skipwhite(buf); - RIF(PAREXPECT(buf, Str_open_curly)); - *buf += 1; - ntbl = tbl_find(tbl->tname, tbl->tbl, tbl->id); - pp = NULL; - for (i = 0; ntbl[i].name != NULL; i++) { - _Delim = xk_get_pardelim(&ntbl[i], p); - if (ntbl[i].kind >= K_DSHORT) { - skind = ntbl[i].kind; - pp = p + ntbl[i].offset; - struct_size = 0; - } - if (ntbl[i].delim) { - delim_type = ntbl[i].kind; - } - if (i && ntbl[i-1].kind < K_DSHORT) { - xk_skipwhite(buf); - if (PARPEEK(buf, ",") == FALSE) { - if (PARPEEK(buf, Str_close_curly) == FALSE) { - RIF(PAREXPECT(buf, ",")); - *buf += 1; - } - } - else { - RIF(PAREXPECT(buf, ",")); - *buf += 1; - } - } - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,9, - "xk_parse: Parsing member '%s' into location 0x%x\n")); - fprintf(stderr, errmsg, ntbl[i].name, p + ntbl[i].offset); - free(errmsg); - } - if (xk_parse(&ntbl[i], buf, p+ntbl[i].offset, nptr, sub, pass, tbl_find) == FAIL) { - if (_Prdebug) - { - errmsg=strdup(GetSharedMsg( - DT_XK_PARSE_ERROR)); - fprintf(stderr, errmsg, ntbl[i].name); - free(errmsg); - } - return(FAIL); - } - } - if (pp != NULL) { - switch(skind) { - case K_DSHORT: - if (delim_type == K_STRING) - ((short *)pp)[0] = strglen; - else - ((short *)pp)[0] = struct_size; - break; - case K_DINT: - if (delim_type == K_STRING) - ((int *)pp)[0] = strglen; - else - ((int *)pp)[0] = struct_size; - break; - case K_DLONG: - if (delim_type == K_STRING) - ((long *)pp)[0] = strglen; - else - ((long *)pp)[0] = struct_size; - break; - default: - break; - } - } - xk_skipwhite(buf); - RIF(PAREXPECT(buf, Str_close_curly)); - *buf += 1; - break; - case K_UNION: - if (strncmp(tbl[-1].name, "ch_", 3) != 0) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,10, - "xk_parse: Cannot determine the choice in '%s'\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(FAIL); - } - ntbl = tbl_find(tbl->tname, tbl->tbl, tbl->id); - xk_skipwhite(buf); - RIF(PAREXPECT(buf, Str_open_curly)); - *buf += 1; - for (i = 0; ntbl[i].name != NULL; i++) { - if (xk_parpeek(buf, ntbl[i].name) == TRUE) { - RIF(xk_parexpect(buf, ntbl[i].name)); - ((long *)(p - sizeof(long)))[0] = ntbl[i].choice; - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,11, - "xk_parse: Parsing union member '%s' into location 0x%x\n")); - fprintf(stderr, errmsg, ntbl[i].name, p + ntbl[i].offset); - free(errmsg); - } - if (xk_parse(&ntbl[i], buf, p, nptr, sub, pass, tbl_find) == FAIL) { - if (_Prdebug) - { - errmsg=strdup(GetSharedMsg( - DT_XK_PARSE_ERROR)); - fprintf(stderr, errmsg, ntbl[i].name); - free(errmsg); - } - return(FAIL); - } - break; - } - } - xk_skipwhite(buf); - RIF(PAREXPECT(buf, Str_close_curly)); - *buf += 1; - break; - case K_DSHORT: - case K_DINT: - case K_DLONG: - break; - default: - return(FAIL); - } - return(SUCCESS); -} - -int -xk_get_delim( - memtbl_t *tbl, - char *p ) -{ - memtbl_t *dtbl = &tbl[tbl->delim]; - char * errmsg; - - if (tbl->delim == 0) { - return(-1); - } - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,12, - "xk_get_delim: The delimiter for field '%s' is field '%s'\n")); - fprintf(stderr, errmsg, tbl->name, dtbl->name); - free(errmsg); - } - p += dtbl->offset; - switch (dtbl->kind) { - case K_DLONG: - case K_LONG: - return(((long *)p)[0]); - case K_CHAR: - return(((char *)p)[0]); - case K_DSHORT: - case K_SHORT: - return(((short *)p)[0]); - case K_DINT: - case K_INT: - return(((int *)p)[0]); - default: - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,13, - "xk_get_delim: Cannot find a delimiter value in '%s'\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(0); - } -} - - -int -xk_get_pardelim( - memtbl_t *tbl, - char *p ) -{ - memtbl_t *dtbl = &tbl[tbl->delim]; - char * errmsg; - - if (tbl->delim == 0) { - return(-1); - } - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,14, - "xk_get_pardelim: The delimiter for field '%s' is field '%s'\n")); - fprintf(stderr, errmsg, tbl->name, dtbl->name); - free(errmsg); - } - p += dtbl->offset; - switch (dtbl->kind) { - case K_DLONG: - return(-1); - case K_LONG: - return(((long *)p)[0]); - case K_DSHORT: - return(-1); - case K_CHAR: - return(((char *)p)[0]); - case K_SHORT: - return(((short *)p)[0]); - case K_DINT: - return(-1); - case K_INT: - return(((int *)p)[0]); - default: - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,15, - "xk_get_pardelim: Cannot find a delimiter value in '%s'\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(0); - } -} - -/* - * xk_print: Takes a pointer to a structure member table, a pointer - * to a buffer big enough to hold an ascii representation of the structure - * represented by the table pointer, and a pointer to a structure to - * be filled in, and the number of pointers saved - * from previous recursive calls to this routine, and prints the - * buf into p. - * - * Increments buf to the last point at which it wrote a character, - * and returns SUCCESS or FAIL. - */ - - -int -xk_print( - memtbl_t *tbl, - char **buf, - char *p, - int nptr, - int sub, - void *pass, - memtbl_t *(*tbl_find)() ) -{ - memtbl_t *ntbl; - int i; - long val; /* used for choice selection */ - char *np; - int delim = _Delim; - int (*spec_print)(); - char * errmsg; - - if (p == NULL) { - *buf += lsprintf(*buf, "NULL"); - return(SUCCESS); - } - if (tbl == NULL) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,16, - "xk_print: A NULL 'type' table was specified\n")); - fprintf(stderr, errmsg); - free(errmsg); - } - return(FAIL); - } - if (tbl->tname && (spec_print = find_special(SPEC_PRINT, tbl->tname))) - return(spec_print(tbl, buf, p, nptr, sub, pass, tbl_find)); - if (tbl->name && (spec_print = find_special(SPEC_PRINT, tbl->name))) - return(spec_print(tbl, buf, p, nptr, sub, pass, tbl_find)); - nptr += tbl->ptr; - if (sub > 0 && tbl->subscr > 0) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,17, - "xk_print: Multiple array subscripts are not handled in '%s'\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(FAIL); - } - /* - * If there is exactly one pointer associated with this - * member, and no length delimiters, and no subscripts, - * or there are multiple pointers, - * then dereference the structure and call ourself - * recursively. - */ - if ((nptr > 1 && tbl->delim != 0) || (nptr == 1 && tbl->delim == 0 && tbl->subscr == 0)) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,18, - "xk_print: Dereferencing '%s' to address 0x%x\n")); - fprintf(stderr, errmsg, tbl->name, ((char **)p)[0]); - free(errmsg); - } - return(xk_print(tbl, buf, ((char **)p)[0], nptr-1-tbl->ptr, sub, pass, tbl_find)); - } - /* - * If there is exactly one pointer level, or one subscripting level, - * and there is a delimiter, - * and no subscript, then we are a length delimited array. - */ - if (tbl->delim != 0 && ((nptr == 1 && tbl->subscr == 0) || - nptr == 0 && tbl->subscr != 0 && tbl->kind != K_STRING)) { - - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,19, - "xk_print: The delimiter for '%s' is %d\n")); - fprintf(stderr, errmsg, tbl->name, delim); - free(errmsg); - } - if (tbl->subscr == 0) { - np = ((char **)p)[0]; - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,20, - "xk_print: Using the pointer 0x%x as an array\n")); - fprintf(stderr, errmsg, np); - free(errmsg); - } - } else { - np = p; - } - if (np == NULL) { - *buf += lsprintf(*buf, "NULL"); - return(SUCCESS); - } - *buf += lsprintf(*buf, Str_open_curly); - for (i = 0; i < delim; i++) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,21, - "xk_print: Printing array level %d of member '%s' at location 0x%x\n")); - fprintf(stderr, errmsg, i, tbl->name, &np[i*tbl->size]); - free(errmsg); - } - if (i) - *buf += lsprintf(*buf, ", "); - RIF(xk_print(tbl, buf, &np[i*tbl->size], nptr ? -1 : 0, - 0, (void *)-1, tbl_find)); - } - *buf += lsprintf(*buf, Str_close_curly); - return(SUCCESS); - } - /* - * If there is no delimiter, and there are two levels of pointer, - * then we are a NULL terminated array. - */ - if (tbl->delim == 0 && - ((nptr == 2 && sub == 0) || (sub == 1 && nptr == 1))) { - *buf += lsprintf(*buf, Str_open_curly); - for (i = 0; ((char **)p)[i*tbl->size] != NULL; i++) { - if (i) - *buf += lsprintf(*buf, ", "); - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,22, - "xk_print: Printing array level %d of member '%s'\n")); - fprintf(stderr, errmsg, i, tbl->name); - free(errmsg); - } - RIF(xk_print(tbl, buf, ((char **)p)[i*tbl->size], - nptr-(!sub), 0, (void *)-1, tbl_find)); - } - *buf += lsprintf(*buf, Str_close_curly); - return(SUCCESS); - } - - if (!Pr_tmpnonames && (Pr_format & PRNAMES)) { - switch(tbl->kind) { - case K_CHAR: - case K_SHORT: - case K_INT: - case K_LONG: - case K_STRING: - *buf += lsprintf(*buf, "%s=", tbl->name); - } - } - switch(tbl->kind) { - case K_CHAR: - case K_SHORT: - case K_INT: - case K_LONG: - RIF(xk_prin_int(tbl, buf, (unsigned long *)p)); - break; - case K_STRING: - if (delim > 0) { - if (tbl->subscr) { - RIF(xk_prin_hexstr(buf, (char *)p, delim)); - } else { - RIF(xk_prin_hexstr(buf, ((char **)p)[0], delim)); - } - } else { - if (tbl->subscr) { - RIF(xk_prin_nts(buf, (char *)p)); - } else { - RIF(xk_prin_nts(buf, ((char **)p)[0])); - } - } - break; - case K_TYPEDEF: - ntbl = tbl_find(tbl->tname, tbl->tbl, tbl->id); - return(xk_print(ntbl, buf, p, nptr, 0, pass, tbl_find)); - case K_STRUCT: - *buf += lsprintf(*buf, Str_open_curly); - ntbl = tbl_find(tbl->tname, tbl->tbl, tbl->id); - for (i = 0; ntbl[i].name != NULL; i++) { - _Delim = xk_get_delim(&ntbl[i], p); - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,23, - "xk_print: Printing member '%s' at location 0x%x\n")); - fprintf(stderr, errmsg, ntbl[i].name, p+ntbl[i].offset); - free(errmsg); - } - RIF(xk_print(&ntbl[i], buf, p+ntbl[i].offset, nptr, sub, pass, tbl_find)); - if (ntbl[i].kind < K_DSHORT && ntbl[i+1].name != NULL) - *buf += lsprintf(*buf, ", "); - } - *buf += lsprintf(*buf, Str_close_curly); - break; - case K_UNION: - if (strncmp(tbl[-1].name, "ch_", 3) != 0) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,24, - "xk_print: Cannot determine the choice in '%s'\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(FAIL); - } - val = *((long *)(p - sizeof(long))); - ntbl = tbl_find(tbl->tname, tbl->tbl, tbl->id); - *buf += lsprintf(*buf, Str_open_curly); - for (i = 0; ntbl[i].name != NULL; i++) { - if (ntbl[i].choice == val) { - *buf += lsprintf(*buf, "%s ", ntbl[i].name); - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,25, - "xk_print: Printing union member '%s' into location 0x%x\n")); - fprintf(stderr, errmsg, ntbl[i].name, p + ntbl[i].offset); - free(errmsg); - } - RIF(xk_print(&ntbl[i], buf, p, nptr, sub, pass, tbl_find)); - break; - } - } - *buf += lsprintf(*buf, Str_close_curly); - break; - case K_DSHORT: - case K_DINT: - case K_DLONG: - break; - default: - return(FAIL); - } - return(SUCCESS); -} - -/* - * xk_free: Takes a pointer to a structure member table, and - * free any malloc'ec elements in it at all levels. - * Returns SUCCESS or FAIL. - * - * Contains an optimization that if a structure or union contains a - * type that is a simple type and nptr is zero, does not do a recursive call. - */ - -int -xk_free( - memtbl_t *tbl, - char *p, - int nptr, - int sub, - memtbl_t *(*tbl_find)() ) -{ - memtbl_t *ntbl; - int i; - long val; /* used for choice selection */ - char *np; - int delim = _Delim; - int (*spec_free)(); - char * errmsg; - - if (tbl == NULL) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,26, - "xk_free: A NULL 'type' table was specified\n")); - fprintf(stderr, errmsg); - free(errmsg); - } - return(FAIL); - } - if (tbl->tname && (spec_free = find_special(SPEC_FREE, tbl->tname))) - return(spec_free(tbl, p, nptr, sub, tbl_find)); - if (tbl->name && (spec_free = find_special(SPEC_FREE, tbl->name))) - return(spec_free(tbl, p, nptr, sub, tbl_find)); - nptr += tbl->ptr; - if ((tbl->flags & F_TYPE_IS_PTR) || (nptr > 0)) { - for (i = Ndont - 1; i >= 0; i--) { - if (Dont[i] == ((char **) p)[0]) { - for ( ; i < Ndont - 1; i++) - Dont[i] = Dont[i + 1]; - Ndont--; - return(SUCCESS); - } - } - } - if (sub > 0 && tbl->subscr > 0) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,27, - "xk_free: Multiple array subscripts are not handled in '%s'\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(FAIL); - } - /* - * If there is exactly one pointer associated with this - * member, and no length delimiters, and no subscripts, - * or there are multiple pointers, - * then recursively call ourselves on the structure, then - * free the structure itself. - */ - if ((nptr > 1 && tbl->delim != 0) || (nptr == 1 && tbl->delim == 0 && tbl->subscr == 0)) { - if (((char **)p)[0] != NULL) { - RIF(xk_free(tbl, ((char **)p)[0], nptr-1-tbl->ptr, sub, tbl_find)); - free(((char **)p)[0]); - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,28, - "xk_free: The member '%s' at location 0x%x was freed and set to NULL\n")); - fprintf(stderr, errmsg, tbl->name, ((char **)p)[0]); - free(errmsg); - } - ((char **)p)[0] = NULL; - } else { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,29, - "xk_free: The member '%s' is NULL; no free occurred\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - } - return(SUCCESS); - } - /* - * If there is exactly one pointer level, or one subscripting level, - * and there is a delimiter, - * and no subscript, then we are a length delimited malloced array. - * Free each element, then free the whole array. - */ - if (tbl->delim != 0 && ((nptr == 1 && tbl->subscr == 0) || - nptr == 0 && tbl->subscr != 0 && tbl->kind != K_STRING)) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,30, - "xk_free: The delimiter for '%s' is %d\n")); - fprintf(stderr, errmsg, tbl->name, delim); - free(errmsg); - } - if (tbl->subscr == 0) - np = ((char **)p)[0]; - else - np = p; - for (i = 0; i < delim; i++) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,31, - "xk_free: Freeing array element [%d] of '%s' at address 0x%x\n")); - fprintf(stderr, errmsg, i, tbl->name, &np[i*tbl->size]); - free(errmsg); - } - RIF(xk_free(tbl, &np[i*tbl->size], nptr ? -1 : 0, 0, tbl_find)); - } - if (tbl->subscr == 0) { - if (np != NULL) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,32, - "xk_free: Freeing pointer to array of '%s' at location 0x%x and setting to NULL\n")); - fprintf(stderr, errmsg, tbl->name, np); - free(errmsg); - } - free(np); - if (tbl->subscr == 0) - ((char **)p)[0] = NULL; - } else if (_Prdebug) { - errmsg=strdup(GETMESSAGE(8,33, - "xk_free: The pointer to array of '%s'is NULL; no free occurred\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - } - return(SUCCESS); - } - - switch(tbl->kind) { - case K_DSHORT: - case K_SHORT: - case K_DINT: - case K_INT: - case K_DLONG: - case K_LONG: - break; - case K_STRING: - if (!tbl->subscr) { - if (((char **)p)[0] != NULL) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,34, - "xk_free: Freeing string '%s' at location 0x%x, and setting to NULL\n")); - fprintf(stderr, errmsg, tbl->name, p); - free(errmsg); - } - free(((char **)p)[0]); - ((char **)p)[0] = NULL; - } else if (_Prdebug) { - errmsg=strdup(GETMESSAGE(8,35, - "xk_free: The string '%s' is NULL; no free occurred\n")); - fprintf(stderr, errmsg, tbl->name, p); - free(errmsg); - } - } - break; - case K_TYPEDEF: - ntbl = tbl_find(tbl->tname, tbl->tbl, tbl->id); - return(xk_free(ntbl, p, nptr, 0, tbl_find)); - case K_STRUCT: - ntbl = tbl_find(tbl->tname, tbl->tbl, tbl->id); - for (i = 0; ntbl[i].name != NULL; i++) { - if ((ntbl[i].flags & F_SIMPLE) && nptr+ntbl[i].ptr == 0) { - if (_Prdebug) - { - errmsg=strdup(GetSharedMsg( - DT_XK_FREE_NO_MEMBER)); - fprintf(stderr, errmsg, ntbl[i].name, p + ntbl[i].offset); - free(errmsg); - } - continue; - } - _Delim = xk_get_delim(&ntbl[i], p); - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,36, - "xk_free: Freeing member '%s' at location 0x%x\n")); - fprintf(stderr, errmsg, ntbl[i].name, p + ntbl[i].offset); - free(errmsg); - } - if (xk_free(&ntbl[i], p+ntbl[i].offset, nptr, sub, tbl_find) == FAIL) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,37, - "xk_free: A failure occurred while freeing the '%s' member\n")); - fprintf(stderr, errmsg, ntbl[i].name); - free(errmsg); - } - return(FAIL); - } - } - break; - case K_UNION: - if (strncmp(tbl[-1].name, "ch_", 3) != 0) { - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,38, - "xk_free: Cannot determine the choice in '%s'\n")); - fprintf(stderr, errmsg, tbl->name); - free(errmsg); - } - return(FAIL); - } - val = *((long *)(p - sizeof(long))); - ntbl = tbl_find(tbl->tname, tbl->tbl, tbl->id); - for (i = 0; ntbl[i].name != NULL; i++) { - if (ntbl[i].choice == val) { - if ((ntbl[i].flags & F_SIMPLE) && nptr+ntbl[i].ptr == 0) { - if (_Prdebug) - { - errmsg=strdup(GetSharedMsg( - DT_XK_FREE_NO_MEMBER)); - fprintf(stderr, errmsg, ntbl[i].name, p + ntbl[i].offset); - free(errmsg); - } - continue; - } - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,39, - "xk_free: Freeing union member '%s' at location 0x%x\n")); - fprintf(stderr, errmsg, ntbl[i].name, p + ntbl[i].offset); - free(errmsg); - } - RIF(xk_free(&ntbl[i], p, nptr, sub, tbl_find)); - break; - } - } - if (ntbl[i].name == NULL && _Prdebug) - if (_Prdebug) - { - errmsg=strdup(GETMESSAGE(8,40, - "xk_free: There is no legal union choice for '%s' (value is 0x%x); no free occurred\n")); - fprintf(stderr, errmsg, tbl->name, val); - free(errmsg); - } - break; - default: - return(FAIL); - } - return(SUCCESS); -} diff --git a/cde/programs/dtksh/exksh_tbls.h b/cde/programs/dtksh/exksh_tbls.h deleted file mode 100644 index 7d41614a..00000000 --- a/cde/programs/dtksh/exksh_tbls.h +++ /dev/null @@ -1,90 +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_tbls.h /main/4 1995/11/01 15:54:45 rswiston $ */ -/************************************<+>************************************* - **************************************************************************** - ** - ** File: exksh_tbls.h - ** - ** Project: CDE - ** - ** Description: Public include file for exksh_tbls.c - ** - ** - ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 - ** by Hewlett-Packard Company - ** - ** - ** - **************************************************************************** - ************************************<+>*************************************/ - -#ifndef _Dtksh_exksh_tbls_h -#define _Dtksh_exksh_tbls_h - -extern int Pr_tmpnonames; -extern int _Delim; - - - -extern int (*find_special( - int type, - char *name))() ; -extern int set_special( - char *name, - int (*free)(), - int (*parse)(), - int (*print)()) ; -extern int xk_parse( - memtbl_t *tbl, - char **buf, - char *p, - int nptr, - int sub, - void *pass, - memtbl_t *(*tbl_find)()) ; -extern int xk_get_delim( - memtbl_t *tbl, - char *p) ; -extern int xk_get_pardelim( - memtbl_t *tbl, - char *p) ; -extern int xk_print( - memtbl_t *tbl, - char **buf, - char *p, - int nptr, - int sub, - void *pass, - memtbl_t *(*tbl_find)()) ; -extern int xk_free( - memtbl_t *tbl, - char *p, - int nptr, - int sub, - memtbl_t *(*tbl_find)()) ; - - - -#endif /* _Dtksh_exksh_tbls_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/extra.c b/cde/programs/dtksh/extra.c index f183ab4c..28c40f30 100644 --- a/cde/programs/dtksh/extra.c +++ b/cde/programs/dtksh/extra.c @@ -66,39 +66,6 @@ env_get( } -void * -xkhash_init( - int num ) -{ - return((void *) hashalloc(NULL,0)); -} - -void -xkhash_override( - Hash_table_t *tbl, - const char *name, - void *val ) -{ - hashput(tbl, name, val); -} - -void * -xkhash_find( - Hash_table_t *tbl, - const char *name ) -{ - return(hashget(tbl, name)); -} - -void -xkhash_add( - Hash_table_t *tbl, - const char *name, - char *val ) -{ - hashput(tbl, name, val); -} - int ksh_eval( char *cmd ) diff --git a/cde/programs/dtksh/genlib.c b/cde/programs/dtksh/genlib.c deleted file mode 100644 index 948a9cde..00000000 --- a/cde/programs/dtksh/genlib.c +++ /dev/null @@ -1,258 +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: genlib.c /main/5 1996/09/27 19:01:37 drk $ */ - -/* 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. */ - -#include "stdio.h" -#include - -#ifdef DYNLIB -#include -#endif -#ifdef HPUX_DYNLIB -#include -#endif - -#include -#include -#include -#include "docall.h" -#include "exksh.h" -#include "misc.h" -#include "xmdtksym.h" -#include "msgs.h" - - -static char * ReturnUsageMsg( - int msgIndex); - - -struct libstruct *All_libs; -static int Nlibs; -int sh_errno; - -static struct usage { - char *funcname; - int msgId; -} Xk_usage[] = { - "call", 0, - "define", 1, - "deflist", 2, - "deref", 3, - "field_comp", 4, - "field_get", 5, - "finddef", 6, - "findsym", 7, - "sizeof", 8, - "struct", 9, - "structlist", 10, - "symbolic", 11, - "typedef", 12, -}; - - -static char * -ReturnUsageMsg( - int msgId ) -{ - char * errmsg; - - switch (msgId) - { - case 0: errmsg = GETMESSAGE(9,1, "call [-F] [-n] [-r] function [arg] ... [++] [argModifier ...]"); - return(errmsg); - case 1: errmsg = GETMESSAGE(9,2, "define [-R] name value"); - return(errmsg); - case 2: errmsg = GETMESSAGE(9,3, "deflist [-p prefix] address"); - return(errmsg); - case 3: errmsg = GETMESSAGE(9,4, "deref [-p] [-l] [-len] address [variable]"); - return(errmsg); - case 4: errmsg = GETMESSAGE(9,5, "field_comp type address [criterion ...]"); - return(errmsg); - case 5: errmsg = GETMESSAGE(9,6, "field_get [-v variable] type address [fieldName ...]"); - return(errmsg); - case 6: errmsg = GETMESSAGE(9,7, "finddef definitionName [variable]"); - return(errmsg); - case 7: errmsg = GETMESSAGE(9,8, "findsym symbolName [variable]"); - return(errmsg); - case 8: errmsg = GETMESSAGE(9,9, "sizeof typeName [variable]"); - return(errmsg); - case 9: errmsg = GETMESSAGE(9,10,"struct [-R] name fieldName[:type] ..."); - return(errmsg); - case 10: errmsg = GETMESSAGE(9,11, "structlist [-i id] [-p prefix] address"); - return(errmsg); - case 11: errmsg = GETMESSAGE(9,12, "symbolic [-m] -t type ... symbolic ..."); - return(errmsg); - case 12: errmsg = GETMESSAGE(9,13,"typedef [-R] typeDescriptor typeName"); - return(errmsg); - } - - return(""); -} - -int -xk_usage( - char *funcname ) -{ - int i; - char * errhdr; - char * errmsg; - - for (i = 0; i < sizeof(Xk_usage) / sizeof(struct usage); i++) - { - if (!funcname) - { - errmsg = strdup(ReturnUsageMsg(Xk_usage[i].msgId)); - ALTPUTS(errmsg); - free(errmsg); - } - else if (!funcname || (strcmp(funcname, Xk_usage[i].funcname) == 0)) - { - errhdr = strdup(GETMESSAGE(9,14, "Usage: %s")); - errmsg = strdup(ReturnUsageMsg(Xk_usage[i].msgId)); - printerrf("", errhdr, errmsg, NULL, NULL, NULL, NULL, NULL, NULL, - NULL); - free(errhdr); - free(errmsg); - return(SH_SUCC); - } - } - return(funcname ? SH_FAIL : SH_SUCC); -} - -unsigned long -fsym( - char *str, - int lib ) -{ -#if defined(STATICLIB) || ( !defined(DYNLIB) && !defined(HPUX_DYNLIB)) - struct symarray dummy; -#endif -#if defined(DYNLIB) - int i, j; -#endif - void *found; - -#if defined(STATICLIB) || (!defined(DYNLIB) && !defined(HPUX_DYNLIB)) - dummy.str = str; - -if ((found = (void *) bsearch((char *) &dummy, Symarray, - Symsize-1, sizeof(struct symarray), symcomp)) != NULL) - return(((struct symarray *) found)->addr); -#endif /* STATICLIB */ - -#ifdef DYNLIB - for (i = 0; i < Nlibs; i++) - for (j = 0; j < All_libs[i].nlibs; j++) - if ((found = dlsym(All_libs[i].libs[j].handle, -str)) != NULL) - return((unsigned long) found); -#endif /* DYNLIB */ -#ifdef HPUX_DYNLIB - { - shl_t handle; - - 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 /* HPUX_DYNLIB */ - return(NULL); -} - - - -int -do_findsym( - int argc, - char **argv ) -{ - unsigned long found; - struct symarray dummy; - char * errmsg; - - if (argc == 1) { - XK_USAGE(argv[0]); - } - if ((found = fsym(argv[1], -1)) != NULL) { - if (argc >= 3) { - char buf[50]; - - sprintf(buf, "%s=0x%lx", argv[2], found); - env_set(buf); - } - else { - sprintf(xk_ret_buffer, "0x%lx", found); - xk_ret_buf = xk_ret_buffer; - } - } - else { - errmsg = strdup(GetSharedMsg(DT_UNDEF_SYMBOL)); - printerrf(argv[0], errmsg, argv[1], NULL, NULL, - NULL, NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - return(SH_SUCC); -} - -#ifndef SPRINTF_RET_LEN -/* - * SYSTEM V sprintf() returns the length of the buffer, other versions - * of the UNIX System don't. So, if the SPRINTF_RET_LEN flag is not true, - * then we define an alternate function, lsprintf(), which has the SYSV - * behavior. Otherwise, lsprintf is #defined in exksh.h to be the - * same as sprintf. - */ - -int -lsprintf( - char *buf, - char *fmt, - unsigned long arg1, - unsigned long arg2, - unsigned long arg3, - unsigned long arg4, - unsigned long arg5, - unsigned long arg6, - unsigned long arg7 ) - -{ - sprintf(buf, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7); - return(strlen(buf)); -} -#endif diff --git a/cde/programs/dtksh/genlib.h b/cde/programs/dtksh/genlib.h deleted file mode 100644 index e7f95ced..00000000 --- a/cde/programs/dtksh/genlib.h +++ /dev/null @@ -1,75 +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: genlib.h /main/4 1995/11/01 15:55:32 rswiston $ */ -/************************************<+>************************************* - **************************************************************************** - ** - ** File: genlib.h - ** - ** Project: CDE - ** - ** Description: Public include file for genlib.c - ** - ** - ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 - ** by Hewlett-Packard Company - ** - ** - ** - **************************************************************************** - ************************************<+>*************************************/ - -#ifndef _Dtksh_genlib_h -#define _Dtksh_genlib_h - -#include "exksh.h" - -extern struct libstruct *All_libs; - - - -extern int xk_usage( - char *funcname) ; -extern unsigned long fsym( - char *str, - int lib) ; -extern int do_findsym( - int argc, - char **argv) ; -#ifndef SPRINTF_RET_LEN -extern int lsprintf( - char *buf, - char *fmt, - unsigned long arg1, - unsigned long arg2, - unsigned long arg3, - unsigned long arg4, - unsigned long arg5, - unsigned long arg6, - unsigned long arg7) ; -#endif - - - -#endif /* _Dtksh_genlib_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/lclvars b/cde/programs/dtksh/lclvars deleted file mode 100644 index d8138936..00000000 --- a/cde/programs/dtksh/lclvars +++ /dev/null @@ -1,72 +0,0 @@ -# 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. - -# -# Installation Directories -# - -COEKSHBINDIR="/usr/bin" - -# -# Standard X Libraries -# - -XROOT = /usr/lib/X11R4 -XINC = /x/r5s700_90 -XLIB = $(XROOT) -X11LIB = /x/r5s700_90/lib/X/libX11.sl -XtLIB = /x/r5s700_90/lib/Xt/libXt.sl - -# -# MOTIF Libraries -# - -MOTIFINC = /x/r5s700_90/X11 -XmLIB = /x/r5s700_90/lib/Xm/libXm.sl - -# -# COE Libraries -# - -CoeINC = /x/r5s700_90/lib1 -CoeLIB = /clone/fred/Coe/libCoe.a -#CoeLIB = /x/r5s700_90/lib1/Coe/libCoe.a -#XvhLIB = /clone/fred/Xvh/libXvh.a -XvhLIB = /x/r5s700_90/lib1/Xvh/libXvh.a -IlLIB = /x/r5s700_90/lib1/il/libil.a -BmsLIB = /x/r5s700_90/lib/bms/hpux/s700.9.03/libbms.a -SoftlibLIB = /x/r5s700_90/lib/bms/hpux/s700.9.03/libsoftlib.a -BmsDIR = /x/r5s700_90/lib/bms/hpux/s700.9.03 - -# -# Standard user level compilation flags for X programs, -# with variations for MOTIF or OPEN LOOK -# - -AR = ar - -LDFLAGS = -L $(XLIB) -ldld -Wl,-E - -SUBCFLAGS = -g -DSYSV -DNLS16 -DMALLOC_0_RETURNS_NULL -DMERGE -DNDEBUG -D__hpux -Dhpux -DOSMAJORVERSION=9 -DOSMINORVERSION=0 -DSHMLINK -D__hp9000s800 -Dhp9000s800 -D__hp9000s700 -DHPPEX -DMESSAGE_CAT +e -DR5TREE -Aa -D_HPUX_SOURCE -DANSICPP -DXK_MISCELLANY -D_BMS -D_CMDINV -DVALUE_ADDED +DA1.0 - -XFLAGS = - -UFLAGS = $(XFLAGS) -DKSHELL -DUSER_PROMPT -DTEST_CODE -D'COEKSHBINDIR=$(COEKSHBINDIR)' - -CFLAGS = $(SUBCFLAGS) -I$(BmsDIR) -I$(CoeINC) -I $(MOTIFINC) -I. $(EXKSHINCLUDES) -I$(XINC) $(UFLAGS) -Dconst= - -RANLIB = ranlib - - -MO_CFLAGS = $(CFLAGS) -I $(MOTIFINC) $(MO_UFLAGS) - -# -# Dynamic Library Definitions -# - -LIB_KIND = .a diff --git a/cde/programs/dtksh/libdtkxm.list b/cde/programs/dtksh/libdtkxm.list deleted file mode 100644 index ab201f34..00000000 --- a/cde/programs/dtksh/libdtkxm.list +++ /dev/null @@ -1,207 +0,0 @@ -Toplevel -do_XBell -do_XClearArea -do_XClearWindow -do_XDrawArc -do_XDrawImageString -do_XDrawLine -do_XDrawLines -do_XDrawPoint -do_XDrawPoints -do_XDrawRectangle -do_XDrawSegments -do_XDrawString -do_XFillArc -do_XFillPolygon -do_XFillRectangle -do_XFlush -do_XSync -do_XRaiseWindow -do_XmCreateArrowButton -do_XmCreateArrowButtonGadget -do_XmCreateBulletinBoard -do_XmCreateBulletinBoardDialog -do_XmCreateCascadeButton -do_XmCreateCascadeButtonGadget -do_XmCreateCommand -do_XmCreateDialogShell -do_XmCreateDrawingArea -do_XmCreateDrawnButton -do_XmCreateErrorDialog -do_XmCreateFileSelectionBox -do_XmCreateFileSelectionDialog -do_XmCreateForm -do_XmCreateFormDialog -do_XmCreateFrame -do_XmCreateInformationDialog -do_XmCreateLabel -do_XmCreateLabelGadget -do_XmCreateList -do_XmListAddItem -do_XmListAddItemUnselected -do_XmListAddItems -do_XmListAddItemsUnselected -do_XmListDeleteAllItems -do_XmListDeleteItem -do_XmListDeleteItems -do_XmListDeleteItemsPos -do_XmListDeletePos -do_XmListDeletePositions -do_XmListDeselectAllItems -do_XmListDeselectItem -do_XmListDeselectPos -do_XmListGetKbdItemPos -do_XmListItemExists -do_XmListItemPos -do_XmListPosSelected -do_XmListPosToBounds -do_XmListReplaceItemsPos -do_XmListReplaceItemsPosUnselected -do_XmListSelectItem -do_XmListSelectPos -do_XmListSetAddMode -do_XmListSetBottomItem -do_XmListSetBottomPos -do_XmListSetHorizPos -do_XmListSetItem -do_XmListSetKbdItemPos -do_XmListSetPos -do_XmListUpdateSelectedList -do_XmCreateMainWindow -do_XmCreateMenuBar -do_XmCreateMenuShell -do_XmCreateMessageBox -do_XmCreateMessageDialog -do_XmCreateOptionMenu -do_XmCreatePanedWindow -do_XmCreatePopupMenu -do_XmCreatePromptDialog -do_XmCreatePulldownMenu -do_XmCreatePushButton -do_XmCreatePushButtonGadget -do_XmCreateQuestionDialog -do_XmCreateRadioBox -do_XmCreateRowColumn -do_XmCreateScale -do_XmCreateScrollBar -do_XmCreateScrolledList -do_XmCreateScrolledText -do_XmCreateScrolledWindow -do_XmCreateSelectionBox -do_XmCreateSelectionDialog -do_XmCreateSeparator -do_XmCreateSeparatorGadget -do_XmCreateText -do_XmCreateTextField -do_XmCreateToggleButton -do_XmCreateToggleButtonGadget -do_XmCreateWarningDialog -do_XmCreateWorkArea -do_XmCreateWorkingDialog -do_DtCreateHelpDialog -do_DtCreateQuickHelpDialog -do_DtHelpReturnSelectedWidgetId -do_DtHelpSetCatalogName -do_DtHelpQuickDialogGetChild -do_XmCommandAppendValue -do_XmCommandError -do_XmCommandSetValue -do_XmCommandGetChild -do_XmMessageBoxGetChild -do_XmFileSelectionBoxGetChild -do_XmMainWindowSetAreas -do_XmMainWindowSep1 -do_XmMainWindowSep2 -do_XmMainWindowSep3 -do_XmProcessTraversal -do_XmInternAtom -do_XmGetAtomName -do_XmGetColors -do_XmUpdateDisplay -do_XmAddWMProtocols -do_XmRemoveWMProtocols -do_XmAddWMProtocolCallback -do_XmRemoveWMProtocolCallback -do_XmMenuPosition -do_XmIsTraversable -do_XmScaleGetValue -do_XmScaleSetValue -do_XmScrollBarGetValues -do_XmScrollBarSetValues -do_XmScrollVisible -do_XmToggleButtonGetState -do_XmToggleButtonGadgetGetState -do_XmToggleButtonSetState -do_XmToggleButtonGadgetSetState -do_XmTextDisableRedisplay -do_XmTextEnableRedisplay -do_XmTextGetTopCharacter -do_XmTextScroll -do_XmTextFindString -do_XmTextGetBaseline -do_XmTextGetEditable -do_XmTextGetInsertionPosition -do_XmTextGetLastPosition -do_XmTextGetMaxLength -do_XmTextGetSelection -do_XmTextGetSelectionPosition -do_XmTextGetString -do_XmTextInsert -do_XmTextPosToXY -do_XmTextRemove -do_XmTextReplace -do_XmTextSetEditable -do_XmTextWetHighlight -do_XmTextSetInsertionPosition -do_XmTextSetMaxLength -do_XmTextSetSelection -do_XmTextSetString -do_XmTextShowPosition -do_XmTextXYToPos -do_XmTextClearSelection -do_XmTextCopy -do_XmTextCut -do_XmTextPaste -do_XmTextSetAddMode -do_XtAddCallback -do_XtRemoveCallback -do_XtAddEventHandler -do_XtRemoveEventHandler -do_XtAddInput -do_XtAddTimeOut -do_XtCreateApplicationShell -do_XtInitialize -do_XtCallCallbacks -do_XtHasCallbacks -do_XtCreateManagedWidget -do_XtCreatePopupShell -do_XtCreateWidget -do_XtDestroyWidget -do_XtGetValues -do_XtIsManaged -do_XtIsRealized -do_XtIsSensitive -do_XtIsShell -do_XtLastTimestampProcessed -do_XtMainLoop -do_XtDisplay -do_XtWindow -do_XtManageChildren -do_XtMapWidget -do_XtParent -do_XtPopdown -do_XtPopup -do_XtRealizeWidget -do_XtRemoveAllCallbacks -do_XtSetSensitive -do_XtSetValues -do_XtUnmanageChildren -do_XtUnmapWidget -do_XtUnrealizeWidget -do_catopen -do_catgets -do_catclose -do_managelist_func -do_widlist -do_widload -handle_to_widget diff --git a/cde/programs/dtksh/misc.c b/cde/programs/dtksh/misc.c deleted file mode 100644 index 5fda1554..00000000 --- a/cde/programs/dtksh/misc.c +++ /dev/null @@ -1,176 +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: misc.c /main/5 1996/10/04 16:21:08 drk $ */ -/* 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. */ - -#include "name.h" -#include "shell.h" -#include "stdio.h" -#include -#include -#include -#define NO_AST -#include "dtksh.h" -#undef NO_AST -#include "exksh.h" /* which includes sys/types.h */ -/* #include */ -#include -/* #include */ -#include -#include "docall.h" -#include "msgs.h" - -static char use[] = "0x%lx"; - -int -symcomp( - void *sym1, - void *sym2 ) - -{ - return(strcmp(((struct symarray *) sym1)->str, ((struct symarray *) sym2)->str)); -} - - -void * -getaddr( - char *str ) -{ - if (isdigit(str[0])) - return((void *) strtoul(str, NULL, 0)); - else - return((void *) fsym(str, -1)); -} - -int -do_deref( - int argc, - char **argv ) -{ - unsigned char *ptr; - long i, len = 0; - short longwise = -1; - char printit = 0; - static char xk_ret_buffer[1024]; - char * errmsg; - - for (i = 1; (i < argc) && argv[i] != NULL && argv[i][0] == '-'; i++) { - if (isdigit(argv[i][1])) { - if (longwise < 0) - longwise = 0; - ptr = (unsigned char *) argv[i] + 1; - xk_par_int(&ptr, &len, NULL); - if (!len) { - errmsg = strdup(GETMESSAGE(10,1, - "An invalid length parameter was specified: %s")); - printerrf(argv[0], errmsg, - argv[i], NULL, NULL, NULL, NULL, NULL, - NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - } - else if (argv[i][1] == 'l') - longwise = 1; - else if (argv[i][1] == 'p') - printit = 1; - } - if (longwise < 0) - longwise = 1; - if (!len) - len = sizeof(long); - if (i >= argc) { - XK_USAGE(argv[0]); - } - ptr = (unsigned char *) getaddr(argv[i++]); - if (ptr) { - if ( ((i < argc) && argv[i]) || printit) { - char *dbuf, *p; - int totlen; - char buf[10 * BUFSIZ]; - int incr; - - if (printit) - totlen = len + 1 + 1; - else - totlen = len + strlen(argv[i]) + 1 + 1; - dbuf = (char *) (totlen < (10 * BUFSIZ - 1)) ? buf : malloc(totlen); - if (printit) - strcpy(dbuf, "0x"); - else - sprintf(dbuf, "%s=0x", argv[i]); - p = dbuf + strlen(dbuf); - incr = longwise ? sizeof(long) : sizeof(char); - for (i=0; i < len; i += incr, p += 2 * incr) - sprintf(p, "%*.*x", incr * 2, incr * 2, longwise ? *((unsigned long *) (ptr + i)) : (unsigned long) (ptr[i])); - if (printit) - ALTPUTS(dbuf); - else - env_set(dbuf); - if (dbuf != buf) - free(dbuf); - } - else { - if (len > sizeof(unsigned long)) { - char tmpBuf[30]; - - sprintf(tmpBuf, "%ld", (long)sizeof(unsigned long)); - errmsg = strdup(GETMESSAGE(10,2, - "To set RET, the length must be less than: %s")); - printerrf(argv[0], errmsg, - tmpBuf, NULL, NULL, NULL, NULL, NULL, NULL, - NULL); - free(errmsg); - return(SH_FAIL); - } - sprintf(xk_ret_buffer, use, *((unsigned long *) ptr)); - xk_ret_buf = xk_ret_buffer; - } - return(SH_SUCC); - } - errmsg = strdup(GetSharedMsg(DT_UNDEF_SYMBOL)); - printerrf(argv[0], errmsg, argv[--i], NULL, NULL, NULL, - NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); -} - -void * -nop( - void *var ) -{ - return(var); -} - -void * -save_alloc( - void *var ) -{ - return(var); -} diff --git a/cde/programs/dtksh/misc.h b/cde/programs/dtksh/misc.h deleted file mode 100644 index 008df5f9..00000000 --- a/cde/programs/dtksh/misc.h +++ /dev/null @@ -1,62 +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: misc.h /main/4 1995/11/01 15:56:04 rswiston $ */ -/************************************<+>************************************* - **************************************************************************** - ** - ** File: misc.h - ** - ** Project: CDE - ** - ** Description: Public include file for misc.c - ** - ** - ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 - ** by Hewlett-Packard Company - ** - ** - ** - **************************************************************************** - ************************************<+>*************************************/ - -#ifndef _Dtksh_misc_h -#define _Dtksh_misc_h - - - -extern int symcomp( - const void *sym1, - const void *sym2) ; -extern void * getaddr( - char *str) ; -extern int do_deref( - int argc, - char **argv) ; -extern void * nop( - void *var) ; -extern void * save_alloc( - void *var) ; - - -#endif /* _Dtksh_misc_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/struct.c b/cde/programs/dtksh/struct.c deleted file mode 100644 index 8617ae0d..00000000 --- a/cde/programs/dtksh/struct.c +++ /dev/null @@ -1,741 +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: struct.c /main/4 1995/11/01 15:56:35 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. */ - -#undef printf - - -#include "shell.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "hash.h" -#include "stdio.h" -#define NO_AST -#include "dtksh.h" -#undef NO_AST -#include "exksh.h" -#include "xmksh.h" -#include "dtkcmds.h" -#include "xmcvt.h" -#include "widget.h" -#include "extra.h" -#include "xmwidgets.h" -#include "struct.h" -#include "basetbl.h" -#include "docall.h" -#include "exksh_tbls.h" -#include "msgs.h" - -const static char use[] = "0x%x"; -const static char use2[] = "%s=0x%x"; - -static char structInited = 0; -static void *Hashnams = NULL; - -static struct memtbl **Dynmem = NULL; -static int Ndynmem = 0; -static int Sdynmem = 0; - -struct structlist { - char *prefix; - int id; - int size; - struct memtbl **mem; -}; - -struct structlist *Structlist = NULL; -int Nstructlist; - - - -static int freemem( - struct memtbl *mem) ; -static growmem( void ) ; -static char * endtok( - char *start) ; -static int chg_structlist( - struct memtbl **memptr, - int id) ; -static struct_init( void ) ; - - - -memtbl_t * -ffind( - memtbl_t *tbl, - char *fld, - char **pptr ) -{ - static memtbl_t tbluse[2]; - memtbl_t *tbl2; - char *p, *q, op; - unsigned int len, sub; - - if (!fld || !(*fld)) - return(tbl); - tbl2 = tbluse; - tbluse[0] = *tbl; - tbluse[1] = Null_tbl; - q = fld; - while (tbl2 && q && *q) { - p = q; - if (*q == '[') { - if (!tbl2->ptr) - return(NULL); - q++; - xk_par_int(&q, &sub, NULL); - if (*q != ']') - return(NULL); - *pptr = ((char **) (*pptr))[0]; - *pptr += sub * tbl2->size; - q++; - tbluse[0].ptr--; - continue; - } - if ((len = strcspn(p, "[.")) < strlen(p)) { - q = p + len; - op = *q; - *q = '\0'; - } - else - q = NULL; - tbl2 = asl_find(NULL, tbluse, p, pptr); - if (tbl2 && (tbl2 != tbluse)) { - /* A field should not be a subfield of itself */ - - tbluse[0] = *tbl2; - tbl2 = tbluse; - tbl2->name = "."; - tbl2->offset = 0; - } - if (q) { - if (op == '.') - *q++ = op; - else - *q = op; - } - } - return(tbl2); -} - -static int -freemem( - struct memtbl *mem ) -{ - free(mem->name); - /* - int i; - - ** Because structures and typedefs now inherit fields (i.e. copy - ** the memtbl entry) we must keep the fields of a structure - ** around permanently, (unless we implement a reference count). - ** Let's keep the code handy in case we do. - if (mem->kind == K_STRUCT) { - struct memtbl *fmem; - - fmem = Dynmem[mem->tbl]; - for (i = 0; fmem[i].name; i++) { - free(fmem[i].name); - if (fmem[i].tname) - free(fmem[i].tname); - } - } - */ - free(mem); -} - -static -growmem( void ) -{ - if (!(Dynmem = (struct memtbl **) realloc(Dynmem, (Sdynmem + 20) * sizeof(memtbl_t *)))) - return(SH_FAIL); - chg_structlist(Dynmem, DYNMEM_ID); - memset(((char *) Dynmem) + Sdynmem * sizeof(memtbl_t *), '\0', 20 * sizeof(memtbl_t *)); - Sdynmem += 20; -} - -int -do_struct( - int argc, - char **argv ) -{ - struct memtbl *mem, *fmem; - int i, j, argstart, redo; - char *name, *fname; - char *p; - - if (!structInited) - struct_init(); - - if (argc > 1 && C_PAIR(argv[1], '-', 'R')) { - redo = 0; - argstart = 2; - } - else { - argstart = 1; - redo = 1; - } - if ((argstart + 1) >= argc) - { - XK_USAGE(argv[0]); - } - name = argv[argstart++]; - for (i = 0; i < Ndynmem; i++) - if (!(Dynmem[i]->flags & F_FIELD) && (strcmp(name, Dynmem[i]->name) == 0)) - break; - if ((i < Ndynmem) && !redo) { - if (!redo) - return(SH_SUCC); - if (Sdynmem - Ndynmem < 1) - growmem(); - } - else if (Sdynmem - Ndynmem < 2) - growmem(); - /* - ** Number of memtbls needed: two for structure table and one for - ** each field plus one for null termination. The number of - ** fields is argc - 2. - */ - if (!(mem = (struct memtbl *) malloc(2 * sizeof(struct memtbl)))) - return(SH_FAIL); - if (!(fmem = (struct memtbl *) malloc((argc - 1) * sizeof(struct memtbl)))) - return(SH_FAIL); - memset(mem, '\0', 2 * sizeof(struct memtbl)); - memset(fmem, '\0', (argc - 1) * sizeof(struct memtbl)); - if (i < Ndynmem) { - mem->tbl = Ndynmem++; - freemem(Dynmem[i]); - xkhash_override(Hashnams, name, mem); - } - else { - Ndynmem += 2; - mem->tbl = i + 1; - } - Dynmem[i] = mem; - Dynmem[mem->tbl] = fmem; - mem->flags = F_TBL_IS_PTR; - mem->id = DYNMEM_ID; - mem->name = strdup(name); - mem->kind = K_STRUCT; - for (j = argstart; (j < argc) && argv[j]; j++) { - if (p = strchr(argv[j], ':')) { - fname = malloc(p - argv[j] + 1); - strncpy(fname, argv[j], p - argv[j]); - fname[p - argv[j]] = '\0'; - parse_decl(argv[0], fmem + j - argstart, p + 1, 0); - } - else { - fname = strdup(argv[j]); - fmem[j - argstart] = T_unsigned_long[0]; - } - fmem[j - argstart].name = fname; - fmem[j - argstart].flags |= F_FIELD; - fmem[j - argstart].delim = 0; - fmem[j - argstart].offset = mem->size; - mem->size += (fmem[j - argstart].ptr) ? sizeof(void *) : fmem[j - argstart].size; - } - return(SH_SUCC); -} - -int -do_typedef( - int argc, - char **argv ) -{ - struct memtbl *mem; - int i, redo; - char *name, *decl; - - if (!structInited) - struct_init(); - - i = 1; - if (argc > 1 && C_PAIR(argv[i], '-', 'R')) - { - redo = 0; - i++; - } - else - redo = 1; - - if ((i + 1) >= argc) - { - XK_USAGE(argv[0]); - } - decl = argv[i++]; - name = argv[i++]; - - for (i = 0; i < Ndynmem; i++) - if (!(Dynmem[i]->flags & F_FIELD) && (strcmp(name, Dynmem[i]->name) == 0)) - break; - if ((i < Ndynmem) && !redo) { - if (!redo) - return(SH_SUCC); - } - else if (Sdynmem - Ndynmem < 1) - growmem(); - if (!(mem = (struct memtbl *) malloc(2 * sizeof(struct memtbl)))) - return(SH_FAIL); - mem[1] = Null_tbl; - if (i < Ndynmem) { - freemem(Dynmem[i]); - xkhash_override(Hashnams, name, mem); - } - else - Ndynmem++; - Dynmem[i] = mem; - parse_decl(argv[0], mem, decl, 0); - mem->name = strdup(name); - return(SH_SUCC); -} - -static char * -endtok( - char *start ) -{ - while(*start && !isspace(*start)) - start++; - return(start); -} - -int -parse_decl( - char * argv0, - struct memtbl *mem, - char *decl, - int tst ) -{ - struct memtbl *tbl; - char *p, *end; - char hold; - int flag = 0, done; - char * msg; - char * errbuf; - char * errmsg; - - end = decl; - do { - p = end; - xk_skipwhite(&p); - end = endtok(p); - hold = *end; - *end = '\0'; - done = ((strcmp(p, (const char *) "struct") != 0) && - (strcmp(p, (const char *) "const") != 0) && - (strcmp(p, (const char *) "unsigned") != 0) && - (strcmp(p, (const char *) "signed") != 0) && - (strcmp(p, (const char *) "union") != 0)); - *end = hold; - } while (!done && hold); - if (!p[0]) { - if (tst) { - return(FAIL); - } - errmsg = strdup(GetSharedMsg(DT_BAD_DECL)); - printerrf(argv0, errmsg, - decl,NULL, NULL, NULL, NULL, NULL, NULL, NULL); - free(errmsg); - mem[0] = T_unsigned_long[0]; - return(SUCCESS); - } - hold = *end; - *end = '\0'; - tbl = all_tbl_search(p, flag|NOHASH); - *end = hold; - if (!tbl) { - if (tst) { - return(FAIL); - } - errmsg = strdup(GetSharedMsg(DT_BAD_DECL)); - printerrf(argv0, errmsg, - decl, NULL, NULL, NULL, NULL, NULL, NULL, NULL); - free(errmsg); - mem[0] = T_unsigned_long[0]; - return(SUCCESS); - } - mem[0] = tbl[0]; - for (p = end; *p; p++) { - switch(*p) { - case '[': - { - char *q = strchr(p, ']'); - - if (!q) { - errmsg=strdup(GETMESSAGE(12,1, - "Found a '[' character without a matching ']'")); - printerr(argv0, errmsg, NULL); - free(errmsg); - continue; - } - p++; - xk_par_int(&p, &(mem->subscr), NULL); - mem->flags &= ~(F_SIMPLE); - if (mem->subscr) - mem->size *= mem->subscr; - p = q; - break; - } - case '*': - if ((mem->kind == K_CHAR) && !(mem->ptr)) { - char *name; - - name = mem->name; - mem[0] = T_string_t[0]; - mem->name = name; - } - else { - mem->ptr++; - mem->flags &= ~(F_SIMPLE); - } - break; - } - } - return(SUCCESS); -} - -int -do_structlist( - int argc, - char **argv ) -{ - int i, j, id = 0; - char *prefix = NULL; - struct memtbl **memptr = NULL; - char * errmsg; - - for (i = 1; (i < argc) && argv[i]; i++) { - if (argv[i][0] == '-') { - for (j = 1; argv[i][j]; j++) { - switch(argv[i][j]) { - case 'i': - if (argv[i][j + 1]) - fdef(argv[i] + j + 1, &id); - else - fdef(argv[++i], &id); - j = strlen(argv[i]) - 1; - break; - case 'p': - if (argv[i][j + 1]) - prefix = argv[i] + j + 1; - else - prefix = argv[++i]; - j = strlen(prefix) - 1; - break; - default: - errmsg = strdup(GetSharedMsg( - DT_UNKNOWN_OPTION)); - printerrf(argv[0], errmsg, - argv[i], NULL, NULL, NULL, NULL, - NULL, NULL, NULL); - free(errmsg); - xk_usage(argv[0]); - return(SH_FAIL); - } - } - } - else { - if ((memptr = (memtbl_t **) getaddr(argv[i])) == NULL) - { - errmsg=strdup(GETMESSAGE(12,2, - "Unable to locate the following symbol: %s")); - printerrf(argv[0], errmsg, argv[i], - NULL, NULL, NULL, NULL, NULL, NULL, - NULL); - free(errmsg); - return(SH_FAIL); - } - } - } - - if (memptr == NULL) - { - XK_USAGE(argv[0]); - } - - for (i = 0; i < Nstructlist; i++) - { - if ((Structlist[i].mem == memptr) && - (!prefix || (Structlist[i].prefix && - (strcmp(Structlist[i].prefix, prefix) == 0))) && - (!id || (Structlist[i].id == id))) - { - return(SH_SUCC); - } - } - - add_structlist(memptr, prefix, id); -} - -static int -chg_structlist( - struct memtbl **memptr, - int id ) -{ - int i; - - for (i = 0; i < Nstructlist; i++) - if (Structlist[i].id == id) { - Structlist[i].mem = memptr; - return; - } -} - -int -add_structlist( - struct memtbl **memptr, - char *prefix, - int id ) -{ - int i; - - if (!Structlist) - Structlist = (struct structlist *) malloc((Nstructlist + 1) * sizeof(struct structlist)); - else - Structlist = (struct structlist *) realloc(Structlist, (Nstructlist + 1) * sizeof(struct structlist)); - if (!Structlist) - return(SH_FAIL); - Structlist[Nstructlist].mem = memptr; - Structlist[Nstructlist].id = id; - Structlist[Nstructlist].prefix = prefix ? strdup(prefix) : (char *)NULL; - if (memptr[0] && memptr[0][0].name) { - for (i = 1; memptr[i] && memptr[i][0].name && memptr[i][0].name[0]; i++) - if (strcmp(memptr[i][0].name, memptr[i - 1][0].name) < 0) - break; - if (!(memptr[i] && memptr[i][0].name && memptr[i][0].name[0])) - Structlist[Nstructlist].size = i - 1; - else - Structlist[Nstructlist].size = -1; - } - else - Structlist[Nstructlist].size = 0; - Nstructlist++; - return(SH_SUCC); -} - -int -strparse( - memtbl_t *tbl, - char **pbuf, - char *val ) -{ - char *p, *phold; - int ret; - - if (!IS_SIMPLE(tbl) && !tbl->ptr && !(tbl->flags & F_TYPE_IS_PTR)) - tbl->ptr = 1; - phold = p = strdup(val); - ret = XK_PARSE(tbl, &p, (char *)pbuf, 0, 0, NULL, all_tbl_find); - free(phold); - return(ret != FAIL); -} - -int -strfree( - char *buf, - char *type ) -{ - memtbl_t tbl; - - if (parse_decl("strfree", &tbl, type, 1) == FAIL) - return(SH_FAIL); - if (!IS_SIMPLE(&tbl) && !tbl.ptr && !(tbl.flags & F_TYPE_IS_PTR)) - tbl.ptr = 1; - if (XK_FREE(&tbl, (char *)&buf, 0, 0, all_tbl_find) == FAIL) - return(SH_FAIL); - return(SH_SUCC); -} - -int -do_sizeof( - int argc, - char **argv ) -{ - memtbl_t *tbl; - char * errmsg; - - if (argc <= 1) { - XK_USAGE(argv[0]); - } - if ((tbl = all_tbl_search(argv[1], 0)) == NULL) { - errmsg=strdup(GETMESSAGE(12,3, - "The following is not a valid data type or structure name: %s")); - printerrf(argv[0], errmsg, argv[1], NULL, NULL, - NULL, NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - if (argc >= 3) { - char buf[50]; - - sprintf(buf, use2, argv[2], tbl->ptr ? sizeof(void *) : tbl->size); - env_set(buf); - } - else { - sprintf(xk_ret_buffer, use, tbl->ptr ? sizeof(void *) : tbl->size); - xk_ret_buf = xk_ret_buffer; - } - return(SH_SUCC); -} - -memtbl_t * -all_tbl_find( - char *name, - int tbl, - long id ) -{ - int i; - - if (tbl != -1) { - for (i = 0; i < Nstructlist; i++) - if (id == Structlist[i].id) - return(Structlist[i].mem[tbl]); - return(NULL); - } - return(all_tbl_search(name, TYPEONLY)); -} - -memtbl_t * -all_tbl_search( - char *name, - int flag ) -{ - int i; - void *found; - - if (!structInited) - struct_init(); - - if (found = (void *) xkhash_find(Hashnams, name)) - return((memtbl_t *) found); - else { - int j; - memtbl_t **subtbl; - - for (i = 0; i < Nstructlist; i++) { - if (subtbl = Structlist[i].mem) - for (j = 0; subtbl[j]; j++) - if (!(subtbl[j]->flags & F_FIELD) && (strcmp(name, subtbl[j]->name) == 0) && ((subtbl[j]->kind != K_TYPEDEF) || (subtbl[j]->tbl != -1))) { - if (!(flag & NOHASH)) - xkhash_add(Hashnams, name, (char *)subtbl[j]); - return(subtbl[j]); - } - } - } - return(NULL); -} - -memtbl_t * -asl_find( - memtbl_t *ptbl, - memtbl_t *tbls, - char *fld, - char **pptr ) -{ - int i; - memtbl_t *tbl; - - if (!Structlist) - return(NULL); - if (!pptr && (ptbl == tbls)) - return(NULL); - for (i = 0; tbls[i].name; i++) { - if ((xk_Strncmp(tbls[i].name, fld, strlen(fld)) == 0) && (strlen(fld) == strlen(tbls[i].name))) { - if (pptr && ptbl && ((ptbl->kind == K_STRUCT) || (ptbl->kind == K_ANY))) - *pptr += tbls[i].offset; - return(tbls + i); - } - } - for (i = 0; tbls[i].name; i++) { - if ((tbls[i].kind == K_TYPEDEF) || (tbls[i].kind == K_STRUCT) || (tbls[i].kind == K_UNION) || (tbls[i].kind == K_ANY)) { - char *hold; - - if (!pptr) { - if ((tbl = asl_find(tbls + i, all_tbl_find(tbls[i].tname, tbls[i].tbl, tbls[i].id), fld, pptr)) != NULL) - return(tbl); - continue; - } - hold = *pptr; - if (tbls[i].ptr) { - int nptr; - - nptr = tbls[i].ptr; - /* if you hit a NULL, stop the loop */ - do { - *pptr = *((char **) *pptr); - } while (*pptr && --nptr); - } - if (*pptr) { - if (!tbls[i].ptr) - *pptr += tbls[i].offset; - if ((tbl = asl_find(tbls + i, all_tbl_find(tbls[i].tname, tbls[i].tbl, tbls[i].id), fld, pptr)) != NULL) - return(tbl); - *pptr = hold; - } - } - } - return(NULL); -} - -static -struct_init( void ) -{ - char * errhdr; - char * errmsg; - - structInited = 1; - Hashnams = (void *) xkhash_init(50); - if (!(Dynmem = (struct memtbl **) malloc(20 * sizeof(struct memtbl *)))) - { - errhdr = strdup(GetSharedMsg(DT_ERROR)); - errmsg = strdup(GetSharedMsg(DT_ALLOC_FAILURE)); - printerr(errhdr, errmsg, NULL); - free(errhdr); - free(errmsg); - exit(1); - } - Dynmem[0] = NULL; - Sdynmem = 20; - Ndynmem = 0; - add_structlist(basemems, "base", BASE_ID); - add_structlist(Dynmem, "dynamic", DYNMEM_ID); -} - diff --git a/cde/programs/dtksh/struct.h b/cde/programs/dtksh/struct.h deleted file mode 100644 index 2c642f03..00000000 --- a/cde/programs/dtksh/struct.h +++ /dev/null @@ -1,97 +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: struct.h /main/4 1995/11/01 15:56:45 rswiston $ */ -/************************************<+>************************************* - **************************************************************************** - ** - ** File: struct.h - ** - ** Project: CDE - ** - ** Description: Public include file for struct.c - ** - ** - ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 - ** by Hewlett-Packard Company - ** - ** - ** - **************************************************************************** - ************************************<+>*************************************/ - -#ifndef _Dtksh_struct_h -#define _Dtksh_struct_h - -#include "exksh.h" - - - -extern memtbl_t * ffind( - memtbl_t *tbl, - char *fld, - char **pptr) ; -extern int do_struct( - int argc, - char **argv) ; -extern int do_typedef( - int argc, - char **argv) ; -extern int parse_decl( - char * argv0, - struct memtbl *mem, - char *decl, - int tst) ; -extern int do_structlist( - int argc, - char **argv) ; -extern int add_structlist( - struct memtbl **memptr, - char *prefix, - int id) ; -extern int strparse( - memtbl_t *tbl, - char **pbuf, - char *val) ; -extern int strfree( - char *buf, - char *type) ; -extern int do_sizeof( - int argc, - char **argv) ; -extern memtbl_t * all_tbl_find( - char *name, - int tbl, - long id) ; -extern memtbl_t * all_tbl_search( - char *name, - int flag) ; -extern memtbl_t * asl_find( - memtbl_t *ptbl, - memtbl_t *tbls, - char *fld, - char **pptr) ; - - - -#endif /* _Dtksh_struct_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/symbolic.c b/cde/programs/dtksh/symbolic.c deleted file mode 100644 index 6c1e009f..00000000 --- a/cde/programs/dtksh/symbolic.c +++ /dev/null @@ -1,180 +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: symbolic.c /main/4 1995/11/01 15:56:54 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. */ - -#include "name.h" -#include "shell.h" -#include "stdio.h" -#include "exksh.h" /* which includes sys/types.h */ -#include "struct.h" /* which includes sys/types.h */ -#include -#include "msgs.h" - -struct symlist *Symlist = NULL; -int Nsymlist; - -/* -** There is an implicit dirty trick going on here. It is effective, -** efficient and will work anywhere but it is tricky. A memtbl has -** strings in it. The fact that a byte-by-byte comparison is being -** done on a memtbl means that pointers are being compared. This -** means that EVERY UNIQUE MEMTBL SHOULD HAVE SOME UNIQUE FIELD (i.e. -** in this case, the string for the name field). If somebody uses -** an algorithm in do_struct() that saves string space (by seeing if -** the same string is lying around) this code will break and an ID -** field will be necessary to maintain uniqueness. -*/ - - -struct symlist * -fsymbolic( - struct memtbl *tbl ) -{ - int i; - - for (i = 0; i < Nsymlist; i++) - if (memcmp(tbl, &Symlist[i].tbl, sizeof(struct memtbl)) == 0) - return(Symlist + i); - return(NULL); -} - -int -do_symbolic( - int argc, - char **argv ) -{ - int i, nsyms, isflag; - unsigned long j; - struct symarray syms[50]; - struct memtbl *tbl; - char *p; - char *type = NULL; - char * errmsg; - - nsyms = 0; - isflag = 0; - for (i = 1; (i < argc) && argv[i]; i++) { - if (argv[i][0] == '-') { - for (j = 1; argv[i][j]; j++) { - switch(argv[i][j]) { - case 'm': - isflag = 1; - break; - case 't': - if (argv[i][j + 1]) - type = argv[i] + j + 1; - else - type = argv[++i]; - j = strlen(argv[i]) - 1; - break; - } - } - } - else { - syms[nsyms++].str = argv[i]; - if (nsyms == 50) - break; - } - } - if ((type == NULL) || (!nsyms)) { - XK_USAGE(argv[0]); - } - if (p = strchr(type, '.')) { - *p = '\0'; - if ((tbl = all_tbl_search(type, 0)) == NULL) { - *p = '.'; - errmsg = strdup(GetSharedMsg(DT_UNDEF_TYPE)); - printerrf(argv[0], errmsg, type, NULL, NULL, - NULL, NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - if ((tbl = ffind(tbl, p + 1, NULL)) == NULL) { - errmsg=strdup(GETMESSAGE(13,1, - "Unable to locate a field named '%s' for the type '%s'")); - printerrf(argv[0], errmsg, p + 1, type, NULL, - NULL, NULL, NULL, NULL, NULL); - free(errmsg); - *p = '.'; - return(SH_FAIL); - } - *p = '.'; - } - else if ((tbl = all_tbl_search(type, 0)) == NULL) { - errmsg = strdup(GetSharedMsg(DT_UNDEF_TYPE)); - printerrf(argv[0], errmsg, type, NULL, NULL, - NULL, NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - - for (i = 0; i < nsyms; i++) { - if (!fdef(syms[i].str, &j)) { - errmsg=strdup(GETMESSAGE(13,2, - "The name '%s' has not been defined")); - printerrf(argv[0], errmsg, syms[i].str, - NULL, NULL, NULL, NULL, NULL, NULL, NULL); - free(errmsg); - return(SH_FAIL); - } - syms[i].str = strdup(syms[i].str); - syms[i].addr = j; - } - add_symbolic(isflag, tbl, syms, nsyms); - return(SH_SUCC); -} - -int -add_symbolic( - int isflag, - struct memtbl *tbl, - struct symarray *syms, - int nsyms ) -{ - struct symlist *symptr; - - if ((symptr = fsymbolic(tbl)) == NULL) { - if (!Symlist) - Symlist = (struct symlist *) malloc((Nsymlist + 1) * sizeof(struct symlist)); - else - Symlist = (struct symlist *) realloc(Symlist, (Nsymlist + 1) * sizeof(struct symlist)); - if (!Symlist) - return(SH_FAIL); - symptr = Symlist + Nsymlist; - Nsymlist++; - } - else - free(symptr->syms); - symptr->tbl = *tbl; - symptr->nsyms = nsyms; - symptr->isflag = isflag; - symptr->syms = (struct symarray *) malloc(nsyms * sizeof(struct symarray)); - memcpy(symptr->syms, syms, nsyms * sizeof(struct symarray)); -} diff --git a/cde/programs/dtksh/symbolic.h b/cde/programs/dtksh/symbolic.h deleted file mode 100644 index e98c9dc7..00000000 --- a/cde/programs/dtksh/symbolic.h +++ /dev/null @@ -1,61 +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: symbolic.h /main/4 1995/11/01 15:57:03 rswiston $ */ -/************************************<+>************************************* - **************************************************************************** - ** - ** File: symbolic.h - ** - ** Project: CDE - ** - ** Description: Public include file for symbolic.c - ** - ** - ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 - ** by Hewlett-Packard Company - ** - ** - ** - **************************************************************************** - ************************************<+>*************************************/ - -#ifndef _Dtksh_symbolic_h -#define _Dtksh_symbolic_h - - - -extern struct symlist * fsymbolic( - struct memtbl *tbl) ; -extern int do_symbolic( - int argc, - char **argv) ; -extern int add_symbolic( - int isflag, - struct memtbl *tbl, - struct symarray *syms, - int nsyms) ; - - - -#endif /* _Dtksh_symbolic_h */ -/* DON'T ADD ANYTHING AFTER THIS #endif */ diff --git a/cde/programs/dtksh/variables.c b/cde/programs/dtksh/variables.c deleted file mode 100644 index 5a0e8b97..00000000 --- a/cde/programs/dtksh/variables.c +++ /dev/null @@ -1,180 +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: variables.c /main/3 1995/11/01 15:57:22 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) 1993 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 * -* {ulysses,attmail}!dgk * -* dgk@ulysses.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 -#define __VOID__ __V_ -#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 -#include "FEATURE/options" -#include "FEATURE/dynamic" -#include -#include "shtable.h" -#include "name.h" -#include "exextra.h" -#include "docall.h" -#include "msgs.h" - - -/* - * This is the list of built-in shell variables and default values - * and default attributes. - */ - -const struct shtable2 shtab_variables[] = -{ - "PATH", 0, (char*)0, - "PS1", 0, (char*)0, - "PS2", NV_NOFREE, "> ", - "IFS", NV_NOFREE, " \t\n", - "PWD", 0, (char*)0, - "HOME", 0, (char*)0, - "MAIL", 0, (char*)0, - "REPLY", 0, (char*)0, - "SHELL", NV_NOFREE, "/bin/sh", - "EDITOR", 0, (char*)0, - "MAILCHECK", NV_NOFREE|NV_INTEGER, (char*)0, - "RANDOM", NV_NOFREE|NV_INTEGER, (char*)0, - "ENV", 0, (char*)0, - "HISTFILE", 0, (char*)0, - "HISTSIZE", 0, (char*)0, - "HISTEDIT", NV_NOFREE, (char*)0, - "HISTCMD", NV_NOFREE|NV_INTEGER, (char*)0, - "FCEDIT", NV_NOFREE, "/bin/ed", - "CDPATH", 0, (char*)0, - "MAILPATH", 0, (char*)0, - "PS3", NV_NOFREE, "#? ", - "OLDPWD", 0, (char*)0, - "VISUAL", 0, (char*)0, - "COLUMNS", 0, (char*)0, - "LINES", 0, (char*)0, - "PPID", NV_NOFREE|NV_INTEGER, (char*)0, - "_", NV_EXPORT, (char*)0, - "TMOUT", NV_NOFREE|NV_INTEGER, (char*)0, - "SECONDS", NV_NOFREE|NV_INTEGER|NV_DOUBLE, (char*)0, - "LINENO", NV_NOFREE|NV_INTEGER, (char*)0, - "OPTARG", 0, (char*)0, - "OPTIND", NV_NOFREE|NV_INTEGER, (char*)0, - "PS4", 0, (char*)0, - "FPATH", 0, (char*)0, - "LANG", 0, (char*)0, - "LC_CTYPE", 0, (char*)0, - "FIGNORE", 0, (char*)0, - ".sh", 0, (char*)0, - ".sh.edchar", 0, (char*)0, - ".sh.edcol", 0, (char*)0, - ".sh.edtext", 0, (char*)0, - ".sh.edmode", 0, (char*)0, - ".sh.name", 0, (char*)0, - ".sh.subscript",0, (char*)0, - ".sh.value", 0, (char*)0, - ".sh.version", NV_NOFREE, (char*)(&e_version[5]), -#ifdef SHOPT_FS_3D - "VPATH", 0, (char*)0, -#endif /* SHOPT_FS_3D */ -#ifdef SHOPT_VPIX - "DOSPATH", 0, (char*)0, - "VPIXDIR", 0, (char*)0, -#endif /* SHOPT_VPIX */ -#ifdef MULTIBYTE - "CSWIDTH", 0, (char*)0, -#endif /* MULTIBYTE */ -EXKSH_EXTRA_VAR - "", 0, (char*)0 -}; - diff --git a/cde/programs/dtksh/xmdtksh.rc b/cde/programs/dtksh/xmdtksh.rc deleted file mode 100755 index 17417a33..00000000 --- a/cde/programs/dtksh/xmdtksh.rc +++ /dev/null @@ -1,13 +0,0 @@ -if [ "$_HOLDENV_" ] -then - ENV=$_HOLDENV_ - . $ENV -else - unset ENV -fi -unset _HOLDENV_ -if [ ! "$DTKSHPS1" ] -then DTKSHPS1="[DTKSH] $PS1" export DTKSHPS1 -fi -PS1="$DTKSHPS1" -call dtk_libinit diff --git a/cde/programs/dtksh/xmname.c b/cde/programs/dtksh/xmname.c deleted file mode 100644 index 2a45679e..00000000 --- a/cde/programs/dtksh/xmname.c +++ /dev/null @@ -1,77 +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: xmname.c /main/3 1995/11/01 15:59:34 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. */ - -#define mount _AST_mount -#include -#include -#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 - -#else -# define bltin(x) 0 -#endif - -#include -#include -#include -#define NO_AST -#include "dtksh.h" -#undef NO_AST -#include "dtextra.h" -#include "xmextra.h" -#include "msgs.h" - -#define VALPTR(x) ((char*)x) - -const struct shtable3 dtk_functions[] = { - DTK_EXTRA_TABLE - DTK_EXTRA_TABLE2 - DTK_TK_EXTRA_TABLE - DTK_TK_LIST_TABLE - DTK_TK_TEXT_TABLE - { NULL, 0, NULL } -}; - -const struct shtable2 dtk_aliases[] = { - DTK_EXTRA_ALIAS - DTK_TK_EXTRA_ALIAS - { NULL, 0, NULL } -}; -- 2.25.1