diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/tcs/hdr.h |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/tcs/hdr.h')
-rwxr-xr-x | sys/src/cmd/tcs/hdr.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/sys/src/cmd/tcs/hdr.h b/sys/src/cmd/tcs/hdr.h new file mode 100755 index 000000000..b065f2a38 --- /dev/null +++ b/sys/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 |