Annotation of researchv9/jtools/src/sam/error.c, revision 1.1.1.1

1.1       root        1: #include "sam.h"
                      2: 
                      3: static char *emsg[]={
                      4:        /* error_s */
                      5:        "can't open",
                      6:        "can't create",
                      7:        "not in menu:",
                      8:        "changes to",
                      9:        "I/O error:",
                     10:        /* error_c */
                     11:        "unknown command",
                     12:        "no operand for",
                     13:        "bad delimiter",
                     14:        /* error */
                     15:        "can't fork",
                     16:        "out of memory",
                     17:        "interrupt",
                     18:        "address",
                     19:        "search",
                     20:        "pattern",
                     21:        "newline expected",
                     22:        "blank expected",
                     23:        "pattern expected",
                     24:        "can't nest X or Y",
                     25:        "unmatched `}'",
                     26:        "command takes no address",
                     27:        "addresses overlap",
                     28:        "substitution",
                     29:        "substitution too long",
                     30:        "& match too long",
                     31:        "bad \\ in rhs",
                     32:        "address range",
                     33:        "changes not in sequence",
                     34:        "file name too long",
                     35:        "addresses out of order",
                     36:        "no file name",
                     37:        "unmatched `('",
                     38:        "unmatched `)'",
                     39:        "too many char classes",
                     40:        "malformed `[]'",
                     41:        "reg. exp. list overflow",
                     42:        "unix command",
                     43:        "can't pipe",
                     44:        "no current file",
                     45:        "string too long",
                     46:        "changed files",
                     47:        "empty string",
                     48:        "file search",
                     49:        "non-unique match for \"\"",
                     50: };
                     51: static char *wmsg[]={
                     52:        /* warn_s */
                     53:        "duplicate file name",
                     54:        "no such file",
                     55:        "write might change good version of",
                     56:        /* warn */
                     57:        "non-ascii chars elided",
                     58:        "can't run pwd",
                     59:        "last char not newline",
                     60:        "exit status not 0",
                     61: };
                     62: error(s)
                     63:        Error s;
                     64: {
                     65:        char buf[512];
                     66:        sprint(buf, "?%s", emsg[s]);
                     67:        hiccough(buf);
                     68: }
                     69: error_s(s, a)
                     70:        Error s;
                     71:        char *a;
                     72: {
                     73:        char buf[512];
                     74:        sprint(buf, "?%s \"%s\"", emsg[s], a);
                     75:        hiccough(buf);
                     76: }
                     77: error_c(s, c)
                     78:        Error s;
                     79: {
                     80:        char buf[512];
                     81:        sprint(buf, "?%s `%c'", emsg[s], c);
                     82:        hiccough(buf);
                     83: }
                     84: warn(s)
                     85:        Warning s;
                     86: {
                     87:        dprint("?warning: %s\n", wmsg[s]);
                     88: }
                     89: warn_s(s, a)
                     90:        Warning s;
                     91:        char *a;
                     92: {
                     93:        dprint("?warning: %s `%s'\n", wmsg[s], a);
                     94: }
                     95: dprint(z, a, b, c, d, e)
                     96:        char *z;
                     97: {
                     98:        uchar buf[BLOCKSIZE];
                     99:        sprint((char *)buf, z, a, b, c, d, e);
                    100:        termwrite(buf, strlen(buf));
                    101: }
                    102: termwrite(s, n)
                    103:        uchar *s;
                    104: {
                    105:        static String p;        /* avoid tempstr: we might be using it now */
                    106:        if(downloaded){
                    107:                p.n=p.size=n;
                    108:                p.s=s;
                    109:                if(cmd)
                    110:                        Finsert(cmd, &p, cmdpt);
                    111:                else
                    112:                        strinsert(&cmdstr, &p, (long)cmdstr.n);
                    113:                cmdptadv+=n;
                    114:        }else
                    115:                Write(2, s, n);
                    116: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.