treplace utf8strchr with wcschr - st - [fork] customized build of st, the simpl… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit d5efd256aa3840476579a27293ef1fb92a4b51e7 | |
parent 75b4ba4b4be70a3ae429b1719d18b021839216d5 | |
Author: Lauri Tirkkonen <[email protected]> | |
Date: Wed, 13 Mar 2019 19:40:52 +0200 | |
replace utf8strchr with wcschr | |
Diffstat: | |
M config.def.h | 4 ++-- | |
M st.c | 20 +------------------- | |
M st.h | 2 +- | |
3 files changed, 4 insertions(+), 22 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -30,9 +30,9 @@ static float chscale = 1.0; | |
/* | |
* 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; | |
diff --git a/st.c b/st.c | |
t@@ -41,7 +41,7 @@ | |
#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, | |
t@@ -210,7 +210,6 @@ static void selsnap(int *, int *, int); | |
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 *); | |
t@@ -337,23 +336,6 @@ 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 | |
utf8validate(Rune *u, size_t i) | |
{ | |
diff --git a/st.h b/st.h | |
t@@ -114,7 +114,7 @@ char *xstrdup(char *); | |
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; |