summaryrefslogtreecommitdiff
path: root/usr/src/lib/libshell/common/include/shell.h
diff options
context:
space:
mode:
authorAndy Fiddaman <omnios@citrus-it.co.uk>2020-12-27 17:47:37 +0000
committerAndy Fiddaman <omnios@citrus-it.co.uk>2021-01-30 17:13:33 +0000
commitb30d193948be5a7794d7ae3ba0ed9c2f72c88e0f (patch)
tree6a37e590faffb9bb9af66887de645c546445036c /usr/src/lib/libshell/common/include/shell.h
parentdf36e06d12cbf655ddf22339ef8c39fa2b83ebf8 (diff)
downloadillumos-gate-b30d193948be5a7794d7ae3ba0ed9c2f72c88e0f.tar.gz
13405 ksh93 update to 2012-08-01
13434 sh: mishandles backslash as last character of a block of input 11750 ksh mkdir builtin doesn't honor special file permissions 9199 ksh93 builtin *grep -v mishandles blank lines, blows up libgcrypt-config 6756 sh (and ksh) have issues with ${1+"$@"} 6520 ksh: sleep could wait forever 4860 ksh93: core in printf 3791 /bin/sh's builtin 'rm' busted: 'rm -f' without arguments returns error 1047 ksh overwrites child core files 880 ksh93 coredumps on 'unset' 499 "interrupted system call" when using "tee" builtin in ksh Reviewed by: Robert Mustacchi <rm@fingolfin.org> Reviewed by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org> Reviewed by: Dominik Hassler <hadfl@omnios.org> Approved by: Rich Lowe <richlowe@richlowe.net>
Diffstat (limited to 'usr/src/lib/libshell/common/include/shell.h')
-rw-r--r--usr/src/lib/libshell/common/include/shell.h253
1 files changed, 0 insertions, 253 deletions
diff --git a/usr/src/lib/libshell/common/include/shell.h b/usr/src/lib/libshell/common/include/shell.h
deleted file mode 100644
index 2ce315566e..0000000000
--- a/usr/src/lib/libshell/common/include/shell.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/***********************************************************************
-* *
-* This software is part of the ast package *
-* Copyright (c) 1982-2010 AT&T Intellectual Property *
-* and is licensed under the *
-* Common Public License, Version 1.0 *
-* by AT&T Intellectual Property *
-* *
-* A copy of the License is available at *
-* http://www.opensource.org/licenses/cpl1.0.txt *
-* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
-* *
-* Information and Software Systems Research *
-* AT&T Research *
-* Florham Park NJ *
-* *
-* David Korn <dgk@research.att.com> *
-* *
-***********************************************************************/
-#pragma prototyped
-#ifndef SH_INTERACTIVE
-/*
- * David Korn
- * AT&T Labs
- *
- * Interface definitions for shell command language
- *
- */
-
-#include <ast.h>
-#include <cdt.h>
-#ifdef _SH_PRIVATE
-# include "name.h"
-#else
-# include <nval.h>
-#endif /* _SH_PRIVATE */
-
-#define SH_VERSION 20071012
-
-#undef NOT_USED
-#define NOT_USED(x) (&x,1)
-
-/* options */
-typedef struct
-{
- unsigned long v[4];
-}
-Shopt_t;
-
-typedef struct Shell_s Shell_t;
-
-typedef void (*Shinit_f)(Shell_t*, int);
-typedef int (*Shwait_f)(int, long, int);
-
-union Shnode_u;
-typedef union Shnode_u Shnode_t;
-
-#define SH_CFLAG 0
-#define SH_HISTORY 1 /* used also as a state */
-#define SH_ERREXIT 2 /* used also as a state */
-#define SH_VERBOSE 3 /* used also as a state */
-#define SH_MONITOR 4 /* used also as a state */
-#define SH_INTERACTIVE 5 /* used also as a state */
-#define SH_RESTRICTED 6
-#define SH_XTRACE 7
-#define SH_KEYWORD 8
-#define SH_NOUNSET 9
-#define SH_NOGLOB 10
-#define SH_ALLEXPORT 11
-#define SH_PFSH 12
-#define SH_IGNOREEOF 13
-#define SH_NOCLOBBER 14
-#define SH_MARKDIRS 15
-#define SH_BGNICE 16
-#define SH_VI 17
-#define SH_VIRAW 18
-#define SH_TFLAG 19
-#define SH_TRACKALL 20
-#define SH_SFLAG 21
-#define SH_NOEXEC 22
-#define SH_GMACS 24
-#define SH_EMACS 25
-#define SH_PRIVILEGED 26
-#define SH_SUBSHARE 27 /* subshell shares state with parent */
-#define SH_NOLOG 28
-#define SH_NOTIFY 29
-#define SH_DICTIONARY 30
-#define SH_PIPEFAIL 32
-#define SH_GLOBSTARS 33
-#define SH_XARGS 34
-#define SH_RC 35
-#define SH_SHOWME 36
-
-/*
- * passed as flags to builtins in Nambltin_t struct when BLT_OPTIM is on
- */
-#define SH_BEGIN_OPTIM 0x1
-#define SH_END_OPTIM 0x2
-
-/* The following type is used for error messages */
-
-/* error messages */
-extern const char e_defpath[];
-extern const char e_found[];
-extern const char e_nospace[];
-extern const char e_format[];
-extern const char e_number[];
-extern const char e_restricted[];
-extern const char e_recursive[];
-extern char e_version[];
-
-typedef struct sh_scope
-{
- struct sh_scope *par_scope;
- int argc;
- char **argv;
- char *cmdname;
- char *filename;
- char *funname;
- int lineno;
- Dt_t *var_tree;
- struct sh_scope *self;
-} Shscope_t;
-
-/*
- * Saves the state of the shell
- */
-
-struct Shell_s
-{
- Shopt_t options; /* set -o options */
- Dt_t *var_tree; /* for shell variables */
- Dt_t *fun_tree; /* for shell functions */
- Dt_t *alias_tree; /* for alias names */
- Dt_t *bltin_tree; /* for builtin commands */
- Shscope_t *topscope; /* pointer to top-level scope */
- int inlineno; /* line number of current input file */
- int exitval; /* most recent exit value */
- unsigned char trapnote; /* set when trap/signal is pending */
- char shcomp; /* set when runing shcomp */
- short subshell; /* set for virtual subshell */
-#ifdef _SH_PRIVATE
- _SH_PRIVATE
-#endif /* _SH_PRIVATE */
-};
-
-/* flags for sh_parse */
-#define SH_NL 1 /* Treat new-lines as ; */
-#define SH_EOF 2 /* EOF causes syntax error */
-
-/* symbolic values for sh_iogetiop */
-#define SH_IOCOPROCESS (-2)
-#define SH_IOHISTFILE (-3)
-
-#include <cmd.h>
-
-/* symbolic value for sh_fdnotify */
-#define SH_FDCLOSE (-1)
-
-#undef getenv /* -lshell provides its own */
-
-#if defined(__EXPORT__) && defined(_DLL)
-# ifdef _BLD_shell
-# define extern __EXPORT__
-# endif /* _BLD_shell */
-#endif /* _DLL */
-
-extern Dt_t *sh_bltin_tree(void);
-extern void sh_subfork(void);
-extern Shell_t *sh_init(int,char*[],Shinit_f);
-extern int sh_reinit(char*[]);
-extern int sh_eval(Sfio_t*,int);
-extern void sh_delay(double);
-extern void *sh_parse(Shell_t*, Sfio_t*,int);
-extern int sh_trap(const char*,int);
-extern int sh_fun(Namval_t*,Namval_t*, char*[]);
-extern int sh_funscope(int,char*[],int(*)(void*),void*,int);
-extern Sfio_t *sh_iogetiop(int,int);
-extern int sh_main(int, char*[], Shinit_f);
-extern int sh_run(int, char*[]);
-extern void sh_menu(Sfio_t*, int, char*[]);
-extern Namval_t *sh_addbuiltin(const char*, int(*)(int, char*[],void*), void*);
-extern char *sh_fmtq(const char*);
-extern char *sh_fmtqf(const char*, int, int);
-extern Sfdouble_t sh_strnum(const char*, char**, int);
-extern int sh_access(const char*,int);
-extern int sh_close(int);
-extern int sh_dup(int);
-extern void sh_exit(int);
-extern int sh_fcntl(int, int, ...);
-extern Sfio_t *sh_fd2sfio(int);
-extern int (*sh_fdnotify(int(*)(int,int)))(int,int);
-extern Shell_t *sh_getinterp(void);
-extern int sh_open(const char*, int, ...);
-extern int sh_openmax(void);
-extern Sfio_t *sh_pathopen(const char*);
-extern ssize_t sh_read(int, void*, size_t);
-extern ssize_t sh_write(int, const void*, size_t);
-extern off_t sh_seek(int, off_t, int);
-extern int sh_pipe(int[]);
-extern mode_t sh_umask(mode_t);
-extern void *sh_waitnotify(Shwait_f);
-extern Shscope_t *sh_getscope(int,int);
-extern Shscope_t *sh_setscope(Shscope_t*);
-extern void sh_sigcheck(void);
-extern unsigned long sh_isoption(int);
-extern unsigned long sh_onoption(int);
-extern unsigned long sh_offoption(int);
-extern int sh_waitsafe(void);
-extern int sh_exec(const Shnode_t*,int);
-
-#if SHOPT_DYNAMIC
- extern void **sh_getliblist(void);
-#endif /* SHOPT_DYNAMIC */
-
-/*
- * direct access to sh is obsolete, use sh_getinterp() instead
- */
-#if !defined(_SH_PRIVATE) && defined(__IMPORT__) && !defined(_BLD_shell)
- extern __IMPORT__ Shell_t sh;
-#else
- extern Shell_t sh;
-#endif
-
-#ifdef _DLL
-# undef extern
-#endif /* _DLL */
-
-#ifndef _SH_PRIVATE
-# define access(a,b) sh_access(a,b)
-# define close(a) sh_close(a)
-# define exit(a) sh_exit(a)
-# define fcntl(a,b,c) sh_fcntl(a,b,c)
-# define pipe(a) sh_pipe(a)
-# define read(a,b,c) sh_read(a,b,c)
-# define write(a,b,c) sh_write(a,b,c)
-# define umask(a) sh_umask(a)
-# define dup sh_dup
-# if _lib_lseek64
-# define open64 sh_open
-# define lseek64 sh_seek
-# else
-# define open sh_open
-# define lseek sh_seek
-# endif
-#endif /* !_SH_PRIVATE */
-
-#define SH_SIGSET 4
-#define SH_EXITSIG 0400 /* signal exit bit */
-#define SH_EXITMASK (SH_EXITSIG-1) /* normal exit status bits */
-#define SH_RUNPROG -1022 /* needs to be negative and < 256 */
-
-#endif /* SH_INTERACTIVE */