about summary refs log tree commit diff
diff options
context:
space:
mode:
authorC. McEnroe <june@causal.agency>2021-02-15 19:07:56 -0500
committerC. McEnroe <june@causal.agency>2021-02-15 19:15:38 -0500
commit4b26ae23cd24cc59d6d387a4e2d9cea7a8812318 (patch)
tree6647cbc6e637d5255cba820e9233d4197734bfb9
parentRefactor Focus and Paste mode strings (diff)
downloadcatgirl-4b26ae23cd24cc59d6d387a4e2d9cea7a8812318.tar.gz
catgirl-4b26ae23cd24cc59d6d387a4e2d9cea7a8812318.zip
Add C-z p to manually toggle paste mode
OpenBSD's xterm doesn't have bracketed paste mode, and it would be
nice to still be able to paste in several lines and collapse them
with M-q, provided one remembers to type C-z p first...
-rw-r--r--catgirl.14
-rw-r--r--ui.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/catgirl.1 b/catgirl.1
index 03b708e..0543be3 100644
--- a/catgirl.1
+++ b/catgirl.1
@@ -1,4 +1,4 @@
-.Dd February  3, 2021
+.Dd February 15, 2021
 .Dt CATGIRL 1
 .Os
 .
@@ -669,6 +669,8 @@ Set or reset color.
 Toggle italics.
 .It Ic C-z o
 Reset formatting.
+.It Ic C-z p
+Manually toggle paste mode.
 .It Ic C-z r
 Toggle reverse color.
 .It Ic C-z u
diff --git a/ui.c b/ui.c
index f1d784a..3c6c4ed 100644
--- a/ui.c
+++ b/ui.c
@@ -211,7 +211,8 @@ static short colorPair(short fg, short bg) {
 	X(KeyFocusIn, "\33[I", NULL) \
 	X(KeyFocusOut, "\33[O", NULL) \
 	X(KeyPasteOn, "\33[200~", NULL) \
-	X(KeyPasteOff, "\33[201~", NULL)
+	X(KeyPasteOff, "\33[201~", NULL) \
+	X(KeyPasteManual, "\32p", "\32\20")
 
 enum {
 	KeyMax = KEY_MAX,
@@ -1007,6 +1008,8 @@ void uiRead(void) {
 			paste = true;
 		} else if (ret == KEY_CODE_YES && ch == KeyPasteOff) {
 			paste = false;
+		} else if (ret == KEY_CODE_YES && ch == KeyPasteManual) {
+			paste ^= true;
 		} else if (paste || literal) {
 			edit(windows.ptrs[windows.show]->id, EditInsert, ch);
 		} else if (ret == KEY_CODE_YES) {