hdr.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. extern int squawk;
  2. extern int clean;
  3. extern char *file;
  4. extern int verbose;
  5. extern long ninput, noutput, nrunes, nerrors;
  6. enum { From = 1, Table = 2, Func = 4 };
  7. typedef void (*Fnptr)(void);
  8. struct convert{
  9. char *name;
  10. char *chatter;
  11. int flags;
  12. void *data;
  13. Fnptr fn;
  14. };
  15. extern struct convert convert[];
  16. struct convert *conv(char *, int);
  17. typedef void (*Infn)(int, long *, struct convert *);
  18. typedef void (*Outfn)(Rune *, int, long *);
  19. void outtable(Rune *, int, long *);
  20. void utf_in(int, long *, struct convert *);
  21. void utf_out(Rune *, int, long *);
  22. void isoutf_in(int, long *, struct convert *);
  23. void isoutf_out(Rune *, int, long *);
  24. #define N 10000 /* just blocking */
  25. #define OUT(out, r, n) if(out->flags&Table) outtable(r, n, (long *)out->data);\
  26. else ((Outfn)(out->fn))(r, n, (long *)0)
  27. extern Rune runes[N];
  28. extern char obuf[UTFmax*N]; /* maximum bloat from N runes */
  29. #define BADMAP (0xFFFD)
  30. #define BYTEBADMAP ('?') /* badmap but has to fit in a byte */
  31. #define ESC 033
  32. #ifdef PLAN9
  33. #define EPR fprint(2,
  34. #define EXIT(n,s) exits(s)
  35. #else
  36. #define EPR fprintf(stderr,
  37. #define USED(x) /* in plan 9, USED(x) tells the compiler to treat x as used */
  38. #define EXIT(n,s) exit(n)
  39. #endif