# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 0cd5117a2cfc4134712de748ec416be0655838b2
    parent bd5fdbe64c8abfb624ad59939ed9b221c8b04eef
    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:
    Mst.1 | 7+++++++
    Mst.c | 34+++++++++++++++++++---------------

    2 files changed, 26 insertions(+), 15 deletions(-)
    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.
    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());