From 693a1210a6b59b87beac301f05db550a45248688 Mon Sep 17 00:00:00 2001 From: Hojun-Cho Date: Sun, 16 Aug 2026 21:30:59 +0900 Subject: [PATCH] engine: romaji is case-blind Shift or Caps Lock made a Japanese key pass through as a Latin capital, so nothing composed with Caps Lock on; Korean already folds case. Latin text still has Ctrl+T. --- strans.c | 2 ++ tests/engine_test.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/strans.c b/strans.c index 834778f..8dc7fb9 100644 --- a/strans.c +++ b/strans.c @@ -700,6 +700,8 @@ transition(u32int ks, u32int mod, Str *com) return 0; if(im.l->lang == LangKO) ks = kokey(ks, mod); + else if(isjp(&im) && ks >= 'A' && ks <= 'Z') + ks += 'a' - 'A'; /* romaji is case-blind, Caps Lock included */ if(search.lang) return searchkey(ks, mod, com); n = movedelta(ks); diff --git a/tests/engine_test.c b/tests/engine_test.c index d5d9cf4..af88be5 100644 --- a/tests/engine_test.c +++ b/tests/engine_test.c @@ -1182,6 +1182,14 @@ engine_japanese_backspace_and_boundaries(struct ct *t) CT_CHECK(t, keystroke(' ', 0, &com)); checkstr(t, "real input boundary", "かんじ ", &com); } + + init(); + im.l = getlang(LangJP); + sclear(&com); + if(typekeys(t, "KA", &com)){ + impre(&im, &shown); + checkstr(t, "uppercase romaji", "か", &shown); + } } void