]> git.sur5r.net Git - i3/i3/commitdiff
logging: make libi3 use verboselog()/errorlog(), provide it in each caller
authorMichael Stapelberg <michael@stapelberg.de>
Mon, 13 Aug 2012 11:27:00 +0000 (13:27 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 13 Aug 2012 11:27:16 +0000 (13:27 +0200)
While this is a bit ugly, it makes the log messages end up where they
are supposed to: in the shmlog/stdout in case of i3 and on stdout in
case of utilities such as i3-input

i3-config-wizard/main.c
i3-input/main.c
i3-nagbar/main.c
i3bar/src/main.c
include/libi3.h
libi3/font.c

index 46cf8aa8d9e8d2da8fc3e163829dafa914133795..679c5e6db5206eefb951c7d115099cb7fbf86044 100644 (file)
@@ -84,6 +84,26 @@ Display *dpy;
 char *rewrite_binding(const char *bindingline);
 static void finish();
 
+/*
+ * Having verboselog() and errorlog() is necessary when using libi3.
+ *
+ */
+void verboselog(char *fmt, ...) {
+    va_list args;
+
+    va_start(args, fmt);
+    vfprintf(stdout, fmt, args);
+    va_end(args);
+}
+
+void errorlog(char *fmt, ...) {
+    va_list args;
+
+    va_start(args, fmt);
+    vfprintf(stderr, fmt, args);
+    va_end(args);
+}
+
 /*
  * This function resolves ~ in pathnames.
  * It may resolve wildcards in the first part of the path, but if no match
index d18502cdc8058857eded7f05e5b64342056f273e..3172387dd56d7349178781067d8112d8ced40a91 100644 (file)
@@ -56,6 +56,26 @@ xcb_window_t root;
 xcb_connection_t *conn;
 xcb_screen_t *root_screen;
 
+/*
+ * Having verboselog() and errorlog() is necessary when using libi3.
+ *
+ */
+void verboselog(char *fmt, ...) {
+    va_list args;
+
+    va_start(args, fmt);
+    vfprintf(stdout, fmt, args);
+    va_end(args);
+}
+
+void errorlog(char *fmt, ...) {
+    va_list args;
+
+    va_start(args, fmt);
+    vfprintf(stderr, fmt, args);
+    va_end(args);
+}
+
 /*
  * Concats the glyphs (either UCS-2 or UTF-8) to a single string, suitable for
  * rendering it (UCS-2) or sending it to i3 (UTF-8).
index 1588c3562065806388f8575517e7f607ccd0b3dc..7aee191c5adf9b808c6653815207999d42ca9edc 100644 (file)
@@ -56,6 +56,26 @@ xcb_window_t root;
 xcb_connection_t *conn;
 xcb_screen_t *root_screen;
 
+/*
+ * Having verboselog() and errorlog() is necessary when using libi3.
+ *
+ */
+void verboselog(char *fmt, ...) {
+    va_list args;
+
+    va_start(args, fmt);
+    vfprintf(stdout, fmt, args);
+    va_end(args);
+}
+
+void errorlog(char *fmt, ...) {
+    va_list args;
+
+    va_start(args, fmt);
+    vfprintf(stderr, fmt, args);
+    va_end(args);
+}
+
 /*
  * Starts the given application by passing it through a shell. We use double fork
  * to avoid zombie processes. As the started application’s parent exits (immediately),
index e648e00eca044535645dce78d1328777d1a1c42e..ea6056470c5f05381fc4c1e9efffddb1e3abbb7b 100644 (file)
@@ -2,7 +2,7 @@
  * vim:ts=4:sw=4:expandtab
  *
  * i3bar - an xcb-based status- and ws-bar for i3
- * © 2010-2011 Axel Wagner and contributors (see also: LICENSE)
+ * © 2010-2012 Axel Wagner and contributors (see also: LICENSE)
  *
  */
 #include <stdio.h>
 
 #include "common.h"
 
+/*
+ * Having verboselog() and errorlog() is necessary when using libi3.
+ *
+ */
+void verboselog(char *fmt, ...) {
+    va_list args;
+
+    va_start(args, fmt);
+    vfprintf(stdout, fmt, args);
+    va_end(args);
+}
+
+void errorlog(char *fmt, ...) {
+    va_list args;
+
+    va_start(args, fmt);
+    vfprintf(stderr, fmt, args);
+    va_end(args);
+}
+
 /*
  * Glob path, i.e. expand ~
  *
index 45ba970f5ba88729a3f09944736d5388ce953ce9..d4df901fe4cde7400a895d4d2e6d585f93590a92 100644 (file)
@@ -69,10 +69,12 @@ struct Font {
 /* Since this file also gets included by utilities which don’t use the i3 log
  * infrastructure, we define a fallback. */
 #if !defined(LOG)
-#define LOG(fmt, ...) fprintf(stdout, "[libi3] " __FILE__ " " fmt, ##__VA_ARGS__)
+void verboselog(char *fmt, ...);
+#define LOG(fmt, ...) verboselog("[libi3] " __FILE__ " " fmt, ##__VA_ARGS__)
 #endif
 #if !defined(ELOG)
-#define ELOG(fmt, ...) fprintf(stderr, "[libi3] ERROR: " fmt, ##__VA_ARGS__)
+void errorlog(char *fmt, ...);
+#define ELOG(fmt, ...) errorlog("[libi3] ERROR: " fmt, ##__VA_ARGS__)
 #endif
 
 /**
index 0688bdbce5cc17a86f8a9be9cd44a60fd534ac48..08725844e09298ba98a3d339350072e8cdfd72da 100644 (file)
@@ -38,13 +38,12 @@ static double pango_font_blue;
 static bool load_pango_font(i3Font *font, const char *desc) {
     /* Load the font description */
     font->specific.pango_desc = pango_font_description_from_string(desc);
-    if (!font->specific.pango_desc)
-    {
+    if (!font->specific.pango_desc) {
         ELOG("Could not open font %s with Pango, fallback to X font.\n", desc);
         return false;
     }
 
-    LOG("Using Pango font %s, size %d",
+    LOG("Using Pango font %s, size %d\n",
         pango_font_description_get_family(font->specific.pango_desc),
         pango_font_description_get_size(font->specific.pango_desc)
         );
@@ -186,7 +185,7 @@ i3Font load_font(const char *pattern, const bool fallback) {
         }
     }
 
-    LOG("Using X font %s", pattern);
+    LOG("Using X font %s\n", pattern);
 
     /* Get information (height/name) for this font */
     if (!(font.specific.xcb.info = xcb_query_font_reply(conn, info_cookie, NULL)))