Allow no automatic spawning of the command. - ttabbed - Simple tabbing application for X11.
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c79e3392413da488eecb2769473989d0c2c861c9
 (DIR) parent 3d12c416b82e4dd0b41d627752a165cbfb96d59a
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Thu,  9 Feb 2012 17:39:33 +0100
       
       Allow no automatic spawning of the command.
       Diffstat:
         tabbed.1                            |      13 ++++++++++++-
         tabbed.c                            |      17 ++++++++++++++---
       
       2 files changed, 26 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/tabbed.1 b/tabbed.1
       @@ -4,16 +4,27 @@ tabbed \- generic tabbed interface
        .SH SYNOPSIS
        .B tabbed
        .RB [ \-d ]
       +.RB [ \-h ]
       +.RB [ \-s ]
        .RB [ \-v ]
        .IR command ...
        .SH DESCRIPTION
        .B tabbed
       -is a simple tabbed container for applications which support XEmbed.
       +is a simple tabbed container for applications which support XEmbed. Tabbed
       +will then run the provides command with the xid of tabbed as appended
       +argument. (See EXAMPLES.) The automatic spawning of the command can be
       +disabled by provoding the -s parameter. 
        .SH OPTIONS
        .TP
        .B \-d
        detaches tabbed from the terminal and prints its XID to stdout.
        .TP
       +.B \-h
       +will print the usage of tabbed.
       +.TP
       +.B \-s
       +will disable automatic spawning of the command.
       +.TP
        .B \-v
        prints version information to stderr, then exits.
        .SH USAGE
 (DIR) diff --git a/tabbed.c b/tabbed.c
       @@ -141,7 +141,7 @@ static void (*handler[LASTEvent]) (const XEvent *) = {
        };
        static int bh, wx, wy, ww, wh;
        static unsigned int numlockmask = 0;
       -static Bool running = True, nextfocus;
       +static Bool running = True, nextfocus, doinitspawn = True;
        static Display *dpy;
        static DC dc;
        static Atom wmatom[WMLast], xembedatom;
       @@ -687,7 +687,8 @@ run(void) {
                /* main event loop */
                XSync(dpy, False);
                drawbar();
       -        spawn(NULL);
       +        if(doinitspawn == True)
       +                spawn(NULL);
                while(running) {
                        XNextEvent(dpy, &ev);
                        if(handler[ev.type])
       @@ -862,6 +863,12 @@ xerror(Display *dpy, XErrorEvent *ee) {
                return xerrorxlib(dpy, ee); /* may call exit */
        }
        
       +void
       +usage(char *argv0)
       +{
       +        die("usage: %s [-dhsv] command...\n", argv0);
       +}
       +
        int
        main(int argc, char *argv[]) {
                int i, detach = 0;
       @@ -871,11 +878,15 @@ main(int argc, char *argv[]) {
                                die("tabbed-"VERSION", © 2009-2011 tabbed engineers, see LICENSE for details\n");
                        else if(!strcmp("-d", argv[i]))
                                detach = 1;
       +                else if(!strcmp("-s", argv[i]))
       +                        doinitspawn = False;
       +                else if(!strcmp("-h", argv[i]))
       +                        usage(argv[0]);
                        else
                                setcmd(argc-i, argv+i);
                }
                if(!cmd)
       -                die("usage: tabbed [-d] [-v] command...\n");
       +                usage(argv[0]);
                if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
                        fprintf(stderr, "tabbed: no locale support\n");
                if(!(dpy = XOpenDisplay(NULL)))