count errors (and warnings) inside verbose macro
authorLaurent Mazet <mazet@softndesign.org>
Fri, 11 Apr 2025 03:59:57 +0000 (05:59 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Fri, 11 Apr 2025 03:59:57 +0000 (05:59 +0200)
verbose.h

index 3382daaa8bf9fae00ba54771f1d0a14380ba65d0..3eddc9464963f549e48c8be5731643326b2a749f 100644 (file)
--- a/verbose.h
+++ b/verbose.h
@@ -46,7 +46,8 @@ __BEGIN_DECLS
    @param init initial value
 */
 #define DECLARE_VERBOSE_LEVEL(module, init) \
-    int verbose_##module = init;
+    int verbose_##module = init;            \
+    int verbose_errors_##module = 0;
 
 /**
    Change a verbose level.
@@ -59,7 +60,7 @@ __BEGIN_DECLS
         extern int verbose_##module;        \
         verbose_##module = level;           \
     } while(0)
-        
+
 /**
    Execute a statement (mostly a message display) depending of a
    level. Level is defined by global variable verbose_`module`.
@@ -72,6 +73,9 @@ __BEGIN_DECLS
     do {                                                \
         char __attribute__ ((unused)) *_level = #level; \
         extern int verbose_##module;                    \
+        extern int verbose_errors_##module;             \
+        if (level < INFO)                               \
+            verbose_errors_##module++;                  \
         if (level > verbose_##module)                   \
             break;                                      \
         if (VERBOSE_COLOR) {                            \
@@ -119,6 +123,14 @@ __BEGIN_DECLS
 
 __END_DECLS
 
+/**
+   Get error and waring call number.
+
+   @param module module name
+   @param level verbose level
+*/
+#define GET_VERBOSE_ERRORS(module) verbose_errors_##module
+
 #endif /* __VERBOSE_H__ */
 
 /* vim: set ts=4 sw=4 si et: */