1*3e12c5d1SDavid du Colombier #include <libl.h> 2*3e12c5d1SDavid du Colombier #include <stdio.h> 3*3e12c5d1SDavid du Colombier 4*3e12c5d1SDavid du Colombier extern FILE* yyout; 5*3e12c5d1SDavid du Colombier 6*3e12c5d1SDavid du Colombier int printable(int c)7*3e12c5d1SDavid du Colombierprintable(int c) 8*3e12c5d1SDavid du Colombier { 9*3e12c5d1SDavid du Colombier return 040 < c && c < 0177; 10*3e12c5d1SDavid du Colombier } 11*3e12c5d1SDavid du Colombier 12*3e12c5d1SDavid du Colombier void allprint(char c)13*3e12c5d1SDavid du Colombierallprint(char c) 14*3e12c5d1SDavid du Colombier { 15*3e12c5d1SDavid du Colombier 16*3e12c5d1SDavid du Colombier switch(c) { 17*3e12c5d1SDavid du Colombier case '\n': 18*3e12c5d1SDavid du Colombier fprintf(yyout,"\\n"); 19*3e12c5d1SDavid du Colombier break; 20*3e12c5d1SDavid du Colombier case '\t': 21*3e12c5d1SDavid du Colombier fprintf(yyout,"\\t"); 22*3e12c5d1SDavid du Colombier break; 23*3e12c5d1SDavid du Colombier case '\b': 24*3e12c5d1SDavid du Colombier fprintf(yyout,"\\b"); 25*3e12c5d1SDavid du Colombier break; 26*3e12c5d1SDavid du Colombier case ' ': 27*3e12c5d1SDavid du Colombier fprintf(yyout,"\\\bb"); 28*3e12c5d1SDavid du Colombier break; 29*3e12c5d1SDavid du Colombier default: 30*3e12c5d1SDavid du Colombier if(!printable(c)) 31*3e12c5d1SDavid du Colombier fprintf(yyout,"\\%-3o",c); 32*3e12c5d1SDavid du Colombier else 33*3e12c5d1SDavid du Colombier c = putc(c,yyout); 34*3e12c5d1SDavid du Colombier USED(c); 35*3e12c5d1SDavid du Colombier break; 36*3e12c5d1SDavid du Colombier } 37*3e12c5d1SDavid du Colombier return; 38*3e12c5d1SDavid du Colombier } 39