xref: /aosp_15_r20/external/mksh/src/sh_flags.opt (revision 7c356e860f31eadd15fd599fcfdb9fd21f16a9d4)
1*7c356e86SAndroid Build Coastguard Worker/*-
2*7c356e86SAndroid Build Coastguard Worker * Copyright (c) 2013, 2014, 2015, 2017
3*7c356e86SAndroid Build Coastguard Worker *	mirabilos <[email protected]>
4*7c356e86SAndroid Build Coastguard Worker *
5*7c356e86SAndroid Build Coastguard Worker * Provided that these terms and disclaimer and all copyright notices
6*7c356e86SAndroid Build Coastguard Worker * are retained or reproduced in an accompanying document, permission
7*7c356e86SAndroid Build Coastguard Worker * is granted to deal in this work without restriction, including un-
8*7c356e86SAndroid Build Coastguard Worker * limited rights to use, publicly perform, distribute, sell, modify,
9*7c356e86SAndroid Build Coastguard Worker * merge, give away, or sublicence.
10*7c356e86SAndroid Build Coastguard Worker *
11*7c356e86SAndroid Build Coastguard Worker * This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to
12*7c356e86SAndroid Build Coastguard Worker * the utmost extent permitted by applicable law, neither express nor
13*7c356e86SAndroid Build Coastguard Worker * implied; without malicious intent or gross negligence. In no event
14*7c356e86SAndroid Build Coastguard Worker * may a licensor, author or contributor be held liable for indirect,
15*7c356e86SAndroid Build Coastguard Worker * direct, other damage, loss, or other issues arising in any way out
16*7c356e86SAndroid Build Coastguard Worker * of dealing in the work, even if advised of the possibility of such
17*7c356e86SAndroid Build Coastguard Worker * damage or existence of a defect, except proven that it results out
18*7c356e86SAndroid Build Coastguard Worker * of said person's immediate fault when using the work as intended.
19*7c356e86SAndroid Build Coastguard Worker */
20*7c356e86SAndroid Build Coastguard Worker
21*7c356e86SAndroid Build Coastguard Worker@SHFLAGS_DEFNS
22*7c356e86SAndroid Build Coastguard Worker__RCSID("$MirOS: src/bin/mksh/sh_flags.opt,v 1.9 2020/05/16 22:38:25 tg Exp $");
23*7c356e86SAndroid Build Coastguard Worker@SHFLAGS_ENUMS
24*7c356e86SAndroid Build Coastguard Worker#define FN(sname,cname,flags,ochar)	cname,
25*7c356e86SAndroid Build Coastguard Worker#define F0(sname,cname,flags,ochar)	cname = 0,
26*7c356e86SAndroid Build Coastguard Worker@SHFLAGS_ITEMS
27*7c356e86SAndroid Build Coastguard Worker#define FN(sname,cname,flags,ochar)	((const char *)(&shoptione_ ## cname)) + 2,
28*7c356e86SAndroid Build Coastguard Worker@@
29*7c356e86SAndroid Build Coastguard Worker
30*7c356e86SAndroid Build Coastguard Worker/* special cases */
31*7c356e86SAndroid Build Coastguard Worker
32*7c356e86SAndroid Build Coastguard Worker<o:|!SHFLAGS_NOT_CMD
33*7c356e86SAndroid Build Coastguard Worker<T:|!SHFLAGS_NOT_CMD
34*7c356e86SAndroid Build Coastguard Worker<A:|!SHFLAGS_NOT_SET
35*7c356e86SAndroid Build Coastguard Worker<o;|!SHFLAGS_NOT_SET
36*7c356e86SAndroid Build Coastguard Worker<s|!SHFLAGS_NOT_SET
37*7c356e86SAndroid Build Coastguard Worker
38*7c356e86SAndroid Build Coastguard Worker/*
39*7c356e86SAndroid Build Coastguard Worker * options are sorted by their longnames
40*7c356e86SAndroid Build Coastguard Worker */
41*7c356e86SAndroid Build Coastguard Worker
42*7c356e86SAndroid Build Coastguard Worker/* -a	all new parameters are created with the export attribute */
43*7c356e86SAndroid Build Coastguard Worker>a|
44*7c356e86SAndroid Build Coastguard WorkerF0("allexport", FEXPORT, OF_ANY
45*7c356e86SAndroid Build Coastguard Worker
46*7c356e86SAndroid Build Coastguard Worker/* ./.	bgnice */
47*7c356e86SAndroid Build Coastguard Worker>| HAVE_NICE
48*7c356e86SAndroid Build Coastguard WorkerFN("bgnice", FBGNICE, OF_ANY
49*7c356e86SAndroid Build Coastguard Worker
50*7c356e86SAndroid Build Coastguard Worker/* ./.	enable {} globbing (non-standard) */
51*7c356e86SAndroid Build Coastguard Worker>|
52*7c356e86SAndroid Build Coastguard WorkerFN("braceexpand", FBRACEEXPAND, OF_ANY
53*7c356e86SAndroid Build Coastguard Worker
54*7c356e86SAndroid Build Coastguard Worker/* ./.	Emacs command line editing mode */
55*7c356e86SAndroid Build Coastguard Worker>|!MKSH_NO_CMDLINE_EDITING
56*7c356e86SAndroid Build Coastguard WorkerFN("emacs", FEMACS, OF_ANY
57*7c356e86SAndroid Build Coastguard Worker
58*7c356e86SAndroid Build Coastguard Worker/* -e	quit on error */
59*7c356e86SAndroid Build Coastguard Worker>e|
60*7c356e86SAndroid Build Coastguard WorkerFN("errexit", FERREXIT, OF_ANY
61*7c356e86SAndroid Build Coastguard Worker
62*7c356e86SAndroid Build Coastguard Worker/* ./.	Emacs command line editing mode, gmacs variant */
63*7c356e86SAndroid Build Coastguard Worker>|!MKSH_NO_CMDLINE_EDITING
64*7c356e86SAndroid Build Coastguard WorkerFN("gmacs", FGMACS, OF_ANY
65*7c356e86SAndroid Build Coastguard Worker
66*7c356e86SAndroid Build Coastguard Worker/* ./.	reading EOF does not exit */
67*7c356e86SAndroid Build Coastguard Worker>|
68*7c356e86SAndroid Build Coastguard WorkerFN("ignoreeof", FIGNOREEOF, OF_ANY
69*7c356e86SAndroid Build Coastguard Worker
70*7c356e86SAndroid Build Coastguard Worker/* ./.	inherit -x flag */
71*7c356e86SAndroid Build Coastguard Worker>|
72*7c356e86SAndroid Build Coastguard WorkerFN("inherit-xtrace", FXTRACEREC, OF_ANY
73*7c356e86SAndroid Build Coastguard Worker
74*7c356e86SAndroid Build Coastguard Worker/* -i	interactive shell */
75*7c356e86SAndroid Build Coastguard Worker>i|!SHFLAGS_NOT_CMD
76*7c356e86SAndroid Build Coastguard WorkerFN("interactive", FTALKING, OF_CMDLINE
77*7c356e86SAndroid Build Coastguard Worker
78*7c356e86SAndroid Build Coastguard Worker/* -k	name=value are recognised anywhere */
79*7c356e86SAndroid Build Coastguard Worker>k|
80*7c356e86SAndroid Build Coastguard WorkerFN("keyword", FKEYWORD, OF_ANY
81*7c356e86SAndroid Build Coastguard Worker
82*7c356e86SAndroid Build Coastguard Worker/* -l	login shell */
83*7c356e86SAndroid Build Coastguard Worker>l|!SHFLAGS_NOT_CMD
84*7c356e86SAndroid Build Coastguard WorkerFN("login", FLOGIN, OF_CMDLINE
85*7c356e86SAndroid Build Coastguard Worker
86*7c356e86SAndroid Build Coastguard Worker/* -X	mark dirs with / in file name completion */
87*7c356e86SAndroid Build Coastguard Worker>X|
88*7c356e86SAndroid Build Coastguard WorkerFN("markdirs", FMARKDIRS, OF_ANY
89*7c356e86SAndroid Build Coastguard Worker
90*7c356e86SAndroid Build Coastguard Worker/* -m	job control monitoring */
91*7c356e86SAndroid Build Coastguard Worker>m|!MKSH_UNEMPLOYED
92*7c356e86SAndroid Build Coastguard WorkerFN("monitor", FMONITOR, OF_ANY
93*7c356e86SAndroid Build Coastguard Worker
94*7c356e86SAndroid Build Coastguard Worker/* -C	don't overwrite existing files */
95*7c356e86SAndroid Build Coastguard Worker>C|
96*7c356e86SAndroid Build Coastguard WorkerFN("noclobber", FNOCLOBBER, OF_ANY
97*7c356e86SAndroid Build Coastguard Worker
98*7c356e86SAndroid Build Coastguard Worker/* -n	don't execute any commands */
99*7c356e86SAndroid Build Coastguard Worker>n|
100*7c356e86SAndroid Build Coastguard WorkerFN("noexec", FNOEXEC, OF_ANY
101*7c356e86SAndroid Build Coastguard Worker
102*7c356e86SAndroid Build Coastguard Worker/* -f	don't do file globbing */
103*7c356e86SAndroid Build Coastguard Worker>f|
104*7c356e86SAndroid Build Coastguard WorkerFN("noglob", FNOGLOB, OF_ANY
105*7c356e86SAndroid Build Coastguard Worker
106*7c356e86SAndroid Build Coastguard Worker/* ./.	don't kill running jobs when login shell exits */
107*7c356e86SAndroid Build Coastguard Worker>|
108*7c356e86SAndroid Build Coastguard WorkerFN("nohup", FNOHUP, OF_ANY
109*7c356e86SAndroid Build Coastguard Worker
110*7c356e86SAndroid Build Coastguard Worker/* ./.	don't save functions in history (no effect) */
111*7c356e86SAndroid Build Coastguard Worker>|
112*7c356e86SAndroid Build Coastguard WorkerFN("nolog", FNOLOG, OF_ANY
113*7c356e86SAndroid Build Coastguard Worker
114*7c356e86SAndroid Build Coastguard Worker/* -b	asynchronous job completion notification */
115*7c356e86SAndroid Build Coastguard Worker>b|!MKSH_UNEMPLOYED
116*7c356e86SAndroid Build Coastguard WorkerFN("notify", FNOTIFY, OF_ANY
117*7c356e86SAndroid Build Coastguard Worker
118*7c356e86SAndroid Build Coastguard Worker/* -u	using an unset variable is an error */
119*7c356e86SAndroid Build Coastguard Worker>u|
120*7c356e86SAndroid Build Coastguard WorkerFN("nounset", FNOUNSET, OF_ANY
121*7c356e86SAndroid Build Coastguard Worker
122*7c356e86SAndroid Build Coastguard Worker/* ./.	don't do logical cds/pwds (non-standard) */
123*7c356e86SAndroid Build Coastguard Worker>|
124*7c356e86SAndroid Build Coastguard WorkerFN("physical", FPHYSICAL, OF_ANY
125*7c356e86SAndroid Build Coastguard Worker
126*7c356e86SAndroid Build Coastguard Worker/* ./.	errorlevel of a pipeline is the rightmost nonzero value */
127*7c356e86SAndroid Build Coastguard Worker>|
128*7c356e86SAndroid Build Coastguard WorkerFN("pipefail", FPIPEFAIL, OF_ANY
129*7c356e86SAndroid Build Coastguard Worker
130*7c356e86SAndroid Build Coastguard Worker/* ./.	adhere more closely to POSIX even when undesirable */
131*7c356e86SAndroid Build Coastguard Worker>|
132*7c356e86SAndroid Build Coastguard WorkerFN("posix", FPOSIX, OF_ANY
133*7c356e86SAndroid Build Coastguard Worker
134*7c356e86SAndroid Build Coastguard Worker/* -p	privileged shell (suid) */
135*7c356e86SAndroid Build Coastguard Worker>p|
136*7c356e86SAndroid Build Coastguard WorkerFN("privileged", FPRIVILEGED, OF_ANY
137*7c356e86SAndroid Build Coastguard Worker
138*7c356e86SAndroid Build Coastguard Worker/* -r	restricted shell */
139*7c356e86SAndroid Build Coastguard Worker>r|!SHFLAGS_NOT_CMD
140*7c356e86SAndroid Build Coastguard WorkerFN("restricted", FRESTRICTED, OF_CMDLINE
141*7c356e86SAndroid Build Coastguard Worker
142*7c356e86SAndroid Build Coastguard Worker/* ./.	kludge mode for better compat with traditional sh (OS-specific) */
143*7c356e86SAndroid Build Coastguard Worker>|
144*7c356e86SAndroid Build Coastguard WorkerFN("sh", FSH, OF_ANY
145*7c356e86SAndroid Build Coastguard Worker
146*7c356e86SAndroid Build Coastguard Worker/* -s	(invocation) parse stdin (pseudo non-standard) */
147*7c356e86SAndroid Build Coastguard Worker>s|!SHFLAGS_NOT_CMD
148*7c356e86SAndroid Build Coastguard WorkerFN("stdin", FSTDIN, OF_CMDLINE
149*7c356e86SAndroid Build Coastguard Worker
150*7c356e86SAndroid Build Coastguard Worker/* -h	create tracked aliases for all commands */
151*7c356e86SAndroid Build Coastguard Worker>h|
152*7c356e86SAndroid Build Coastguard WorkerFN("trackall", FTRACKALL, OF_ANY
153*7c356e86SAndroid Build Coastguard Worker
154*7c356e86SAndroid Build Coastguard Worker/* -U	enable UTF-8 processing (non-standard) */
155*7c356e86SAndroid Build Coastguard Worker>U|
156*7c356e86SAndroid Build Coastguard WorkerFN("utf8-mode", FUNNYCODE, OF_ANY
157*7c356e86SAndroid Build Coastguard Worker
158*7c356e86SAndroid Build Coastguard Worker/* -v	echo input */
159*7c356e86SAndroid Build Coastguard Worker>v|
160*7c356e86SAndroid Build Coastguard WorkerFN("verbose", FVERBOSE, OF_ANY
161*7c356e86SAndroid Build Coastguard Worker
162*7c356e86SAndroid Build Coastguard Worker/* ./.	Vi command line editing mode */
163*7c356e86SAndroid Build Coastguard Worker>|!MKSH_NO_CMDLINE_EDITING
164*7c356e86SAndroid Build Coastguard WorkerFN("vi", FVI, OF_ANY
165*7c356e86SAndroid Build Coastguard Worker
166*7c356e86SAndroid Build Coastguard Worker/* ./.	enable ESC as file name completion character (non-standard) */
167*7c356e86SAndroid Build Coastguard Worker>|!MKSH_NO_CMDLINE_EDITING
168*7c356e86SAndroid Build Coastguard WorkerFN("vi-esccomplete", FVIESCCOMPLETE, OF_ANY
169*7c356e86SAndroid Build Coastguard Worker
170*7c356e86SAndroid Build Coastguard Worker/* ./.	enable Tab as file name completion character (non-standard) */
171*7c356e86SAndroid Build Coastguard Worker>|!MKSH_NO_CMDLINE_EDITING
172*7c356e86SAndroid Build Coastguard WorkerFN("vi-tabcomplete", FVITABCOMPLETE, OF_ANY
173*7c356e86SAndroid Build Coastguard Worker
174*7c356e86SAndroid Build Coastguard Worker/* ./.	always read in raw mode (no effect) */
175*7c356e86SAndroid Build Coastguard Worker>|!MKSH_NO_CMDLINE_EDITING
176*7c356e86SAndroid Build Coastguard WorkerFN("viraw", FVIRAW, OF_ANY
177*7c356e86SAndroid Build Coastguard Worker
178*7c356e86SAndroid Build Coastguard Worker/* -x	execution trace (display commands as they are run) */
179*7c356e86SAndroid Build Coastguard Worker>x|
180*7c356e86SAndroid Build Coastguard WorkerFN("xtrace", FXTRACE, OF_ANY
181*7c356e86SAndroid Build Coastguard Worker
182*7c356e86SAndroid Build Coastguard Worker/* -c	(invocation) execute specified command */
183*7c356e86SAndroid Build Coastguard Worker>c|!SHFLAGS_NOT_CMD
184*7c356e86SAndroid Build Coastguard WorkerFN("", FCOMMAND, OF_CMDLINE
185*7c356e86SAndroid Build Coastguard Worker
186*7c356e86SAndroid Build Coastguard Worker/*
187*7c356e86SAndroid Build Coastguard Worker * anonymous flags: used internally by shell only (not visible to user)
188*7c356e86SAndroid Build Coastguard Worker */
189*7c356e86SAndroid Build Coastguard Worker
190*7c356e86SAndroid Build Coastguard Worker/* ./.	(internal) initial shell was interactive */
191*7c356e86SAndroid Build Coastguard Worker>|
192*7c356e86SAndroid Build Coastguard WorkerFN("", FTALKING_I, OF_INTERNAL
193*7c356e86SAndroid Build Coastguard Worker
194*7c356e86SAndroid Build Coastguard Worker|SHFLAGS_OPTCS
195