REDRUM.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef IGL_REDRUM_H
  2. #define IGL_REDRUM_H
  3. // Q: These should probably be inside the igl namespace. What's the correct
  4. // way to do that?
  5. // A: I guess the right way is to not use a macro but a proper function with
  6. // streams as input and output.
  7. // ANSI color codes for formating iostream style output
  8. #ifdef IGL_REDRUM_NOOP
  9. // Bold Red, etc.
  10. #define NORUM(X) X
  11. #define REDRUM(X) X
  12. #define GREENRUM(X) X
  13. #define YELLOWRUM(X) X
  14. #define BLUERUM(X) X
  15. #define MAGENTARUM(X) X
  16. #define CYANRUM(X) X
  17. // Regular Red, etc.
  18. #define REDGIN(X) X
  19. #define GREENGIN(X) X
  20. #define YELLOWGIN(X) X
  21. #define BLUEGIN(X) X
  22. #define MAGENTAGIN(X) X
  23. #define CYANGIN(X) X
  24. #else
  25. // Bold Red, etc.
  26. #define NORUM(X) ""<<X<<""
  27. #define REDRUM(X) "\e[1m\e[31m"<<X<<"\e[m"
  28. #define GREENRUM(X) "\e[1m\e[32m"<<X<<"\e[m"
  29. #define YELLOWRUM(X) "\e[1m\e[33m"<<X<<"\e[m"
  30. #define BLUERUM(X) "\e[1m\e[34m"<<X<<"\e[m"
  31. #define MAGENTARUM(X) "\e[1m\e[35m"<<X<<"\e[m"
  32. #define CYANRUM(X) "\e[1m\e[36m"<<X<<"\e[m"
  33. // Regular Red, etc.
  34. #define REDGIN(X) "\e[31m"<<X<<"\e[m"
  35. #define GREENGIN(X) "\e[32m"<<X<<"\e[m"
  36. #define YELLOWGIN(X) "\e[33m"<<X<<"\e[m"
  37. #define BLUEGIN(X) "\e[34m"<<X<<"\e[m"
  38. #define MAGENTAGIN(X) "\e[35m"<<X<<"\e[m"
  39. #define CYANGIN(X) "\e[36m"<<X<<"\e[m"
  40. #endif
  41. #endif