114478Ssam #ifndef lint 2*37678Sbostic static char sccsid[] = "@(#)msg.c 4.6 05/08/89"; 314478Ssam #endif 46698Smckusick 56698Smckusick # 66698Smckusick /* 76698Smckusick * UNIX shell 86698Smckusick * 96698Smckusick * S. R. Bourne 106698Smckusick * Bell Telephone Laboratories 116698Smckusick * 126698Smckusick */ 136698Smckusick 146698Smckusick 156698Smckusick #include "defs.h" 166698Smckusick #include "sym.h" 176698Smckusick 186698Smckusick MSG version = "\nVERSION sys137 DATE 1978 Nov 6 14:29:22\n"; 196698Smckusick 206698Smckusick /* error messages */ 216698Smckusick MSG badopt = "bad option(s)"; 226698Smckusick MSG mailmsg = "you have mail\n"; 236698Smckusick MSG nospace = "no space"; 246698Smckusick MSG synmsg = "syntax error"; 256698Smckusick 266698Smckusick MSG badnum = "bad number"; 276698Smckusick MSG badparam = "parameter not set"; 286698Smckusick MSG badsub = "bad substitution"; 296698Smckusick MSG badcreate = "cannot create"; 306698Smckusick MSG illegal = "illegal io"; 316698Smckusick MSG restricted = "restricted"; 326698Smckusick MSG piperr = "cannot make pipe"; 336698Smckusick MSG badopen = "cannot open"; 346698Smckusick MSG coredump = " - core dumped"; 356698Smckusick MSG arglist = "arg list too long"; 366698Smckusick MSG txtbsy = "text busy"; 376698Smckusick MSG toobig = "too big"; 386698Smckusick MSG badexec = "cannot execute"; 396698Smckusick MSG notfound = "not found"; 406698Smckusick MSG badfile = "bad file number"; 416698Smckusick MSG badshift = "cannot shift"; 426698Smckusick MSG baddir = "bad directory"; 436698Smckusick MSG badtrap = "bad trap"; 446698Smckusick MSG wtfailed = "is read only"; 456698Smckusick MSG notid = "is not an identifier"; 466698Smckusick 476698Smckusick /* built in names */ 486698Smckusick MSG pathname = "PATH"; 496698Smckusick MSG homename = "HOME"; 506698Smckusick MSG mailname = "MAIL"; 516698Smckusick MSG fngname = "FILEMATCH"; 526698Smckusick MSG ifsname = "IFS"; 536698Smckusick MSG ps1name = "PS1"; 546698Smckusick MSG ps2name = "PS2"; 556698Smckusick 566698Smckusick /* string constants */ 576698Smckusick MSG nullstr = ""; 586698Smckusick MSG sptbnl = " \t\n"; 596698Smckusick MSG colon = ": "; 606698Smckusick MSG minus = "-"; 616698Smckusick MSG endoffile = "end of file"; 626698Smckusick MSG unexpected = " unexpected"; 636698Smckusick MSG atline = " at line "; 646698Smckusick MSG devnull = "/dev/null"; 656698Smckusick MSG execpmsg = "+ "; 666698Smckusick MSG readmsg = "> "; 676698Smckusick MSG stdprompt = "$ "; 686698Smckusick MSG supprompt = "# "; 696698Smckusick MSG profile = ".profile"; 706698Smckusick 716698Smckusick 726698Smckusick /* tables */ 7330367Ssam SYSTAB reserved = { 746698Smckusick {"in", INSYM}, 756698Smckusick {"esac", ESSYM}, 766698Smckusick {"case", CASYM}, 776698Smckusick {"for", FORSYM}, 786698Smckusick {"done", ODSYM}, 796698Smckusick {"if", IFSYM}, 806698Smckusick {"while", WHSYM}, 816698Smckusick {"do", DOSYM}, 826698Smckusick {"then", THSYM}, 836698Smckusick {"else", ELSYM}, 846698Smckusick {"elif", EFSYM}, 856698Smckusick {"fi", FISYM}, 866698Smckusick {"until", UNSYM}, 876698Smckusick { "{", BRSYM}, 886698Smckusick { "}", KTSYM}, 896698Smckusick {0, 0}, 906698Smckusick }; 916698Smckusick 9230367Ssam STRING sysmsg[] = { 936698Smckusick 0, 946698Smckusick "Hangup", 956698Smckusick 0, /* Interrupt */ 966698Smckusick "Quit", 976698Smckusick "Illegal instruction", 986698Smckusick "Trace/BPT trap", 996698Smckusick "IOT trap", 1006698Smckusick "EMT trap", 1016698Smckusick "Floating exception", 1026698Smckusick "Killed", 1036698Smckusick "Bus error", 1046698Smckusick "Memory fault", 1056698Smckusick "Bad system call", 1066698Smckusick 0, /* Broken pipe */ 1076698Smckusick "Alarm call", 1086698Smckusick "Terminated", 10918428Smckusick "Urgent condition", 11018428Smckusick "Stopped", 11118428Smckusick "Stopped from terminal", 11218428Smckusick "Continued", 11318428Smckusick "Child terminated", 11418428Smckusick "Stopped on terminal input", 11518428Smckusick "Stopped on terminal output", 11618428Smckusick "Asynchronous I/O", 11718428Smckusick "Exceeded cpu time limit", 11818428Smckusick "Exceeded file size limit", 11918428Smckusick "Virtual time alarm", 12018428Smckusick "Profiling time alarm", 12118428Smckusick "Window changed", 12218428Smckusick "Signal 29", 12321008Smckusick "User defined signal 1", 12421008Smckusick "User defined signal 2", 12518428Smckusick "Signal 32", 1266698Smckusick }; 12718428Smckusick INT num_sysmsg = (sizeof sysmsg / sizeof sysmsg[0]); 1286698Smckusick 1296698Smckusick MSG export = "export"; 1306698Smckusick MSG readonly = "readonly"; 13130367Ssam SYSTAB commands = { 1326698Smckusick {"cd", SYSCD}, 1336698Smckusick {"read", SYSREAD}, 1346698Smckusick /* 1356698Smckusick {"[", SYSTST}, 1366698Smckusick */ 1376698Smckusick {"set", SYSSET}, 1386698Smckusick {":", SYSNULL}, 1396698Smckusick {"trap", SYSTRAP}, 1406698Smckusick {"login", SYSLOGIN}, 1416698Smckusick {"wait", SYSWAIT}, 1426698Smckusick {"eval", SYSEVAL}, 1436698Smckusick {".", SYSDOT}, 1446698Smckusick {readonly, SYSRDONLY}, 1456698Smckusick {export, SYSXPORT}, 1466698Smckusick {"chdir", SYSCD}, 1476698Smckusick {"break", SYSBREAK}, 1486698Smckusick {"continue", SYSCONT}, 1496698Smckusick {"shift", SYSSHFT}, 1506698Smckusick {"exit", SYSEXIT}, 1516698Smckusick {"exec", SYSEXEC}, 1526698Smckusick {"times", SYSTIMES}, 1536698Smckusick {"umask", SYSUMASK}, 1546698Smckusick {0, 0}, 1556698Smckusick }; 156