X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=x.c;h=c343ba2bdaf446aba578a55cb219afb73cf00fda;hb=6f0f2b7ec3713351de274707672fbadb6cc727a2;hp=06e53d389c149459647be3fd1a203bdded4fc812;hpb=e7ef3c4ce95a21cfcd0988d493f636e1d0115871;p=st.git diff --git a/x.c b/x.c index 06e53d3..c343ba2 100644 --- a/x.c +++ b/x.c @@ -245,8 +245,8 @@ clipcopy(const Arg *dummy) { Atom clipboard; - if (xsel.clipboard != NULL) - free(xsel.clipboard); + free(xsel.clipboard); + xsel.clipboard = NULL; if (xsel.primary != NULL) { xsel.clipboard = xstrdup(xsel.primary); @@ -618,6 +618,9 @@ selrequest(XEvent *e) void setsel(char *str, Time t) { + if (!str) + return; + free(xsel.primary); xsel.primary = str; @@ -1929,12 +1932,12 @@ main(int argc, char *argv[]) } ARGEND; run: - if (argc > 0) { - /* eat all remaining arguments */ + if (argc > 0) /* eat all remaining arguments */ opt_cmd = argv; - if (!opt_title && !opt_line) - opt_title = basename(xstrdup(argv[0])); - } + + if (!opt_title) + opt_title = (opt_line || !opt_cmd) ? "st" : opt_cmd[0]; + setlocale(LC_CTYPE, ""); XSetLocaleModifiers(""); cols = MAX(cols, 1);