all repos — st @ d5efd256aa3840476579a27293ef1fb92a4b51e7

st (suckless terminal) config

replace utf8strchr with wcschr
Lauri Tirkkonen lotheac@iki.fi
commit

d5efd256aa3840476579a27293ef1fb92a4b51e7

parent

75b4ba4b4be70a3ae429b1719d18b021839216d5

3 files changed, 4 insertions(+), 22 deletions(-)

jump to
M config.def.hconfig.def.h

@@ -30,9 +30,9 @@

/* * word delimiter string * - * More advanced example: " `'\"()[]{}" + * More advanced example: L" `'\"()[]{}" */ -char *worddelimiters = " "; +wchar_t *worddelimiters = L" "; /* selection timeouts (in milliseconds) */ static unsigned int doubleclicktimeout = 300;
M st.cst.c

@@ -41,7 +41,7 @@ #define IS_SET(flag) ((term.mode & (flag)) != 0)

#define ISCONTROLC0(c) (BETWEEN(c, 0, 0x1f) || (c) == '\177') #define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f)) #define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c)) -#define ISDELIM(u) (utf8strchr(worddelimiters, u) != NULL) +#define ISDELIM(u) (u != 0 && wcschr(worddelimiters, u) != NULL) enum term_mode { MODE_WRAP = 1 << 0,

@@ -210,7 +210,6 @@

static size_t utf8decode(const char *, Rune *, size_t); static Rune utf8decodebyte(char, size_t *); static char utf8encodebyte(Rune, size_t); -static char *utf8strchr(char *, Rune); static size_t utf8validate(Rune *, size_t); static char *base64dec(const char *);

@@ -335,23 +334,6 @@ char

utf8encodebyte(Rune u, size_t i) { return utfbyte[i] | (u & ~utfmask[i]); -} - -char * -utf8strchr(char *s, Rune u) -{ - Rune r; - size_t i, j, len; - - len = strlen(s); - for (i = 0, j = 0; i < len; i += j) { - if (!(j = utf8decode(&s[i], &r, len - i))) - break; - if (r == u) - return &(s[i]); - } - - return NULL; } size_t
M st.hst.h

@@ -114,7 +114,7 @@ /* config.h globals */

extern char *utmp; extern char *stty_args; extern char *vtiden; -extern char *worddelimiters; +extern wchar_t *worddelimiters; extern int allowaltscreen; extern char *termname; extern unsigned int tabspaces;