io.c 863 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "io.h"
  2. const int COLOR_RED = 31;
  3. const int COLOR_GREEN = 32;
  4. const int COLOR_YELLOW = 33;
  5. static void
  6. colored_print (gint color, const gchar *fmt, va_list args)
  7. {
  8. gchar *s;
  9. s = g_strdup_vprintf (fmt, args);
  10. g_print ("%c[%d;%dm%s%c[%dm", 0x1B, 1, color, s, 0x1b, 0);
  11. g_free (s);
  12. }
  13. void
  14. warn (const gchar *fmt, ...)
  15. {
  16. va_list args;
  17. va_start (args, fmt);
  18. colored_print (COLOR_YELLOW, fmt, args);
  19. va_end (args);
  20. }
  21. void
  22. err (const gchar *fmt, ...)
  23. {
  24. va_list args;
  25. va_start (args, fmt);
  26. colored_print (COLOR_RED, fmt, args);
  27. va_end (args);
  28. }
  29. void
  30. info (const gchar *fmt, ...)
  31. {
  32. va_list args;
  33. gchar *s;
  34. va_start (args, fmt);
  35. g_print ("%c[%d;%dm>%c[%dm ", 0x1B, 1, COLOR_GREEN, 0x1b, 0);
  36. s = g_strdup_vprintf (fmt, args);
  37. g_print ("%s", s);
  38. va_end (args);
  39. g_free (s);
  40. }