-#define debug(args...) if (cfg->log_level >= Debug) {fprintf(stderr, "[debug] " args); fflush(stderr);}
-#define info( args...) if (cfg->log_level >= Info ) {fprintf(stderr, "[info] " args); fflush(stderr);}
-#define error(args...) if (cfg->log_level >= Error) {fprintf(stderr, "[error] " args); fflush(stderr);}
-#define fatal(args...) {fprintf(stderr, "[fatal] " args); exit(EXIT_FAILURE);}
-#define usage(args...) {print_usage(); fatal("[usage] " args);}
+#define debug(...) if (cfg->log_level >= Debug) {fprintf(stderr, "[debug] " __VA_ARGS__); fflush(stderr);}
+#define info(...) if (cfg->log_level >= Info ) {fprintf(stderr, "[info] " __VA_ARGS__); fflush(stderr);}
+#define warn(...) if (cfg->log_level >= Warn ) {fprintf(stderr, "[warn] " __VA_ARGS__); fflush(stderr);}
+#define error(...) if (cfg->log_level >= Error) {fprintf(stderr, "[error] " __VA_ARGS__); fflush(stderr);}
+#define fatal(...) {fprintf(stderr, "[fatal] " __VA_ARGS__); exit(EXIT_FAILURE);}
+#define usage(...) {print_usage(); fatal("[usage] " __VA_ARGS__);}
- stderr,
- "\n"
- "Usage: %s [OPTION ...] SPEC [SPEC ...]\n"
- "\n"
- " SPEC = FILE_PATH DATA_WIDTH DATA_TTL\n"
- " FILE_PATH = string\n"
- " DATA_WIDTH = int (* (positive) number of characters *)\n"
- " DATA_TTL = int (* (positive) number of seconds *)\n"
- " OPTION = -i INTERVAL\n"
- " | -s SEPARATOR\n"
- " | -x (* Output to X root window *)\n"
- " | -l LOG_LEVEL\n"
- " SEPARATOR = string\n"
- " INTERVAL = int (* (positive) number of seconds *)\n"
- " LOG_LEVEL = int (* %d through %d *)\n"
- "\n",
- argv0,
- Nothing,
- Debug
+ stderr,
+ "\n"
+ "Usage: %s [OPTION ...] SPEC [SPEC ...]\n"
+ "\n"
+ " SPEC = FILE_PATH DATA_WIDTH DATA_TTL\n"
+ " FILE_PATH = string\n"
+ " DATA_WIDTH = int (* (positive) number of characters *)\n"
+ " DATA_TTL = int (* (positive) number of seconds *)\n"
+ " OPTION = -i INTERVAL\n"
+ " | -s SEPARATOR\n"
+ " | -x (* Output to X root window *)\n"
+ " | -l LOG_LEVEL\n"
+ " SEPARATOR = string\n"
+ " INTERVAL = int (* (positive) number of seconds *)\n"
+ " LOG_LEVEL = int (* %d through %d *)\n"
+ "\n",
+ argv0,
+ Nothing,
+ Debug
- info(
- "nanosleep interrupted. Remainder: "
- "{ tv_sec = %ld, tv_nsec = %ld }",
- remainder.tv_sec, remainder.tv_nsec);
+ warn(
+ "nanosleep interrupted. Remainder: "
+ "{ tv_sec = %ld, tv_nsec = %ld }",
+ remainder.tv_sec, remainder.tv_nsec);
/* No big deal if we occasionally sleep less,
* so not attempting to correct after an interruption.
*/
/* No big deal if we occasionally sleep less,
* so not attempting to correct after an interruption.
*/