add eomji(ctrl+e)
TODO: Some emojis can't be displayed. A font fallback or font merge is required.
This commit is contained in:
parent
436a49c3ca
commit
97ae9b1709
1
dat.h
1
dat.h
@ -13,6 +13,7 @@ enum
|
|||||||
LangJP = 0x0e,
|
LangJP = 0x0e,
|
||||||
LangJPK = 0x0b,
|
LangJPK = 0x0b,
|
||||||
LangKO = 0x13,
|
LangKO = 0x13,
|
||||||
|
LangEMOJI = 0x05,
|
||||||
|
|
||||||
Fontsz = 32,
|
Fontsz = 32,
|
||||||
Fontbase = 4,
|
Fontbase = 4,
|
||||||
|
|||||||
179
map/emoji.dict
Normal file
179
map/emoji.dict
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
! ⚠ ≠
|
||||||
|
!! ⚠
|
||||||
|
!= ≠
|
||||||
|
* ★
|
||||||
|
** ★
|
||||||
|
+ ±
|
||||||
|
+- ±
|
||||||
|
- →
|
||||||
|
-> →
|
||||||
|
. · … ÷
|
||||||
|
.. · …
|
||||||
|
... …
|
||||||
|
./ ÷
|
||||||
|
: ☹ ☺
|
||||||
|
:( ☹
|
||||||
|
:) ☺
|
||||||
|
< ← ≤ ≠ ♥
|
||||||
|
<- ←
|
||||||
|
<= ≤
|
||||||
|
<> ≠
|
||||||
|
= ≡ ⇒
|
||||||
|
== ≡
|
||||||
|
=> ⇒
|
||||||
|
> ≥
|
||||||
|
>= ≥
|
||||||
|
^ ⁽ ⁾ ⁺ ⁻ ⁼ ⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁱ ⁿ
|
||||||
|
^( ⁽
|
||||||
|
^) ⁾
|
||||||
|
^+ ⁺
|
||||||
|
^- ⁻
|
||||||
|
^= ⁼
|
||||||
|
_ ₍ ₎ ₊ ₋ ₌ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₐ ₑ ₒ ₓ
|
||||||
|
_( ₍
|
||||||
|
_) ₎
|
||||||
|
_+ ₊
|
||||||
|
_- ₋
|
||||||
|
_= ₌
|
||||||
|
~ ≈
|
||||||
|
~= ≈
|
||||||
|
^0 ⁰
|
||||||
|
_0 ₀
|
||||||
|
^1 ¹
|
||||||
|
_1 ₁
|
||||||
|
^2 ²
|
||||||
|
_2 ₂
|
||||||
|
<3 ♥
|
||||||
|
^3 ³
|
||||||
|
_3 ₃
|
||||||
|
^4 ⁴
|
||||||
|
_4 ₄
|
||||||
|
^5 ⁵
|
||||||
|
_5 ₅
|
||||||
|
^6 ⁶
|
||||||
|
_6 ₆
|
||||||
|
^7 ⁷
|
||||||
|
_7 ₇
|
||||||
|
^8 ⁸
|
||||||
|
_8 ₈
|
||||||
|
^9 ⁹
|
||||||
|
_9 ₉
|
||||||
|
_a ₐ
|
||||||
|
a α
|
||||||
|
al α
|
||||||
|
alp α
|
||||||
|
alph α
|
||||||
|
alpha α
|
||||||
|
b β
|
||||||
|
be β
|
||||||
|
bet β
|
||||||
|
beta β
|
||||||
|
c χ
|
||||||
|
ch χ
|
||||||
|
chi χ
|
||||||
|
d ° δ ↓
|
||||||
|
D Δ
|
||||||
|
de ° δ
|
||||||
|
De Δ
|
||||||
|
deg °
|
||||||
|
del δ
|
||||||
|
delt δ
|
||||||
|
delta δ
|
||||||
|
dn ↓
|
||||||
|
_e ₑ
|
||||||
|
e ε η
|
||||||
|
ep ε
|
||||||
|
eps ε
|
||||||
|
et η
|
||||||
|
eta η
|
||||||
|
g γ
|
||||||
|
G Γ
|
||||||
|
ga γ
|
||||||
|
Ga Γ
|
||||||
|
gam γ
|
||||||
|
gamm γ
|
||||||
|
gamma γ
|
||||||
|
^i ⁱ
|
||||||
|
i ∞ ι
|
||||||
|
I ∫
|
||||||
|
II ∫
|
||||||
|
in ∞
|
||||||
|
inf ∞
|
||||||
|
io ι
|
||||||
|
iot ι
|
||||||
|
iota ι
|
||||||
|
k κ
|
||||||
|
ka κ
|
||||||
|
kap κ
|
||||||
|
kapp κ
|
||||||
|
kappa κ
|
||||||
|
l λ
|
||||||
|
L Λ
|
||||||
|
la λ
|
||||||
|
La Λ
|
||||||
|
lam λ
|
||||||
|
lamb λ
|
||||||
|
lambd λ
|
||||||
|
lambda λ
|
||||||
|
m × μ
|
||||||
|
mu × μ
|
||||||
|
mul ×
|
||||||
|
^n ⁿ
|
||||||
|
n ν
|
||||||
|
nu ν
|
||||||
|
_o ₒ
|
||||||
|
o ω ●
|
||||||
|
O Ω
|
||||||
|
om ω
|
||||||
|
Om Ω
|
||||||
|
ome ω
|
||||||
|
omeg ω
|
||||||
|
omega ω
|
||||||
|
oo ●
|
||||||
|
p φ π ψ
|
||||||
|
P Φ Π ∏ Ψ
|
||||||
|
ph φ
|
||||||
|
Ph Φ
|
||||||
|
phi φ
|
||||||
|
pi π
|
||||||
|
Pi Π
|
||||||
|
PP ∏
|
||||||
|
ps ψ
|
||||||
|
Ps Ψ
|
||||||
|
psi ψ
|
||||||
|
r ρ
|
||||||
|
rh ρ
|
||||||
|
rho ρ
|
||||||
|
s σ √
|
||||||
|
S Σ ∑
|
||||||
|
si σ
|
||||||
|
Si Σ
|
||||||
|
sig σ
|
||||||
|
sigm σ
|
||||||
|
sigma σ
|
||||||
|
sq √
|
||||||
|
SS ∑
|
||||||
|
t τ θ
|
||||||
|
T Θ
|
||||||
|
ta τ
|
||||||
|
tau τ
|
||||||
|
th θ
|
||||||
|
Th Θ
|
||||||
|
the θ
|
||||||
|
thet θ
|
||||||
|
theta θ
|
||||||
|
u ↑ υ
|
||||||
|
up ↑ υ
|
||||||
|
ups υ
|
||||||
|
v ✓
|
||||||
|
vv ✓
|
||||||
|
_x ₓ
|
||||||
|
x ξ ✗
|
||||||
|
X Ξ
|
||||||
|
xi ξ
|
||||||
|
Xi Ξ
|
||||||
|
xx ✗
|
||||||
|
z ζ
|
||||||
|
ze ζ
|
||||||
|
zet ζ
|
||||||
|
zeta ζ
|
||||||
179
map/emoji.map
Normal file
179
map/emoji.map
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
! !
|
||||||
|
!! ⚠
|
||||||
|
!= ≠
|
||||||
|
* *
|
||||||
|
** ★
|
||||||
|
+ +
|
||||||
|
+- ±
|
||||||
|
- -
|
||||||
|
-> →
|
||||||
|
. .
|
||||||
|
.. ·
|
||||||
|
... …
|
||||||
|
./ ÷
|
||||||
|
: :
|
||||||
|
:( ☹
|
||||||
|
:) ☺
|
||||||
|
< <
|
||||||
|
<- ←
|
||||||
|
<= ≤
|
||||||
|
<> ≠
|
||||||
|
= =
|
||||||
|
== ≡
|
||||||
|
=> ⇒
|
||||||
|
> >
|
||||||
|
>= ≥
|
||||||
|
^ ^
|
||||||
|
^( ⁽
|
||||||
|
^) ⁾
|
||||||
|
^+ ⁺
|
||||||
|
^- ⁻
|
||||||
|
^= ⁼
|
||||||
|
_ _
|
||||||
|
_( ₍
|
||||||
|
_) ₎
|
||||||
|
_+ ₊
|
||||||
|
_- ₋
|
||||||
|
_= ₌
|
||||||
|
~ ~
|
||||||
|
~= ≈
|
||||||
|
^0 ⁰
|
||||||
|
_0 ₀
|
||||||
|
^1 ¹
|
||||||
|
_1 ₁
|
||||||
|
^2 ²
|
||||||
|
_2 ₂
|
||||||
|
<3 ♥
|
||||||
|
^3 ³
|
||||||
|
_3 ₃
|
||||||
|
^4 ⁴
|
||||||
|
_4 ₄
|
||||||
|
^5 ⁵
|
||||||
|
_5 ₅
|
||||||
|
^6 ⁶
|
||||||
|
_6 ₆
|
||||||
|
^7 ⁷
|
||||||
|
_7 ₇
|
||||||
|
^8 ⁸
|
||||||
|
_8 ₈
|
||||||
|
^9 ⁹
|
||||||
|
_9 ₉
|
||||||
|
_a ₐ
|
||||||
|
a a
|
||||||
|
al al
|
||||||
|
alp alp
|
||||||
|
alph alph
|
||||||
|
alpha α
|
||||||
|
b b
|
||||||
|
be be
|
||||||
|
bet bet
|
||||||
|
beta β
|
||||||
|
c c
|
||||||
|
ch ch
|
||||||
|
chi χ
|
||||||
|
d d
|
||||||
|
D D
|
||||||
|
de de
|
||||||
|
De Δ
|
||||||
|
deg °
|
||||||
|
del del
|
||||||
|
delt delt
|
||||||
|
delta δ
|
||||||
|
dn ↓
|
||||||
|
_e ₑ
|
||||||
|
e e
|
||||||
|
ep ep
|
||||||
|
eps ε
|
||||||
|
et et
|
||||||
|
eta η
|
||||||
|
g g
|
||||||
|
G G
|
||||||
|
ga ga
|
||||||
|
Ga Γ
|
||||||
|
gam gam
|
||||||
|
gamm gamm
|
||||||
|
gamma γ
|
||||||
|
^i ⁱ
|
||||||
|
i i
|
||||||
|
I I
|
||||||
|
II ∫
|
||||||
|
in in
|
||||||
|
inf ∞
|
||||||
|
io io
|
||||||
|
iot iot
|
||||||
|
iota ι
|
||||||
|
k k
|
||||||
|
ka ka
|
||||||
|
kap kap
|
||||||
|
kapp kapp
|
||||||
|
kappa κ
|
||||||
|
l l
|
||||||
|
L L
|
||||||
|
la la
|
||||||
|
La Λ
|
||||||
|
lam lam
|
||||||
|
lamb lamb
|
||||||
|
lambd lambd
|
||||||
|
lambda λ
|
||||||
|
m m
|
||||||
|
mu μ
|
||||||
|
mul ×
|
||||||
|
^n ⁿ
|
||||||
|
n n
|
||||||
|
nu ν
|
||||||
|
_o ₒ
|
||||||
|
o o
|
||||||
|
O O
|
||||||
|
om om
|
||||||
|
Om Ω
|
||||||
|
ome ome
|
||||||
|
omeg omeg
|
||||||
|
omega ω
|
||||||
|
oo ●
|
||||||
|
p p
|
||||||
|
P P
|
||||||
|
ph ph
|
||||||
|
Ph Φ
|
||||||
|
phi φ
|
||||||
|
pi π
|
||||||
|
Pi Π
|
||||||
|
PP ∏
|
||||||
|
ps ps
|
||||||
|
Ps Ψ
|
||||||
|
psi ψ
|
||||||
|
r r
|
||||||
|
rh rh
|
||||||
|
rho ρ
|
||||||
|
s s
|
||||||
|
S S
|
||||||
|
si si
|
||||||
|
Si Σ
|
||||||
|
sig sig
|
||||||
|
sigm sigm
|
||||||
|
sigma σ
|
||||||
|
sq √
|
||||||
|
SS ∑
|
||||||
|
t t
|
||||||
|
T T
|
||||||
|
ta ta
|
||||||
|
tau τ
|
||||||
|
th th
|
||||||
|
Th Θ
|
||||||
|
the the
|
||||||
|
thet thet
|
||||||
|
theta θ
|
||||||
|
u u
|
||||||
|
up ↑
|
||||||
|
ups υ
|
||||||
|
v v
|
||||||
|
vv ✓
|
||||||
|
_x ₓ
|
||||||
|
x x
|
||||||
|
X X
|
||||||
|
xi ξ
|
||||||
|
Xi Ξ
|
||||||
|
xx ✗
|
||||||
|
z z
|
||||||
|
ze ze
|
||||||
|
zet zet
|
||||||
|
zeta ζ
|
||||||
99
map/emoji.src
Normal file
99
map/emoji.src
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
!! ⚠
|
||||||
|
!= ≠
|
||||||
|
** ★
|
||||||
|
+- ±
|
||||||
|
-> →
|
||||||
|
.. ·
|
||||||
|
... …
|
||||||
|
./ ÷
|
||||||
|
:( ☹
|
||||||
|
:) ☺
|
||||||
|
<- ←
|
||||||
|
<= ≤
|
||||||
|
<> ≠
|
||||||
|
== ≡
|
||||||
|
=> ⇒
|
||||||
|
>= ≥
|
||||||
|
^( ⁽
|
||||||
|
^) ⁾
|
||||||
|
^+ ⁺
|
||||||
|
^- ⁻
|
||||||
|
^= ⁼
|
||||||
|
_( ₍
|
||||||
|
_) ₎
|
||||||
|
_+ ₊
|
||||||
|
_- ₋
|
||||||
|
_= ₌
|
||||||
|
~= ≈
|
||||||
|
^0 ⁰
|
||||||
|
_0 ₀
|
||||||
|
^1 ¹
|
||||||
|
_1 ₁
|
||||||
|
^2 ²
|
||||||
|
_2 ₂
|
||||||
|
<3 ♥
|
||||||
|
^3 ³
|
||||||
|
_3 ₃
|
||||||
|
^4 ⁴
|
||||||
|
_4 ₄
|
||||||
|
^5 ⁵
|
||||||
|
_5 ₅
|
||||||
|
^6 ⁶
|
||||||
|
_6 ₆
|
||||||
|
^7 ⁷
|
||||||
|
_7 ₇
|
||||||
|
^8 ⁸
|
||||||
|
_8 ₈
|
||||||
|
^9 ⁹
|
||||||
|
_9 ₉
|
||||||
|
_a ₐ
|
||||||
|
alpha α
|
||||||
|
beta β
|
||||||
|
chi χ
|
||||||
|
deg °
|
||||||
|
delta δ
|
||||||
|
De Δ
|
||||||
|
dn ↓
|
||||||
|
_e ₑ
|
||||||
|
eps ε
|
||||||
|
eta η
|
||||||
|
gamma γ
|
||||||
|
Ga Γ
|
||||||
|
^i ⁱ
|
||||||
|
II ∫
|
||||||
|
inf ∞
|
||||||
|
iota ι
|
||||||
|
kappa κ
|
||||||
|
lambda λ
|
||||||
|
La Λ
|
||||||
|
mul ×
|
||||||
|
mu μ
|
||||||
|
^n ⁿ
|
||||||
|
nu ν
|
||||||
|
omega ω
|
||||||
|
Om Ω
|
||||||
|
oo ●
|
||||||
|
_o ₒ
|
||||||
|
phi φ
|
||||||
|
Ph Φ
|
||||||
|
pi π
|
||||||
|
Pi Π
|
||||||
|
PP ∏
|
||||||
|
psi ψ
|
||||||
|
Ps Ψ
|
||||||
|
rho ρ
|
||||||
|
sigma σ
|
||||||
|
Si Σ
|
||||||
|
sq √
|
||||||
|
SS ∑
|
||||||
|
tau τ
|
||||||
|
theta θ
|
||||||
|
Th Θ
|
||||||
|
up ↑
|
||||||
|
ups υ
|
||||||
|
vv ✓
|
||||||
|
xi ξ
|
||||||
|
Xi Ξ
|
||||||
|
xx ✗
|
||||||
|
_x ₓ
|
||||||
|
zeta ζ
|
||||||
39
map/mkemoji
Executable file
39
map/mkemoji
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
awk '
|
||||||
|
BEGIN { FS = "\t" }
|
||||||
|
/^$/ { next }
|
||||||
|
{
|
||||||
|
key = $1
|
||||||
|
val = $2
|
||||||
|
map[key] = val
|
||||||
|
for(i = 1; i < length(key); i++){
|
||||||
|
p = substr(key, 1, i)
|
||||||
|
if(!(p in map))
|
||||||
|
map[p] = p
|
||||||
|
}
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
for(k in map)
|
||||||
|
print k "\t" map[k]
|
||||||
|
}
|
||||||
|
' $1 | sort -k1,1 > emoji.map
|
||||||
|
|
||||||
|
awk '
|
||||||
|
BEGIN { FS = "\t" }
|
||||||
|
/^$/ { next }
|
||||||
|
{
|
||||||
|
key = $1
|
||||||
|
val = $2
|
||||||
|
for(i = 1; i <= length(key); i++){
|
||||||
|
p = substr(key, 1, i)
|
||||||
|
dict[p] = dict[p] " " val
|
||||||
|
}
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
for(p in dict){
|
||||||
|
sub(/^ /, "", dict[p])
|
||||||
|
print p "\t" dict[p]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' $1 | sort -k1,1 > emoji.dict
|
||||||
31
strans.c
31
strans.c
@ -7,6 +7,7 @@ Lang langs[] = {
|
|||||||
{LangJP, "hira", "kanji", nil, nil},
|
{LangJP, "hira", "kanji", nil, nil},
|
||||||
{LangJPK, "kata", "kanji", nil, nil},
|
{LangJPK, "kata", "kanji", nil, nil},
|
||||||
{LangKO, "hangul", nil, nil, nil},
|
{LangKO, "hangul", nil, nil, nil},
|
||||||
|
{LangEMOJI, "emoji", "emoji", nil, nil},
|
||||||
};
|
};
|
||||||
int nlang = nelem(langs);
|
int nlang = nelem(langs);
|
||||||
|
|
||||||
@ -36,7 +37,10 @@ show(void)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
sclear(&dc.preedit);
|
sclear(&dc.preedit);
|
||||||
mapget(im.l->map, &im.pre, &dc.preedit);
|
if(im.l == nil)
|
||||||
|
return;
|
||||||
|
if(!mapget(im.l->map, &im.pre, &dc.preedit))
|
||||||
|
dc.preedit = im.pre;
|
||||||
dc.nkouho = im.nkouho;
|
dc.nkouho = im.nkouho;
|
||||||
dc.sel = im.sel;
|
dc.sel = im.sel;
|
||||||
for(i = 0; i < dc.nkouho; i++)
|
for(i = 0; i < dc.nkouho; i++)
|
||||||
@ -44,6 +48,14 @@ show(void)
|
|||||||
chansend(drawc, &dc);
|
chansend(drawc, &dc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
reset(void)
|
||||||
|
{
|
||||||
|
sclear(&im.pre);
|
||||||
|
clearkouho();
|
||||||
|
show();
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dictq(void)
|
dictq(void)
|
||||||
{
|
{
|
||||||
@ -78,6 +90,10 @@ commit(Str *com)
|
|||||||
{
|
{
|
||||||
Str kana;
|
Str kana;
|
||||||
|
|
||||||
|
if(im.l == nil){
|
||||||
|
sclear(&im.pre);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(mapget(im.l->map, &im.pre, &kana))
|
if(mapget(im.l->map, &im.pre, &kana))
|
||||||
sappend(com, &kana);
|
sappend(com, &kana);
|
||||||
sclear(&im.pre);
|
sclear(&im.pre);
|
||||||
@ -165,14 +181,6 @@ flush:
|
|||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
reset(void)
|
|
||||||
{
|
|
||||||
sclear(&im.pre);
|
|
||||||
clearkouho();
|
|
||||||
show();
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
keystroke(u32int ks, u32int mod, Str *com)
|
keystroke(u32int ks, u32int mod, Str *com)
|
||||||
{
|
{
|
||||||
@ -244,13 +252,14 @@ keystroke(u32int ks, u32int mod, Str *com)
|
|||||||
}
|
}
|
||||||
if(im.l == nil)
|
if(im.l == nil)
|
||||||
return 0;
|
return 0;
|
||||||
if(ks > 0x7f || !isalpha(ks)){
|
if(ks > 0x7f || ks == ' '){
|
||||||
commit(com);
|
commit(com);
|
||||||
sputr(com, ks);
|
sputr(com, ks);
|
||||||
reset();
|
reset();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return dotrans(ks, com);
|
dotrans(ks, com);
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user