allprint.c 473 B

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