Add -n option for setting WM_CLASS instance name - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 0cd5117a2cfc4134712de748ec416be0655838b2
 (DIR) parent bd5fdbe64c8abfb624ad59939ed9b221c8b04eef
 (HTM) Author: Quentin Rameau <quinq@fifth.space>
       Date:   Fri, 29 Jan 2016 22:03:01 +0100
       
       Add -n option for setting WM_CLASS instance name
       
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         M st.1                                |       7 +++++++
         M st.c                                |      34 +++++++++++++++++--------------
       
       2 files changed, 26 insertions(+), 15 deletions(-)
       ---
 (DIR) diff --git a/st.1 b/st.1
       @@ -10,6 +10,8 @@ st \- simple terminal
        .IR font ]
        .RB [ \-g
        .IR geometry ]
       +.RB [ \-n
       +.IR name ]
        .RB [ \-o
        .IR iofile ]
        .RB [ \-T
       @@ -32,6 +34,8 @@ st \- simple terminal
        .IR font ]
        .RB [ \-g
        .IR geometry ]
       +.RB [ \-n
       +.IR name ]
        .RB [ \-o
        .IR iofile ]
        .RB [ \-T
       @@ -68,6 +72,9 @@ for further details.
        .B \-i
        will fixate the position given with the -g option.
        .TP
       +.BI \-n " name"
       +defines the window instance name (default $TERM).
       +.TP
        .BI \-o " iofile"
        writes all the I/O to
        .I iofile.
 (DIR) diff --git a/st.c b/st.c
       @@ -524,14 +524,15 @@ static int cmdfd;
        static pid_t pid;
        static Selection sel;
        static int iofd = 1;
       -static char **opt_cmd = NULL;
       -static char *opt_io = NULL;
       -static char *opt_title = NULL;
       -static char *opt_embed = NULL;
       +static char **opt_cmd  = NULL;
        static char *opt_class = NULL;
       -static char *opt_font = NULL;
       -static char *opt_line = NULL;
       -static int oldbutton = 3; /* button event on startup: 3 = release */
       +static char *opt_embed = NULL;
       +static char *opt_font  = NULL;
       +static char *opt_io    = NULL;
       +static char *opt_line  = NULL;
       +static char *opt_name  = NULL;
       +static char *opt_title = NULL;
       +static int oldbutton   = 3; /* button event on startup: 3 = release */
        
        static char *usedfont = NULL;
        static double usedfontsize = 0;
       @@ -3240,7 +3241,8 @@ xclear(int x1, int y1, int x2, int y2)
        void
        xhints(void)
        {
       -        XClassHint class = {termname, opt_class ? opt_class : termname};
       +        XClassHint class = {opt_name ? opt_name : termname,
       +                            opt_class ? opt_class : termname};
                XWMHints wm = {.flags = InputHint, .input = 1};
                XSizeHints *sizeh = NULL;
        
       @@ -4332,13 +4334,12 @@ run(void)
        void
        usage(void)
        {
       -        die("usage: %s [-aiv] [-c class] [-f font] [-g geometry]"
       -        " [-o file] [-T title]\n"
       -        "          [-t title] [-w windowid] [[-e] command [args ...]]\n"
       -        "       %s [-aiv] [-c class] [-f font] [-g geometry]"
       -        " [-o file] [-T title]\n"
       -        "          [-t title] [-w windowid] -l line [stty_args ...]\n",
       -        argv0, argv0);
       +        die("usage: %s "
       +        "[-aiv] [-c class] [-f font] [-g geometry] [-n name] [-o file]\n       "
       +        "   [-T title] [-t title] [-w windowid] [[-e] command [args ...]\n     "
       +        "  %s [-aiv] [-c class] [-f font] [-g geometry] [-n name] [-o file]\n  "
       +        "        [-o file] [-T title] [-t title] [-w windowid] -l line"
       +        " [stty_args ...]\n", argv0, argv0);
        }
        
        void
       @@ -4383,6 +4384,9 @@ main(int argc, char *argv[])
                case 'l':
                        opt_line = EARGF(usage());
                        break;
       +        case 'n':
       +                opt_name = EARGF(usage());
       +                break;
                case 't':
                case 'T':
                        opt_title = EARGF(usage());