Extract ttyresize() out of cresize()
[st.git] / st.c
diff --git a/st.c b/st.c
index 3a0a519..41f6942 100644 (file)
--- a/st.c
+++ b/st.c
@@ -523,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;
@@ -1440,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");
@@ -3239,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;
 
@@ -3425,6 +3425,7 @@ xzoomabs(const Arg *arg)
        xunloadfonts();
        xloadfonts(usedfont, arg->f);
        cresize(0, 0);
+       ttyresize();
        redraw();
        xhints();
 }
@@ -4208,7 +4209,6 @@ cresize(int width, int height)
 
        tresize(col, row);
        xresize(col, row);
-       ttyresize();
 }
 
 void
@@ -4218,6 +4218,7 @@ resize(XEvent *e)
                return;
 
        cresize(e->xconfigure.width, e->xconfigure.height);
+       ttyresize();
 }
 
 void
@@ -4246,8 +4247,9 @@ run(void)
                }
        } while (ev.type != MapNotify);
 
-       ttynew();
        cresize(w, h);
+       ttynew();
+       ttyresize();
 
        clock_gettime(CLOCK_MONOTONIC, &last);
        lastblink = last;
@@ -4331,14 +4333,12 @@ run(void)
 void
 usage(void)
 {
-       die("%s " VERSION " (c) 2010-2016 st engineers\n"
-       "usage: st [-a] [-v] [-c class] [-f font] [-g geometry] [-o file]\n"
-       "          [-i] [-t title] [-T title] [-w windowid] [-e command ...]"
-       " [command ...]\n"
-       "       st [-a] [-v] [-c class] [-f font] [-g geometry] [-o file]\n"
-       "          [-i] [-t title] [-T title] [-w windowid] -l line"
-       " [stty_args ...]\n",
-       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);
 }
 
 int
@@ -4377,6 +4377,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());
@@ -4385,6 +4388,8 @@ main(int argc, char *argv[])
                opt_embed = EARGF(usage());
                break;
        case 'v':
+               die("%s " VERSION " (c) 2010-2016 st engineers\n", argv0);
+               break;
        default:
                usage();
        } ARGEND;