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,
|
||||
LangJPK = 0x0b,
|
||||
LangKO = 0x13,
|
||||
LangEMOJI = 0x05,
|
||||
|
||||
Fontsz = 32,
|
||||
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},
|
||||
{LangJPK, "kata", "kanji", nil, nil},
|
||||
{LangKO, "hangul", nil, nil, nil},
|
||||
{LangEMOJI, "emoji", "emoji", nil, nil},
|
||||
};
|
||||
int nlang = nelem(langs);
|
||||
|
||||
@ -36,7 +37,10 @@ show(void)
|
||||
int i;
|
||||
|
||||
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.sel = im.sel;
|
||||
for(i = 0; i < dc.nkouho; i++)
|
||||
@ -44,6 +48,14 @@ show(void)
|
||||
chansend(drawc, &dc);
|
||||
}
|
||||
|
||||
static void
|
||||
reset(void)
|
||||
{
|
||||
sclear(&im.pre);
|
||||
clearkouho();
|
||||
show();
|
||||
}
|
||||
|
||||
static void
|
||||
dictq(void)
|
||||
{
|
||||
@ -78,6 +90,10 @@ commit(Str *com)
|
||||
{
|
||||
Str kana;
|
||||
|
||||
if(im.l == nil){
|
||||
sclear(&im.pre);
|
||||
return;
|
||||
}
|
||||
if(mapget(im.l->map, &im.pre, &kana))
|
||||
sappend(com, &kana);
|
||||
sclear(&im.pre);
|
||||
@ -165,14 +181,6 @@ flush:
|
||||
return e;
|
||||
}
|
||||
|
||||
static void
|
||||
reset(void)
|
||||
{
|
||||
sclear(&im.pre);
|
||||
clearkouho();
|
||||
show();
|
||||
}
|
||||
|
||||
static int
|
||||
keystroke(u32int ks, u32int mod, Str *com)
|
||||
{
|
||||
@ -244,13 +252,14 @@ keystroke(u32int ks, u32int mod, Str *com)
|
||||
}
|
||||
if(im.l == nil)
|
||||
return 0;
|
||||
if(ks > 0x7f || !isalpha(ks)){
|
||||
if(ks > 0x7f || ks == ' '){
|
||||
commit(com);
|
||||
sputr(com, ks);
|
||||
reset();
|
||||
return 1;
|
||||
}
|
||||
return dotrans(ks, com);
|
||||
dotrans(ks, com);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Loading…
Reference in New Issue
Block a user