~petersanchez/st

d5efd256aa3840476579a27293ef1fb92a4b51e7 — Lauri Tirkkonen 5 years ago 75b4ba4
replace utf8strchr with wcschr
3 files changed, 4 insertions(+), 22 deletions(-)

M config.def.h
M st.c
M st.h
M config.def.h => config.def.h +2 -2
@@ 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;

M st.c => st.c +1 -19
@@ 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,


@@ 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 *);


@@ 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)
{

M st.h => st.h +1 -1
@@ 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;