summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-09-14 19:41:48 -0400
committerJune McEnroe <june@causal.agency>2018-09-14 19:41:48 -0400
commitb7bac21263ddd7112f74a9ae71180e70466e34b4 (patch)
treea4b5487acc43485f05ca29a657662804e5e33c27
parentCheck width of entire next word including codes (diff)
downloadcatgirl-b7bac21263ddd7112f74a9ae71180e70466e34b4.tar.gz
catgirl-b7bac21263ddd7112f74a9ae71180e70466e34b4.zip
Add termEvent tests
-rw-r--r--Makefile1
-rw-r--r--term.c22
2 files changed, 22 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index ac361d1..46d50ac 100644
--- a/Makefile
+++ b/Makefile
@@ -25,6 +25,7 @@ OBJS += ui.o
 OBJS += url.o
 
 TESTS += format.t
+TESTS += term.t
 
 all: tags chatte
 
diff --git a/term.c b/term.c
index 0b35499..2be9c16 100644
--- a/term.c
+++ b/term.c
@@ -21,7 +21,6 @@
 
 #include "chat.h"
 
-
 static bool xterm;
 
 void termInit(void) {
@@ -67,3 +66,24 @@ enum TermEvent termEvent(char ch) {
 		default:        state = 0; return 0;
 	}
 }
+
+#ifdef TEST
+#include <assert.h>
+
+static bool testEvent(const char *str, enum TermEvent event) {
+	enum TermEvent e = TermNone;
+	for (size_t i = 0; i < strlen(str); ++i) {
+		if (e) return false;
+		e = termEvent(str[i]);
+	}
+	return (e == event);
+}
+
+int main() {
+	assert(testEvent("\33[I", TermFocusIn));
+	assert(testEvent("\33[O", TermFocusOut));
+	assert(testEvent("\33[200~", TermPasteStart));
+	assert(testEvent("\33[201~", TermPasteEnd));
+}
+
+#endif
it/input.c?h=enroll&id=da8deff7679431267dbb6aee91305f1ea62de91f&follow=1'>Handle errors from editFn, etc.June McEnroe 2022-02-19Reimplement text macrosJune McEnroe 2022-02-19Factor out input handling to input.cJune McEnroe 2022-02-19Factor out window management to window.cJune McEnroe 2022-02-19Enable -Wmissing-prototypesJune McEnroe 2022-02-19Fix edit.[ch] license notice additional permissionsJune McEnroe 2022-02-19Run line editing testsJune McEnroe 2022-02-18Implement new line editing "library"June McEnroe 2022-02-18Simplify cursor positioning in inputJune McEnroe 2022-02-18Fix M-f orderingJune McEnroe 2022-02-12Move sandman build to scripts/MakefileJune McEnroe 2022-02-12Use compat_readpassphrase.c on LinuxJune McEnroe 2022-02-12Copy RPP defines from oconfigureJune McEnroe