diff options
author | mjacob <mjacob@FreeBSD.org> | 2000-01-27 07:58:27 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2000-01-27 07:58:27 +0000 |
commit | 9d8fe538f144df42d1dc347c0f4961008d1ae079 (patch) | |
tree | d1bb73be4803078edd910d6b1ebef96fce9be9a4 /usr.bin/ctags | |
parent | b19f6a3d7ad01281e721deda461684cc3646eda3 (diff) | |
download | FreeBSD-src-9d8fe538f144df42d1dc347c0f4961008d1ae079.zip FreeBSD-src-9d8fe538f144df42d1dc347c0f4961008d1ae079.tar.gz |
A cleaner fix to previous.
Obtained from:bde@freebsd.org
Diffstat (limited to 'usr.bin/ctags')
-rw-r--r-- | usr.bin/ctags/ctags.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/usr.bin/ctags/ctags.h b/usr.bin/ctags/ctags.h index 8ddec91..07d5826 100644 --- a/usr.bin/ctags/ctags.h +++ b/usr.bin/ctags/ctags.h @@ -46,14 +46,17 @@ #define SETLINE {++lineno;lineftell = ftell(inf);} #define GETC(op,exp) ((c = getc(inf)) op (int)exp) -#define _egrd(idx, array) \ - (((int)idx < 0)? NO : array [ (int) idx ]) +/* + * Assumes that the last element is always 'NO', + * as the EOF return from stdio get overlaid to + * that entry. + */ -#define iswhite(arg) _egrd(arg, _wht) /* T if char is white */ -#define begtoken(arg) _egrd(arg, _btk) /* T if char can start token */ -#define intoken(arg) _egrd(arg, _itk) /* T if char can be in token */ -#define endtoken(arg) _egrd(arg, _etk) /* T if char ends tokens */ -#define isgood(arg) _egrd(arg, _gd) /* T if char can be after ')' */ +#define iswhite(arg) _wht[arg & 0xff] /* T if char is white */ +#define begtoken(arg) _btk[arg & 0xff] /* T if char can start token */ +#define intoken(arg) _itk[arg & 0xff] /* T if char can be in token */ +#define endtoken(arg) _etk[arg & 0xff] /* T if char ends tokens */ +#define isgood(arg) _gd[arg & 0xff] /* T if char can be after ')' */ typedef struct nd_st { /* sorting structure */ struct nd_st *left, |