Add -c option to override the default window class - st - Simple Terminal
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit b61afd24be566d8c8d7d5310fdad973441139428
 (DIR) parent 70464e208060746ad9184dfc298005fff3035d72
 (HTM) Author: Gregor Best <gbe@ring0.de>
       Date:   Fri, 19 Nov 2010 17:13:13 +0100
       
       Add -c option to override the default window class
       
       Diffstat:
         st.1                                |       4 ++++
         st.c                                |       8 ++++++--
       
       2 files changed, 10 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/st.1 b/st.1
       @@ -4,6 +4,7 @@ st \- simple terminal
        .SH SYNOPSIS
        .B st
        .RB [ \-e " <cmd>"]
       +.RB [ \-c " <class>"]
        .RB [ \-t " <title>"]
        .RB [ \-v ]
        .SH DESCRIPTION
       @@ -17,5 +18,8 @@ Execute cmd instead of the shell
        .B \-t <title>
        Overrides the default title (st)
        .TP
       +.B \-c <class>
       +Overrides the default class ($TERM)
       +.TP
        .BI \-v
        Prints version information to standard output, then exits.
 (DIR) diff --git a/st.c b/st.c
       @@ -31,7 +31,7 @@
        
        #define USAGE \
                "st-" VERSION ", (c) 2010 st engineers\n" \
       -        "usage: st [-t title] [-e cmd] [-v]\n"
       +        "usage: st [-t title] [-c class] [-e cmd] [-v]\n"
        
        /* Arbitrary sizes */
        #define ESC_TITLE_SIZ 256
       @@ -252,6 +252,7 @@ static pid_t pid;
        static Selection sel;
        static char *opt_cmd   = NULL;
        static char *opt_title = NULL;
       +static char *opt_class = NULL;
        
        /* UTF-8 decode */
        static int stou(char *s, long *u) {
       @@ -1443,7 +1444,7 @@ xclear(int x1, int y1, int x2, int y2) {
        void
        xhints(void)
        {
       -        XClassHint class = {TNAME, TNAME};
       +        XClassHint class = {opt_class ? opt_class : TNAME, TNAME};
                XWMHints wm = {.flags = InputHint, .input = 1};
                XSizeHints size = {
                        .flags = PSize | PResizeInc | PBaseSize,
       @@ -1838,6 +1839,9 @@ main(int argc, char *argv[]) {
                        case 't':
                                if(++i < argc) opt_title = argv[i];
                                break;
       +                case 'c':
       +                        if(++i < argc) opt_class = argv[i];
       +                        break;
                        case 'e':
                                if(++i < argc) opt_cmd = argv[i];
                                break;