plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

a.h (3197B)


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