~petersanchez/st

21367a040f056f6a207fafa066bd1cb2d9cae586 — Hiltjo Posthuma 5 years ago b650256
revert part of commit add0211522737b79dad990ccd65c8af63b5cc1dd

"use iswspace()/iswpunct() to find word delimiters

    this inverts the configuration logic: you no longer provide a list of
    delimiters -- all space and punctuation characters are considered
    delimiters, unless listed in extrawordchars."

Feedback from IRC and personal preference.
3 files changed, 5 insertions(+), 7 deletions(-)

M config.def.h
M st.c
M st.h
M config.def.h => config.def.h +3 -4
@@ 28,12 28,11 @@ static float cwscale = 1.0;
static float chscale = 1.0;

/*
 * all space and punctuation characters are considered word delimiters, unless
 * listed here.
 * word delimiter string
 *
 * More advanced example: L"#$%&+,-./:=?_~"
 * More advanced example: L" `'\"()[]{}"
 */
wchar_t *extrawordchars = L"";
wchar_t *worddelimiters = L" ";

/* selection timeouts (in milliseconds) */
static unsigned int doubleclicktimeout = 300;

M st.c => st.c +1 -2
@@ 16,7 16,6 @@
#include <termios.h>
#include <unistd.h>
#include <wchar.h>
#include <wctype.h>

#include "st.h"
#include "win.h"


@@ 42,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)		((iswspace(u) || iswpunct(u)) && wcschr(extrawordchars, u) == NULL)
#define ISDELIM(u)		(u && wcschr(worddelimiters, u))

enum term_mode {
	MODE_WRAP        = 1 << 0,

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 wchar_t *extrawordchars;
extern wchar_t *worddelimiters;
extern int allowaltscreen;
extern char *termname;
extern unsigned int tabspaces;