Blame


1 76193d7c 2003-09-30 devnull #include "sam.h"
2 76193d7c 2003-09-30 devnull
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"
54 76193d7c 2003-09-30 devnull };
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"
67 76193d7c 2003-09-30 devnull };
68 76193d7c 2003-09-30 devnull
69 76193d7c 2003-09-30 devnull void
70 76193d7c 2003-09-30 devnull error(Err s)
71 76193d7c 2003-09-30 devnull {
72 76193d7c 2003-09-30 devnull char buf[512];
73 76193d7c 2003-09-30 devnull
74 76193d7c 2003-09-30 devnull sprint(buf, "?%s", emsg[s]);
75 76193d7c 2003-09-30 devnull hiccough(buf);
76 76193d7c 2003-09-30 devnull }
77 76193d7c 2003-09-30 devnull
78 76193d7c 2003-09-30 devnull void
79 76193d7c 2003-09-30 devnull error_s(Err s, char *a)
80 76193d7c 2003-09-30 devnull {
81 76193d7c 2003-09-30 devnull char buf[512];
82 76193d7c 2003-09-30 devnull
83 76193d7c 2003-09-30 devnull sprint(buf, "?%s \"%s\"", emsg[s], a);
84 76193d7c 2003-09-30 devnull hiccough(buf);
85 76193d7c 2003-09-30 devnull }
86 76193d7c 2003-09-30 devnull
87 76193d7c 2003-09-30 devnull void
88 76193d7c 2003-09-30 devnull error_r(Err s, char *a)
89 76193d7c 2003-09-30 devnull {
90 76193d7c 2003-09-30 devnull char buf[512];
91 76193d7c 2003-09-30 devnull
92 76193d7c 2003-09-30 devnull sprint(buf, "?%s \"%s\": %r", emsg[s], a);
93 76193d7c 2003-09-30 devnull hiccough(buf);
94 76193d7c 2003-09-30 devnull }
95 76193d7c 2003-09-30 devnull
96 76193d7c 2003-09-30 devnull void
97 76193d7c 2003-09-30 devnull error_c(Err s, int c)
98 76193d7c 2003-09-30 devnull {
99 76193d7c 2003-09-30 devnull char buf[512];
100 76193d7c 2003-09-30 devnull
101 76193d7c 2003-09-30 devnull sprint(buf, "?%s `%C'", emsg[s], c);
102 76193d7c 2003-09-30 devnull hiccough(buf);
103 76193d7c 2003-09-30 devnull }
104 76193d7c 2003-09-30 devnull
105 76193d7c 2003-09-30 devnull void
106 76193d7c 2003-09-30 devnull warn(Warn s)
107 76193d7c 2003-09-30 devnull {
108 76193d7c 2003-09-30 devnull dprint("?warning: %s\n", wmsg[s]);
109 76193d7c 2003-09-30 devnull }
110 76193d7c 2003-09-30 devnull
111 76193d7c 2003-09-30 devnull void
112 76193d7c 2003-09-30 devnull warn_S(Warn s, String *a)
113 76193d7c 2003-09-30 devnull {
114 76193d7c 2003-09-30 devnull print_s(wmsg[s], a);
115 76193d7c 2003-09-30 devnull }
116 76193d7c 2003-09-30 devnull
117 76193d7c 2003-09-30 devnull void
118 76193d7c 2003-09-30 devnull warn_SS(Warn s, String *a, String *b)
119 76193d7c 2003-09-30 devnull {
120 76193d7c 2003-09-30 devnull print_ss(wmsg[s], a, b);
121 76193d7c 2003-09-30 devnull }
122 76193d7c 2003-09-30 devnull
123 76193d7c 2003-09-30 devnull void
124 76193d7c 2003-09-30 devnull warn_s(Warn s, char *a)
125 76193d7c 2003-09-30 devnull {
126 76193d7c 2003-09-30 devnull dprint("?warning: %s `%s'\n", wmsg[s], a);
127 76193d7c 2003-09-30 devnull }
128 76193d7c 2003-09-30 devnull
129 76193d7c 2003-09-30 devnull void
130 76193d7c 2003-09-30 devnull termwrite(char *s)
131 76193d7c 2003-09-30 devnull {
132 76193d7c 2003-09-30 devnull String *p;
133 76193d7c 2003-09-30 devnull
134 76193d7c 2003-09-30 devnull if(downloaded){
135 76193d7c 2003-09-30 devnull p = tmpcstr(s);
136 76193d7c 2003-09-30 devnull if(cmd)
137 76193d7c 2003-09-30 devnull loginsert(cmd, cmdpt, p->s, p->n);
138 76193d7c 2003-09-30 devnull else
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);
142 76193d7c 2003-09-30 devnull }else
143 76193d7c 2003-09-30 devnull Write(2, s, strlen(s));
144 76193d7c 2003-09-30 devnull }