Skip to content

Instantly share code, notes, and snippets.

@Eczbek
Created August 3, 2023 14:19
Show Gist options
  • Save Eczbek/b86c636769ad8845d2ba7062cbd507ad to your computer and use it in GitHub Desktop.
Save Eczbek/b86c636769ad8845d2ba7062cbd507ad to your computer and use it in GitHub Desktop.
pragma message test
// -ftrack-macro-expansion=0
#define STRINGIFY_PRIMITIVE(...) #__VA_ARGS__
#define STRINGIFY(...) STRINGIFY_PRIMITIVE(__VA_ARGS__)
#define ERROR(x) _Pragma(STRINGIFY(message("\n\r\x1B[38;2;255;0;0m[ERROR] in file \x1B[38;2;255;127;127m'" __FILE__ "'\x1B[38;2;255;0;0m at line \x1B[38;2;255;127;127m" STRINGIFY(__LINE__) "\x1B[38;2;255;0;0m: \x1B[38;2;255;191;191m\"" STRINGIFY(x) "\"\x1B[0m\n\r")))
#define WARNING(x) _Pragma(STRINGIFY(message("\n\r\x1B[38;2;255;255;0m[WARNING] in file \x1B[38;2;255;255;127m'" __FILE__ "'\x1B[38;2;255;255;0m at line \x1B[38;2;255;255;127m" STRINGIFY(__LINE__) "\x1B[38;2;255;255;0m: \x1B[38;2;255;255;191m\"" STRINGIFY(x) "\"\x1B[0m\n\r")))
#define LOG(x) _Pragma(STRINGIFY(message("\n\r\x1B[38;2;0;255;0m[LOG] in file \x1B[38;2;127;255;127m'" __FILE__ "'\x1B[38;2;0;255;0m at line \x1B[38;2;127;255;127m" STRINGIFY(__LINE__) "\x1B[38;2;0;255;0m: \x1B[38;2;191;255;191m\"" STRINGIFY(x) "\"\x1B[0m\n\r")))
#define NOTE(x) _Pragma(STRINGIFY(message("\n\r\x1B[38;2;0;0;255m[NOTE] in file \x1B[38;2;127;127;255m'" __FILE__ "'\x1B[38;2;0;0;255m at line \x1B[38;2;127;127;255m" STRINGIFY(__LINE__) "\x1B[38;2;0;0;255m: \x1B[38;2;191;191;255m\"" STRINGIFY(x) "\"\x1B[0m\n\r")))
#define MESSAGE hello, world!
int main() {
ERROR(MESSAGE)
WARNING(MESSAGE)
LOG(MESSAGE)
NOTE(MESSAGE)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment