Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include <u.h>
#include <libc.h>
#include <bio.h>
#include <ctype.h>

enum
{
        Unbsp = 0x00A0,
        Uprivate = 0xF000,
        Uempty, /* \& */
        Uamp,   /* raw & */
        Ult,            /* raw < */
        Ugt,            /* raw > */
        Utick,  /* raw ' */
        Ubtick, /* raw ` */
        Uminus, /* raw - */
        Uspace, /* raw space */
        Upl,            /* symbol + */
        Ueq,            /* symbol = */
        Umi,            /* symbol - */
        Uformatted,     /* start diverted output */
        Uunformatted,   /* end diverted output */

        UPI = 720,      /* units per inch */
        UPX = 10,       /* units per pixel */
        
        /* special input modes */
        CopyMode = 1<<1,
        ExpandMode = 1<<2,
        ArgMode = 1<<3,
        HtmlMode = 1<<4,
        
        MaxLine = 1024,
};

Rune*   L(char*);

void            addesc(Rune, int (*)(void), int);
void            addraw(Rune*, void(*)(Rune*));
void            addreq(Rune*, void(*)(int, Rune**), int);
void            af(Rune*, Rune*);
void            as(Rune*, Rune*);
void            br(void);
void            closehtml(void);
Rune*   copyarg(void);
void            delraw(Rune*);
void            delreq(Rune*);
void            ds(Rune*, Rune*);
int             dv(int);
int             e_nop(void);
int             e_warn(void);
void*   emalloc(uint);
void*   erealloc(void*, uint);
Rune*   erunesmprint(char*, ...);
Rune*   erunestrdup(Rune*);
char*   esmprint(char*, ...);
char*   estrdup(char*);
int             eval(Rune*);
int             evalscale(Rune*, int);
Rune*   getname(void);
int             getnext(void);
Rune*   getds(Rune*);
Rune*   _getnr(Rune*);
int             getnr(Rune*);
int             getnrr(Rune*);
int             getrune(void);
Rune*   getqarg(void);
Rune*   getline(void);
void            hideihtml(void);
void            html(Rune*, Rune*);
void            htmlinit(void);
void            ihtml(Rune*, Rune*);
void            inputnotify(void(*)(void));
void            itrap(void);
void            itrapset(void);
int             linefmt(Fmt*);
void            nr(Rune*, int);
void            _nr(Rune*, Rune*);
void            out(Rune*);
void            (*outcb)(Rune);
void            outhtml(Rune*);
void            outrune(Rune);
void            outtrap(void);
int             popinput(void);
void            printds(int);
int             pushinputfile(Rune*);
void            pushinputstring(Rune*);
int             pushstdin(void);
int             queueinputfile(Rune*);
int             queuestdin(void);
void            r_nop(int, Rune**);
void            r_warn(int, Rune**);
Rune    *readline(int);
void            reitag(void);
void            renraw(Rune*, Rune*);
void            renreq(Rune*, Rune*);
void            run(void);
void            runinput(void);
int             runmacro(int, int, Rune**);
void            runmacro1(Rune*);
Rune*   rune2html(Rune);
void            setlinenumber(Rune*, int);
void            showihtml(void);
void            sp(int);
void            t1init(void);
void            t2init(void);
void            t3init(void);
void            t4init(void);
void            t5init(void);
void            t6init(void);
void            t7init(void);
void            t8init(void);
void            t9init(void);
void            t10init(void);
void            t11init(void);
void            t12init(void);
void            t13init(void);
void            t14init(void);
void            t15init(void);
void            t16init(void);
void            t17init(void);
void            t18init(void);
void            t19init(void);
void            t20init(void);
Rune    troff2rune(Rune*);
void            unfont(void);
void            ungetnext(Rune);
void            ungetrune(Rune);
void            unitag(void);
void            warn(char*, ...);

extern  int             backslash;
extern  int             bol;
extern  Biobuf  bout;
extern  int             broke;
extern  int             dot;
extern  int             inputmode;
extern  int             inrequest;
extern  int             tick;
extern  int             utf8;
extern  int             verbose;
extern  int             linepos;

#define runemalloc(n)   (Rune*)emalloc((n)*sizeof(Rune))
#define runerealloc(r, n)       (Rune*)erealloc(r, (n)*sizeof(Rune))
#define runemove(a, b, n)       memmove(a, b, (n)*sizeof(Rune))

#pragma varargck type "L" void