Blame


1 cfabc3ed 2003-11-23 devnull #include <u.h>
2 cfabc3ed 2003-11-23 devnull #include <libc.h>
3 cfabc3ed 2003-11-23 devnull #include <ctype.h>
4 cfabc3ed 2003-11-23 devnull #include <draw.h>
5 cfabc3ed 2003-11-23 devnull #include <thread.h>
6 cfabc3ed 2003-11-23 devnull #include <mouse.h>
7 cfabc3ed 2003-11-23 devnull #include <cursor.h>
8 cfabc3ed 2003-11-23 devnull #include <keyboard.h>
9 cfabc3ed 2003-11-23 devnull #include <frame.h>
10 cfabc3ed 2003-11-23 devnull #include <plumb.h>
11 cfabc3ed 2003-11-23 devnull #include <termios.h>
12 cfabc3ed 2003-11-23 devnull
13 cfabc3ed 2003-11-23 devnull #define fatal sysfatal
14 cfabc3ed 2003-11-23 devnull
15 cfabc3ed 2003-11-23 devnull typedef struct Text Text;
16 cfabc3ed 2003-11-23 devnull typedef struct Readbuf Readbuf;
17 cfabc3ed 2003-11-23 devnull
18 cfabc3ed 2003-11-23 devnull enum
19 cfabc3ed 2003-11-23 devnull {
20 cfabc3ed 2003-11-23 devnull /* these are chosen to use malloc()'s properties well */
21 cfabc3ed 2003-11-23 devnull HiWater = 640000, /* max size of history */
22 cfabc3ed 2003-11-23 devnull LoWater = 330000, /* min size of history after max'ed */
23 cfabc3ed 2003-11-23 devnull };
24 cfabc3ed 2003-11-23 devnull
25 cfabc3ed 2003-11-23 devnull /* various geometric paramters */
26 cfabc3ed 2003-11-23 devnull enum
27 cfabc3ed 2003-11-23 devnull {
28 cfabc3ed 2003-11-23 devnull Scrollwid = 12, /* width of scroll bar */
29 cfabc3ed 2003-11-23 devnull Scrollgap = 4, /* gap right of scroll bar */
30 cfabc3ed 2003-11-23 devnull Maxtab = 4,
31 cfabc3ed 2003-11-23 devnull };
32 cfabc3ed 2003-11-23 devnull
33 cfabc3ed 2003-11-23 devnull enum
34 cfabc3ed 2003-11-23 devnull {
35 cfabc3ed 2003-11-23 devnull Cut,
36 cfabc3ed 2003-11-23 devnull Paste,
37 cfabc3ed 2003-11-23 devnull Snarf,
38 cfabc3ed 2003-11-23 devnull Send,
39 cfabc3ed 2003-11-23 devnull Scroll,
40 cfabc3ed 2003-11-23 devnull Plumb,
41 cfabc3ed 2003-11-23 devnull };
42 cfabc3ed 2003-11-23 devnull
43 cfabc3ed 2003-11-23 devnull
44 cfabc3ed 2003-11-23 devnull #define SCROLLKEY Kdown
45 cfabc3ed 2003-11-23 devnull #define ESC 0x1B
46 cfabc3ed 2003-11-23 devnull #define CUT 0x18 /* ctrl-x */
47 cfabc3ed 2003-11-23 devnull #define COPY 0x03 /* crtl-c */
48 cfabc3ed 2003-11-23 devnull #define PASTE 0x16 /* crtl-v */
49 cfabc3ed 2003-11-23 devnull #define BACKSCROLLKEY Kup
50 cfabc3ed 2003-11-23 devnull
51 cfabc3ed 2003-11-23 devnull #define READBUFSIZE 8192
52 cfabc3ed 2003-11-23 devnull
53 cfabc3ed 2003-11-23 devnull struct Text
54 cfabc3ed 2003-11-23 devnull {
55 cfabc3ed 2003-11-23 devnull Frame *f; /* frame ofr terminal */
56 cfabc3ed 2003-11-23 devnull Mouse m;
57 cfabc3ed 2003-11-23 devnull uint nr; /* num of runes in term */
58 cfabc3ed 2003-11-23 devnull Rune *r; /* runes for term */
59 cfabc3ed 2003-11-23 devnull uint nraw; /* num of runes in raw buffer */
60 cfabc3ed 2003-11-23 devnull Rune *raw; /* raw buffer */
61 cfabc3ed 2003-11-23 devnull uint org; /* first rune on the screen */
62 cfabc3ed 2003-11-23 devnull uint q0; /* start of selection region */
63 cfabc3ed 2003-11-23 devnull uint q1; /* end of selection region */
64 cfabc3ed 2003-11-23 devnull uint qh; /* unix point */
65 cfabc3ed 2003-11-23 devnull int npart; /* partial runes read from console */
66 cfabc3ed 2003-11-23 devnull char part[UTFmax];
67 cfabc3ed 2003-11-23 devnull int nsnarf; /* snarf buffer */
68 cfabc3ed 2003-11-23 devnull Rune *snarf;
69 cfabc3ed 2003-11-23 devnull };
70 cfabc3ed 2003-11-23 devnull
71 cfabc3ed 2003-11-23 devnull struct Readbuf
72 cfabc3ed 2003-11-23 devnull {
73 cfabc3ed 2003-11-23 devnull short n; /* # bytes in buf */
74 cfabc3ed 2003-11-23 devnull uchar data[READBUFSIZE]; /* data bytes */
75 cfabc3ed 2003-11-23 devnull };
76 cfabc3ed 2003-11-23 devnull
77 cfabc3ed 2003-11-23 devnull void mouse(void);
78 cfabc3ed 2003-11-23 devnull void domenu2(int);
79 cfabc3ed 2003-11-23 devnull void loop(void);
80 cfabc3ed 2003-11-23 devnull void geom(void);
81 cfabc3ed 2003-11-23 devnull void fill(void);
82 cfabc3ed 2003-11-23 devnull void tcheck(void);
83 cfabc3ed 2003-11-23 devnull void updatesel(void);
84 cfabc3ed 2003-11-23 devnull void doreshape(void);
85 d3acba95 2003-12-04 devnull void rcstart(int fd[2], int, char**);
86 cfabc3ed 2003-11-23 devnull void runewrite(Rune*, int);
87 cfabc3ed 2003-11-23 devnull void consread(void);
88 cfabc3ed 2003-11-23 devnull void conswrite(char*, int);
89 cfabc3ed 2003-11-23 devnull int bswidth(Rune c);
90 cfabc3ed 2003-11-23 devnull void cut(void);
91 cfabc3ed 2003-11-23 devnull void paste(Rune*, int, int);
92 cfabc3ed 2003-11-23 devnull void snarfupdate(void);
93 cfabc3ed 2003-11-23 devnull void snarf(void);
94 cfabc3ed 2003-11-23 devnull void show(uint);
95 cfabc3ed 2003-11-23 devnull void key(Rune);
96 cfabc3ed 2003-11-23 devnull void setorigin(uint org, int exact);
97 cfabc3ed 2003-11-23 devnull uint line2q(uint);
98 cfabc3ed 2003-11-23 devnull uint backnl(uint, uint);
99 cfabc3ed 2003-11-23 devnull int cansee(uint);
100 cfabc3ed 2003-11-23 devnull uint backnl(uint, uint);
101 cfabc3ed 2003-11-23 devnull void addraw(Rune*, int);
102 cfabc3ed 2003-11-23 devnull void mselect(void);
103 cfabc3ed 2003-11-23 devnull void doubleclick(uint *q0, uint *q1);
104 cfabc3ed 2003-11-23 devnull int clickmatch(int cl, int cr, int dir, uint *q);
105 cfabc3ed 2003-11-23 devnull Rune *strrune(Rune *s, Rune c);
106 cfabc3ed 2003-11-23 devnull int consready(void);
107 cfabc3ed 2003-11-23 devnull Rectangle scrpos(Rectangle r, ulong p0, ulong p1, ulong tot);
108 cfabc3ed 2003-11-23 devnull void scrdraw(void);
109 cfabc3ed 2003-11-23 devnull void scroll(int);
110 cfabc3ed 2003-11-23 devnull void hostproc(void *arg);
111 cfabc3ed 2003-11-23 devnull void hoststart(void);
112 f1613419 2003-11-25 devnull int getchildwd(int, char*, int);
113 cfabc3ed 2003-11-23 devnull void plumbstart(void);
114 cfabc3ed 2003-11-23 devnull void plumb(uint, uint);
115 cfabc3ed 2003-11-23 devnull void plumbclick(uint*, uint*);
116 cfabc3ed 2003-11-23 devnull int getpts(int fd[], char *slave);
117 cfabc3ed 2003-11-23 devnull
118 cfabc3ed 2003-11-23 devnull #define runemalloc(n) malloc((n)*sizeof(Rune))
119 cfabc3ed 2003-11-23 devnull #define runerealloc(a, n) realloc(a, (n)*sizeof(Rune))
120 cfabc3ed 2003-11-23 devnull #define runemove(a, b, n) memmove(a, b, (n)*sizeof(Rune))