|
|
1.1 ! root 1: #include <stdio.h> ! 2: char code[256]; ! 3: #define FIRST 3 ! 4: #define FOLLOW 2 ! 5: #define ZERO 6 ! 6: #define next() (((c = getc(si))==EOF)? exit(0):0) ! 7: #define copy() putc(c,so) ! 8: #define type() code[(unsigned char)c] ! 9: ! 10: init() { ! 11: doit(FIRST,"ABCDEFGHIJKLMNOPQRSTUVWXYZ_"); ! 12: doit(FIRST,"0abcdefghijklmnopqrstuvwxyz_"); ! 13: doit(FOLLOW,"123456789"); ! 14: } ! 15: doit(act,list) ! 16: register unsigned char *list; ! 17: { ! 18: while(*list) {code[*list++]=act;} ! 19: } ! 20: main( ) ! 21: { ! 22: register FILE *si = stdin, *so = stdout; ! 23: register c, count; ! 24: ! 25: init(); ! 26: copying: ! 27: do { next(); copy();} while(type()!=FIRST); ! 28: hexnum: ! 29: if(c=='0') { ! 30: next(); ! 31: if(c=='X'||c=='x') { ! 32: do { copy(); next();} ! 33: while (index("0123456789abcdefABCDEF",c&0x7f)>0); ! 34: } ! 35: ungetc(c,si); goto copying; ! 36: } ! 37: counting: ! 38: for(count = 0; count < 7; count++) { ! 39: next(); ! 40: copy(); ! 41: if(!(type()&FOLLOW)) goto copying; ! 42: } ! 43: squelch: ! 44: do { next(); } while (type()&FOLLOW); ! 45: copy(); ! 46: goto copying; ! 47: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.