/* bind socket */
if (bind (sock, (struct sockaddr *)&sock_addr, sizeof (sock_addr)) != 0) {
- VERBOSE (morep, ERROR, printf ("can't bind '%s': %s\n", url, strerror (errno)));
+ VERBOSE (morep, ERROR, PRINTF ("can't bind '%s': %s\n", url, strerror (errno)));
return -1;
}
case 'f':
arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
if (arg == NULL) {
- VERBOSE (morep, ERROR, fprintf (stderr, "%s: message file not specified\n", progname));
+ VERBOSE (morep, ERROR, PRINTF ("%s: message file not specified\n", progname));
return 1;
}
filename = arg;
case 's':
arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
if (arg == NULL) {
- VERBOSE (morep, ERROR, fprintf (stderr, "%s: message type not specified\n", progname));
+ VERBOSE (morep, ERROR, PRINTF ("%s: message type not specified\n", progname));
return 1;
}
msgtype = atoi (arg);
case 'v':
arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
if (arg == NULL) {
- VERBOSE (morep, ERROR, fprintf (stderr, "%s: verbose level not specified\n", progname));
+ VERBOSE (morep, ERROR, PRINTF ("%s: verbose level not specified\n", progname));
return 1;
}
CHANGE_VERBOSE_LEVEL (morep, atoi (arg));
@param level verbose level
@param statement controled statement
*/
-#define VERBOSE(module, level, statement...) \
- do { \
- extern int verbose_##module; \
- if (level > verbose_##module) \
- break; \
- if (VERBOSE_COLOR) { \
- if (level == ERROR) \
- printf ("\e[1;31m"); \
- else if (level == WARNING) \
- printf ("\e[1;33m"); \
- else if (level == DEBUG) \
- printf ("\e[1;32m"); \
- else if (level == TRACE) \
- printf ("\e[1;34m"); \
- } \
- statement; \
- if (VERBOSE_COLOR) \
- printf ("\e[0;0m"); \
+#define VERBOSE(module, level, statement...) \
+ do { \
+ char __attribute__ ((unused)) *_level = #level; \
+ extern int verbose_##module; \
+ if (level > verbose_##module) \
+ break; \
+ if (VERBOSE_COLOR) { \
+ if (level == ERROR) \
+ printf ("\e[1;31m"); \
+ else if (level == WARNING) \
+ printf ("\e[1;33m"); \
+ else if (level == DEBUG) \
+ printf ("\e[1;32m"); \
+ else if (level == TRACE) \
+ printf ("\e[1;34m"); \
+ } \
+ statement; \
+ if (VERBOSE_COLOR) \
+ printf ("\e[0;0m"); \
} while(0)
/**
@param format format string
@param ... optionnal arguments
*/
-#define PRINTF(format...) \
- do { \
- printf ("%s+%d: ", __FILE__, __LINE__); \
- printf (format); \
- fflush (stdout); \
+#define PRINTF(format...) \
+ do { \
+ printf ("%s+%d[%s]: ", __FILE__, __LINE__, _level); \
+ printf (format); \
+ fflush (stdout); \
} while (0)
@param format format string
@param ... optionnal arguments
*/
-#define FPRINTF(stream, format...) \
- do { \
- fprintf (stream,"%s[%d]: ", __FILE__, __LINE__); \
- fprintf (stream, format); \
- fflush (stream); \
+#define FPRINTF(stream, format...) \
+ do { \
+ fprintf (stream,"%s+%d[%s]: ", __FILE__, __LINE__, _level); \
+ fprintf (stream, format); \
+ fflush (stream); \
} while (0)
__END_DECLS