shell.h revision 3e14f97f673e8a630f076077de35afdd43dc1587
/* : : generated by proto : : */
/***********************************************************************
* *
* 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 *
* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* David Korn <dgk@research.att.com> *
* *
***********************************************************************/
#ifndef SH_INTERACTIVE
#if !defined(__PROTO__)
#include <prototyped.h>
#endif
#if !defined(__LINKAGE__)
#define __LINKAGE__ /* 2004-08-11 transition */
#endif
/*
* 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
#define NOT_USED(x) (&x,1)
/* options */
typedef struct
{
unsigned long v[4];
}
union Shnode_u;
#define SH_CFLAG 0
#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_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 __MANGLE__ const char e_defpath[];
extern __MANGLE__ const char e_found[];
extern __MANGLE__ const char e_nospace[];
extern __MANGLE__ const char e_format[];
extern __MANGLE__ const char e_number[];
extern __MANGLE__ const char e_restricted[];
extern __MANGLE__ const char e_recursive[];
extern __MANGLE__ char e_version[];
typedef struct sh_scope
{
int argc;
char **argv;
char *cmdname;
char *filename;
char *funname;
int lineno;
} Shscope_t;
/*
* Saves the state of the shell
*/
struct Shell_s
{
int inlineno; /* line number of current input file */
int exitval; /* most recent exit value */
char shcomp; /* set when runing shcomp */
short subshell; /* set for virtual subshell */
#ifdef _SH_PRIVATE
#endif /* _SH_PRIVATE */
};
/* flags for sh_parse */
/* 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)
#if defined(__EXPORT__) && defined(_DLL)
# ifdef _BLD_shell
# endif /* _BLD_shell */
#endif /* _DLL */
extern __MANGLE__ Namval_t *sh_addbuiltin __PROTO__((const char*, int(*)(int, char*[],__V_*), __V_*));
#if SHOPT_DYNAMIC
#endif /* SHOPT_DYNAMIC */
/*
* direct access to sh is obsolete, use sh_getinterp() instead
*/
#else
#endif
#ifdef _DLL
#define __MANGLE__ __LINKAGE__
#endif /* _DLL */
#ifndef _SH_PRIVATE
# if _lib_lseek64
# else
# endif
#endif /* !_SH_PRIVATE */
#define SH_SIGSET 4
#endif /* SH_INTERACTIVE */