X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=st.c;h=0536b6f81c113d0bc8a1b7cb65d5664e4b802095;hb=4fdba860c8db70035e9749806ecc6ca2d7c418d0;hp=2bbf48488217bc3aafb5d0b46dc25df4d0df145f;hpb=bd5fdbe64c8abfb624ad59939ed9b221c8b04eef;p=st.git diff --git a/st.c b/st.c index 2bbf484..0536b6f 100644 --- a/st.c +++ b/st.c @@ -486,7 +486,6 @@ static void *xrealloc(void *, size_t); static char *xstrdup(char *); static void usage(void); -static void version(void); static void (*handler[LASTEvent])(XEvent *) = { [KeyPress] = kpress, @@ -524,14 +523,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; @@ -1441,8 +1441,6 @@ ttynew(void) if (openpty(&m, &s, NULL, NULL, &w) < 0) die("openpty failed: %s\n", strerror(errno)); - ttyresize(); - switch (pid = fork()) { case -1: die("fork failed\n"); @@ -3240,7 +3238,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; @@ -3426,6 +3425,7 @@ xzoomabs(const Arg *arg) xunloadfonts(); xloadfonts(usedfont, arg->f); cresize(0, 0); + ttyresize(); redraw(); xhints(); } @@ -4209,7 +4209,6 @@ cresize(int width, int height) tresize(col, row); xresize(col, row); - ttyresize(); } void @@ -4219,6 +4218,7 @@ resize(XEvent *e) return; cresize(e->xconfigure.width, e->xconfigure.height); + ttyresize(); } void @@ -4247,8 +4247,9 @@ run(void) } } while (ev.type != MapNotify); - ttynew(); cresize(w, h); + ttynew(); + ttyresize(); clock_gettime(CLOCK_MONOTONIC, &last); lastblink = last; @@ -4333,18 +4334,13 @@ 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); -} - -void -version(void) -{ - die("%s " VERSION " (c) 2010-2016 st engineers\n", argv0); + " [-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" + " [-T title] [-t title] [-w windowid] -l line" + " [stty_args ...]\n", argv0, argv0); } int @@ -4383,6 +4379,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()); @@ -4391,7 +4390,7 @@ main(int argc, char *argv[]) opt_embed = EARGF(usage()); break; case 'v': - version(); + die("%s " VERSION " (c) 2010-2016 st engineers\n", argv0); break; default: usage();