# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 4536f46cfff50c66a115755def0155d8e246b02f
    parent 9e68fdbcdb06dfa3d23fe3a7a7f7b59e40e1ea2f
    Author: Markus F.X.J. Oberhumer <markus@oberhumer.com>
    Date:   Sun, 28 Mar 2021 21:16:59 +0200

    Mild const-correctness improvements.

    Only touch a few things, the main focus is to
    improve code readability.

    Diffstat:
    Mst.c | 44+++++++++++++++++++++++---------------------
    Mst.h | 4++--
    Mx.c | 6+++---

    3 files changed, 28 insertions(+), 26 deletions(-)
    diff --git a/st.c b/st.c
    @@ -186,18 +186,18 @@ static void tputc(Rune);
     static void treset(void);
     static void tscrollup(int, int);
     static void tscrolldown(int, int);
    -static void tsetattr(int *, int);
    -static void tsetchar(Rune, Glyph *, int, int);
    +static void tsetattr(const int *, int);
    +static void tsetchar(Rune, const Glyph *, int, int);
     static void tsetdirt(int, int);
     static void tsetscroll(int, int);
     static void tswapscreen(void);
    -static void tsetmode(int, int, int *, int);
    +static void tsetmode(int, int, const 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(int *, int *, int);
    +static int32_t tdefcolor(const int *, int *, int);
     static void tdeftran(char);
     static void tstrsequence(uchar);

    @@ -226,10 +226,10 @@ static int iofd = 1;
     static int cmdfd;
     static pid_t pid;

    -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};
    +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};

     ssize_t
     xwrite(int fd, const char *s, size_t len)
    @@ -269,12 +269,14 @@ xrealloc(void *p, size_t len)
     }

     char *
    -xstrdup(char *s)
    +xstrdup(const char *s)
     {
    -	if ((s = strdup(s)) == NULL)
    +	char *p;
    +
    +	if ((p = strdup(s)) == NULL)
     		die("strdup: %s\n", strerror(errno));

    -	return s;
    +	return p;
     }

     size_t
    @@ -518,7 +520,7 @@ selsnap(int *x, int *y, int direction)
     {
     	int newx, newy, xt, yt;
     	int delim, prevdelim;
    -	Glyph *gp, *prevgp;
    +	const Glyph *gp, *prevgp;

     	switch (sel.snap) {
     	case SNAP_WORD:
    @@ -591,7 +593,7 @@ getsel(void)
     {
     	char *str, *ptr;
     	int y, bufsize, lastx, linelen;
    -	Glyph *gp, *last;
    +	const Glyph *gp, *last;

     	if (sel.ob.x == -1)
     		return NULL;
    @@ -758,7 +760,7 @@ stty(char **args)
     }

     int
    -ttynew(char *line, char *cmd, char *out, char **args)
    +ttynew(const char *line, char *cmd, const char *out, char **args)
     {
     	int m, s;

    @@ -1186,9 +1188,9 @@ tmoveto(int x, int y)
     }

     void
    -tsetchar(Rune u, Glyph *attr, int x, int y)
    +tsetchar(Rune u, const Glyph *attr, int x, int y)
     {
    -	static char *vt100_0[62] = { /* 0x41 - 0x7e */
    +	static const 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 */
    @@ -1300,7 +1302,7 @@ tdeleteline(int n)
     }

     int32_t
    -tdefcolor(int *attr, int *npar, int l)
    +tdefcolor(const int *attr, int *npar, int l)
     {
     	int32_t idx = -1;
     	uint r, g, b;
    @@ -1350,7 +1352,7 @@ tdefcolor(int *attr, int *npar, int l)
     }

     void
    -tsetattr(int *attr, int l)
    +tsetattr(const int *attr, int l)
     {
     	int i;
     	int32_t idx;
    @@ -1468,9 +1470,9 @@ tsetscroll(int t, int b)
     }

     void
    -tsetmode(int priv, int set, int *args, int narg)
    +tsetmode(int priv, int set, const int *args, int narg)
     {
    -	int alt, *lim;
    +	int alt; const int *lim;

     	for (lim = args + narg; args < lim; ++args) {
     		if (priv) {
    @@ -2020,7 +2022,7 @@ void
     tdumpline(int n)
     {
     	char buf[UTF_SIZ];
    -	Glyph *bp, *end;
    +	const Glyph *bp, *end;

     	bp = &term.line[n][0];
     	end = &bp[MIN(tlinelen(n), term.col) - 1];
    diff --git a/st.h b/st.h
    @@ -91,7 +91,7 @@ void tnew(int, int);
     void tresize(int, int);
     void tsetdirtattr(int);
     void ttyhangup(void);
    -int ttynew(char *, char *, char *, char **);
    +int ttynew(const char *, char *, const char *, char **);
     size_t ttyread(void);
     void ttyresize(int, int);
     void ttywrite(const char *, size_t, int);
    @@ -109,7 +109,7 @@ size_t utf8encode(Rune, char *);

     void *xmalloc(size_t);
     void *xrealloc(void *, size_t);
    -char *xstrdup(char *);
    +char *xstrdup(const char *);

     /* config.h globals */
     extern char *utmp;
    diff --git a/x.c b/x.c
    @@ -156,7 +156,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(char *, double);
    +static void xloadfonts(const char *, double);
     static void xunloadfont(Font *);
     static void xunloadfonts(void);
     static void xsetenv(void);
    @@ -952,7 +952,7 @@ xloadfont(Font *f, FcPattern *pattern)
     }

     void
    -xloadfonts(char *fontstr, double fontsize)
    +xloadfonts(const char *fontstr, double fontsize)
     {
     	FcPattern *pattern;
     	double fontval;
    @@ -960,7 +960,7 @@ xloadfonts(char *fontstr, double fontsize)
     	if (fontstr[0] == '-')
     		pattern = XftXlfdParse(fontstr, False, False);
     	else
    -		pattern = FcNameParse((FcChar8 *)fontstr);
    +		pattern = FcNameParse((const FcChar8 *)fontstr);

     	if (!pattern)
     		die("can't open font %s\n", fontstr);