about summary refs log tree commit diff
path: root/edit.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--edit.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/edit.c b/edit.c
index 88301f6..93cba12 100644
--- a/edit.c
+++ b/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);
7Define ui.c BUF_LEN with enumJune McEnroe 2018-08-07Hack clang into checking uiFmt format stringsJune McEnroe 2018-08-07Handle PART and QUIT without messagesJune McEnroe 2018-08-07Make safe filling the who bufferJune McEnroe 2018-08-07Add reverse and reset IRC formatting codesJune McEnroe 2018-08-06Rewrite line editing again, add formattingJune McEnroe 2018-08-06Fix allocation size in vaswprintfJune McEnroe 2018-08-06Implement word wrappingJune McEnroe 2018-08-06Use wchar_t strings for all of UIJune McEnroe 2018-08-06Rename line editing functionsJune McEnroe 2018-08-05Initialize all possible color pairsJune McEnroe 2018-08-05Refactor color initializationJune McEnroe 2018-08-05Add ^L redrawJune McEnroe 2018-08-05Use 16 colors if availableJune McEnroe 2018-08-05Limit parsed colors to number of mIRC colorsJune McEnroe 2018-08-04Show source link on exitJune McEnroe 2018-08-04Implement line editing, scrollingJune McEnroe 2018-08-04Handle /topicJune McEnroe