tuse iswspace()/iswpunct() to find word delimiters - st - [fork] customized bui… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit add0211522737b79dad990ccd65c8af63b5cc1dd | |
parent d5efd256aa3840476579a27293ef1fb92a4b51e7 | |
Author: Lauri Tirkkonen <[email protected]> | |
Date: Wed, 13 Mar 2019 17:15:04 +0200 | |
use iswspace()/iswpunct() to find word delimiters | |
tthis inverts the configuration logic: you no longer provide a list of | |
delimiters -- all space and punctuation characters are considered | |
delimiters, unless listed in extrawordchars. | |
Diffstat: | |
M config.def.h | 7 ++++--- | |
M st.c | 3 ++- | |
M st.h | 2 +- | |
3 files changed, 7 insertions(+), 5 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -28,11 +28,12 @@ static float cwscale = 1.0; | |
static float chscale = 1.0; | |
/* | |
- * word delimiter string | |
+ * all space and punctuation characters are considered word delimiters, unless | |
+ * listed here. | |
* | |
- * More advanced example: L" `'\"()[]{}" | |
+ * More advanced example: L"#$%&+,-./:=?_~" | |
*/ | |
-wchar_t *worddelimiters = L" "; | |
+wchar_t *extrawordchars = L"./:"; | |
/* selection timeouts (in milliseconds) */ | |
static unsigned int doubleclicktimeout = 300; | |
diff --git a/st.c b/st.c | |
t@@ -16,6 +16,7 @@ | |
#include <termios.h> | |
#include <unistd.h> | |
#include <wchar.h> | |
+#include <wctype.h> | |
#include "st.h" | |
#include "win.h" | |
t@@ -41,7 +42,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) (u != 0 && wcschr(worddelimiters, u) != NULL) | |
+#define ISDELIM(u) ((iswspace(u) || iswpunct(u)) && wcschr(extr… | |
enum term_mode { | |
MODE_WRAP = 1 << 0, | |
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 wchar_t *worddelimiters; | |
+extern wchar_t *extrawordchars; | |
extern int allowaltscreen; | |
extern char *termname; | |
extern unsigned int tabspaces; |