1 #define runemalloc(a) emalloc((a)*sizeof(Rune)) 2 #define runerealloc(a, b) erealloc(a, (b)*sizeof(Rune)) 3 #define runemove(a, b, c) memmove(a, b, (c)*sizeof(Rune)) 4 5 #define hasbrk(x) ((x)&IFbrk || (x)&IFbrksp) 6 #define istrue(x) ((x) ? "true" : "false") 7 8 void plumblook(Plumbmsg*m); 9 int plumbrunestr(Runestr *, char *); 10 void putsnarf(Runestr *); 11 void getsnarf(Runestr *); 12 13 void tablesize(Table *, int); 14 void drawtable(Box *, Page *, Image *); 15 void laytable(Itable *, Rectangle); 16 void settables(Page *); 17 void laysnarf(Page *, Lay *, Runestr *); 18 Timer* timerstart(int); 19 void timerstop(Timer*); 20 void timercancel(Timer*); 21 void timerinit(void); 22 23 void cut(Text *, Text *, int, int, Rune *, int); 24 void get(Text *, Text *, int, int, Rune *, int); 25 void paste(Text *, Text *, int, int, Rune *, int); 26 void execute(Text *, uint, uint, Text *); 27 void look3(Text *, uint, uint); 28 int search(Text *, Rune *, uint); 29 30 void scrsleep(uint); 31 void scrlresize(void); 32 void tmpresize(void); 33 34 void initfontpaths(void); 35 void cvttorunes(char*, int, Rune*, int*, int*, int*); 36 void error(char *); 37 void closerunestr(Runestr *); 38 void copyrunestr(Runestr *, Runestr *); 39 int runestreq(Runestr, Runestr); 40 int validurl(Rune *); 41 int runeeq(Rune *, uint, Rune *, uint); 42 int min(int, int); 43 int max(int, int); 44 int isalnum(Rune); 45 Rune* skipbl(Rune *, int, int *); 46 Rune* findbl(Rune *r, int, int *); 47 char* estrdup(char *); 48 Rune* erunestrdup(Rune *); 49 Rune* ucvt(Rune *s); 50 int dimwidth(Dimen , int); 51 void frdims(Dimen *, int, int, int **); 52 Image* getbg(Page *); 53 Rune* getbase(Page *); 54 Image* eallocimage(Display *, Rectangle, ulong, int, int); 55 Image* getcolor(int); 56 void freecolors(void); 57 Font* getfont(int); 58 void freefonts(void); 59 void colarray(Image **, Image *, Image *, Image *, int); 60 void rect3d(Image *, Rectangle, int, Image **, Point); 61 void ellipse3d(Image *, Point, int, int, Image **, Point); 62 void reverseimages(Iimage **); 63 void setstatus(Window *, char *, ...); 64 int istextfield(Item *); 65 int forceitem(Item *); 66 int xtofchar(Rune *, Font *, long); 67 int istextsel(Page *, Rectangle, int *, int *, Rune *, Font *); 68 char* convert(Runestr, char *, long *); 69 void execproc(void *); 70 void getimage(Cimage *, Rune *); 71 Point getpt(Page *p, Point); 72 Rune *urlcombine(Rune *, Rune *); 73 void fixtext(Page *); 74 void addrefresh(Page *, char *, ...); 75 void flushrefresh(void); 76 void savemouse(Window *); 77 void restoremouse(Window *); 78 void clearmouse(void); 79 void bytetorunestr(char *, Runestr *); 80 Window* makenewwindow(Page *); 81 82 Line* linewhich(Lay *, Point); 83 Box* pttobox(Line *, Point); 84 Box* boxwhich(Lay *, Point); 85 86