1 #ifndef lint 2 static char sccsid[] = "@(#)msg.c 4.6 05/08/89"; 3 #endif 4 5 # 6 /* 7 * UNIX shell 8 * 9 * S. R. Bourne 10 * Bell Telephone Laboratories 11 * 12 */ 13 14 15 #include "defs.h" 16 #include "sym.h" 17 18 MSG version = "\nVERSION sys137 DATE 1978 Nov 6 14:29:22\n"; 19 20 /* error messages */ 21 MSG badopt = "bad option(s)"; 22 MSG mailmsg = "you have mail\n"; 23 MSG nospace = "no space"; 24 MSG synmsg = "syntax error"; 25 26 MSG badnum = "bad number"; 27 MSG badparam = "parameter not set"; 28 MSG badsub = "bad substitution"; 29 MSG badcreate = "cannot create"; 30 MSG illegal = "illegal io"; 31 MSG restricted = "restricted"; 32 MSG piperr = "cannot make pipe"; 33 MSG badopen = "cannot open"; 34 MSG coredump = " - core dumped"; 35 MSG arglist = "arg list too long"; 36 MSG txtbsy = "text busy"; 37 MSG toobig = "too big"; 38 MSG badexec = "cannot execute"; 39 MSG notfound = "not found"; 40 MSG badfile = "bad file number"; 41 MSG badshift = "cannot shift"; 42 MSG baddir = "bad directory"; 43 MSG badtrap = "bad trap"; 44 MSG wtfailed = "is read only"; 45 MSG notid = "is not an identifier"; 46 47 /* built in names */ 48 MSG pathname = "PATH"; 49 MSG homename = "HOME"; 50 MSG mailname = "MAIL"; 51 MSG fngname = "FILEMATCH"; 52 MSG ifsname = "IFS"; 53 MSG ps1name = "PS1"; 54 MSG ps2name = "PS2"; 55 56 /* string constants */ 57 MSG nullstr = ""; 58 MSG sptbnl = " \t\n"; 59 MSG colon = ": "; 60 MSG minus = "-"; 61 MSG endoffile = "end of file"; 62 MSG unexpected = " unexpected"; 63 MSG atline = " at line "; 64 MSG devnull = "/dev/null"; 65 MSG execpmsg = "+ "; 66 MSG readmsg = "> "; 67 MSG stdprompt = "$ "; 68 MSG supprompt = "# "; 69 MSG profile = ".profile"; 70 71 72 /* tables */ 73 SYSTAB reserved = { 74 {"in", INSYM}, 75 {"esac", ESSYM}, 76 {"case", CASYM}, 77 {"for", FORSYM}, 78 {"done", ODSYM}, 79 {"if", IFSYM}, 80 {"while", WHSYM}, 81 {"do", DOSYM}, 82 {"then", THSYM}, 83 {"else", ELSYM}, 84 {"elif", EFSYM}, 85 {"fi", FISYM}, 86 {"until", UNSYM}, 87 { "{", BRSYM}, 88 { "}", KTSYM}, 89 {0, 0}, 90 }; 91 92 STRING sysmsg[] = { 93 0, 94 "Hangup", 95 0, /* Interrupt */ 96 "Quit", 97 "Illegal instruction", 98 "Trace/BPT trap", 99 "IOT trap", 100 "EMT trap", 101 "Floating exception", 102 "Killed", 103 "Bus error", 104 "Memory fault", 105 "Bad system call", 106 0, /* Broken pipe */ 107 "Alarm call", 108 "Terminated", 109 "Urgent condition", 110 "Stopped", 111 "Stopped from terminal", 112 "Continued", 113 "Child terminated", 114 "Stopped on terminal input", 115 "Stopped on terminal output", 116 "Asynchronous I/O", 117 "Exceeded cpu time limit", 118 "Exceeded file size limit", 119 "Virtual time alarm", 120 "Profiling time alarm", 121 "Window changed", 122 "Signal 29", 123 "User defined signal 1", 124 "User defined signal 2", 125 "Signal 32", 126 }; 127 INT num_sysmsg = (sizeof sysmsg / sizeof sysmsg[0]); 128 129 MSG export = "export"; 130 MSG readonly = "readonly"; 131 SYSTAB commands = { 132 {"cd", SYSCD}, 133 {"read", SYSREAD}, 134 /* 135 {"[", SYSTST}, 136 */ 137 {"set", SYSSET}, 138 {":", SYSNULL}, 139 {"trap", SYSTRAP}, 140 {"login", SYSLOGIN}, 141 {"wait", SYSWAIT}, 142 {"eval", SYSEVAL}, 143 {".", SYSDOT}, 144 {readonly, SYSRDONLY}, 145 {export, SYSXPORT}, 146 {"chdir", SYSCD}, 147 {"break", SYSBREAK}, 148 {"continue", SYSCONT}, 149 {"shift", SYSSHFT}, 150 {"exit", SYSEXIT}, 151 {"exec", SYSEXEC}, 152 {"times", SYSTIMES}, 153 {"umask", SYSUMASK}, 154 {0, 0}, 155 }; 156