14887Schin /***********************************************************************
24887Schin *                                                                      *
34887Schin *               This software is part of the ast package               *
4*10898Sroland.mainz@nrubsig.org *          Copyright (c) 1982-2009 AT&T Intellectual Property          *
54887Schin *                      and is licensed under the                       *
64887Schin *                  Common Public License, Version 1.0                  *
78462SApril.Chin@Sun.COM *                    by AT&T Intellectual Property                     *
84887Schin *                                                                      *
94887Schin *                A copy of the License is available at                 *
104887Schin *            http://www.opensource.org/licenses/cpl1.0.txt             *
114887Schin *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
124887Schin *                                                                      *
134887Schin *              Information and Software Systems Research               *
144887Schin *                            AT&T Research                             *
154887Schin *                           Florham Park NJ                            *
164887Schin *                                                                      *
174887Schin *                  David Korn <dgk@research.att.com>                   *
184887Schin *                                                                      *
194887Schin ***********************************************************************/
204887Schin #pragma prototyped
214887Schin 
224887Schin #include	<defs.h>
234887Schin #include	"FEATURE/options"
244887Schin #include	"name.h"
254887Schin #include	"shtable.h"
264887Schin 
274887Schin #if SHOPT_BASH
288462SApril.Chin@Sun.COM #   define bashopt(a,b)		a,	b|SH_BASHOPT,
294887Schin #   define bashextra(a,b)	a,	b|SH_BASHEXTRA,
304887Schin #else
314887Schin #   define bashopt(a,b)
324887Schin #   define bashextra(a,b)
334887Schin #endif
344887Schin 
354887Schin /*
364887Schin  * This is the list of invocation and set options
374887Schin  * This list must be in in ascii sorted order
384887Schin  */
394887Schin 
404887Schin const Shtable_t shtab_options[] =
414887Schin {
424887Schin 	"allexport",			SH_ALLEXPORT,
434887Schin #if SHOPT_BASH
444887Schin 	"bash",				(SH_BASH|SH_COMMANDLINE),
454887Schin #endif
464887Schin 	"bgnice",			SH_BGNICE,
474887Schin 	"braceexpand",			SH_BRACEEXPAND,
484887Schin 	bashopt("cdable_vars",		SH_CDABLE_VARS)
494887Schin 	bashopt("cdspell",		SH_CDSPELL)
504887Schin 	bashopt("checkhash",		SH_CHECKHASH)
514887Schin 	bashopt("checkwinsize",		SH_CHECKWINSIZE)
524887Schin 	"noclobber",			SH_NOCLOBBER,
534887Schin 	bashopt("dotglob",		SH_DOTGLOB)
544887Schin 	"emacs",			SH_EMACS,
554887Schin 	"errexit",			SH_ERREXIT,
564887Schin 	"noexec",			SH_NOEXEC,
574887Schin 	bashopt("execfail",		SH_EXECFAIL)
584887Schin 	bashopt("expand_aliases",	SH_EXPAND_ALIASES)
594887Schin 	bashopt("extglob",		SH_EXTGLOB)
604887Schin 	"noglob",			SH_NOGLOB,
614887Schin 	"globstar",			SH_GLOBSTARS,
624887Schin 	"gmacs",			SH_GMACS,
634887Schin 	bashextra("hashall",		SH_TRACKALL)
644887Schin 	bashopt("histappend",		SH_HISTAPPEND)
654887Schin #if SHOPT_HISTEXPAND
664887Schin 	"histexpand",			SH_HISTEXPAND,
674887Schin #else
684887Schin 	bashextra("histexpand",		SH_HISTEXPAND)
694887Schin #endif
704887Schin 	bashextra("history",		SH_HISTORY2)
714887Schin 	bashopt("histreedit",		SH_HISTREEDIT)
724887Schin 	bashopt("histverify",		SH_HISTVERIFY)
734887Schin 	bashopt("hostcomplete",		SH_HOSTCOMPLETE)
744887Schin 	bashopt("huponexit",		SH_HUPONEXIT)
754887Schin 	"ignoreeof",			SH_IGNOREEOF,
764887Schin 	"interactive",			SH_INTERACTIVE|SH_COMMANDLINE,
774887Schin 	bashextra("interactive_comments",	SH_INTERACTIVE_COMM)
784887Schin 	"keyword",			SH_KEYWORD,
794887Schin 	bashopt("lithist",		SH_LITHIST)
804887Schin 	"nolog",			SH_NOLOG,
814887Schin 	"login_shell",			SH_LOGIN_SHELL|SH_COMMANDLINE,
824887Schin 	bashopt("mailwarn",		SH_MAILWARN)
834887Schin 	"markdirs",			SH_MARKDIRS,
844887Schin 	"monitor",			SH_MONITOR,
854887Schin 	"multiline",			SH_MULTILINE,
864887Schin 	bashopt("no_empty_cmd_completion", SH_NOEMPTYCMDCOMPL)
874887Schin 	bashopt("nocaseglob",		SH_NOCASEGLOB)
884887Schin 	"notify",			SH_NOTIFY,
894887Schin 	bashopt("nullglob",		SH_NULLGLOB)
904887Schin 	bashextra("onecmd",		SH_TFLAG)
914887Schin 	"pipefail",			SH_PIPEFAIL,
924887Schin 	bashextra("physical",		SH_PHYSICAL)
934887Schin 	bashextra("posix",		SH_POSIX)
944887Schin 	"privileged",			SH_PRIVILEGED,
958462SApril.Chin@Sun.COM #if SHOPT_BASH
968462SApril.Chin@Sun.COM 	"profile",			SH_LOGIN_SHELL|SH_COMMANDLINE,
978462SApril.Chin@Sun.COM #   if SHOPT_PFSH
988462SApril.Chin@Sun.COM 	"pfsh",				SH_PFSH|SH_COMMANDLINE,
998462SApril.Chin@Sun.COM #   endif
1008462SApril.Chin@Sun.COM #else
1018462SApril.Chin@Sun.COM #   if SHOPT_PFSH
1024887Schin 	"profile",			SH_PFSH|SH_COMMANDLINE,
1038462SApril.Chin@Sun.COM #   endif
1044887Schin #endif
1054887Schin 	bashopt("progcomp",		SH_PROGCOMP)
1064887Schin 	bashopt("promptvars",		SH_PROMPTVARS)
1074887Schin 	"rc",				SH_RC|SH_COMMANDLINE,
1084887Schin 	"restricted",			SH_RESTRICTED,
1094887Schin 	bashopt("restricted_shell",	SH_RESTRICTED2|SH_COMMANDLINE)
1104887Schin 	bashopt("shift_verbose",	SH_SHIFT_VERBOSE)
1114887Schin 	"showme",			SH_SHOWME,
1124887Schin 	bashopt("sourcepath",		SH_SOURCEPATH)
1134887Schin 	"trackall",			SH_TRACKALL,
1144887Schin 	"nounset",			SH_NOUNSET,
1154887Schin 	"verbose",			SH_VERBOSE,
1164887Schin 	"vi",				SH_VI,
1174887Schin 	"viraw",			SH_VIRAW,
1184887Schin 	bashopt("xpg_echo",		SH_XPG_ECHO)
1194887Schin 	"xtrace",			SH_XTRACE,
1204887Schin 	"",				0
1214887Schin };
1224887Schin 
1234887Schin const Shtable_t shtab_attributes[] =
1244887Schin {
1258462SApril.Chin@Sun.COM 	{"-Sshared",	NV_REF|NV_TAGGED},
1264887Schin 	{"-nnameref",	NV_REF},
1274887Schin 	{"-xexport",	NV_EXPORT},
1284887Schin 	{"-rreadonly",	NV_RDONLY},
1294887Schin 	{"-ttagged",	NV_TAGGED},
130*10898Sroland.mainz@nrubsig.org 	{"-Aassociative array",	NV_ARRAY},
131*10898Sroland.mainz@nrubsig.org 	{"-aindexed array",	NV_ARRAY},
1328462SApril.Chin@Sun.COM 	{"-llong",	(NV_DOUBLE|NV_LONG)},
1338462SApril.Chin@Sun.COM 	{"-Eexponential",(NV_DOUBLE|NV_EXPNOTE)},
1348462SApril.Chin@Sun.COM 	{"-Xhexfloat",	(NV_DOUBLE|NV_HEXFLOAT)},
1358462SApril.Chin@Sun.COM 	{"-Ffloat",	NV_DOUBLE},
1364887Schin 	{"-llong",	(NV_INTEGER|NV_LONG)},
1374887Schin 	{"-sshort",	(NV_INTEGER|NV_SHORT)},
1384887Schin 	{"-uunsigned",	(NV_INTEGER|NV_UNSIGN)},
1394887Schin 	{"-iinteger",	NV_INTEGER},
1404887Schin 	{"-Hfilename",	NV_HOST},
1414887Schin 	{"-bbinary",    NV_BINARY},
1424887Schin 	{"-llowercase",	NV_UTOL},
1434887Schin 	{"-Zzerofill",	NV_ZFILL},
1444887Schin 	{"-Lleftjust",	NV_LJUST},
1454887Schin 	{"-Rrightjust",	NV_RJUST},
1464887Schin 	{"-uuppercase",	NV_LTOU},
1474887Schin 	{"++namespace",	NV_TABLE},
1484887Schin 	{"",		0}
1494887Schin };
150