From a31db67d14c0e50353eac3db342f3c969cabdf76 Mon Sep 17 00:00:00 2001 From: wkj Date: Wed, 21 Apr 2004 01:15:41 +0000 Subject: Add tcs; it compiles in my world, but I haven't tried it in Russ's yet. --- src/cmd/tcs/hdr.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/cmd/tcs/hdr.h (limited to 'src/cmd/tcs/hdr.h') diff --git a/src/cmd/tcs/hdr.h b/src/cmd/tcs/hdr.h new file mode 100644 index 00000000..b065f2a3 --- /dev/null +++ b/src/cmd/tcs/hdr.h @@ -0,0 +1,46 @@ +extern int squawk; +extern int clean; +extern char *file; +extern int verbose; +extern long ninput, noutput, nrunes, nerrors; + +enum { From = 1, Table = 2, Func = 4 }; + +typedef void (*Fnptr)(void); +struct convert{ + char *name; + char *chatter; + int flags; + void *data; + Fnptr fn; +}; +extern struct convert convert[]; +struct convert *conv(char *, int); +typedef void (*Infn)(int, long *, struct convert *); +typedef void (*Outfn)(Rune *, int, long *); +void outtable(Rune *, int, long *); + +void utf_in(int, long *, struct convert *); +void utf_out(Rune *, int, long *); +void isoutf_in(int, long *, struct convert *); +void isoutf_out(Rune *, int, long *); + +#define N 10000 /* just blocking */ +#define OUT(out, r, n) if(out->flags&Table) outtable(r, n, (long *)out->data);\ + else ((Outfn)(out->fn))(r, n, (long *)0) + +extern Rune runes[N]; +extern char obuf[UTFmax*N]; /* maximum bloat from N runes */ + +#define BADMAP (0xFFFD) +#define BYTEBADMAP ('?') /* badmap but has to fit in a byte */ +#define ESC 033 + +#ifdef PLAN9 +#define EPR fprint(2, +#define EXIT(n,s) exits(s) +#else +#define EPR fprintf(stderr, +#define USED(x) /* in plan 9, USED(x) tells the compiler to treat x as used */ +#define EXIT(n,s) exit(n) +#endif -- cgit v1.2.3