diff --git a/config.h b/config.h index d322592..2a7b8fb 100644 --- a/config.h +++ b/config.h @@ -5,12 +5,12 @@ * * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html */ -static char *font = "Fira Code:size=10:antialias=true;autohint=true"; +static char *font = "Fira Code:size=11:antialias=true;autohint=true"; static char *font2[] = { "Noto Color Emoji:size=10:antialias=true;autohint=true" }; static int borderpx = 2; -float alpha = 0.7; +float alpha = 0.95; /* Lines to move per scroll */ const unsigned int mousescrollincrement = 5; diff --git a/st.c b/st.c index 1e72979..a9690e5 100644 --- a/st.c +++ b/st.c @@ -193,18 +193,18 @@ static void tputc(Rune); static void treset(void); static void tscrollup(int, int, int); static void tscrolldown(int, int, int); -static void tsetattr(const int *, int); -static void tsetchar(Rune, const Glyph *, int, int); +static void tsetattr(int *, int); +static void tsetchar(Rune, Glyph *, int, int); static void tsetdirt(int, int); static void tsetscroll(int, int); static void tswapscreen(void); -static void tsetmode(int, int, const int *, int); +static void tsetmode(int, int, int *, int); static int twrite(const char *, int, int); static void tfulldirt(void); static void tcontrolcode(uchar ); static void tdectest(char ); static void tdefutf8(char); -static int32_t tdefcolor(const int *, int *, int); +static int32_t tdefcolor(int *, int *, int); static void tdeftran(char); static void tstrsequence(uchar); @@ -233,10 +233,10 @@ static int iofd = 1; static int cmdfd; static pid_t pid; -static const uchar utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0}; -static const uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; -static const Rune utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000}; -static const Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; +static uchar utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0}; +static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; +static Rune utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000}; +static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; ssize_t xwrite(int fd, const char *s, size_t len) @@ -276,14 +276,12 @@ xrealloc(void *p, size_t len) } char * -xstrdup(const char *s) +xstrdup(char *s) { - char *p; - - if ((p = strdup(s)) == NULL) + if ((s = strdup(s)) == NULL) die("strdup: %s\n", strerror(errno)); - return p; + return s; } size_t @@ -527,7 +525,7 @@ selsnap(int *x, int *y, int direction) { int newx, newy, xt, yt; int delim, prevdelim; - const Glyph *gp, *prevgp; + Glyph *gp, *prevgp; switch (sel.snap) { case SNAP_WORD: @@ -600,7 +598,7 @@ getsel(void) { char *str, *ptr; int y, bufsize, lastx, linelen; - const Glyph *gp, *last; + Glyph *gp, *last; if (sel.ob.x == -1) return NULL; @@ -767,7 +765,7 @@ stty(char **args) } int -ttynew(const char *line, char *cmd, const char *out, char **args) +ttynew(char *line, char *cmd, char *out, char **args) { int m, s; @@ -800,15 +798,14 @@ ttynew(const char *line, char *cmd, const char *out, char **args) break; case 0: close(iofd); - close(m); setsid(); /* create a new process group */ dup2(s, 0); dup2(s, 1); dup2(s, 2); if (ioctl(s, TIOCSCTTY, NULL) < 0) die("ioctl TIOCSCTTY failed: %s\n", strerror(errno)); - if (s > 2) - close(s); + close(s); + close(m); #ifdef __OpenBSD__ if (pledge("stdio getpw proc exec", NULL) == -1) die("pledge\n"); @@ -1256,9 +1253,9 @@ tmoveto(int x, int y) } void -tsetchar(Rune u, const Glyph *attr, int x, int y) +tsetchar(Rune u, Glyph *attr, int x, int y) { - static const char *vt100_0[62] = { /* 0x41 - 0x7e */ + static char *vt100_0[62] = { /* 0x41 - 0x7e */ "↑", "↓", "→", "←", "█", "▚", "☃", /* A - G */ 0, 0, 0, 0, 0, 0, 0, 0, /* H - O */ 0, 0, 0, 0, 0, 0, 0, 0, /* P - W */ @@ -1373,7 +1370,7 @@ tdeleteline(int n) } int32_t -tdefcolor(const int *attr, int *npar, int l) +tdefcolor(int *attr, int *npar, int l) { int32_t idx = -1; uint r, g, b; @@ -1423,7 +1420,7 @@ tdefcolor(const int *attr, int *npar, int l) } void -tsetattr(const int *attr, int l) +tsetattr(int *attr, int l) { int i; int32_t idx; @@ -1541,9 +1538,9 @@ tsetscroll(int t, int b) } void -tsetmode(int priv, int set, const int *args, int narg) +tsetmode(int priv, int set, int *args, int narg) { - int alt; const int *lim; + int alt, *lim; for (lim = args + narg; args < lim; ++args) { if (priv) { @@ -1926,15 +1923,7 @@ strhandle(void) case ']': /* OSC -- Operating System Command */ switch (par) { case 0: - if (narg > 1) { - xsettitle(strescseq.args[1]); - xseticontitle(strescseq.args[1]); - } - return; case 1: - if (narg > 1) - xseticontitle(strescseq.args[1]); - return; case 2: if (narg > 1) xsettitle(strescseq.args[1]); @@ -2093,7 +2082,7 @@ void tdumpline(int n) { char buf[UTF_SIZ]; - const Glyph *bp, *end; + Glyph *bp, *end; bp = &term.line[n][0]; end = &bp[MIN(tlinelen(n), term.col) - 1]; diff --git a/st.h b/st.h index 079db89..c961f90 100644 --- a/st.h +++ b/st.h @@ -97,7 +97,7 @@ void tnew(int, int); void tresize(int, int); void tsetdirtattr(int); void ttyhangup(void); -int ttynew(const char *, char *, const char *, char **); +int ttynew(char *, char *, char *, char **); size_t ttyread(void); void ttyresize(int, int); void ttywrite(const char *, size_t, int); @@ -115,7 +115,7 @@ size_t utf8encode(Rune, char *); void *xmalloc(size_t); void *xrealloc(void *, size_t); -char *xstrdup(const char *); +char *xstrdup(char *); int isboxdraw(Rune); ushort boxdrawindex(const Glyph *); diff --git a/win.h b/win.h index 8b5b618..bc0d180 100644 --- a/win.h +++ b/win.h @@ -30,7 +30,6 @@ void xdrawline(Line, int, int, int); void xfinishdraw(void); void xloadcols(void); int xsetcolorname(int, const char *); -void xseticontitle(char *); void xsettitle(char *); int xsetcursor(int); void xsetmode(int, unsigned int); diff --git a/x.c b/x.c index bb0e098..68f1d07 100644 --- a/x.c +++ b/x.c @@ -50,7 +50,7 @@ typedef struct { /* X modifiers */ #define XK_ANY_MOD UINT_MAX #define XK_NO_MOD 0 -#define XK_SWITCH_MOD (1<<13|1<<14) +#define XK_SWITCH_MOD (1<<13) /* function definitions used in config.h */ static void clipcopy(const Arg *); @@ -97,7 +97,7 @@ typedef struct { Window win; Drawable buf; GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ - Atom xembed, wmdeletewin, netwmname, netwmiconname, netwmpid; + Atom xembed, wmdeletewin, netwmname, netwmpid; struct { XIM xim; XIC xic; @@ -166,7 +166,7 @@ static void xresize(int, int); static void xhints(void); static int xloadcolor(int, const char *, Color *); static int xloadfont(Font *, FcPattern *); -static void xloadfonts(const char *, double); +static void xloadfonts(char *, double); static int xloadsparefont(FcPattern *, int); static void xloadsparefonts(void); static void xunloadfont(Font *); @@ -411,9 +411,7 @@ mousereport(XEvent *e) button = 3; } else { button -= Button1; - if (button >= 7) - button += 128 - 7; - else if (button >= 3) + if (button >= 3) button += 64 - 3; } if (e->xbutton.type == ButtonPress) { @@ -1007,7 +1005,7 @@ xloadfont(Font *f, FcPattern *pattern) } void -xloadfonts(const char *fontstr, double fontsize) +xloadfonts(char *fontstr, double fontsize) { FcPattern *pattern; double fontval; @@ -1015,7 +1013,7 @@ xloadfonts(const char *fontstr, double fontsize) if (fontstr[0] == '-') pattern = XftXlfdParse(fontstr, False, False); else - pattern = FcNameParse((const FcChar8 *)fontstr); + pattern = FcNameParse((FcChar8 *)fontstr); if (!pattern) die("can't open font %s\n", fontstr); @@ -1356,7 +1354,6 @@ xinit(int cols, int rows) xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False); xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False); xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False); - xw.netwmiconname = XInternAtom(xw.dpy, "_NET_WM_ICON_NAME", False); XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1); xw.netwmpid = XInternAtom(xw.dpy, "_NET_WM_PID", False); @@ -1767,29 +1764,14 @@ xsetenv(void) setenv("WINDOWID", buf, 1); } -void -xseticontitle(char *p) -{ - XTextProperty prop; - DEFAULT(p, opt_title); - - if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, - &prop) != Success) - return; - XSetWMIconName(xw.dpy, xw.win, &prop); - XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmiconname); - XFree(prop.value); -} - void xsettitle(char *p) { XTextProperty prop; DEFAULT(p, opt_title); - if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, - &prop) != Success) - return; + Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, + &prop); XSetWMName(xw.dpy, xw.win, &prop); XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmname); XFree(prop.value);