Slightly expand and expose verbose debugging.

This commit is contained in:
okan 2018-02-04 22:56:26 +00:00
parent 1742a041f4
commit 5e4538db44
5 changed files with 44 additions and 34 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.c,v 1.107 2018/01/02 14:04:58 okan Exp $
* $OpenBSD: calmwm.c,v 1.108 2018/02/04 22:56:26 okan Exp $
*/
#include <sys/types.h>
@ -67,7 +67,7 @@ main(int argc, char **argv)
fallback = u_argv(argv);
Conf.wm_argv = u_argv(argv);
while ((ch = getopt(argc, argv, "c:d:")) != -1) {
while ((ch = getopt(argc, argv, "c:d:v")) != -1) {
switch (ch) {
case 'c':
conf_file = optarg;
@ -75,6 +75,9 @@ main(int argc, char **argv)
case 'd':
display_name = optarg;
break;
case 'v':
Conf.debug++;
break;
default:
usage();
}
@ -241,7 +244,7 @@ usage(void)
{
extern char *__progname;
(void)fprintf(stderr, "usage: %s [-c file] [-d display]\n",
(void)fprintf(stderr, "usage: %s [-v] [-c file] [-d display]\n",
__progname);
exit(1);
}

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.355 2018/02/02 13:40:55 okan Exp $
* $OpenBSD: calmwm.h,v 1.356 2018/02/04 22:56:26 okan Exp $
*/
#ifndef _CALMWM_H_
@ -31,12 +31,10 @@
#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 */
#define LOG_DEBUG0(...) log_debug(0, __func__, __VA_ARGS__)
#define LOG_DEBUG1(...) log_debug(1, __func__, __VA_ARGS__)
#define LOG_DEBUG2(...) log_debug(2, __func__, __VA_ARGS__)
#define LOG_DEBUG3(...) log_debug(3, __func__, __VA_ARGS__)
#undef MIN
#undef MAX
@ -313,6 +311,7 @@ struct conf {
char *homedir;
char *known_hosts;
char *wm_argv;
u_int32_t debug;
};
/* MWM hints */
@ -591,9 +590,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 log_debug(int, const char *, const char *, ...)
__attribute__((__format__ (printf, 3, 4)))
__attribute__((__nonnull__ (3)));
void *xcalloc(size_t, size_t);
void *xmalloc(size_t);

View File

@ -1,4 +1,4 @@
.\" $OpenBSD: cwm.1,v 1.61 2017/12/30 22:25:09 okan Exp $
.\" $OpenBSD: cwm.1,v 1.62 2018/02/04 22:56:26 okan Exp $
.\"
.\" Copyright (c) 2004,2005 Marius Aamodt Eriksen <marius@monkey.org>
.\"
@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 30 2017 $
.Dd $Mdocdate: February 4 2018 $
.Dt CWM 1
.Os
.Sh NAME
@ -23,6 +23,7 @@
.Sh SYNOPSIS
.\" For a program: program [-abc] file ...
.Nm cwm
.Op Fl v
.Op Fl c Ar file
.Op Fl d Ar display
.Sh DESCRIPTION
@ -47,6 +48,11 @@ however,
will continue to process the rest of the configuration file.
.It Fl d Ar display
Specify the display to use.
.It Fl v
Verbose mode.
Multiple
.Fl v
options increase the verbosity.
.El
.Pp
.Nm

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.21 2018/02/02 13:40:55 okan Exp $
* $OpenBSD: util.c,v 1.22 2018/02/04 22:56:26 okan Exp $
*/
#include <sys/types.h>
@ -123,14 +123,16 @@ log_msg(const char *msg, va_list ap)
}
void
log_debug(const char *func, const char *msg, ...)
log_debug(int level, const char *func, const char *msg, ...)
{
char *fmt;
va_list ap;
if (Conf.debug < level)
return;
va_start(ap, msg);
if (asprintf(&fmt, "%s: %s", func, msg) == -1)
exit(1);
xasprintf(&fmt, "debug%d: %s: %s", level, func, msg);
log_msg(fmt, ap);
va_end(ap);
}

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: xevents.c,v 1.133 2018/02/02 13:50:22 okan Exp $
* $OpenBSD: xevents.c,v 1.134 2018/02/04 22:56:26 okan Exp $
*/
/*
@ -77,7 +77,7 @@ xev_handle_maprequest(XEvent *ee)
XMapRequestEvent *e = &ee->xmaprequest;
struct client_ctx *cc = NULL, *old_cc;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
if ((old_cc = client_current()) != NULL)
client_ptrsave(old_cc);
@ -95,7 +95,7 @@ xev_handle_unmapnotify(XEvent *ee)
XUnmapEvent *e = &ee->xunmap;
struct client_ctx *cc;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
if ((cc = client_find(e->window)) != NULL) {
if (e->send_event) {
@ -113,7 +113,7 @@ xev_handle_destroynotify(XEvent *ee)
XDestroyWindowEvent *e = &ee->xdestroywindow;
struct client_ctx *cc;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
if ((cc = client_find(e->window)) != NULL)
client_delete(cc);
@ -127,7 +127,7 @@ xev_handle_configurerequest(XEvent *ee)
struct screen_ctx *sc;
XWindowChanges wc;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
if ((cc = client_find(e->window)) != NULL) {
sc = cc->sc;
@ -182,7 +182,7 @@ xev_handle_propertynotify(XEvent *ee)
struct screen_ctx *sc;
struct client_ctx *cc;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
if ((cc = client_find(e->window)) != NULL) {
switch (e->atom) {
@ -219,7 +219,7 @@ xev_handle_enternotify(XEvent *ee)
XCrossingEvent *e = &ee->xcrossing;
struct client_ctx *cc;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
Last_Event_Time = e->time;
@ -235,7 +235,7 @@ xev_handle_buttonpress(XEvent *ee)
struct screen_ctx *sc;
struct bind_ctx *mb;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
e->state &= ~IGNOREMODMASK;
@ -273,7 +273,7 @@ xev_handle_buttonrelease(XEvent *ee)
XButtonEvent *e = &ee->xbutton;
struct client_ctx *cc;
DPRINTF("window: 0x%lx", ee->xbutton.window);
LOG_DEBUG3("window: 0x%lx", ee->xbutton.window);
if ((cc = client_find(e->window)) != NULL) {
if (cc->flags & (CLIENT_ACTIVE | CLIENT_HIGHLIGHT)) {
@ -293,7 +293,7 @@ xev_handle_keypress(XEvent *ee)
KeySym keysym, skeysym;
unsigned int modshift;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
keysym = XkbKeycodeToKeysym(X_Dpy, e->keycode, 0, 0);
skeysym = XkbKeycodeToKeysym(X_Dpy, e->keycode, 0, 1);
@ -346,7 +346,7 @@ xev_handle_keyrelease(XEvent *ee)
KeySym keysym;
unsigned int i;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
if ((sc = screen_find(e->root)) == NULL)
return;
@ -377,7 +377,7 @@ xev_handle_clientmessage(XEvent *ee)
struct client_ctx *cc, *old_cc;
struct screen_ctx *sc;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
if (e->message_type == cwmh[WM_CHANGE_STATE]) {
if ((cc = client_find(e->window)) != NULL) {
@ -426,7 +426,7 @@ xev_handle_randr(XEvent *ee)
struct screen_ctx *sc;
int i;
DPRINTF("new size: %d/%d", rev->width, rev->height);
LOG_DEBUG3("new size: %d/%d", rev->width, rev->height);
i = XRRRootToScreen(X_Dpy, rev->root);
TAILQ_FOREACH(sc, &Screenq, entry) {
@ -448,7 +448,7 @@ xev_handle_mappingnotify(XEvent *ee)
XMappingEvent *e = &ee->xmapping;
struct screen_ctx *sc;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
XRefreshKeyboardMapping(e);
if (e->request == MappingKeyboard) {
@ -463,7 +463,7 @@ xev_handle_expose(XEvent *ee)
XExposeEvent *e = &ee->xexpose;
struct client_ctx *cc;
DPRINTF("window: 0x%lx", e->window);
LOG_DEBUG3("window: 0x%lx", e->window);
if ((cc = client_find(e->window)) != NULL && e->count == 0)
client_draw_border(cc);