--- tools/virtual.c.org 2014-06-14 11:53:55.938503000 +0200 +++ tools/virtual.c 2014-06-14 15:53:56.128551826 +0200 @@ -65,17 +65,12 @@ #include #include -#if 0 -#define DBG(x) printf x -#define EXTRA_DBG 1 -#else -#define DBG(x) -#define EXTRA_DBG 0 -#endif - #define FORCE_FULL_REDRAW 0 #define FORCE_16BIT_XFER 0 +#define DBG(x) if(verbose) printf x +int verbose; + struct display { Display *dpy; struct clone *clone; @@ -602,7 +597,7 @@ if (XRRSetPanning(dpy, res, crtc, memset(&panning, 0, sizeof(panning))) != Success) { DBG(("%s failed to clear panning on CRTC:%ld\n", DisplayString(dpy), (long)crtc)); - if (EXTRA_DBG) { + if (verbose) { XRRCrtcInfo *c; XRRPanning *p; @@ -1534,7 +1529,7 @@ if (ret) goto err; - if (EXTRA_DBG) { + if (verbose) { XRRCrtcInfo *c; XRRPanning *p; @@ -1972,7 +1967,14 @@ static void usage(const char *arg0) { - printf("usage: %s [-d ] [-b] []...\n", arg0); + printf("Usage: %s [OPTION]... [TARGET_DISPLAY]...\n", arg0); + printf(" -d source display\n"); + printf(" -f don't daemonize\n"); + printf(" -b bumblebee\n"); + printf(" -a all\n"); + printf(" -S no singleton\n"); + printf(" -v verbose output, implies -f\n"); + printf(" -h this help\n"); } static void record_callback(XPointer closure, XRecordInterceptData *data) @@ -3145,12 +3147,12 @@ struct context ctx; const char *src_name = NULL; uint64_t count; - int daemonize = !EXTRA_DBG, bumblebee = 0, all = 0, singleton = 1; + int daemonize = 1, bumblebee = 0, all = 0, singleton = 1; verbose = 0; int i, ret, open, fail; signal(SIGPIPE, SIG_IGN); - while ((i = getopt(argc, argv, "abd:fhS")) != -1) { + while ((i = getopt(argc, argv, "abd:fhSv")) != -1) { switch (i) { case 'd': src_name = optarg; @@ -3167,6 +3169,9 @@ case 'S': singleton = 0; break; + case 'v': + verbose = 1; daemonize = 0; + break; case 'h': default: usage(argv[0]);