From 7e69827c135bd2424f2bcdacaaf1983c332175e5 Mon Sep 17 00:00:00 2001 From: Hojun-Cho Date: Thu, 28 May 2026 23:38:23 +0900 Subject: [PATCH] passthrough unmatched keys --- ko.c | 1 - strans.c | 10 +++++----- vi.c | 4 +--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/ko.c b/ko.c index 8cb221e..03fa4eb 100644 --- a/ko.c +++ b/ko.c @@ -203,7 +203,6 @@ transko(Im *im, Rune c) e.s = im->pre; sclear(&im->pre); } - sputr(&e.s, c); return e; } diff --git a/strans.c b/strans.c index cfc4721..90c5c01 100644 --- a/strans.c +++ b/strans.c @@ -185,10 +185,8 @@ transmap(Im *im, Rune c) e.s = im->pre; sclear(&key); sputr(&key, c); - if(!maplookup(t, &key, &e.dict)){ - sputr(&e.s, c); + if(!maplookup(t, &key, &e.dict)) return e; - } e.eat = 1; sputr(&e.next, c); return e; @@ -273,14 +271,16 @@ keystroke(u32int ks, u32int mod, Str *com) return 1; } if(ks > 0x7f || ks == ' '){ + if(im.pre.n == 0) + return 0; commit(com); sputr(com, ks); reset(); return 1; } - dotrans(ks, com); + n = dotrans(ks, com); show(); - return 1; + return n; } static void diff --git a/vi.c b/vi.c index 6ca462b..a5a5e4e 100644 --- a/vi.c +++ b/vi.c @@ -101,10 +101,8 @@ transvi(Im *im, Rune c) return transmap(im, c); memset(&e, 0, sizeof e); - if(im->pre.n == 0){ - sputr(&e.s, c); + if(im->pre.n == 0) return e; - } if(im->pre.r[im->pre.n - 1] == '\\'){ pre = im->pre; pre.n--;