1 76193d7c 2003-09-30 devnull #include "sam.h"
3 76193d7c 2003-09-30 devnull static char *emsg[]={
4 76193d7c 2003-09-30 devnull /* error_s */
5 76193d7c 2003-09-30 devnull "can't open",
6 76193d7c 2003-09-30 devnull "can't create",
7 76193d7c 2003-09-30 devnull "not in menu:",
8 76193d7c 2003-09-30 devnull "changes to",
9 76193d7c 2003-09-30 devnull "I/O error:",
10 76193d7c 2003-09-30 devnull "can't write while changing:",
11 76193d7c 2003-09-30 devnull /* error_c */
12 76193d7c 2003-09-30 devnull "unknown command",
13 76193d7c 2003-09-30 devnull "no operand for",
14 76193d7c 2003-09-30 devnull "bad delimiter",
15 76193d7c 2003-09-30 devnull /* error */
16 76193d7c 2003-09-30 devnull "can't fork",
17 76193d7c 2003-09-30 devnull "interrupt",
18 76193d7c 2003-09-30 devnull "address",
19 76193d7c 2003-09-30 devnull "search",
20 76193d7c 2003-09-30 devnull "pattern",
21 76193d7c 2003-09-30 devnull "newline expected",
22 76193d7c 2003-09-30 devnull "blank expected",
23 76193d7c 2003-09-30 devnull "pattern expected",
24 76193d7c 2003-09-30 devnull "can't nest X or Y",
25 76193d7c 2003-09-30 devnull "unmatched `}'",
26 76193d7c 2003-09-30 devnull "command takes no address",
27 76193d7c 2003-09-30 devnull "addresses overlap",
28 76193d7c 2003-09-30 devnull "substitution",
29 76193d7c 2003-09-30 devnull "& match too long",
30 76193d7c 2003-09-30 devnull "bad \\ in rhs",
31 76193d7c 2003-09-30 devnull "address range",
32 76193d7c 2003-09-30 devnull "changes not in sequence",
33 76193d7c 2003-09-30 devnull "addresses out of order",
34 76193d7c 2003-09-30 devnull "no file name",
35 76193d7c 2003-09-30 devnull "unmatched `('",
36 76193d7c 2003-09-30 devnull "unmatched `)'",
37 76193d7c 2003-09-30 devnull "malformed `[]'",
38 76193d7c 2003-09-30 devnull "malformed regexp",
39 76193d7c 2003-09-30 devnull "reg. exp. list overflow",
40 76193d7c 2003-09-30 devnull "plan 9 command",
41 76193d7c 2003-09-30 devnull "can't pipe",
42 76193d7c 2003-09-30 devnull "no current file",
43 76193d7c 2003-09-30 devnull "string too long",
44 76193d7c 2003-09-30 devnull "changed files",
45 76193d7c 2003-09-30 devnull "empty string",
46 76193d7c 2003-09-30 devnull "file search",
47 76193d7c 2003-09-30 devnull "non-unique match for \"\"",
48 76193d7c 2003-09-30 devnull "tag match too long",
49 76193d7c 2003-09-30 devnull "too many subexpressions",
50 76193d7c 2003-09-30 devnull "temporary file too large",
51 76193d7c 2003-09-30 devnull "file is append-only",
52 76193d7c 2003-09-30 devnull "no destination for plumb message",
53 cbeb0b26 2006-04-01 devnull "internal read error in buffer load"
55 76193d7c 2003-09-30 devnull static char *wmsg[]={
56 76193d7c 2003-09-30 devnull /* warn_s */
57 76193d7c 2003-09-30 devnull "duplicate file name",
58 76193d7c 2003-09-30 devnull "no such file",
59 76193d7c 2003-09-30 devnull "write might change good version of",
60 76193d7c 2003-09-30 devnull /* warn_S */
61 76193d7c 2003-09-30 devnull "files might be aliased",
62 76193d7c 2003-09-30 devnull /* warn */
63 76193d7c 2003-09-30 devnull "null characters elided",
64 76193d7c 2003-09-30 devnull "can't run pwd",
65 76193d7c 2003-09-30 devnull "last char not newline",
66 cbeb0b26 2006-04-01 devnull "exit status not 0"
70 76193d7c 2003-09-30 devnull error(Err s)
72 76193d7c 2003-09-30 devnull char buf[512];
74 76193d7c 2003-09-30 devnull sprint(buf, "?%s", emsg[s]);
75 76193d7c 2003-09-30 devnull hiccough(buf);
79 76193d7c 2003-09-30 devnull error_s(Err s, char *a)
81 76193d7c 2003-09-30 devnull char buf[512];
83 76193d7c 2003-09-30 devnull sprint(buf, "?%s \"%s\"", emsg[s], a);
84 76193d7c 2003-09-30 devnull hiccough(buf);
88 76193d7c 2003-09-30 devnull error_r(Err s, char *a)
90 76193d7c 2003-09-30 devnull char buf[512];
92 76193d7c 2003-09-30 devnull sprint(buf, "?%s \"%s\": %r", emsg[s], a);
93 76193d7c 2003-09-30 devnull hiccough(buf);
97 76193d7c 2003-09-30 devnull error_c(Err s, int c)
99 76193d7c 2003-09-30 devnull char buf[512];
101 76193d7c 2003-09-30 devnull sprint(buf, "?%s `%C'", emsg[s], c);
102 76193d7c 2003-09-30 devnull hiccough(buf);
106 76193d7c 2003-09-30 devnull warn(Warn s)
108 76193d7c 2003-09-30 devnull dprint("?warning: %s\n", wmsg[s]);
112 76193d7c 2003-09-30 devnull warn_S(Warn s, String *a)
114 76193d7c 2003-09-30 devnull print_s(wmsg[s], a);
118 76193d7c 2003-09-30 devnull warn_SS(Warn s, String *a, String *b)
120 76193d7c 2003-09-30 devnull print_ss(wmsg[s], a, b);
124 76193d7c 2003-09-30 devnull warn_s(Warn s, char *a)
126 76193d7c 2003-09-30 devnull dprint("?warning: %s `%s'\n", wmsg[s], a);
130 76193d7c 2003-09-30 devnull termwrite(char *s)
132 76193d7c 2003-09-30 devnull String *p;
134 76193d7c 2003-09-30 devnull if(downloaded){
135 76193d7c 2003-09-30 devnull p = tmpcstr(s);
137 76193d7c 2003-09-30 devnull loginsert(cmd, cmdpt, p->s, p->n);
139 76193d7c 2003-09-30 devnull Strinsert(&cmdstr, p, cmdstr.n);
140 76193d7c 2003-09-30 devnull cmdptadv += p->n;
141 edfe3c01 2018-03-27 0intro freetmpstr(p);
143 76193d7c 2003-09-30 devnull Write(2, s, strlen(s));