#ifndef PROTO_h #define PROTO_h #include "types.h" #include /* for FILE */ #include /* for va_list */ #include "bounds.h" #include "conv.h" #include "decinf.h" #include "dviclass.h" #include "dvicodes.h" #include "dvistate.h" #include "fio.h" #include "font.h" #include "fontconf.h" #include "gfclass.h" #include "gfcodes.h" #include "gripes.h" #include "num.h" #include "pkdetails.h" #include "postamble.h" #include "sdecode.h" #include "search.h" #include "tfm.h" /* FROM conv.c */ extern void CSetConversion(struct conversion *c, int hdpi, int vdpi,int usermag, i32 num, i32 denom, i32 dvimag); /* FROM dviclass.c */ /* FROM dvistate.c */ extern void DVISetState(FILE *fp, struct font *(*fontfn)(char* name, i32 dvimag, i32 dvidsz), int hdpi, int vdpi, int xoffset, int yoffset); static void pre(void); static void post(struct PostAmbleInfo *p); static void fntdef(struct PostAmbleFont *p); extern struct font *DVIFindFont(i32 n); extern void DVIRule(void (*fn)(i32 h, i32 w), int advance); extern void DVIBeginPage(void (*fn)(i32* count)); /* FROM error.c */ extern void SetErrorTrap(void (*fn)(int,char*)); static char *readback(void); static void verror(int quit, char *a0, char *fmt, va_list l, int e); extern void error(int quit, int e, char *fmt, ... ); extern void panic(char *fmt, ... ); /* FROM findpost.c */ extern int FindPostAmble(register FILE *f); /* FROM fio.c */ extern i32 GetByte(register FILE *fp); extern i32 GetWord(register FILE *fp); extern i32 Get3Byte(register FILE *fp); extern i32 GetLong(register FILE *fp); /* FROM font.c */ extern void fontinit(char *file); static struct fontops *findops(register char *name); static void readconf(char *name); static void setfenv(struct fontconf *pfc, char *env, char *suf); static void setfont(struct fontconf *pfc, char *path); static void badcf(char *why); static void basify(char *s, char *buf, int size); static void pave(char *result, char *proto, char *name, int mag); extern struct font *GetFont(char *nm, i32 dvimag, i32 dvidsz, char *dev, char **fname); extern struct font *GetRasterlessFont(char *nm, i32 dvimag, i32 dvidsz, char *dev, char **fname); static struct font *getafont(char *nm, i32 dvimag, i32 dvidsz, char *dev, char **fname, int wantrast); /* FROM font_subr.c */ extern int FontHasGlyphs(register struct font *f, register int low, register int high); static struct glyph *AllocGlyph(int n); extern void FreeGlyph(struct font *f, register struct glyph *g); extern void FreeFont(register struct font *f); extern struct glyph *GetGlyph(register struct font *f, int c); extern char *GetRaster(register struct glyph *g, register struct font *f, int r); extern void FreeRaster(struct glyph *g); extern char *Font_TeXName(register struct font *f); /* FROM getopt.c */ extern int getopt(register int argc, register char **argv, char *optstring); /* FROM gfclass.c */ /* FROM gffont.c */ static int findGFpostamble(int fd, long *postp, long *postpostp); static int gf_read(register struct font *f, int fd); static char *drawchar(register char *p, int abbrev, struct bounds globalb, char *gfname); extern char *copyit(void); static int gf_getgly(register struct font *f, int l, int h); static int gf_rasterise(struct font *f, int l, int h); static void gf_freefont(struct font *f); /* FROM gripes0.c */ extern void GripeOutOfMemory(int n, char *why); extern void GripeCannotGetFont(char *name, i32 mag, i32 dsz, char *dev, char *fullname); extern void GripeDifferentChecksums(char *font, i32 tfmsum, i32 fontsum); extern void GripeMissingFontsPreventOutput(int n); /* FROM gripes1.c */ static char *dfn(void); extern void GripeNoSuchFont(i32 n); extern void GripeFontAlreadyDefined(i32 n); extern void GripeUnexpectedDVIEOF(void); extern void GripeUnexpectedOp(char *s); extern void GripeMissingOp(char *s); extern void GripeCannotFindPostamble(void); extern void GripeMismatchedValue(char *s); extern void GripeUndefinedOp(int n); extern void GripeBadGlyph(i32 c, struct font *f); /* FROM magfactor.c */ extern double DMagFactor(int mag); /* FROM pkfont.c */ static int pk_unpack(register struct pk_details *pk); static void skip_specials(struct font *f); static int pk_read(register struct font *f, int fd); static int scan_characters(struct font *f, char **reason); static int pk_getgly(register struct font *f, int l, int h); static int pk_rasterise(struct font *f, int l, int h); static void pk_freefont(struct font *f); /* FROM pxlfont.c */ static int pxl_read(struct font *f, int fd); static int pxl_getgly(register struct font *f, int l, register int h); static char *makeraster(register int h, register int w, register char *rp); static int pxl_rasterise(register struct font *f, int l, register int h); static void pxl_freefont(struct font *f); /* FROM rotate.c */ extern void SetRotation(register struct glyph *g, int r); static void RotateClockwise(struct glyph *glyph); /* FROM rstfont.c */ static int rst_read(struct font *f, int fd); static int rst_getgly(register struct font *f, int l, register int h); static int rst_rasterise(register struct font *f, int l, register int h); static void rst_freefont(struct font *f); /* FROM scaletfm.c */ extern i32 ScaleOneWidth(register i32 t, register i32 z); extern void ScaleGlyphs(register struct font *f, int l, int h); /* FROM scanpost.c */ extern void ScanPostAmble(register FILE *f, void (*headerfunc)(struct PostAmbleInfo *p), void (*fontfunc)(struct PostAmbleFont *p)); /* FROM sdecode.c */ static int canon(register struct decode_info *di); static char *word(register struct decode_info *di, int quietly); extern void SDsetclass(register char *spaces, register char *semis); static struct sdecode *lookup(register char *str, register struct sdecode *p, register int max); extern void SDecode(FILE *fp, register i32 len, struct sdecode *table, int tsize); static void args(register struct sdecode *tp, register struct decode_info *di); static void badarg(int c, struct decode_info *di); static int scan(struct decode_info* di, char** fmtp, ...); static int scan_i(char *p, int c, i32 *result); static int scan_d(char *p, double *result); /* FROM search.c */ extern struct search *SCreate(register unsigned int dsize); extern char *SSearch(register struct search *s, register i32 key, int *disp); extern void SEnumerate(register struct search *s, register void (*f)(char*, i32)); /* FROM seek.c */ extern FILE *CopyFile(FILE *f); extern FILE *SeekFile(FILE *f); /* FROM skip.c */ extern void SkipFontDef(register FILE *fp); /* FROM split.c */ extern int split(register char *s, register char **w, int nw); /* FROM strsave.c */ extern char *strsave(register char *s); /* FROM tempfile.c */ extern int MakeRWTempFile(register char *name); /* FROM tfm.c */ extern int readtfmfile(register FILE *f, register struct tfmdata *t, int stopafterwidth); static int trd_header(register FILE *f, register struct tfmheader *th); static int trd_ci(register FILE *f, register int nc, register struct char_info_word *ci); static int trd_fix(register FILE *f, register int nf, register i32 *p); /* FROM tfmfont.c */ static int box_read(struct font *f, int fd); static int blank_read(struct font *f, int fd); static int tfm_read(struct font *f, int fd); static int do_read(register struct font *f, int fd, int blank); static int tfm_getgly(register struct font *f, int l, register int h); static int tfm_rasterise(struct font *f, int l, int h); static void tfm_freefont(struct font *f); #endif