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