Pledge on OpenBSD
[st.git] / x.c
diff --git a/x.c b/x.c
index d43a529..c0bd890 100644 (file)
--- 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;
 
@@ -739,9 +742,9 @@ xloadcols(void)
        for (i = 0; i < dc.collen; i++)
                if (!xloadcolor(i, NULL, &dc.col[i])) {
                        if (colorname[i])
-                               die("Could not allocate color '%s'\n", colorname[i]);
+                               die("could not allocate color '%s'\n", colorname[i]);
                        else
-                               die("Could not allocate color %d\n", i);
+                               die("could not allocate color %d\n", i);
                }
        loaded = 1;
 }
@@ -866,7 +869,7 @@ xloadfont(Font *f, FcPattern *pattern)
                if ((XftPatternGetInteger(f->match->pattern, "slant", 0,
                    &haveattr) != XftResultMatch) || haveattr < wantattr) {
                        f->badslant = 1;
-                       fputs("st: font slant does not match\n", stderr);
+                       fputs("font slant does not match\n", stderr);
                }
        }
 
@@ -875,7 +878,7 @@ xloadfont(Font *f, FcPattern *pattern)
                if ((XftPatternGetInteger(f->match->pattern, "weight", 0,
                    &haveattr) != XftResultMatch) || haveattr != wantattr) {
                        f->badweight = 1;
-                       fputs("st: font weight does not match\n", stderr);
+                       fputs("font weight does not match\n", stderr);
                }
        }
 
@@ -903,14 +906,13 @@ xloadfonts(char *fontstr, double fontsize)
        FcPattern *pattern;
        double fontval;
 
-       if (fontstr[0] == '-') {
+       if (fontstr[0] == '-')
                pattern = XftXlfdParse(fontstr, False, False);
-       } else {
+       else
                pattern = FcNameParse((FcChar8 *)fontstr);
-       }
 
        if (!pattern)
-               die("st: can't open font %s\n", fontstr);
+               die("can't open font %s\n", fontstr);
 
        if (fontsize > 1) {
                FcPatternDel(pattern, FC_PIXEL_SIZE);
@@ -936,7 +938,7 @@ xloadfonts(char *fontstr, double fontsize)
        }
 
        if (xloadfont(&dc.font, pattern))
-               die("st: can't open font %s\n", fontstr);
+               die("can't open font %s\n", fontstr);
 
        if (usedfontsize < 0) {
                FcPatternGetDouble(dc.font.match->pattern,
@@ -953,17 +955,17 @@ xloadfonts(char *fontstr, double fontsize)
        FcPatternDel(pattern, FC_SLANT);
        FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ITALIC);
        if (xloadfont(&dc.ifont, pattern))
-               die("st: can't open font %s\n", fontstr);
+               die("can't open font %s\n", fontstr);
 
        FcPatternDel(pattern, FC_WEIGHT);
        FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_BOLD);
        if (xloadfont(&dc.ibfont, pattern))
-               die("st: can't open font %s\n", fontstr);
+               die("can't open font %s\n", fontstr);
 
        FcPatternDel(pattern, FC_SLANT);
        FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ROMAN);
        if (xloadfont(&dc.bfont, pattern))
-               die("st: can't open font %s\n", fontstr);
+               die("can't open font %s\n", fontstr);
 
        FcPatternDestroy(pattern);
 }
@@ -1000,13 +1002,13 @@ xinit(int cols, int rows)
        XColor xmousefg, xmousebg;
 
        if (!(xw.dpy = XOpenDisplay(NULL)))
-               die("Can't open display\n");
+               die("can't open display\n");
        xw.scr = XDefaultScreen(xw.dpy);
        xw.vis = XDefaultVisual(xw.dpy, xw.scr);
 
        /* font */
        if (!FcInit())
-               die("Could not init fontconfig.\n");
+               die("could not init fontconfig.\n");
 
        usedfont = (opt_font == NULL)? font : opt_font;
        xloadfonts(usedfont, 0);
@@ -1492,7 +1494,7 @@ void
 xsettitle(char *p)
 {
        XTextProperty prop;
-       DEFAULT(p, "st");
+       DEFAULT(p, opt_title);
 
        Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
                        &prop);
@@ -1922,19 +1924,19 @@ main(int argc, char *argv[])
                opt_embed = EARGF(usage());
                break;
        case 'v':
-               die("%s " VERSION " (c) 2010-2016 st engineers\n", argv0);
+               die("%s " VERSION "\n", argv0);
                break;
        default:
                usage();
        } 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);