aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.def.h4
-rw-r--r--st.c20
-rw-r--r--st.h2
3 files changed, 4 insertions, 22 deletions
diff --git a/config.def.h b/config.def.h
index 0e01717..482901e 100644
--- a/config.def.h
+++ b/config.def.h
@@ -30,9 +30,9 @@ static float chscale = 1.0;
30/* 30/*
31 * word delimiter string 31 * word delimiter string
32 * 32 *
33 * More advanced example: " `'\"()[]{}" 33 * More advanced example: L" `'\"()[]{}"
34 */ 34 */
35char *worddelimiters = " "; 35wchar_t *worddelimiters = L" ";
36 36
37/* selection timeouts (in milliseconds) */ 37/* selection timeouts (in milliseconds) */
38static unsigned int doubleclicktimeout = 300; 38static unsigned int doubleclicktimeout = 300;
diff --git a/st.c b/st.c
index d35f89d..812f30c 100644
--- a/st.c
+++ b/st.c
@@ -41,7 +41,7 @@
41#define ISCONTROLC0(c) (BETWEEN(c, 0, 0x1f) || (c) == '\177') 41#define ISCONTROLC0(c) (BETWEEN(c, 0, 0x1f) || (c) == '\177')
42#define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f)) 42#define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f))
43#define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c)) 43#define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c))
44#define ISDELIM(u) (utf8strchr(worddelimiters, u) != NULL) 44#define ISDELIM(u) (u != 0 && wcschr(worddelimiters, u) != NULL)
45 45
46enum term_mode { 46enum term_mode {
47 MODE_WRAP = 1 << 0, 47 MODE_WRAP = 1 << 0,
@@ -210,7 +210,6 @@ static void selsnap(int *, int *, int);
210static size_t utf8decode(const char *, Rune *, size_t); 210static size_t utf8decode(const char *, Rune *, size_t);
211static Rune utf8decodebyte(char, size_t *); 211static Rune utf8decodebyte(char, size_t *);
212static char utf8encodebyte(Rune, size_t); 212static char utf8encodebyte(Rune, size_t);
213static char *utf8strchr(char *, Rune);
214static size_t utf8validate(Rune *, size_t); 213static size_t utf8validate(Rune *, size_t);
215 214
216static char *base64dec(const char *); 215static char *base64dec(const char *);
@@ -337,23 +336,6 @@ utf8encodebyte(Rune u, size_t i)
337 return utfbyte[i] | (u & ~utfmask[i]); 336 return utfbyte[i] | (u & ~utfmask[i]);
338} 337}
339 338
340char *
341utf8strchr(char *s, Rune u)
342{
343 Rune r;
344 size_t i, j, len;
345
346 len = strlen(s);
347 for (i = 0, j = 0; i < len; i += j) {
348 if (!(j = utf8decode(&s[i], &r, len - i)))
349 break;
350 if (r == u)
351 return &(s[i]);
352 }
353
354 return NULL;
355}
356
357size_t 339size_t
358utf8validate(Rune *u, size_t i) 340utf8validate(Rune *u, size_t i)
359{ 341{
diff --git a/st.h b/st.h
index 38c61c4..4da3051 100644
--- a/st.h
+++ b/st.h
@@ -114,7 +114,7 @@ char *xstrdup(char *);
114extern char *utmp; 114extern char *utmp;
115extern char *stty_args; 115extern char *stty_args;
116extern char *vtiden; 116extern char *vtiden;
117extern char *worddelimiters; 117extern wchar_t *worddelimiters;
118extern int allowaltscreen; 118extern int allowaltscreen;
119extern char *termname; 119extern char *termname;
120extern unsigned int tabspaces; 120extern unsigned int tabspaces;