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){
--
⑨