Add C-z C-v for literal next
A little annoying to make it a "chord" like this, but C-v is already used for scrolling, following Emacs-style key bindings (in order to have a way to scroll without using "special" keys like the arrows and page up/down), and C-z is at least already in the business of inserting control characters. This makes it possible to manually enter some things that are otherwise only possible with /exec printf.master
parent
0c5730708f
commit
7807848bda
|
@ -1,4 +1,4 @@
|
|||
.Dd January 26, 2021
|
||||
.Dd February 3, 2021
|
||||
.Dt CATGIRL 1
|
||||
.Os
|
||||
.
|
||||
|
@ -658,7 +658,9 @@ Scroll up a page.
|
|||
.El
|
||||
.
|
||||
.Ss IRC Formatting
|
||||
.Bl -tag -width Ds -compact
|
||||
.Bl -tag -width "C-z C-v" -compact
|
||||
.It Ic C-z C-v
|
||||
Insert the next input character literally.
|
||||
.It Ic C-z b
|
||||
Toggle bold.
|
||||
.It Ic C-z c
|
||||
|
|
8
ui.c
8
ui.c
|
@ -1003,19 +1003,22 @@ void uiRead(void) {
|
|||
}
|
||||
|
||||
wint_t ch;
|
||||
static bool paste, style;
|
||||
static bool paste, style, literal;
|
||||
for (int ret; ERR != (ret = wget_wch(input, &ch));) {
|
||||
if (ret == KEY_CODE_YES && ch == KeyPasteOn) {
|
||||
paste = true;
|
||||
} else if (ret == KEY_CODE_YES && ch == KeyPasteOff) {
|
||||
paste = false;
|
||||
} else if (paste) {
|
||||
} else if (paste || literal) {
|
||||
edit(windows.ptrs[windows.show]->id, EditInsert, ch);
|
||||
} else if (ret == KEY_CODE_YES) {
|
||||
keyCode(ch);
|
||||
} else if (ch == (L'Z' ^ L'@')) {
|
||||
style = true;
|
||||
continue;
|
||||
} else if (style && ch == (L'V' ^ L'@')) {
|
||||
literal = true;
|
||||
continue;
|
||||
} else if (style) {
|
||||
keyStyle(ch);
|
||||
} else if (iswcntrl(ch)) {
|
||||
|
@ -1024,6 +1027,7 @@ void uiRead(void) {
|
|||
edit(windows.ptrs[windows.show]->id, EditInsert, ch);
|
||||
}
|
||||
style = false;
|
||||
literal = false;
|
||||
}
|
||||
inputUpdate();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue