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