passthrough unmatched keys
This commit is contained in:
1
ko.c
1
ko.c
@@ -203,7 +203,6 @@ transko(Im *im, Rune c)
|
|||||||
e.s = im->pre;
|
e.s = im->pre;
|
||||||
sclear(&im->pre);
|
sclear(&im->pre);
|
||||||
}
|
}
|
||||||
sputr(&e.s, c);
|
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10
strans.c
10
strans.c
@@ -185,10 +185,8 @@ transmap(Im *im, Rune c)
|
|||||||
e.s = im->pre;
|
e.s = im->pre;
|
||||||
sclear(&key);
|
sclear(&key);
|
||||||
sputr(&key, c);
|
sputr(&key, c);
|
||||||
if(!maplookup(t, &key, &e.dict)){
|
if(!maplookup(t, &key, &e.dict))
|
||||||
sputr(&e.s, c);
|
|
||||||
return e;
|
return e;
|
||||||
}
|
|
||||||
e.eat = 1;
|
e.eat = 1;
|
||||||
sputr(&e.next, c);
|
sputr(&e.next, c);
|
||||||
return e;
|
return e;
|
||||||
@@ -273,14 +271,16 @@ keystroke(u32int ks, u32int mod, Str *com)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if(ks > 0x7f || ks == ' '){
|
if(ks > 0x7f || ks == ' '){
|
||||||
|
if(im.pre.n == 0)
|
||||||
|
return 0;
|
||||||
commit(com);
|
commit(com);
|
||||||
sputr(com, ks);
|
sputr(com, ks);
|
||||||
reset();
|
reset();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
dotrans(ks, com);
|
n = dotrans(ks, com);
|
||||||
show();
|
show();
|
||||||
return 1;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
4
vi.c
4
vi.c
@@ -101,10 +101,8 @@ transvi(Im *im, Rune c)
|
|||||||
return transmap(im, c);
|
return transmap(im, c);
|
||||||
|
|
||||||
memset(&e, 0, sizeof e);
|
memset(&e, 0, sizeof e);
|
||||||
if(im->pre.n == 0){
|
if(im->pre.n == 0)
|
||||||
sputr(&e.s, c);
|
|
||||||
return e;
|
return e;
|
||||||
}
|
|
||||||
if(im->pre.r[im->pre.n - 1] == '\\'){
|
if(im->pre.r[im->pre.n - 1] == '\\'){
|
||||||
pre = im->pre;
|
pre = im->pre;
|
||||||
pre.n--;
|
pre.n--;
|
||||||
|
|||||||
Reference in New Issue
Block a user