Blame


1 84b1cb73 2003-09-30 devnull #define SAMTERM
2 84b1cb73 2003-09-30 devnull
3 84b1cb73 2003-09-30 devnull #define RUNESIZE sizeof(Rune)
4 84b1cb73 2003-09-30 devnull #define MAXFILES 256
5 84b1cb73 2003-09-30 devnull #define READBUFSIZE 8192
6 84b1cb73 2003-09-30 devnull #define NL 5
7 84b1cb73 2003-09-30 devnull
8 84b1cb73 2003-09-30 devnull enum{
9 84b1cb73 2003-09-30 devnull Up,
10 84b1cb73 2003-09-30 devnull Down
11 84b1cb73 2003-09-30 devnull };
12 84b1cb73 2003-09-30 devnull
13 84b1cb73 2003-09-30 devnull typedef struct Text Text;
14 84b1cb73 2003-09-30 devnull typedef struct Section Section;
15 84b1cb73 2003-09-30 devnull typedef struct Rasp Rasp;
16 84b1cb73 2003-09-30 devnull typedef struct Readbuf Readbuf;
17 84b1cb73 2003-09-30 devnull
18 84b1cb73 2003-09-30 devnull struct Section
19 84b1cb73 2003-09-30 devnull {
20 84b1cb73 2003-09-30 devnull long nrunes;
21 84b1cb73 2003-09-30 devnull Rune *text; /* if null, we haven't got it */
22 84b1cb73 2003-09-30 devnull Section *next;
23 84b1cb73 2003-09-30 devnull };
24 84b1cb73 2003-09-30 devnull
25 84b1cb73 2003-09-30 devnull struct Rasp
26 84b1cb73 2003-09-30 devnull {
27 84b1cb73 2003-09-30 devnull long nrunes;
28 84b1cb73 2003-09-30 devnull Section *sect;
29 84b1cb73 2003-09-30 devnull };
30 84b1cb73 2003-09-30 devnull
31 84b1cb73 2003-09-30 devnull #define Untagged ((ushort)65535)
32 84b1cb73 2003-09-30 devnull
33 84b1cb73 2003-09-30 devnull struct Text
34 84b1cb73 2003-09-30 devnull {
35 84b1cb73 2003-09-30 devnull Rasp rasp;
36 84b1cb73 2003-09-30 devnull short nwin;
37 84b1cb73 2003-09-30 devnull short front; /* input window */
38 84b1cb73 2003-09-30 devnull ushort tag;
39 84b1cb73 2003-09-30 devnull char lock;
40 84b1cb73 2003-09-30 devnull Flayer l[NL]; /* screen storage */
41 84b1cb73 2003-09-30 devnull };
42 84b1cb73 2003-09-30 devnull
43 84b1cb73 2003-09-30 devnull struct Readbuf
44 84b1cb73 2003-09-30 devnull {
45 84b1cb73 2003-09-30 devnull short n; /* # bytes in buf */
46 84b1cb73 2003-09-30 devnull uchar data[READBUFSIZE]; /* data bytes */
47 84b1cb73 2003-09-30 devnull };
48 84b1cb73 2003-09-30 devnull
49 84b1cb73 2003-09-30 devnull enum Resource
50 84b1cb73 2003-09-30 devnull {
51 84b1cb73 2003-09-30 devnull RHost,
52 84b1cb73 2003-09-30 devnull RKeyboard,
53 84b1cb73 2003-09-30 devnull RMouse,
54 84b1cb73 2003-09-30 devnull RPlumb,
55 84b1cb73 2003-09-30 devnull RResize,
56 84b1cb73 2003-09-30 devnull NRes,
57 84b1cb73 2003-09-30 devnull };
58 84b1cb73 2003-09-30 devnull
59 b4135f04 2005-01-07 devnull extern int protodebug;
60 b4135f04 2005-01-07 devnull
61 84b1cb73 2003-09-30 devnull extern Text **text;
62 84b1cb73 2003-09-30 devnull extern uchar **name;
63 84b1cb73 2003-09-30 devnull extern ushort *tag;
64 84b1cb73 2003-09-30 devnull extern int nname;
65 84b1cb73 2003-09-30 devnull extern int mname;
66 84b1cb73 2003-09-30 devnull extern Cursor bullseye;
67 84b1cb73 2003-09-30 devnull extern Cursor deadmouse;
68 84b1cb73 2003-09-30 devnull extern Cursor lockarrow;
69 84b1cb73 2003-09-30 devnull extern Cursor *cursor;
70 84b1cb73 2003-09-30 devnull extern Flayer *which;
71 84b1cb73 2003-09-30 devnull extern Flayer *work;
72 84b1cb73 2003-09-30 devnull extern Text cmd;
73 84b1cb73 2003-09-30 devnull extern Rune *scratch;
74 84b1cb73 2003-09-30 devnull extern long nscralloc;
75 84b1cb73 2003-09-30 devnull extern char hostlock;
76 84b1cb73 2003-09-30 devnull extern char hasunlocked;
77 84b1cb73 2003-09-30 devnull extern long snarflen;
78 84b1cb73 2003-09-30 devnull extern Mousectl* mousectl;
79 84b1cb73 2003-09-30 devnull extern Keyboardctl* keyboardctl;
80 84b1cb73 2003-09-30 devnull extern Mouse* mousep;
81 84b1cb73 2003-09-30 devnull extern long modified;
82 84b1cb73 2003-09-30 devnull extern int maxtab;
83 84b1cb73 2003-09-30 devnull extern Readbuf hostbuf[2]; /* double buffer; it's synchronous communication */
84 84b1cb73 2003-09-30 devnull extern Readbuf plumbbuf[2]; /* double buffer; it's synchronous communication */
85 84b1cb73 2003-09-30 devnull extern Channel *plumbc;
86 84b1cb73 2003-09-30 devnull extern Channel *hostc;
87 84b1cb73 2003-09-30 devnull extern int hversion;
88 84b1cb73 2003-09-30 devnull extern int plumbfd;
89 941c9f36 2003-10-11 devnull extern int hostfd[2];
90 f0264abf 2005-01-20 devnull extern int exiting;
91 d27787fb 2005-03-18 devnull extern int autoindent;
92 84b1cb73 2003-09-30 devnull
93 21621d7e 2005-01-07 devnull #define gettext sam_gettext /* stupid gcc built-in functions */
94 84b1cb73 2003-09-30 devnull Rune *gettext(Flayer*, long, ulong*);
95 84b1cb73 2003-09-30 devnull void *alloc(ulong n);
96 84b1cb73 2003-09-30 devnull
97 84b1cb73 2003-09-30 devnull void iconinit(void);
98 84b1cb73 2003-09-30 devnull void getscreen(int, char**);
99 84b1cb73 2003-09-30 devnull void initio(void);
100 84b1cb73 2003-09-30 devnull void setlock(void);
101 84b1cb73 2003-09-30 devnull void outcmd(void);
102 84b1cb73 2003-09-30 devnull void rinit(Rasp*);
103 84b1cb73 2003-09-30 devnull void startnewfile(int, Text*);
104 84b1cb73 2003-09-30 devnull void getmouse(void);
105 84b1cb73 2003-09-30 devnull void mouseunblock(void);
106 84b1cb73 2003-09-30 devnull void kbdblock(void);
107 84b1cb73 2003-09-30 devnull void extstart(void);
108 84b1cb73 2003-09-30 devnull void hoststart(void);
109 84b1cb73 2003-09-30 devnull int plumbstart(void);
110 84b1cb73 2003-09-30 devnull int button(int but);
111 84b1cb73 2003-09-30 devnull int load(char*, int);
112 84b1cb73 2003-09-30 devnull int waitforio(void);
113 84b1cb73 2003-09-30 devnull int rcvchar(void);
114 84b1cb73 2003-09-30 devnull int getch(void);
115 84b1cb73 2003-09-30 devnull int kbdchar(void);
116 84b1cb73 2003-09-30 devnull int qpeekc(void);
117 84b1cb73 2003-09-30 devnull void cut(Text*, int, int, int);
118 84b1cb73 2003-09-30 devnull void paste(Text*, int);
119 84b1cb73 2003-09-30 devnull void snarf(Text*, int);
120 84b1cb73 2003-09-30 devnull int center(Flayer*, long);
121 84b1cb73 2003-09-30 devnull int xmenuhit(int, Menu*);
122 84b1cb73 2003-09-30 devnull void buttons(int);
123 84b1cb73 2003-09-30 devnull int getr(Rectangle*);
124 84b1cb73 2003-09-30 devnull void current(Flayer*);
125 84b1cb73 2003-09-30 devnull void duplicate(Flayer*, Rectangle, Font*, int);
126 84b1cb73 2003-09-30 devnull void startfile(Text*);
127 84b1cb73 2003-09-30 devnull void panic(char*);
128 84b1cb73 2003-09-30 devnull void panic1(Display*, char*);
129 84b1cb73 2003-09-30 devnull void closeup(Flayer*);
130 84b1cb73 2003-09-30 devnull void Strgrow(Rune**, long*, int);
131 84b1cb73 2003-09-30 devnull int RESIZED(void);
132 84b1cb73 2003-09-30 devnull void resize(void);
133 84b1cb73 2003-09-30 devnull void rcv(void);
134 84b1cb73 2003-09-30 devnull void type(Flayer*, int);
135 84b1cb73 2003-09-30 devnull void menu2hit(void);
136 84b1cb73 2003-09-30 devnull void menu3hit(void);
137 84b1cb73 2003-09-30 devnull void scroll(Flayer*, int);
138 84b1cb73 2003-09-30 devnull void hcheck(int);
139 84b1cb73 2003-09-30 devnull void rclear(Rasp*);
140 84b1cb73 2003-09-30 devnull int whichmenu(int);
141 84b1cb73 2003-09-30 devnull void hcut(int, long, long);
142 84b1cb73 2003-09-30 devnull void horigin(int, long);
143 84b1cb73 2003-09-30 devnull void hgrow(int, long, long, int);
144 84b1cb73 2003-09-30 devnull int hdata(int, long, uchar*, int);
145 84b1cb73 2003-09-30 devnull int hdatarune(int, long, Rune*, int);
146 84b1cb73 2003-09-30 devnull Rune *rload(Rasp*, ulong, ulong, ulong*);
147 84b1cb73 2003-09-30 devnull void menuins(int, uchar*, Text*, int, int);
148 84b1cb73 2003-09-30 devnull void menudel(int);
149 84b1cb73 2003-09-30 devnull Text *sweeptext(int, int);
150 84b1cb73 2003-09-30 devnull void setpat(char*);
151 84b1cb73 2003-09-30 devnull void scrdraw(Flayer*, long tot);
152 84b1cb73 2003-09-30 devnull int rcontig(Rasp*, ulong, ulong, int);
153 84b1cb73 2003-09-30 devnull int rmissing(Rasp*, ulong, ulong);
154 84b1cb73 2003-09-30 devnull void rresize(Rasp *, long, long, long);
155 84b1cb73 2003-09-30 devnull void rdata(Rasp*, long, long, Rune*);
156 84b1cb73 2003-09-30 devnull void rclean(Rasp*);
157 84b1cb73 2003-09-30 devnull void scrorigin(Flayer*, int, long);
158 84b1cb73 2003-09-30 devnull long scrtotal(Flayer*);
159 84b1cb73 2003-09-30 devnull void flnewlyvisible(Flayer*);
160 84b1cb73 2003-09-30 devnull char *rcvstring(void);
161 84b1cb73 2003-09-30 devnull void Strcpy(Rune*, Rune*);
162 84b1cb73 2003-09-30 devnull void Strncpy(Rune*, Rune*, long);
163 84b1cb73 2003-09-30 devnull void flushtyping(int);
164 84b1cb73 2003-09-30 devnull void dumperrmsg(int, int, int, int);
165 84b1cb73 2003-09-30 devnull int screensize(int*,int*);
166 84b1cb73 2003-09-30 devnull void getmouse(void);
167 84b1cb73 2003-09-30 devnull
168 84b1cb73 2003-09-30 devnull #include "mesg.h"
169 84b1cb73 2003-09-30 devnull
170 84b1cb73 2003-09-30 devnull void outTs(Tmesg, int);
171 84b1cb73 2003-09-30 devnull void outT0(Tmesg);
172 84b1cb73 2003-09-30 devnull void outTl(Tmesg, long);
173 84b1cb73 2003-09-30 devnull void outTslS(Tmesg, int, long, Rune*);
174 84b1cb73 2003-09-30 devnull void outTsll(Tmesg, int, long, long);
175 84b1cb73 2003-09-30 devnull void outTsl(Tmesg, int, long);
176 84b1cb73 2003-09-30 devnull void outTsv(Tmesg, int, void*);
177 84b1cb73 2003-09-30 devnull void outTv(Tmesg, void*);
178 84b1cb73 2003-09-30 devnull void outstart(Tmesg);
179 84b1cb73 2003-09-30 devnull void outcopy(int, uchar*);
180 84b1cb73 2003-09-30 devnull void outshort(int);
181 84b1cb73 2003-09-30 devnull void outlong(long);
182 84b1cb73 2003-09-30 devnull void outvlong(void*);
183 84b1cb73 2003-09-30 devnull void outsend(void);
184 941c9f36 2003-10-11 devnull