Add M-? to apply ROT13
parent
ef916ddaff
commit
0b3d927e03
|
@ -293,6 +293,9 @@ Delete line after cursor.
|
|||
.It Aq Sy Tab
|
||||
Cycle through completions
|
||||
for commands, nicks and channels.
|
||||
.
|
||||
.It Sy M-?
|
||||
ROT13-encode line.
|
||||
.El
|
||||
.
|
||||
.Ss IRC Formatting
|
||||
|
|
1
chat.h
1
chat.h
|
@ -162,6 +162,7 @@ enum Edit {
|
|||
EditKillBackWord,
|
||||
EditKillForeWord,
|
||||
EditKillLine,
|
||||
EditROT13,
|
||||
EditComplete,
|
||||
EditEnter,
|
||||
};
|
||||
|
|
11
edit.c
11
edit.c
|
@ -19,6 +19,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <sysexits.h>
|
||||
#include <wchar.h>
|
||||
#include <wctype.h>
|
||||
|
||||
#include "chat.h"
|
||||
|
||||
|
@ -94,6 +95,14 @@ static void killForeWord(void) {
|
|||
line.ptr = from;
|
||||
}
|
||||
|
||||
static void rot13(void) {
|
||||
for (wchar_t *ch = line.buf; ch != line.end; ++ch) {
|
||||
if (!iswascii(*ch)) continue;
|
||||
if (iswupper(*ch)) *ch = L'A' + (*ch - L'A' + 13) % 26;
|
||||
if (iswlower(*ch)) *ch = L'a' + (*ch - L'a' + 13) % 26;
|
||||
}
|
||||
}
|
||||
|
||||
static char *prefix;
|
||||
static void complete(struct Tag tag) {
|
||||
if (!line.tab) {
|
||||
|
@ -175,6 +184,8 @@ void edit(struct Tag tag, enum Edit op, wchar_t ch) {
|
|||
break; case EditKillForeWord: reject(); killForeWord();
|
||||
break; case EditKillLine: reject(); line.end = line.ptr;
|
||||
|
||||
break; case EditROT13: accept(); rot13();
|
||||
|
||||
break; case EditComplete: complete(tag);
|
||||
|
||||
break; case EditEnter: accept(); enter(tag);
|
||||
|
|
1
ui.c
1
ui.c
|
@ -472,6 +472,7 @@ static void keyChar(wchar_t ch) {
|
|||
break; case L'f': edit(ui.view->tag, EditForeWord, 0);
|
||||
break; case L'\b': edit(ui.view->tag, EditKillBackWord, 0);
|
||||
break; case L'd': edit(ui.view->tag, EditKillForeWord, 0);
|
||||
break; case L'?': edit(ui.view->tag, EditROT13, 0);
|
||||
break; case L'm': uiLog(ui.view->tag, UICold, L"");
|
||||
break; default: {
|
||||
if (ch >= L'0' && ch <= L'9') uiViewNum(ch - L'0');
|
||||
|
|
Loading…
Reference in New Issue