git: plan9front

Download patch

ref: 5769ead242995ce204c3adbb5f8a1766bc21874d
parent: 487e0864fa29f2f5cd2c82c1603c0d8bf9aa48d1
author: Jacob Moody <moody@posixcafe.org>
date: Wed Jun 11 22:08:56 EDT 2025

ktrans: use ^' to escape other control characters (thanks B. Wilson)

--- a/sys/src/cmd/ktrans/main.c
+++ b/sys/src/cmd/ktrans/main.c
@@ -726,7 +726,7 @@
 static void
 keythread(void*)
 {
-	int lang;
+	int lang, litmode;
 	char m[Msgsize];
 	char *todict;
 	Map lkup;
@@ -737,6 +737,7 @@
 	Str line;
 
 	peek[0] = lang = deflang;
+	litmode = 0;
 	resetstr(&line, nil);
 	if(lang == LangJP || lang == LangZH)
 		emitutf(dictch, peek, 1);
@@ -758,11 +759,20 @@
 			while(compacting)
 				yield();
 			n = chartorune(&r, p);
+			if(litmode){
+				emitutf(output, p, 1);
+				litmode = 0;
+				continue;
+			}
 			if(checklang(&lang, r)){
 				emitutf(dictch, "", 1);
 				if(lang == LangJP || lang == LangZH)
 					emitutf(dictch, p, 1);
 				resetstr(&line, nil);
+				continue;
+			}
+			if(r == ''){ // ^'
+				litmode = 1;
 				continue;
 			}
 			if(lang == LangEN){
--