Blame


1 c42a1d3d 2006-02-21 devnull #include <u.h>
2 c42a1d3d 2006-02-21 devnull #include <libc.h>
3 c42a1d3d 2006-02-21 devnull #include <bio.h>
4 c42a1d3d 2006-02-21 devnull #include <ctype.h>
5 c42a1d3d 2006-02-21 devnull
6 c42a1d3d 2006-02-21 devnull enum
7 c42a1d3d 2006-02-21 devnull {
8 c42a1d3d 2006-02-21 devnull Unbsp = 0x00A0,
9 c42a1d3d 2006-02-21 devnull Uprivate = 0xF000,
10 c42a1d3d 2006-02-21 devnull Uempty, /* \& */
11 c42a1d3d 2006-02-21 devnull Uamp, /* raw & */
12 c42a1d3d 2006-02-21 devnull Ult, /* raw < */
13 c42a1d3d 2006-02-21 devnull Ugt, /* raw > */
14 c42a1d3d 2006-02-21 devnull Utick, /* raw ' */
15 c42a1d3d 2006-02-21 devnull Ubtick, /* raw ` */
16 c42a1d3d 2006-02-21 devnull Uminus, /* raw - */
17 c42a1d3d 2006-02-21 devnull Uspace, /* raw space */
18 c42a1d3d 2006-02-21 devnull Upl, /* symbol + */
19 c42a1d3d 2006-02-21 devnull Ueq, /* symbol = */
20 c42a1d3d 2006-02-21 devnull Umi, /* symbol - */
21 c42a1d3d 2006-02-21 devnull Uformatted, /* start diverted output */
22 c42a1d3d 2006-02-21 devnull Uunformatted, /* end diverted output */
23 c42a1d3d 2006-02-21 devnull
24 c42a1d3d 2006-02-21 devnull UPI = 720, /* units per inch */
25 c42a1d3d 2006-02-21 devnull UPX = 10, /* units per pixel */
26 fa325e9b 2020-01-10 cross
27 c42a1d3d 2006-02-21 devnull /* special input modes */
28 c42a1d3d 2006-02-21 devnull CopyMode = 1<<1,
29 c42a1d3d 2006-02-21 devnull ExpandMode = 1<<2,
30 c42a1d3d 2006-02-21 devnull ArgMode = 1<<3,
31 c42a1d3d 2006-02-21 devnull HtmlMode = 1<<4,
32 fa325e9b 2020-01-10 cross
33 cbeb0b26 2006-04-01 devnull MaxLine = 1024
34 c42a1d3d 2006-02-21 devnull };
35 c42a1d3d 2006-02-21 devnull
36 c42a1d3d 2006-02-21 devnull Rune* L(char*);
37 c42a1d3d 2006-02-21 devnull
38 c42a1d3d 2006-02-21 devnull void addesc(Rune, int (*)(void), int);
39 c42a1d3d 2006-02-21 devnull void addraw(Rune*, void(*)(Rune*));
40 c42a1d3d 2006-02-21 devnull void addreq(Rune*, void(*)(int, Rune**), int);
41 c42a1d3d 2006-02-21 devnull void af(Rune*, Rune*);
42 c42a1d3d 2006-02-21 devnull void as(Rune*, Rune*);
43 c42a1d3d 2006-02-21 devnull void br(void);
44 c42a1d3d 2006-02-21 devnull void closehtml(void);
45 c42a1d3d 2006-02-21 devnull Rune* copyarg(void);
46 c42a1d3d 2006-02-21 devnull void delraw(Rune*);
47 c42a1d3d 2006-02-21 devnull void delreq(Rune*);
48 c42a1d3d 2006-02-21 devnull void ds(Rune*, Rune*);
49 c42a1d3d 2006-02-21 devnull int dv(int);
50 c42a1d3d 2006-02-21 devnull int e_nop(void);
51 c42a1d3d 2006-02-21 devnull int e_warn(void);
52 c42a1d3d 2006-02-21 devnull void* emalloc(uint);
53 c42a1d3d 2006-02-21 devnull void* erealloc(void*, uint);
54 c42a1d3d 2006-02-21 devnull Rune* erunesmprint(char*, ...);
55 c42a1d3d 2006-02-21 devnull Rune* erunestrdup(Rune*);
56 c42a1d3d 2006-02-21 devnull char* esmprint(char*, ...);
57 c42a1d3d 2006-02-21 devnull char* estrdup(char*);
58 c42a1d3d 2006-02-21 devnull int eval(Rune*);
59 c42a1d3d 2006-02-21 devnull int evalscale(Rune*, int);
60 c42a1d3d 2006-02-21 devnull Rune* getname(void);
61 c42a1d3d 2006-02-21 devnull int getnext(void);
62 c42a1d3d 2006-02-21 devnull Rune* getds(Rune*);
63 c42a1d3d 2006-02-21 devnull Rune* _getnr(Rune*);
64 c42a1d3d 2006-02-21 devnull int getnr(Rune*);
65 c42a1d3d 2006-02-21 devnull int getnrr(Rune*);
66 c42a1d3d 2006-02-21 devnull int getrune(void);
67 c42a1d3d 2006-02-21 devnull Rune* getqarg(void);
68 c42a1d3d 2006-02-21 devnull Rune* getline(void);
69 c42a1d3d 2006-02-21 devnull void hideihtml(void);
70 c42a1d3d 2006-02-21 devnull void html(Rune*, Rune*);
71 c42a1d3d 2006-02-21 devnull void htmlinit(void);
72 c42a1d3d 2006-02-21 devnull void ihtml(Rune*, Rune*);
73 c42a1d3d 2006-02-21 devnull void inputnotify(void(*)(void));
74 c42a1d3d 2006-02-21 devnull void itrap(void);
75 c42a1d3d 2006-02-21 devnull void itrapset(void);
76 c42a1d3d 2006-02-21 devnull int linefmt(Fmt*);
77 c42a1d3d 2006-02-21 devnull void nr(Rune*, int);
78 c42a1d3d 2006-02-21 devnull void _nr(Rune*, Rune*);
79 c42a1d3d 2006-02-21 devnull void out(Rune*);
80 c42a1d3d 2006-02-21 devnull void (*outcb)(Rune);
81 c42a1d3d 2006-02-21 devnull void outhtml(Rune*);
82 c42a1d3d 2006-02-21 devnull void outrune(Rune);
83 c42a1d3d 2006-02-21 devnull void outtrap(void);
84 c42a1d3d 2006-02-21 devnull int popinput(void);
85 c42a1d3d 2006-02-21 devnull void printds(int);
86 c42a1d3d 2006-02-21 devnull int pushinputfile(Rune*);
87 c42a1d3d 2006-02-21 devnull void pushinputstring(Rune*);
88 c42a1d3d 2006-02-21 devnull int pushstdin(void);
89 c42a1d3d 2006-02-21 devnull int queueinputfile(Rune*);
90 c42a1d3d 2006-02-21 devnull int queuestdin(void);
91 c42a1d3d 2006-02-21 devnull void r_nop(int, Rune**);
92 c42a1d3d 2006-02-21 devnull void r_warn(int, Rune**);
93 c42a1d3d 2006-02-21 devnull Rune *readline(int);
94 c42a1d3d 2006-02-21 devnull void reitag(void);
95 c42a1d3d 2006-02-21 devnull void renraw(Rune*, Rune*);
96 c42a1d3d 2006-02-21 devnull void renreq(Rune*, Rune*);
97 c42a1d3d 2006-02-21 devnull void run(void);
98 c42a1d3d 2006-02-21 devnull void runinput(void);
99 c42a1d3d 2006-02-21 devnull int runmacro(int, int, Rune**);
100 c42a1d3d 2006-02-21 devnull void runmacro1(Rune*);
101 c42a1d3d 2006-02-21 devnull Rune* rune2html(Rune);
102 c42a1d3d 2006-02-21 devnull void setlinenumber(Rune*, int);
103 c42a1d3d 2006-02-21 devnull void showihtml(void);
104 c42a1d3d 2006-02-21 devnull void sp(int);
105 c42a1d3d 2006-02-21 devnull void t1init(void);
106 c42a1d3d 2006-02-21 devnull void t2init(void);
107 c42a1d3d 2006-02-21 devnull void t3init(void);
108 c42a1d3d 2006-02-21 devnull void t4init(void);
109 c42a1d3d 2006-02-21 devnull void t5init(void);
110 c42a1d3d 2006-02-21 devnull void t6init(void);
111 c42a1d3d 2006-02-21 devnull void t7init(void);
112 c42a1d3d 2006-02-21 devnull void t8init(void);
113 c42a1d3d 2006-02-21 devnull void t9init(void);
114 c42a1d3d 2006-02-21 devnull void t10init(void);
115 c42a1d3d 2006-02-21 devnull void t11init(void);
116 c42a1d3d 2006-02-21 devnull void t12init(void);
117 c42a1d3d 2006-02-21 devnull void t13init(void);
118 c42a1d3d 2006-02-21 devnull void t14init(void);
119 c42a1d3d 2006-02-21 devnull void t15init(void);
120 c42a1d3d 2006-02-21 devnull void t16init(void);
121 c42a1d3d 2006-02-21 devnull void t17init(void);
122 c42a1d3d 2006-02-21 devnull void t18init(void);
123 c42a1d3d 2006-02-21 devnull void t19init(void);
124 c42a1d3d 2006-02-21 devnull void t20init(void);
125 c42a1d3d 2006-02-21 devnull Rune troff2rune(Rune*);
126 c42a1d3d 2006-02-21 devnull void unfont(void);
127 c42a1d3d 2006-02-21 devnull void ungetnext(Rune);
128 c42a1d3d 2006-02-21 devnull void ungetrune(Rune);
129 c42a1d3d 2006-02-21 devnull void unitag(void);
130 c42a1d3d 2006-02-21 devnull void warn(char*, ...);
131 c42a1d3d 2006-02-21 devnull
132 c42a1d3d 2006-02-21 devnull extern int backslash;
133 c42a1d3d 2006-02-21 devnull extern int bol;
134 c42a1d3d 2006-02-21 devnull extern Biobuf bout;
135 c42a1d3d 2006-02-21 devnull extern int broke;
136 c42a1d3d 2006-02-21 devnull extern int dot;
137 c42a1d3d 2006-02-21 devnull extern int inputmode;
138 c42a1d3d 2006-02-21 devnull extern int inrequest;
139 c42a1d3d 2006-02-21 devnull extern int tick;
140 c42a1d3d 2006-02-21 devnull extern int utf8;
141 c42a1d3d 2006-02-21 devnull extern int verbose;
142 c42a1d3d 2006-02-21 devnull extern int linepos;
143 c42a1d3d 2006-02-21 devnull
144 c42a1d3d 2006-02-21 devnull #define runemalloc(n) (Rune*)emalloc((n)*sizeof(Rune))
145 c42a1d3d 2006-02-21 devnull #define runerealloc(r, n) (Rune*)erealloc(r, (n)*sizeof(Rune))
146 c42a1d3d 2006-02-21 devnull #define runemove(a, b, n) memmove(a, b, (n)*sizeof(Rune))
147 c42a1d3d 2006-02-21 devnull
148 c42a1d3d 2006-02-21 devnull #pragma varargck type "L" void