poldek: poldek/log.c, poldek/log.h - new trace*() macros

mis mis at pld-linux.org
Sun Jul 8 18:31:17 CEST 2007


Author: mis                          Date: Sun Jul  8 16:31:17 2007 GMT
Module: poldek                        Tag: HEAD
---- Log message:
- new trace*() macros

---- Files affected:
poldek/poldek:
   log.c (1.33 -> 1.34) , log.h (1.26 -> 1.27) 

---- Diffs:

================================================================
Index: poldek/poldek/log.c
diff -u poldek/poldek/log.c:1.33 poldek/poldek/log.c:1.34
--- poldek/poldek/log.c:1.33	Fri Jul  6 01:19:31 2007
+++ poldek/poldek/log.c	Sun Jul  8 18:31:12 2007
@@ -31,6 +31,7 @@
 #include "log.h"
 
 int  poldek_VERBOSE = 0;
+int poldek_TRACE = -1;
 
 static int default_say_goodbye(const char *msg);
 int (*poldek_log_say_goodbye)(const char *msg) = default_say_goodbye;
@@ -116,8 +117,14 @@
 
 int poldek_set_verbose(int v)
 {
+    const char *p;
+    
     int vv = poldek_VERBOSE;
     poldek_VERBOSE = v;
+
+    if ((p = getenv("POLDEK_TRACE")) && *p && *p != '0')
+        poldek_TRACE = 1;
+        
     return vv;
 }
 
@@ -171,20 +178,29 @@
     }
 
     /* auto line break for errors and warnings */
-    if (!last_endlined && !is_continuation && (pri & (LOGERR|LOGWARN))) {
-        buf[buf_len++] = '\n';
+        
+    if (pri & LOGTTY) {
+        if (!last_endlined && !is_continuation && (pri & (LOGERR|LOGWARN))) {
+            buf[buf_len++] = '\n';
+        }
+        last_endlined = is_endlined;
     }
-    
-    last_endlined = is_endlined;
 
     
     if (indent > 0 && (unsigned)indent < sizeof(buf) - buf_len - 2) {
         memset(&buf[buf_len], ' ', indent);
         buf_len += indent;
     }
+    
     buf[buf_len] = '\0';
 
-
+#if 0                           /* debug */
+    if (pri & LOGTTY) {
+        char s[256];
+        n_snprintf(s, sizeof(s), "l [%s] [%s]", buf, fmt);
+        vfprintf(stderr, s, args);
+    }
+#endif    
     if (*fmt == '\0') {
         fmt = buf;
         

================================================================
Index: poldek/poldek/log.h
diff -u poldek/poldek/log.h:1.26 poldek/poldek/log.h:1.27
--- poldek/poldek/log.h:1.26	Sun Jul  1 23:04:26 2007
+++ poldek/poldek/log.h	Sun Jul  8 18:31:12 2007
@@ -32,6 +32,7 @@
 int poldek_verbose(void);
 int poldek_set_verbose(int v);
 extern int poldek_VERBOSE;
+extern int poldek_TRACE;
 
 typedef void (*poldek_vlog_fn)(void *, int pri, const char *fmt, va_list args);
 
@@ -130,6 +131,19 @@
   ((void) ((expr) ? 0 : poldek_log(LOGERR | LOGOPT_N | LOGDIE, fmt, ## args)))
 
 void poldek_meminf(int vlevel, const char *fmt, ...);
+
+# define tracef(indent, fmt, args...)                                   \
+    do {                                                                \
+        if (poldek_TRACE > 0)                                           \
+            log_i(LOGINFO|LOGOPT_N, indent, "%s() " fmt, __FUNCTION__, ## args); \
+    } while(0)
+                
+# define trace(indent, fmt, args...)                                    \
+    do {                                                                \
+        if (poldek_TRACE > 0)                                           \
+            log_i(LOGINFO|LOGOPT_N, indent, fmt, ## args);              \
+    } while(0)
+    
 
 #if ENABLE_TRACE
 # define DBGF(fmt, args...)  fprintf(stdout, "dbg:%-18s: " fmt, __FUNCTION__ , ## args)
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/poldek/poldek/log.c?r1=1.33&r2=1.34&f=u
    http://cvs.pld-linux.org/poldek/poldek/log.h?r1=1.26&r2=1.27&f=u



More information about the pld-cvs-commit mailing list