1@SHFLAGS_DEFNS 2__RCSID("$MirOS: src/bin/mksh/sh_flags.opt,v 1.2 2014/06/09 12:28:19 tg Exp $"); 3#define FN(sname,cname,flags,ochar) static const struct { /* character flag (if any) */ char c; /* OF_* */ unsigned char optflags; /* long name of option */ char name[sizeof(sname)]; } shoptione_ ## cname = { ochar, flags, sname }; 4@SHFLAGS_ENUMS 5#define FN(sname,cname,flags,ochar) cname, 6#define F0(sname,cname,flags,ochar) cname = 0, 7@SHFLAGS_ITEMS 8#define FN(sname,cname,flags,ochar) ((const char *)(&shoptione_ ## cname)) + 2, 9@@ 10 11/* special cases */ 12 13<o:|!SHFLAGS_NOT_CMD 14<T:|!SHFLAGS_NOT_CMD 15<A:|!SHFLAGS_NOT_SET 16<o;|!SHFLAGS_NOT_SET 17<s|!SHFLAGS_NOT_SET 18 19/* 20 * options are sorted by their longnames 21 */ 22 23/* -a all new parameters are created with the export attribute */ 24>a| 25F0("allexport", FEXPORT, OF_ANY 26 27/* ./. bgnice */ 28>| HAVE_NICE 29FN("bgnice", FBGNICE, OF_ANY 30 31/* ./. enable {} globbing (non-standard) */ 32>| 33FN("braceexpand", FBRACEEXPAND, OF_ANY 34 35/* ./. Emacs command line editing mode */ 36>|!defined(MKSH_NO_CMDLINE_EDITING) || defined(MKSH_LEGACY_MODE) 37FN("emacs", FEMACS, OF_ANY 38 39/* -e quit on error */ 40>e| 41FN("errexit", FERREXIT, OF_ANY 42 43/* ./. Emacs command line editing mode, gmacs variant */ 44>|!defined(MKSH_NO_CMDLINE_EDITING) || defined(MKSH_LEGACY_MODE) 45FN("gmacs", FGMACS, OF_ANY 46 47/* ./. reading EOF does not exit */ 48>| 49FN("ignoreeof", FIGNOREEOF, OF_ANY 50 51/* ./. inherit -x flag */ 52>| 53FN("inherit-xtrace", FXTRACEREC, OF_ANY 54 55/* -i interactive shell */ 56>i|!SHFLAGS_NOT_CMD 57FN("interactive", FTALKING, OF_CMDLINE 58 59/* -k name=value are recognised anywhere */ 60>k| 61FN("keyword", FKEYWORD, OF_ANY 62 63/* -l login shell */ 64>l|!SHFLAGS_NOT_CMD 65FN("login", FLOGIN, OF_CMDLINE 66 67/* -X mark dirs with / in file name completion */ 68>X| 69FN("markdirs", FMARKDIRS, OF_ANY 70 71/* -m job control monitoring */ 72>m|!MKSH_UNEMPLOYED 73FN("monitor", FMONITOR, OF_ANY 74 75/* -C don't overwrite existing files */ 76>C| 77FN("noclobber", FNOCLOBBER, OF_ANY 78 79/* -n don't execute any commands */ 80>n| 81FN("noexec", FNOEXEC, OF_ANY 82 83/* -f don't do file globbing */ 84>f| 85FN("noglob", FNOGLOB, OF_ANY 86 87/* ./. don't kill running jobs when login shell exits */ 88>| 89FN("nohup", FNOHUP, OF_ANY 90 91/* ./. don't save functions in history (no effect) */ 92>| 93FN("nolog", FNOLOG, OF_ANY 94 95/* -b asynchronous job completion notification */ 96>b|!MKSH_UNEMPLOYED 97FN("notify", FNOTIFY, OF_ANY 98 99/* -u using an unset variable is an error */ 100>u| 101FN("nounset", FNOUNSET, OF_ANY 102 103/* ./. don't do logical cds/pwds (non-standard) */ 104>| 105FN("physical", FPHYSICAL, OF_ANY 106 107/* ./. errorlevel of a pipeline is the rightmost nonzero value */ 108>| 109FN("pipefail", FPIPEFAIL, OF_ANY 110 111/* ./. adhere more closely to POSIX even when undesirable */ 112>| 113FN("posix", FPOSIX, OF_ANY 114 115/* -p privileged shell (suid) */ 116>p| 117FN("privileged", FPRIVILEGED, OF_ANY 118 119/* -r restricted shell */ 120>r|!SHFLAGS_NOT_CMD 121FN("restricted", FRESTRICTED, OF_CMDLINE 122 123/* ./. kludge mode for better compat with traditional sh (OS-specific) */ 124>| 125FN("sh", FSH, OF_ANY 126 127/* -s (invocation) parse stdin (pseudo non-standard) */ 128>s|!SHFLAGS_NOT_CMD 129FN("stdin", FSTDIN, OF_CMDLINE 130 131/* -h create tracked aliases for all commands */ 132>h| 133FN("trackall", FTRACKALL, OF_ANY 134 135/* -U enable UTF-8 processing (non-standard) */ 136>U| 137FN("utf8-mode", FUNICODE, OF_ANY 138 139/* -v echo input */ 140>v| 141FN("verbose", FVERBOSE, OF_ANY 142 143/* ./. Vi command line editing mode */ 144>|!defined(MKSH_NO_CMDLINE_EDITING) || defined(MKSH_LEGACY_MODE) 145FN("vi", FVI, OF_ANY 146 147/* ./. enable ESC as file name completion character (non-standard) */ 148>|!defined(MKSH_NO_CMDLINE_EDITING) || defined(MKSH_LEGACY_MODE) 149FN("vi-esccomplete", FVIESCCOMPLETE, OF_ANY 150 151/* ./. enable Tab as file name completion character (non-standard) */ 152>|!defined(MKSH_NO_CMDLINE_EDITING) || defined(MKSH_LEGACY_MODE) 153FN("vi-tabcomplete", FVITABCOMPLETE, OF_ANY 154 155/* ./. always read in raw mode (no effect) */ 156>|!defined(MKSH_NO_CMDLINE_EDITING) || defined(MKSH_LEGACY_MODE) 157FN("viraw", FVIRAW, OF_ANY 158 159/* -x execution trace (display commands as they are run) */ 160>x| 161FN("xtrace", FXTRACE, OF_ANY 162 163/* -c (invocation) execute specified command */ 164>c|!SHFLAGS_NOT_CMD 165FN("", FCOMMAND, OF_CMDLINE 166 167/* 168 * anonymous flags: used internally by shell only (not visible to user 169 */ 170 171/* ./. direct builtin call (divined from argv[0] multi-call binary) */ 172>| 173FN("", FAS_BUILTIN, OF_INTERNAL 174 175/* ./. (internal) initial shell was interactive */ 176>| 177FN("", FTALKING_I, OF_INTERNAL 178 179|SHFLAGS_OPTCS 180