Add a simple debug logging mechanism.

This commit is contained in:
okan 2018-02-02 13:40:55 +00:00
parent 17954eae66
commit 231107e041
2 changed files with 42 additions and 2 deletions

View File

@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* $OpenBSD: calmwm.h,v 1.354 2018/02/02 13:27:25 okan Exp $
* $OpenBSD: calmwm.h,v 1.355 2018/02/02 13:40:55 okan Exp $
*/
#ifndef _CALMWM_H_
@ -31,6 +31,13 @@
#include <X11/extensions/Xrandr.h>
#include <X11/keysym.h>
/* #define DEBUG */
#ifdef DEBUG
#define DPRINTF(...) log_debug(__func__, __VA_ARGS__)
#else
#define DPRINTF(...) do {} while (0)
#endif /* DEBUG */
#undef MIN
#undef MAX
#define MIN(x, y) ((x) < (y) ? (x) : (y))
@ -584,6 +591,9 @@ void xu_ewmh_restore_net_wm_state(struct client_ctx *);
char *u_argv(char * const *);
void u_exec(char *);
void u_spawn(char *);
void log_debug(const char *, const char *, ...)
__attribute__((__format__ (printf, 2, 3)))
__attribute__((__nonnull__ (2)));
void *xcalloc(size_t, size_t);
void *xmalloc(size_t);

View File

@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* $OpenBSD: util.c,v 1.20 2018/01/08 16:21:54 okan Exp $
* $OpenBSD: util.c,v 1.21 2018/02/02 13:40:55 okan Exp $
*/
#include <sys/types.h>
@ -31,6 +31,8 @@
#include "calmwm.h"
static void log_msg(const char *, va_list);
void
u_spawn(char *argstr)
{
@ -104,3 +106,31 @@ u_argv(char * const *argv)
}
return(p);
}
static void
log_msg(const char *msg, va_list ap)
{
char *fmt;
if (asprintf(&fmt, "%s\n", msg) == -1) {
vfprintf(stderr, msg, ap);
fprintf(stderr, "\n");
} else {
vfprintf(stderr, fmt, ap);
free(fmt);
}
fflush(stderr);
}
void
log_debug(const char *func, const char *msg, ...)
{
char *fmt;
va_list ap;
va_start(ap, msg);
if (asprintf(&fmt, "%s: %s", func, msg) == -1)
exit(1);
log_msg(fmt, ap);
va_end(ap);
}