etc.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "etc.h"
  2. #include <ctype.h>
  3. /*===========================================================================*/
  4. /* "true", "false" の文字列を返す */
  5. /*===========================================================================*/
  6. char * wonx_true_false(int b)
  7. {
  8. char * s[] = {"false", "true"};
  9. b = b ? 1 : 0;
  10. return (s[b]);
  11. }
  12. /*===========================================================================*/
  13. /* 文字の出力 */
  14. /*===========================================================================*/
  15. int wonx_print_character(FILE * fp, unsigned char c)
  16. {
  17. if (c == '\n') fprintf(fp, "\\n");
  18. else if (c == '\r') fprintf(fp, "\\r");
  19. else if (c == '\t') fprintf(fp, "\\t");
  20. else if (c == '\"') fprintf(fp, "\\\"");
  21. else if (c == '\'') fprintf(fp, "\\\'");
  22. else if (c == '\\') fprintf(fp, "\\\\");
  23. else if (c == ' ' ) fprintf(fp, "\\s");
  24. else if (isprint(c)) fputc(c, fp);
  25. else fprintf(fp, "^%02x", (int)c);
  26. fflush(fp);
  27. return (0);
  28. }
  29. /*===========================================================================*/
  30. /* 10進→16進文字への変換 */
  31. /*===========================================================================*/
  32. char wonx_dec_to_hex(int dec)
  33. {
  34. static char * dec2hex = "0123456789abcdef";
  35. return (dec2hex[dec]);
  36. }