From e37b186b577178d65b984fe8ecf8311c2100c405 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Thu, 5 Jul 2018 16:23:50 +0200 Subject: [PATCH] Better warning/error macros --- include/core/Defs.hpp | 45 ++++++++++++++++++++++++++++--------------- src/core/Color.cpp | 10 +++++----- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/include/core/Defs.hpp b/include/core/Defs.hpp index 245e32c0..a27e1579 100644 --- a/include/core/Defs.hpp +++ b/include/core/Defs.hpp @@ -107,32 +107,45 @@ typedef float real_t; #define _PLANE_EQ_DOT_EPSILON 0.999 #define _PLANE_EQ_D_EPSILON 0.0001 - -#ifndef ERR_FAIL_COND_V -#define ERR_FAIL_COND_V(cond, ret) do { if (cond) { return ret; } } while(0) +// ERR/WARN macros +#ifndef WARN_PRINT +#define WARN_PRINT(msg) fprintf(stdout, "ERROR: %s\n", msg); fflush(stdout) #endif +#ifndef WARN_PRINTS +#define WARN_PRINTS(msg) WARN_PRINT(msg.utf8().get_data()) +#endif + +#ifndef ERR_PRINT +#define ERR_PRINT(x) fprintf(stderr, "ERROR: %s\n", x) +#endif + +#ifndef ERR_PRINTS +#define ERR_PRINTS(msg) ERR_PRINT(msg.utf8().get_data()) +#endif + +#ifndef ERR_FAIL +#define ERR_FAIL() ERR_PRINT("Failed") +#endif #ifndef ERR_FAIL_V -#define ERR_FAIL_V(a) return a +#define ERR_FAIL_V(a) { ERR_FAIL(); return a; } +#endif + +#ifndef ERR_FAIL_COND +#define ERR_FAIL_COND(a) do { if (a) { ERR_PRINT(#a); return; } } while(0) +#endif + +#ifndef ERR_FAIL_COND_V +#define ERR_FAIL_COND_V(cond, ret) do { if (cond) { ERR_PRINT(#cond); return ret; } } while(0) #endif #ifndef ERR_FAIL_INDEX -#define ERR_FAIL_INDEX(a, b) -#endif - - -#ifndef ERR_PRINT -#define ERR_PRINT(msg) fprintf(stderr, "ERROR: %S\n", (msg).unicode_str()) +#define ERR_FAIL_INDEX(a, b) do { if (a < 0 || a >= b) { ERR_FAIL(); return; } } while(0) #endif #ifndef ERR_FAIL_INDEX_V -#define ERR_FAIL_INDEX_V(a, b, c) -#endif - - -#ifndef ERR_FAIL_COND -#define ERR_FAIL_COND(a) do { if (a) { fprintf(stderr, #a); return; } } while(0) +#define ERR_FAIL_INDEX_V(a, b, c) do { if (a < 0 || a >= b) { ERR_FAIL(); return c; } } while(0) #endif diff --git a/src/core/Color.cpp b/src/core/Color.cpp index 4fea716d..3e9817c4 100644 --- a/src/core/Color.cpp +++ b/src/core/Color.cpp @@ -269,7 +269,7 @@ Color Color::html(const String& p_color) } else if (color.length()==6) { alpha=false; } else { - ERR_PRINT(String("Invalid Color Code: ") + p_color); + ERR_PRINTS(String("Invalid Color Code: ") + p_color); ERR_FAIL_V(Color()); } @@ -277,7 +277,7 @@ Color Color::html(const String& p_color) if (alpha) { a=_parse_col(color,0); if (a<0) { - ERR_PRINT("Invalid Color Code: "+p_color); + ERR_PRINTS(String("Invalid Color Code: ") + p_color); ERR_FAIL_V(Color()); } } @@ -286,17 +286,17 @@ Color Color::html(const String& p_color) int r=_parse_col(color,from+0); if (r<0) { - ERR_PRINT("Invalid Color Code: "+p_color); + ERR_PRINTS(String("Invalid Color Code: ") + p_color); ERR_FAIL_V(Color()); } int g=_parse_col(color,from+2); if (g<0) { - ERR_PRINT("Invalid Color Code: "+p_color); + ERR_PRINTS(String("Invalid Color Code: ") + p_color); ERR_FAIL_V(Color()); } int b=_parse_col(color,from+4); if (b<0) { - ERR_PRINT("Invalid Color Code: "+p_color); + ERR_PRINTS(String("Invalid Color Code: ") + p_color); ERR_FAIL_V(Color()); }