aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--baserefresh.pl27
-rwxr-xr-xchecklines.py34
-rw-r--r--dotXCompose64
-rw-r--r--emoji-base229
-rwxr-xr-xemojitrans2.pl10
6 files changed, 287 insertions, 49 deletions
diff --git a/README.md b/README.md
index ca87563..a994339 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ your Compose key in X11 is controlled by (among other things) the file
of bindings for Unicode characters that are useful occasionally.
More contributions are welcome; there's a Git repository at
-<http://github.org/kragen/xcompose>. We're trying to come up with a
+<https://github.com/kragen/xcompose>. We're trying to come up with a
broadly acceptable set of keybindings that won't interfere with the
traditional Compose bindings, aren't too hard to type, and cover a
wide set of characters that are useful to use occasionally, making
diff --git a/baserefresh.pl b/baserefresh.pl
new file mode 100644
index 0000000..f684569
--- /dev/null
+++ b/baserefresh.pl
@@ -0,0 +1,27 @@
+#!/usr/bin/perl -n
+my $last;
+
+# The whole "base" file format took shape kind of sloppily, just getting a
+# list of likely-looking characters and all, which is why it's sort of a
+# mess. It also didn't really have good ways of updating it with new
+# emoji. This file is _part_ of such a solution: it takes in a "base" file
+# and adds the "<MM>" line after just those "#-" lines which are not
+# followed by a line that starts with "##" or with NO #-signs.
+
+BEGIN {binmode(STDOUT, ":utf8");
+ binmode(STDIN, ":utf8");
+}
+
+while (/^#- /) {
+ $last = $_;
+ print;
+ $_ = <>;
+ if (/^[^#]/ or /^##/) {
+ last;
+ }
+ $last = substr($last, 3);
+ @_ = split /;/, $last;
+ printf qq(<MM> \{%s\} : "%s" U%s\t# %s\n), lc($_[1]),chr(hex($_[0])), $_[0], $_[1];
+}
+print;
+
diff --git a/checklines.py3 b/checklines.py3
index dcc88e9..4551f0d 100755
--- a/checklines.py3
+++ b/checklines.py3
@@ -6,10 +6,12 @@ from unicodedata import name
import re
import sys
+linecount = 0
for line in sys.stdin:
line=line.strip()
if not line or line[0]=="#":
continue
+ linecount += 1
match=re.match(r'\s*(.*):\s*"(.*?)"\s*(\S*)\s*(#.*)?', line)
if not match:
print("({0})".format(line))
@@ -32,3 +34,5 @@ for line in sys.stdin:
print("\tNumber gives character: {0} ({1})".format(c, name(c)))
except Exception as e:
print("{0}\n\t{1}".format(line, e))
+
+print("Done. Checked %d lines."%linecount)
diff --git a/dotXCompose b/dotXCompose
index 76f776d..b22afc5 100644
--- a/dotXCompose
+++ b/dotXCompose
@@ -205,9 +205,14 @@ include "%L"
<Multi_key> <P> <less> : "ꟼ" UA7FC # LATIN EPIGRAPHIC LETTER REVERSED P
<Multi_key> <F> <BackSpace> : "ꟻ" UA7FB # LATIN EPIGRAPHIC LETTER REVERSED F
<Multi_key> <P> <BackSpace> : "ꟼ" UA7FC # LATIN EPIGRAPHIC LETTER REVERSED P
+<Multi_key> <F> <F> : "Ⅎ" U2132 # TURNED CAPITAL F
+<Multi_key> <F> <f> : "ⅎ" U214E # TURNED SMALL F
<Multi_key> <M> <W> : "ꟽ" UA7FD # LATIN EPIGRAPHIC LETTER INVERTED M
+<Multi_key> <M> <M> : "Ɯ" U019C # LATIN CAPITAL LETTER TURNED M
<Multi_key> <I> <bar> : "ꟾ" UA7FE # LATIN EPIGRAPHIC LETTER I LONGA
<Multi_key> <M> <slash> : "ꟿ" UA7FF # LATIN EPIGRAPHIC LETTER ARCHAIC M
+<Multi_key> <2> <2> : "↊" U218A # TURNED DIGIT TWO
+<Multi_key> <3> <3> : "↋" U218B # TURNED DIGIT THREE
# I'd been avoiding this because we already have ∃...
# Hey, these, being *letters* can be used as identifiers in some languages...
<Multi_key> <E> <less> : "Ǝ" U018E # LATIN CAPITAL LETTER REVERSED E
@@ -272,7 +277,6 @@ include "%L"
<Multi_key> <R> <O> : "Ꝛ" UA75A # LATIN CAPITAL LETTER R ROTUNDA
# something, anyway.
<Multi_key> <R> <0> : "Ꝛ" UA75A # LATIN CAPITAL LETTER R ROTUNDA
-
# Custom additions: Mathematical symbols
<Multi_key> <exclam> <equal> : "≠" U2260 # NOT EQUAL TO
<Multi_key> <slash> <equal> : "≠" U2260 # NOT EQUAL TO
@@ -290,6 +294,9 @@ include "%L"
<Multi_key> <i> <n> : "∈" U2208 # ELEMENT OF
<Multi_key> <exclam> <i> <n> : "∉" U2209 # NOT AN ELEMENT OF
<Multi_key> <U2208> <slash> : "∉" U2209 # NOT AN ELEMENT OF (I have ∈ on my keyboard...)
+<Multi_key> <period> <U2208> : "∊" U220A # SMALL ELEMENT OF
+<Multi_key> <period> <U220B> : "∍" U220D # SMALL CONTAINS AS MEMBER
+# For the above for people without ∈/∋ on their kbds? {♫i/n} and {♫n/i}?
<Multi_key> <n> <i> : "∋" U220B # CONTAINS AS MEMBER (I hope this doesn't conflict)
<Multi_key> <slash> <n> <i> : "∌" U220C # DOES NOT CONTAIN AS MEMBER
# <exclam><n><i> would conflict, with <exclam> <n> for N WITH UNDERDOT, etc.
@@ -332,6 +339,8 @@ include "%L"
<Multi_key> <braceleft> <equal> <parenleft> : "⊆" U2286 # SUBSET OF OR EQUAL TO
<Multi_key> <exclam> <braceleft> <parenleft> : "⊄" U2284 # NOT A SUBSET OF
<Multi_key> <slash> <braceleft> <parenleft> : "⊄" U2284 # NOT A SUBSET OF
+<Multi_key> <exclam> <braceleft> <parenright> : "⊅" U2285 # NOT A SUPERSET OF
+<Multi_key> <slash> <braceleft> <parenright> : "⊅" U2285 # NOT A SUPERSET OF
<Multi_key> <braceleft> <parenright> : "⊃" U2283 # SUPERSET OF
<Multi_key> <braceleft> <equal> <parenright> : "⊇" U2287 # SUPERSET OF OR EQUAL TO
<Multi_key> <E> <E> : "∃" U2203 # THERE EXISTS
@@ -373,8 +382,8 @@ include "%L"
<Multi_key> <Multi_key> <i> <i> <i> <n> <t> : "∭" U222D # TRIPLE INTEGRAL
<Multi_key> <Multi_key> <i> <i> <i> <i> <n> <t> : "⨌" U2A0C # QUADRUPLE INTEGRAL
<Multi_key> <Multi_key> <o> <i> <n> <t> : "∮" U222E # CONTOUR INTEGRAL
-<Multi_key> <Multi_key> <p> <i> <n> <t> : "⨕" U2A15 # SEMICIRCULAR POLE INTEGRAL
-<Multi_key> <Multi_key> <c> <P> <i> <n> <t> : "⨓" U2A13 # INTEGRAL AROUND POINT
+<Multi_key> <Multi_key> <p> <i> <n> <t> : "⨕" U2A15 # INTEGRAL AROUND A POINT OPERATOR
+<Multi_key> <Multi_key> <c> <P> <i> <n> <t> : "⨓" U2A13 # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
<Multi_key> <Multi_key> <o> <i> <i> <n> <t> : "∯" U222F # SURFACE INTEGRAL
<Multi_key> <Multi_key> <o> <i> <i> <i> <n> <t> : "∰" U2230 # VOLUME INTEGRAL
<Multi_key> <Multi_key> <g> <i> <n> <t> : "⨘" U2A18 # GEOMETRIC INTEGRAL
@@ -393,7 +402,6 @@ include "%L"
<Multi_key> <w> <p> : "℘" U2118 # SCRIPT CAPITAL P
# Would we prefer 20D1 COMBINING RIGHT HARPOON ABOVE?
<Multi_key> <asciicircum> <greater> : "⃗" U20D7 # COMBINING RIGHT ARROW ABOVE (vector)
-# There's a whole passel of these guys starting at U+1D538 but I have no fonts for those.
<Multi_key> <bar> <C> : "ℂ" U2102 # DOUBLE-STRUCK CAPITAL C (set of complex numbers)
<Multi_key> <bar> <N> : "ℕ" U2115 # DOUBLE-STRUCK CAPITAL N (natural number)
<Multi_key> <bar> <P> : "ℙ" U2119 # DOUBLE-STRUCK CAPITAL P
@@ -698,6 +706,7 @@ include "%L"
<Multi_key> <percent> <X> : "Ⅹ" U2169 # ROMAN NUMERAL TEN
<Multi_key> <percent> <L> : "Ⅼ" U216C # ROMAN NUMERAL FIFTY
<Multi_key> <percent> <C> : "Ⅽ" U216D # ROMAN NUMERAL ONE HUNDRED
+<Multi_key> <percent> <less> <C> : "Ↄ" U2183 # ROMAN NUMERAL REVERSED ONE HUNDRED
<Multi_key> <percent> <D> : "Ⅾ" U216E # ROMAN NUMERAL FIVE HUNDRED
<Multi_key> <percent> <M> : "Ⅿ" U216F # ROMAN NUMERAL ONE THOUSAND
<Multi_key> <percent> <0> <C> <D> : "ↀ" U2180 # ROMAN NUMERAL ONE THOUSAND C D
@@ -743,7 +752,6 @@ include "%L"
<Multi_key> <semicolon> <BackSpace> : "⁏" U204F # REVERSED SEMICOLON
# Keep looking into big hunks of Latin Extended-D, A720- et seq.
<Multi_key> <less> <3> : "♥" U2665 # BLACK HEART SUIT
-<Multi_key> <3> <3> : "♣" U2663 # BLACK CLUB SUIT
<Multi_key> <o> <8> : "♣" U2663 # BLACK CLUB SUIT
<Multi_key> <c> <3> : "♣" U2663 # BLACK CLUB SUIT
<Multi_key> <less> <greater> : "♢" U2662 # WHITE DIAMOND SUIT
@@ -807,6 +815,38 @@ include "%L"
<Multi_key> <bracketleft> <6> <bracketright> : "⚅" U2685 # DIE FACE-6
# 267B BLACK UNIVERSAL RECYCLING SYMBOL
+<Multi_key> <parenleft> <C> <C> <parenright> : "🅭" U1F16D # CIRCLED CC
+<Multi_key> <C> <parenleft> <C> <C> <parenright> : "🅭" U1F16D # CIRCLED CC
+<Multi_key> <parenleft> <backslash> <C> <parenright> : "🅮" U1F16E # CIRCLED C WITH OVERLAID BACKSLASH
+<Multi_key> <parenleft> <slash> <C> <parenright> : "🅮" U1F16E # CIRCLED C WITH OVERLAID BACKSLASH
+<Multi_key> <C> <parenleft> <backslash> <C> <parenright> : "🅮" U1F16E # CIRCLED C WITH OVERLAID BACKSLASH
+<Multi_key> <C> <parenleft> <slash> <C> <parenright> : "🅮" U1F16E # CIRCLED C WITH OVERLAID BACKSLASH
+<Multi_key> <C> <parenleft> <B> <Y> <parenright> : "🅯" U1F16F # CIRCLED HUMAN FIGURE
+<Multi_key> <C> <parenleft> <S> <A> <parenright> : "🄎" U1F10E # CIRCLED ANTICLOCKWISE ARROW
+## ugh, this doesn't (usually) match the style of the others. They're practically emoji; ⊜ is a math symbol.
+<Multi_key> <C> <parenleft> <N> <D> <parenright> : "⊜" U229C # CIRCLED EQUALS
+<Multi_key> <C> <parenleft> <equal> <parenright> : "⊜" U229C # CIRCLED EQUALS
+<Multi_key> <C> <parenleft> <N> <C> <parenright> : "🄏" U1F10F # CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
+<Multi_key> <C> <parenleft> <slash> <dollar> <parenright> : "🄏" U1F10F # CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
+<Multi_key> <C> <parenleft> <backslash> <dollar> <parenright> : "🄏" U1F10F # CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
+## Not actually Creative Commons, but related. Too many options?
+<Multi_key> <parenleft> <C> <Left> <parenright> : "🄯" U1F12F # COPYLEFT SYMBOL
+<Multi_key> <parenleft> <C> <less> <parenright> : "🄯" U1F12F # COPYLEFT SYMBOL
+<Multi_key> <C> <parenleft> <C> <Left> <parenright> : "🄯" U1F12F # COPYLEFT SYMBOL
+<Multi_key> <C> <parenleft> <C> <less> <parenright> : "🄯" U1F12F # COPYLEFT SYMBOL
+
+## Segmented digits?
+<Multi_key> <numbersign> <0> : "🯰" U1FBF0 # SEGMENTED DIGIT ZERO
+<Multi_key> <numbersign> <1> : "🯱" U1FBF1 # SEGMENTED DIGIT ONE
+<Multi_key> <numbersign> <2> : "🯲" U1FBF2 # SEGMENTED DIGIT TWO
+<Multi_key> <numbersign> <3> : "🯳" U1FBF3 # SEGMENTED DIGIT THREE
+<Multi_key> <numbersign> <4> : "🯴" U1FBF4 # SEGMENTED DIGIT FOUR
+<Multi_key> <numbersign> <5> : "🯵" U1FBF5 # SEGMENTED DIGIT FIVE
+<Multi_key> <numbersign> <6> : "🯶" U1FBF6 # SEGMENTED DIGIT SIX
+<Multi_key> <numbersign> <7> : "🯷" U1FBF7 # SEGMENTED DIGIT SEVEN
+<Multi_key> <numbersign> <8> : "🯸" U1FBF8 # SEGMENTED DIGIT EIGHT
+<Multi_key> <numbersign> <9> : "🯹" U1FBF9 # SEGMENTED DIGIT NINE
+
# Keystrokes okay?
<Multi_key> <Multi_key> <f> <d> <l> : "⚜" U269C # FLEUR-DE-LIS
<Multi_key> <Multi_key> <a> <t> <o> <m> : "⚛" U269B # ATOM SYMBOL
@@ -867,6 +907,12 @@ include "%L"
<Multi_key> <asterisk> <asterisk> :"★" U2605 # BLACK STAR
<Multi_key> <asterisk> <0> :"☆" U2606 # WHITE STAR
<Multi_key> <asterisk> <minus> :"✪" U272A # CIRCLED WHITE STAR
+## Did not have great luck with keystrokes for these. L/ conflicts with ł,
+## and </ conflicts with \. */ of course is ϛ.
+<Multi_key> <Left> <slash> <2> <asterisk> : "⯨" U2BE8 # LEFT HALF BLACK STAR
+<Multi_key> <Right> <slash> <2> <asterisk> : "⯩" U2BE9 # RIGHT HALF BLACK STAR
+<Multi_key> <asterisk> <Left> <slash> <2> <asterisk> : "⯪" U2BEA # STAR WITH LEFT HALF BLACK
+<Multi_key> <asterisk> <Right> <slash> <2> <asterisk> : "⯫" U2BEB # STAR WITH RIGHT HALF BLACK
<Multi_key> <asterisk> <3> :"⁂" U2042 # ASTERISM
<Multi_key> <3> <asterisk> :"⁂" U2042 # ASTERISM
<Multi_key> <2> <asterisk> :"⁑" U2051 # TWO ASTERISKS ALIGNED VERTICALLY
@@ -918,7 +964,7 @@ include "%L"
<Multi_key> <asciicircum> <asciicircum> <t> : "ᵗ" U1D57 # MODIFIER LETTER SMALL T
# Abbreviation for "that":
<Multi_key> <U00FE> <t> : "ꝥ" UA765 # LATIN SMALL LETTER THORN WITH STROKE
-#Maybe add: ˀˁ˃˂ Need to be able to talk about ʔˁ...
+#Maybe add: ˃˂ Need to be able to talk about ʔˁ...
<Multi_key> <asciicircum> <question> <period> : "ˀ" U02C0 # MODIFIER LETTER GLOTTAL STOP
<Multi_key> <asciicircum> <question> <parenleft> : "ˁ" U02C1 # MODIFIER LETTER REVERSED GLOTTAL STOP
<Multi_key> <asciicircum> <minus> : "⁻" U207B # SUPERSCRIPT MINUS
@@ -935,6 +981,7 @@ include "%L"
<Multi_key> <question> <parenleft> : "ʕ" U0295 # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
# Not great keystrokes...
<Multi_key> <question> <v> : "ʖ" U0296 # LATIN LETTER INVERTED GLOTTAL STOP
+<Multi_key> <question> <at> : "ʖ" U0296 # LATIN LETTER INVERTED GLOTTAL STOP
<Multi_key> <question> <minus> : "ʡ" U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE
<Multi_key> <question> <braceleft> : "ʢ" U02A2 # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
# How about ɸ? φ isn’t the IPA glyph.
@@ -951,6 +998,8 @@ include "%L"
<Multi_key> <A> <W> : "Ɔ" U0186 # LATIN CAPITAL LETTER OPEN O
<Multi_key> <e> <h> : "ɛ" U025B # LATIN SMALL LETTER OPEN E
# Have to put the <less> at the beginning for these.
+<Multi_key> <less> <a> <h> : "ɒ" U0252 # LATIN SMALL LETTER TURNED ALPHA
+<Multi_key> <BackSpace> <a> <h> : "ɒ" U0252 # LATIN SMALL LETTER TURNED ALPHA
<Multi_key> <less> <e> <h> : "ɜ" U025C # LATIN SMALL LETTER REVERSED OPEN E
<Multi_key> <BackSpace> <e> <h> : "ɜ" U025C # LATIN SMALL LETTER REVERSED OPEN E
<Multi_key> <less> <e> <r> : "ɝ" U025D # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
@@ -1023,6 +1072,9 @@ include "%L"
<Multi_key> <numbersign> <o> <slash> : "♪" U266a # EIGHTH NOTE
<Multi_key> <numbersign> <o> <o> : "♫" U266b # BEAMED EIGHTH NOTES
<Multi_key> <numbersign> <percent> : "♫" U266b # BEAMED EIGHTH NOTES
+<Multi_key> <numbersign> <q> : "♩" U2669 # QUARTER NOTE
+<Multi_key> <numbersign> <h> : "𝅗𝅥" U0001d15e # MUSICAL SYMBOL HALF NOTE
+<Multi_key> <numbersign> <w> : "𝅝" U0001d15d # MUSICAL SYMBOL WHOLE NOTE
# Combining accents, for making things you don't have precomposed chars or keystrokes for:
diff --git a/emoji-base b/emoji-base
index 6dd8c3e..13ac649 100644
--- a/emoji-base
+++ b/emoji-base
@@ -21,17 +21,18 @@
#- 26D3;CHAINS;So;0;ON;;;;;N;;;;;
<MM> {chains} : "⛓" U26D3 # CHAINS
#- 2700;BLACK SAFETY SCISSORS;So;0;ON;;;;;N;;;;;
-### <MM> {black safety scissors} : "✀" U2700 # BLACK SAFETY SCISSORS
+<MM> {BS8<} : "✀" U2700 # BLACK SAFETY SCISSORS
#- 2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
-### <MM> {upper blade scissors} : "✁" U2701 # UPPER BLADE SCISSORS
+<MM> {^8<} : "✁" U2701 # UPPER BLADE SCISSORS
#- 2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
-### <MM> {black scissors} : "✂" U2702 # BLACK SCISSORS
+<MM> {B8<} : "✂" U2702 # BLACK SCISSORS
#- 2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
-### <MM> {lower blade scissors} : "✃" U2703 # LOWER BLADE SCISSORS
+<MM> {_8<} : "✃" U2703 # LOWER BLADE SCISSORS
#- 2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;;
-### <MM> {white scissors} : "✄" U2704 # WHITE SCISSORS
+<MM> {W8<} : "✄" U2704 # WHITE SCISSORS
#- 2705;WHITE HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;
-### <MM> {white heavy check mark} : "✅" U2705 # WHITE HEAVY CHECK MARK
+## ♫@@/ is the black HEAVY CHECKMARK ✔ already
+<MM> {W@@/} : "✅" U2705 # WHITE HEAVY CHECK MARK
#- 2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;;
### <MM> {telephone location sign} : "✆" U2706 # TELEPHONE LOCATION SIGN
#- 2707;TAPE DRIVE;So;0;ON;;;;;N;;;;;
@@ -59,14 +60,17 @@
#- 2712;BLACK NIB;So;0;ON;;;;;N;;;;;
### <MM> {black nib} : "✒" U2712 # BLACK NIB
#- 2713;CHECK MARK;So;0;ON;;;;;N;;;;;
-### <MM> {check mark} : "✓" U2713 # CHECK MARK
+## Should we also match the single-♫ versions?
+### <MM> {check mark} : "✓" U2713 # CHECK MARK
#- 2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;
-### <MM> {heavy check mark} : "✔" U2714 # HEAVY CHECK MARK
+### <MM> {heavy check mark} : "✔" U2714 # HEAVY CHECK MARK
#- 2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;;
-### <MM> {multiplication x} : "✕" U2715 # MULTIPLICATION X
+## Just ♫xx is MULTIPLICATION SIGN.
+<MM> {xx} : "✕" U2715 # MULTIPLICATION X
#- 2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;;
-### <MM> {heavy multiplication x} : "✖" U2716 # HEAVY MULTIPLICATION X
+<MM> {@xx} : "✖" U2716 # HEAVY MULTIPLICATION X
#- 2717;BALLOT X;So;0;ON;;;;;N;;;;;
+## These are already ♫@X and ♫@@X
### <MM> {ballot x} : "✗" U2717 # BALLOT X
#- 2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;;
### <MM> {heavy ballot x} : "✘" U2718 # HEAVY BALLOT X
@@ -88,6 +92,7 @@
### <MM> {maltese cross} : "✠" U2720 # MALTESE CROSS
#- 2721;STAR OF DAVID;So;0;ON;;;;;N;;;;;
<MM> {*david} : "✡" U2721 # STAR OF DAVID
+## So many stars and asterisks! And even Xs! How to distinguish?
#- 2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
### <MM> {four teardrop-spoked asterisk} : "✢" U2722 # FOUR TEARDROP-SPOKED ASTERISK
#- 2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
@@ -174,11 +179,11 @@
#- 274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
### <MM> {heavy eight teardrop-spoked propeller asterisk} : "❋" U274B # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
#- 274C;CROSS MARK;So;0;ON;;;;;N;;;;;
-### <MM> {cross mark} : "❌" U274C # CROSS MARK
+<MM> {XX} : "❌" U274C # CROSS MARK
#- 274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
### <MM> {shadowed white circle} : "❍" U274D # SHADOWED WHITE CIRCLE
#- 274E;NEGATIVE SQUARED CROSS MARK;So;0;ON;;;;;N;;;;;
-### <MM> {negative squared cross mark} : "❎" U274E # NEGATIVE SQUARED CROSS MARK
+<MM> {[XX]} : "❎" U274E # NEGATIVE SQUARED CROSS MARK
#- 274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
### <MM> {lower right drop-shadowed white square} : "❏" U274F # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
#- 2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
@@ -188,15 +193,15 @@
#- 2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
### <MM> {upper right shadowed white square} : "❒" U2752 # UPPER RIGHT SHADOWED WHITE SQUARE
#- 2753;BLACK QUESTION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-### <MM> {black question mark ornament} : "❓" U2753 # BLACK QUESTION MARK ORNAMENT
+<MM> {@B?} : "❓" U2753 # BLACK QUESTION MARK ORNAMENT
#- 2754;WHITE QUESTION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-### <MM> {white question mark ornament} : "❔" U2754 # WHITE QUESTION MARK ORNAMENT
+<MM> {@W?} : "❔" U2754 # WHITE QUESTION MARK ORNAMENT
#- 2755;WHITE EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-### <MM> {white exclamation mark ornament} : "❕" U2755 # WHITE EXCLAMATION MARK ORNAMENT
+<MM> {@W!} : "❕" U2755 # WHITE EXCLAMATION MARK ORNAMENT
#- 2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;;
### <MM> {black diamond minus white x} : "❖" U2756 # BLACK DIAMOND MINUS WHITE X
#- 2757;HEAVY EXCLAMATION MARK SYMBOL;So;0;ON;;;;;N;;;;;
-### <MM> {heavy exclamation mark symbol} : "❗" U2757 # HEAVY EXCLAMATION MARK SYMBOL
+<MM> {@B!} : "❗" U2757 # HEAVY EXCLAMATION MARK SYMBOL
#- 2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;;
### <MM> {light vertical bar} : "❘" U2758 # LIGHT VERTICAL BAR
#- 2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;;
@@ -204,17 +209,17 @@
#- 275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;;
### <MM> {heavy vertical bar} : "❚" U275A # HEAVY VERTICAL BAR
#- 275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-### <MM> {heavy single turned comma quotation mark ornament} : "❛" U275B # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
+<MM> {@6'} : "❛" U275B # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
#- 275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-### <MM> {heavy single comma quotation mark ornament} : "❜" U275C # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
+<MM> {@9'} : "❜" U275C # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
#- 275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-### <MM> {heavy double turned comma quotation mark ornament} : "❝" U275D # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+<MM> {@6"} : "❝" U275D # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
#- 275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-### <MM> {heavy double comma quotation mark ornament} : "❞" U275E # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+<MM> {@9"} : "❞" U275E # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
#- 275F;HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-### <MM> {heavy low single comma quotation mark ornament} : "❟" U275F # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
+<MM> {@1,} : "❟" U275F # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
#- 2760;HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-### <MM> {heavy low double comma quotation mark ornament} : "❠" U2760 # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+<MM> {@2,} : "❠" U2760 # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
#- 2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;;
### <MM> {curved stem paragraph sign ornament} : "❡" U2761 # CURVED STEM PARAGRAPH SIGN ORNAMENT
#- 2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
@@ -258,6 +263,7 @@
#- 2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
### <MM> {medium right curly bracket ornament} : "❵" U2775 # MEDIUM RIGHT CURLY BRACKET ORNAMENT
#- 2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;;
+<MM> {dingbat negative circled digit one} : "❶" U2776 # DINGBAT NEGATIVE CIRCLED DIGIT ONE
#- 1F300;CYCLONE;So;0;ON;;;;;N;;;;;
<MM> {cyclone} : "🌀" U1F300 # CYCLONE
#- 1F301;FOGGY;So;0;ON;;;;;N;;;;;
@@ -329,7 +335,7 @@
#- 1F321;THERMOMETER;So;0;ON;;;;;N;;;;;
<MM> {thermom} : "🌡" U1F321 # THERMOMETER
#- 1F322;BLACK DROPLET;So;0;ON;;;;;N;;;;;
-<MM> {black droplet} : "🌢" U1F322 # BLACK DROPLET
+<MM> {Bdrop} : "🌢" U1F322 # BLACK DROPLET
#- 1F323;WHITE SUN;So;0;ON;;;;;N;;;;;
<MM> {white sun} : "🌣" U1F323 # WHITE SUN
#- 1F324;WHITE SUN WITH SMALL CLOUD;So;0;ON;;;;;N;;;;;
@@ -783,7 +789,7 @@
#- 1F3F5;ROSETTE;So;0;ON;;;;;N;;;;;
<MM> {Rosette} : "🏵" U1F3F5 # ROSETTE
#- 1F3F6;BLACK ROSETTE;So;0;ON;;;;;N;;;;;
-### <MM> {black rosette} : "🏶" U1F3F6 # BLACK ROSETTE
+<MM> {BRosett} : "🏶" U1F3F6 # BLACK ROSETTE
#- 1F3F7;LABEL;So;0;ON;;;;;N;;;;;
<MM> {label} : "🏷" U1F3F7 # LABEL
#- 1F3F8;BADMINTON RACQUET AND SHUTTLECOCK;So;0;ON;;;;;N;;;;;
@@ -1348,9 +1354,9 @@
#- 1F502;CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY;So;0;ON;;;;;N;;;;;
<MM> {1repeat} : "🔂" U1F502 # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
#- 1F503;CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;;
-### <MM> {clockwise downwards and upwards open circle arrows} : "🔃" U1F503 # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
+<MM> {↑repeat} : "🔃" U1F503 # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
#- 1F504;ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;;
-### <MM> {anticlockwise downwards and upwards open circle arrows} : "🔄" U1F504 # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
+<MM> {↓repeat} : "🔄" U1F504 # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
#- 1F505;LOW BRIGHTNESS SYMBOL;So;0;ON;;;;;N;;;;;
<MM> {dim} : "🔅" U1F505 # LOW BRIGHTNESS SYMBOL
#- 1F506;HIGH BRIGHTNESS SYMBOL;So;0;ON;;;;;N;;;;;
@@ -1446,9 +1452,9 @@
#- 1F531;TRIDENT EMBLEM;So;0;ON;;;;;N;;;;;
### <MM> {trident emblem} : "🔱" U1F531 # TRIDENT EMBLEM
#- 1F532;BLACK SQUARE BUTTON;So;0;ON;;;;;N;;;;;
-### <MM> {black square button} : "🔲" U1F532 # BLACK SQUARE BUTTON
+<MM> {Bbutton} : "🔲" U1F532 # BLACK SQUARE BUTTON
#- 1F533;WHITE SQUARE BUTTON;So;0;ON;;;;;N;;;;;
-### <MM> {white square button} : "🔳" U1F533 # WHITE SQUARE BUTTON
+<MM> {Wbutton} : "🔳" U1F533 # WHITE SQUARE BUTTON
#- 1F534;LARGE RED CIRCLE;So;0;ON;;;;;N;;;;;
### <MM> {large red circle} : "🔴" U1F534 # LARGE RED CIRCLE
#- 1F535;LARGE BLUE CIRCLE;So;0;ON;;;;;N;;;;;
@@ -1545,6 +1551,8 @@
<MM> {web} : "🕸" U1F578 # SPIDER WEB
#- 1F579;JOYSTICK;So;0;ON;;;;;N;;;;;
<MM> {joystic} : "🕹" U1F579 # JOYSTICK
+#- 1F57A;MAN DANCING;So;0;ON;;;;;N;;;;;
+<MM> {man dancing} : "🕺" U1F57A # MAN DANCING
#- 1F57B;LEFT HAND TELEPHONE RECEIVER;So;0;ON;;;;;N;;;;;
### <MM> {left hand telephone receiver} : "🕻" U1F57B # LEFT HAND TELEPHONE RECEIVER
#- 1F57C;TELEPHONE RECEIVER WITH PAGE;So;0;ON;;;;;N;;;;;
@@ -1630,6 +1638,8 @@
### <MM> {black up pointing backhand index} : "🖢" U1F5A2 # BLACK UP POINTING BACKHAND INDEX
#- 1F5A3;BLACK DOWN POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
### <MM> {black down pointing backhand index} : "🖣" U1F5A3 # BLACK DOWN POINTING BACKHAND INDEX
+#- 1F5A4;BLACK HEART;So;0;ON;;;;;N;;;;;
+<MM> {black heart} : "🖤" U1F5A4 # BLACK HEART
#- 1F5A5;DESKTOP COMPUTER;So;0;ON;;;;;N;;;;;
### <MM> {desktop computer} : "🖥" U1F5A5 # DESKTOP COMPUTER
#- 1F5A6;KEYBOARD AND MOUSE;So;0;ON;;;;;N;;;;;
@@ -1683,7 +1693,7 @@
#- 1F5BE;FRAME WITH AN X;So;0;ON;;;;;N;;;;;
### <MM> {frame with an x} : "🖾" U1F5BE # FRAME WITH AN X
#- 1F5BF;BLACK FOLDER;So;0;ON;;;;;N;;;;;
-### <MM> {black folder} : "🖿" U1F5BF # BLACK FOLDER
+<MM> {Bfolder} : "🖿" U1F5BF # BLACK FOLDER
#- 1F5C0;FOLDER;So;0;ON;;;;;N;;;;;
<MM> {folder} : "🗀" U1F5C0 # FOLDER
#- 1F5C1;OPEN FOLDER;So;0;ON;;;;;N;;;;;
@@ -1791,16 +1801,17 @@
### <MM> {ballot box with ballot} : "🗳" U1F5F3 # BALLOT BOX WITH BALLOT
#- 1F5F4;BALLOT SCRIPT X;So;0;ON;;;;;N;;;;;
### <MM> {ballot script x} : "🗴" U1F5F4 # BALLOT SCRIPT X
+## We already have ♫[x] for ☒
#- 1F5F5;BALLOT BOX WITH SCRIPT X;So;0;ON;;;;;N;;;;;
-### <MM> {ballot box with script x} : "🗵" U1F5F5 # BALLOT BOX WITH SCRIPT X
+<MM> {[x]} : "🗵" U1F5F5 # BALLOT BOX WITH SCRIPT X
#- 1F5F6;BALLOT BOLD SCRIPT X;So;0;ON;;;;;N;;;;;
### <MM> {ballot bold script x} : "🗶" U1F5F6 # BALLOT BOLD SCRIPT X
#- 1F5F7;BALLOT BOX WITH BOLD SCRIPT X;So;0;ON;;;;;N;;;;;
-### <MM> {ballot box with bold script x} : "🗷" U1F5F7 # BALLOT BOX WITH BOLD SCRIPT X
+<MM> {[@x]} : "🗷" U1F5F7 # BALLOT BOX WITH BOLD SCRIPT X
#- 1F5F8;LIGHT CHECK MARK;So;0;ON;;;;;N;;;;;
### <MM> {light check mark} : "🗸" U1F5F8 # LIGHT CHECK MARK
#- 1F5F9;BALLOT BOX WITH BOLD CHECK;So;0;ON;;;;;N;;;;;
-### <MM> {ballot box with bold check} : "🗹" U1F5F9 # BALLOT BOX WITH BOLD CHECK
+<MM> {[@/]} : "🗹" U1F5F9 # BALLOT BOX WITH BOLD CHECK
#- 1F5FA;WORLD MAP;So;0;ON;;;;;N;;;;;
<MM> {world} : "🗺" U1F5FA # WORLD MAP
#- 1F5FB;MOUNT FUJI;So;0;ON;;;;;N;;;;;
@@ -1913,8 +1924,9 @@
<MM> {()fearf} : "😨" U1F628 # FEARFUL FACE
#- 1F629;WEARY FACE;So;0;ON;;;;;N;;;;;
<MM> {()weary} : "😩" U1F629 # WEARY FACE
+## sleepY vs sleepING... use zzz for the latter.
#- 1F62A;SLEEPY FACE;So;0;ON;;;;;N;;;;;
-### <MM> {sleepy face} : "😪" U1F62A # SLEEPY FACE
+<MM> {()sleep} : "😪" U1F62A # SLEEPY FACE
#- 1F62B;TIRED FACE;So;0;ON;;;;;N;;;;;
<MM> {()tired} : "😫" U1F62B # TIRED FACE
#- 1F62C;GRIMACING FACE;So;0;ON;;;;;N;;;;;
@@ -1936,7 +1948,7 @@
<MM> {()blush} : "😳" U1F633 # FLUSHED FACE
<MM> {()flush} : "😳" U1F633 # FLUSHED FACE
#- 1F634;SLEEPING FACE;So;0;ON;;;;;N;;;;;
-### <MM> {sleeping face} : "😴" U1F634 # SLEEPING FACE
+<MM> {()zzz} : "😴" U1F634 # SLEEPING FACE
#- 1F635;DIZZY FACE;So;0;ON;;;;;N;;;;;
<MM> {()dizzy} : "😵" U1F635 # DIZZY FACE
#- 1F636;FACE WITHOUT MOUTH;So;0;ON;;;;;N;;;;;
@@ -2181,7 +2193,7 @@
#- 1F6AA;DOOR;So;0;ON;;;;;N;;;;;
<MM> {door} : "🚪" U1F6AA # DOOR
#- 1F6AB;NO ENTRY SIGN;So;0;ON;;;;;N;;;;;
-### <MM> {no entry sign} : "🚫" U1F6AB # NO ENTRY SIGN
+<MM> {noentry} : "🚫" U1F6AB # NO ENTRY SIGN
#- 1F6AC;SMOKING SYMBOL;So;0;ON;;;;;N;;;;;
<MM> {smoke} : "🚬" U1F6AC # SMOKING SYMBOL
#- 1F6AD;NO SMOKING SYMBOL;So;0;ON;;;;;N;;;;;
@@ -2202,7 +2214,7 @@
#- 1F6B3;NO BICYCLES;So;0;ON;;;;;N;;;;;
<MM> {!bicycl} : "🚳" U1F6B3 # NO BICYCLES
#- 1F6B4;BICYCLIST;So;0;ON;;;;;N;;;;;
-### <MM> {bicyclist} : "🚴" U1F6B4 # BICYCLIST
+<MM> {cyclist} : "🚴" U1F6B4 # BICYCLIST
#- 1F6B5;MOUNTAIN BICYCLIST;So;0;ON;;;;;N;;;;;
### <MM> {mountain bicyclist} : "🚵" U1F6B5 # MOUNTAIN BICYCLIST
#- 1F6B6;PEDESTRIAN;So;0;ON;;;;;N;;;;;
@@ -2246,6 +2258,7 @@
<MM> {noway} : "🛇" U1F6C7 # PROHIBITED SIGN
#- 1F6C8;CIRCLED INFORMATION SOURCE;So;0;ON;;;;;N;;;;;
<MM> {(info)} : "🛈" U1F6C8 # CIRCLED INFORMATION SOURCE
+## Sorry, this one is out of order.
#- 2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;;
<MM> {info} : "ℹ" U2139 # INFORMATION SOURCE
## careful for conflicts with {boy} and {girl}
@@ -2266,8 +2279,20 @@
<MM> {bed} : "🛏" U1F6CF # BED
#- 1F6D0;PLACE OF WORSHIP;So;0;ON;;;;;N;;;;;
<MM> {shrine} : "🛐" U1F6D0 # PLACE OF WORSHIP
+#- 1F6D1;OCTAGONAL SIGN;So;0;ON;;;;;N;;;;;
+<MM> {[STOP]} : "🛑" U1F6D1 # OCTAGONAL SIGN
+#- 1F6D2;SHOPPING TROLLEY;So;0;ON;;;;;N;;;;;
+<MM> {shopping trolley} : "🛒" U1F6D2 # SHOPPING TROLLEY
+#- 1F6D3;STUPA;So;0;ON;;;;;N;;;;;
+<MM> {stupa} : "🛓" U1F6D3 # STUPA
+#- 1F6D4;PAGODA;So;0;ON;;;;;N;;;;;
+<MM> {pagoda} : "🛔" U1F6D4 # PAGODA
#- 1F6D5;HINDU TEMPLE;So;0;ON;;;;;N;;;;;
<MM> {hindu temple} : "🛕" U1F6D5 # HINDU TEMPLE
+#- 1F6D6;HUT;So;0;ON;;;;;N;;;;;
+<MM> {hut} : "🛖" U1F6D6 # HUT
+#- 1F6D7;ELEVATOR;So;0;ON;;;;;N;;;;;
+<MM> {elevator} : "🛗" U1F6D7 # ELEVATOR
#- 1F6E0;HAMMER AND WRENCH;So;0;ON;;;;;N;;;;;
<MM> {tools} : "🛠" U1F6E0 # HAMMER AND WRENCH
#- 1F6E1;SHIELD;So;0;ON;;;;;N;;;;;
@@ -2302,8 +2327,24 @@
### <MM> {diesel locomotive} : "🛲" U1F6F2 # DIESEL LOCOMOTIVE
#- 1F6F3;PASSENGER SHIP;So;0;ON;;;;;N;;;;;
### <MM> {passenger ship} : "🛳" U1F6F3 # PASSENGER SHIP
+#- 1F6F4;SCOOTER;So;0;ON;;;;;N;;;;;
+<MM> {scooter} : "🛴" U1F6F4 # SCOOTER
+#- 1F6F5;MOTOR SCOOTER;So;0;ON;;;;;N;;;;;
+<MM> {motor scooter} : "🛵" U1F6F5 # MOTOR SCOOTER
+#- 1F6F6;CANOE;So;0;ON;;;;;N;;;;;
+<MM> {canoe} : "🛶" U1F6F6 # CANOE
+#- 1F6F7;SLED;So;0;ON;;;;;N;;;;;
+<MM> {sled} : "🛷" U1F6F7 # SLED
+#- 1F6F8;FLYING SAUCER;So;0;ON;;;;;N;;;;;
+<MM> {flying saucer} : "🛸" U1F6F8 # FLYING SAUCER
+#- 1F6F9;SKATEBOARD;So;0;ON;;;;;N;;;;;
+<MM> {skateboard} : "🛹" U1F6F9 # SKATEBOARD
#- 1F6FA;AUTO RICKSHAW;So;0;ON;;;;;N;;;;;
<MM> {auto rickshaw} : "🛺" U1F6FA # AUTO RICKSHAW
+#- 1F6FB;PICKUP TRUCK;So;0;ON;;;;;N;;;;;
+<MM> {pickup truck} : "🛻" U1F6FB # PICKUP TRUCK
+#- 1F6FC;ROLLER SKATE;So;0;ON;;;;;N;;;;;
+<MM> {roller skate} : "🛼" U1F6FC # ROLLER SKATE
#- 1F7E0;LARGE ORANGE CIRCLE;So;0;ON;;;;;N;;;;;
<MM> {large orange circle} : "🟠" U1F7E0 # LARGE ORANGE CIRCLE
#- 1F7E1;LARGE YELLOW CIRCLE;So;0;ON;;;;;N;;;;;
@@ -2369,6 +2410,8 @@
<MM> {handsha} : "🤝" U1F91D # HANDSHAKE
#- 1F91E;HAND WITH INDEX AND MIDDLE FINGERS CROSSED;So;0;ON;;;;;N;;;;;
<MM> {fingerX} : "🤞" U1F91E # HAND WITH INDEX AND MIDDLE FINGERS CROSSED
+#- 1F91F;I LOVE YOU HAND SIGN;So;0;ON;;;;;N;;;;;
+<MM> {ILY} : "🤟" U1F91F # I LOVE YOU HAND SIGN
#- 1F920;FACE WITH COWBOY HAT;So;0;ON;;;;;N;;;;;
### <MM> {face with cowboy hat} : "🤠" U1F920 # FACE WITH COWBOY HAT
#- 1F921;CLOWN FACE;So;0;ON;;;;;N;;;;;
@@ -2390,7 +2433,7 @@
<MM> {()':-)} : "🤨" U1F928 # FACE WITH ONE EYEBROW RAISED
<MM> {()spock} : "🤨" U1F928 # FACE WITH ONE EYEBROW RAISED
#- 1F929;GRINNING FACE WITH STAR EYES;So;0;ON;;;;;N;;;;;
-<MM> {grinning face with star eyes} : "🤩" U1F929 # GRINNING FACE WITH STAR EYES
+<MM> {()*-D} : "🤩" U1F929 # GRINNING FACE WITH STAR EYES
#- 1F92A;GRINNING FACE WITH ONE LARGE AND ONE SMALL EYE;So;0;ON;;;;;N;;;;;
<MM> {()oO)} : "🤪" U1F92A # GRINNING FACE WITH ONE LARGE AND ONE SMALL EYE
<MM> {()Oo)} : "🤪" U1F92A # GRINNING FACE WITH ONE LARGE AND ONE SMALL EYE
@@ -2399,7 +2442,7 @@
#- 1F92C;SERIOUS FACE WITH SYMBOLS COVERING MOUTH;So;0;ON;;;;;N;;;;;
<MM> {():-###} : "🤬" U1F92C # SERIOUS FACE WITH SYMBOLS COVERING MOUTH
#- 1F92D;SMILING FACE WITH SMILING EYES AND HAND COVERING MOUTH;So;0;ON;;;;;N;;;;;
-<MM> {smiling face with smiling eyes and hand covering mouth} : "🤭" U1F92D # SMILING FACE WITH SMILING EYES AND HAND COVERING MOUTH
+<MM> {()):-==} : "🤭" U1F92D # SMILING FACE WITH SMILING EYES AND HAND COVERING MOUTH
#- 1F92E;FACE WITH OPEN MOUTH VOMITING;So;0;ON;;;;;N;;;;;
<MM> {()puke} : "🤮" U1F92E # FACE WITH OPEN MOUTH VOMITING
#- 1F92F;SHOCKED FACE WITH EXPLODING HEAD;So;0;ON;;;;;N;;;;;
@@ -2538,6 +2581,8 @@
<MM> {smiling face with smiling eyes and three hearts} : "🥰" U1F970 # SMILING FACE WITH SMILING EYES AND THREE HEARTS
#- 1F971;YAWNING FACE;So;0;ON;;;;;N;;;;;
<MM> {()yawn} : "🥱" U1F971 # YAWNING FACE
+#- 1F972;SMILING FACE WITH TEAR;So;0;ON;;;;;N;;;;;
+<MM> {smiling face with tear} : "🥲" U1F972 # SMILING FACE WITH TEAR
#- 1F973;FACE WITH PARTY HORN AND PARTY HAT;So;0;ON;;;;;N;;;;;
<MM> {()party} : "🥳" U1F973 # FACE WITH PARTY HORN AND PARTY HAT
#- 1F974;FACE WITH UNEVEN EYES AND WAVY MOUTH;So;0;ON;;;;;N;;;;;
@@ -2547,6 +2592,10 @@
<MM> {overheated face} : "🥵" U1F975 # OVERHEATED FACE
#- 1F976;FREEZING FACE;So;0;ON;;;;;N;;;;;
<MM> {()freez} : "🥶" U1F976 # FREEZING FACE
+#- 1F977;NINJA;So;0;ON;;;;;N;;;;;
+<MM> {ninja} : "🥷" U1F977 # NINJA
+#- 1F978;DISGUISED FACE;So;0;ON;;;;;N;;;;;
+<MM> {disguised face} : "🥸" U1F978 # DISGUISED FACE
#- 1F97A;FACE WITH PLEADING EYES;So;0;ON;;;;;N;;;;;
<MM> {()plead} : "🥺" U1F97A # FACE WITH PLEADING EYES
#- 1F97B;SARI;So;0;ON;;;;;N;;;;;
@@ -2630,6 +2679,10 @@
<MM> {badger} : "🦡" U1F9A1 # BADGER
#- 1F9A2;SWAN;So;0;ON;;;;;N;;;;;
<MM> {swan} : "🦢" U1F9A2 # SWAN
+#- 1F9A3;MAMMOTH;So;0;ON;;;;;N;;;;;
+<MM> {mammoth} : "🦣" U1F9A3 # MAMMOTH
+#- 1F9A4;DODO;So;0;ON;;;;;N;;;;;
+<MM> {dodo} : "🦤" U1F9A4 # DODO
#- 1F9A5;SLOTH;So;0;ON;;;;;N;;;;;
<MM> {sloth} : "🦥" U1F9A5 # SLOTH
#- 1F9A6;OTTER;So;0;ON;;;;;N;;;;;
@@ -2642,6 +2695,12 @@
<MM> {flamingo} : "🦩" U1F9A9 # FLAMINGO
#- 1F9AA;OYSTER;So;0;ON;;;;;N;;;;;
<MM> {oyster} : "🦪" U1F9AA # OYSTER
+#- 1F9AB;BEAVER;So;0;ON;;;;;N;;;;;
+<MM> {beaver} : "🦫" U1F9AB # BEAVER
+#- 1F9AC;BISON;So;0;ON;;;;;N;;;;;
+<MM> {bison} : "🦬" U1F9AC # BISON
+#- 1F9AD;SEAL;So;0;ON;;;;;N;;;;;
+<MM> {seal} : "🦭" U1F9AD # SEAL
#- 1F9AE;GUIDE DOG;So;0;ON;;;;;N;;;;;
<MM> {guide dog} : "🦮" U1F9AE # GUIDE DOG
#- 1F9AF;PROBING CANE;So;0;ON;;;;;N;;;;;
@@ -2701,6 +2760,8 @@
<MM> {yerba} : "🧉" U1F9C9 # MATE DRINK
#- 1F9CA;ICE CUBE;So;0;ON;;;;;N;;;;;
<MM> {icecube} : "🧊" U1F9CA # ICE CUBE
+#- 1F9CB;BUBBLE TEA;So;0;ON;;;;;N;;;;;
+<MM> {bubble tea} : "🧋" U1F9CB # BUBBLE TEA
#- 1F9CD;STANDING PERSON;So;0;ON;;;;;N;;;;;
<MM> {stander} : "🧍" U1F9CD # STANDING PERSON
#- 1F9CE;KNEELING PERSON;So;0;ON;;;;;N;;;;;
@@ -2708,7 +2769,7 @@
#- 1F9CF;DEAF PERSON;So;0;ON;;;;;N;;;;;
<MM> {deaf} : "🧏" U1F9CF # DEAF PERSON
#- 1F9D0;FACE WITH MONOCLE;So;0;ON;;;;;N;;;;;
-<MM> {face with monocle} : "🧐" U1F9D0 # FACE WITH MONOCLE
+<MM> {()o.-)} : "🧐" U1F9D0 # FACE WITH MONOCLE
#- 1F9D1;ADULT;So;0;ON;;;;;N;;;;;
<MM> {adult} : "🧑" U1F9D1 # ADULT
#- 1F9D2;CHILD;So;0;ON;;;;;N;;;;;
@@ -2745,7 +2806,7 @@
#- 1F9E1;ORANGE HEART;So;0;ON;;;;;N;;;;;
<MM> {orange heart} : "🧡" U1F9E1 # ORANGE HEART
#- 1F9E2;BILLED CAP;So;0;ON;;;;;N;;;;;
-<MM> {billed cap} : "🧢" U1F9E2 # BILLED CAP
+<MM> {BBcap} : "🧢" U1F9E2 # BILLED CAP
#- 1F9E3;SCARF;So;0;ON;;;;;N;;;;;
<MM> {scarf} : "🧣" U1F9E3 # SCARF
#- 1F9E4;GLOVES;So;0;ON;;;;;N;;;;;
@@ -2759,7 +2820,7 @@
#- 1F9E8;FIRECRACKER;So;0;ON;;;;;N;;;;;
<MM> {firecracker} : "🧨" U1F9E8 # FIRECRACKER
#- 1F9E9;JIGSAW PUZZLE PIECE;So;0;ON;;;;;N;;;;;
-<MM> {jigsaw puzzle piece} : "🧩" U1F9E9 # JIGSAW PUZZLE PIECE
+<MM> {puzzle} : "🧩" U1F9E9 # JIGSAW PUZZLE PIECE
#- 1F9EA;TEST TUBE;So;0;ON;;;;;N;;;;;
<MM> {test tube} : "🧪" U1F9EA # TEST TUBE
#- 1F9EB;PETRI DISH;So;0;ON;;;;;N;;;;;
@@ -2812,6 +2873,8 @@
<MM> {briefs} : "🩲" U1FA72 # BRIEFS
#- 1FA73;SHORTS;So;0;ON;;;;;N;;;;;
<MM> {shorts} : "🩳" U1FA73 # SHORTS
+#- 1FA74;THONG SANDAL;So;0;ON;;;;;N;;;;;
+<MM> {thong sandal} : "🩴" U1FA74 # THONG SANDAL
#- 1FA78;DROP OF BLOOD;So;0;ON;;;;;N;;;;;
<MM> {blood} : "🩸" U1FA78 # DROP OF BLOOD
#- 1FA79;ADHESIVE BANDAGE;So;0;ON;;;;;N;;;;;
@@ -2824,6 +2887,14 @@
<MM> {kite} : "🪁" U1FA81 # KITE
#- 1FA82;PARACHUTE;So;0;ON;;;;;N;;;;;
<MM> {parachute} : "🪂" U1FA82 # PARACHUTE
+#- 1FA83;BOOMERANG;So;0;ON;;;;;N;;;;;
+<MM> {boomerang} : "🪃" U1FA83 # BOOMERANG
+#- 1FA84;MAGIC WAND;So;0;ON;;;;;N;;;;;
+<MM> {magic wand} : "🪄" U1FA84 # MAGIC WAND
+#- 1FA85;PINATA;So;0;ON;;;;;N;;;;;
+<MM> {pinata} : "🪅" U1FA85 # PINATA
+#- 1FA86;NESTING DOLLS;So;0;ON;;;;;N;;;;;
+<MM> {nesting dolls} : "🪆" U1FA86 # NESTING DOLLS
#- 1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;;
<MM> {ringed planet} : "🪐" U1FA90 # RINGED PLANET
#- 1FA91;CHAIR;So;0;ON;;;;;N;;;;;
@@ -2836,3 +2907,79 @@
<MM> {diya} : "🪔" U1FA94 # DIYA LAMP
#- 1FA95;BANJO;So;0;ON;;;;;N;;;;;
<MM> {banjo} : "🪕" U1FA95 # BANJO
+#- 1FA96;MILITARY HELMET;So;0;ON;;;;;N;;;;;
+<MM> {military helmet} : "🪖" U1FA96 # MILITARY HELMET
+#- 1FA97;ACCORDION;So;0;ON;;;;;N;;;;;
+<MM> {accordion} : "🪗" U1FA97 # ACCORDION
+#- 1FA98;LONG DRUM;So;0;ON;;;;;N;;;;;
+<MM> {long drum} : "🪘" U1FA98 # LONG DRUM
+#- 1FA99;COIN;So;0;ON;;;;;N;;;;;
+<MM> {coin} : "🪙" U1FA99 # COIN
+#- 1FA9A;CARPENTRY SAW;So;0;ON;;;;;N;;;;;
+<MM> {saw} : "🪚" U1FA9A # CARPENTRY SAW
+#- 1FA9B;SCREWDRIVER;So;0;ON;;;;;N;;;;;
+<MM> {screwdriver} : "🪛" U1FA9B # SCREWDRIVER
+#- 1FA9C;LADDER;So;0;ON;;;;;N;;;;;
+<MM> {ladder} : "🪜" U1FA9C # LADDER
+#- 1FA9D;HOOK;So;0;ON;;;;;N;;;;;
+<MM> {hook} : "🪝" U1FA9D # HOOK
+#- 1FA9E;MIRROR;So;0;ON;;;;;N;;;;;
+<MM> {mirror} : "🪞" U1FA9E # MIRROR
+#- 1FA9F;WINDOW;So;0;ON;;;;;N;;;;;
+<MM> {window} : "🪟" U1FA9F # WINDOW
+#- 1FAA0;PLUNGER;So;0;ON;;;;;N;;;;;
+<MM> {plunger} : "🪠" U1FAA0 # PLUNGER
+#- 1FAA1;SEWING NEEDLE;So;0;ON;;;;;N;;;;;
+<MM> {needle} : "🪡" U1FAA1 # SEWING NEEDLE
+#- 1FAA2;KNOT;So;0;ON;;;;;N;;;;;
+<MM> {knot} : "🪢" U1FAA2 # KNOT
+#- 1FAA3;BUCKET;So;0;ON;;;;;N;;;;;
+<MM> {bucket} : "🪣" U1FAA3 # BUCKET
+#- 1FAA4;MOUSE TRAP;So;0;ON;;;;;N;;;;;
+<MM> {mouse trap} : "🪤" U1FAA4 # MOUSE TRAP
+#- 1FAA5;TOOTHBRUSH;So;0;ON;;;;;N;;;;;
+<MM> {toothbrush} : "🪥" U1FAA5 # TOOTHBRUSH
+#- 1FAA6;HEADSTONE;So;0;ON;;;;;N;;;;;
+<MM> {headstone} : "🪦" U1FAA6 # HEADSTONE
+#- 1FAA7;PLACARD;So;0;ON;;;;;N;;;;;
+<MM> {placard} : "🪧" U1FAA7 # PLACARD
+### {rock} has prefix conflicts {rocket}, {rockon}
+#- 1FAA8;ROCK;So;0;ON;;;;;N;;;;;
+<MM> {rock♫} : "🪨" U1FAA8 # ROCK
+### {fly} has prefix-conflicts {flying$} etc
+#- 1FAB0;FLY;So;0;ON;;;;;N;;;;;
+<MM> {fly♫} : "🪰" U1FAB0 # FLY
+#- 1FAB1;WORM;So;0;ON;;;;;N;;;;;
+<MM> {worm} : "🪱" U1FAB1 # WORM
+#- 1FAB2;BEETLE;So;0;ON;;;;;N;;;;;
+<MM> {beetle} : "🪲" U1FAB2 # BEETLE
+#- 1FAB3;COCKROACH;So;0;ON;;;;;N;;;;;
+<MM> {cockroach} : "🪳" U1FAB3 # COCKROACH
+#- 1FAB4;POTTED PLANT;So;0;ON;;;;;N;;;;;
+<MM> {potted plant} : "🪴" U1FAB4 # POTTED PLANT
+#- 1FAB5;WOOD;So;0;ON;;;;;N;;;;;
+<MM> {wood} : "🪵" U1FAB5 # WOOD
+#- 1FAB6;FEATHER;So;0;ON;;;;;N;;;;;
+<MM> {feather} : "🪶" U1FAB6 # FEATHER
+#- 1FAC0;ANATOMICAL HEART;So;0;ON;;;;;N;;;;;
+<MM> {anat<3} : "🫀" U1FAC0 # ANATOMICAL HEART
+#- 1FAC1;LUNGS;So;0;ON;;;;;N;;;;;
+<MM> {lungs} : "🫁" U1FAC1 # LUNGS
+#- 1FAC2;PEOPLE HUGGING;So;0;ON;;;;;N;;;;;
+<MM> {hugging} : "🫂" U1FAC2 # PEOPLE HUGGING
+<MM> {huggers} : "🫂" U1FAC2 # PEOPLE HUGGING
+#- 1FAD0;BLUEBERRIES;So;0;ON;;;;;N;;;;;
+<MM> {blueberries} : "🫐" U1FAD0 # BLUEBERRIES
+#- 1FAD1;BELL PEPPER;So;0;ON;;;;;N;;;;;
+<MM> {bell pepper} : "🫑" U1FAD1 # BELL PEPPER
+#- 1FAD2;OLIVE;So;0;ON;;;;;N;;;;;
+<MM> {olive} : "🫒" U1FAD2 # OLIVE
+#- 1FAD3;FLATBREAD;So;0;ON;;;;;N;;;;;
+<MM> {flatbread} : "🫓" U1FAD3 # FLATBREAD
+#- 1FAD4;TAMALE;So;0;ON;;;;;N;;;;;
+<MM> {tamale} : "🫔" U1FAD4 # TAMALE
+#- 1FAD5;FONDUE;So;0;ON;;;;;N;;;;;
+<MM> {fondue} : "🫕" U1FAD5 # FONDUE
+#- 1FAD6;TEAPOT;So;0;ON;;;;;N;;;;;
+<MM> {Teapot} : "🫖" U1FAD6 # TEAPOT
+### prefix-conflict with {tea}
diff --git a/emojitrans2.pl b/emojitrans2.pl
index 420129f..4f70288 100755
--- a/emojitrans2.pl
+++ b/emojitrans2.pl
@@ -50,8 +50,16 @@ BEGIN { binmode(STDOUT, ":utf8");
'↵' => 'Return',
'∇' => 'Delete', # Del, get it?
'˅' => 'Insert', # it'll do.
+ '˃' => 'Control_R',
+ '˂' => 'Control_L',
+ # Function-keys? ¹ ²..ˣ ᵉ ᵗ?
);
+ $specials = join "", keys %specials;
+ # Because of reasons
+ $specials =~ s/[]\\-]/\\$&/g;
+ $RE = qr{([[:alnum:]$specials]+)};
+
sub splitup {
my $arg=shift;
local $_;
@@ -73,7 +81,7 @@ unless (/^#/) {
my $hold=$_;
s/<M_>/<Multi_key>/;
s/<MM>/<Multi_key> <Multi_key>/;
- s({([][[:alnum:] _+:;%@>=`<,.^\$+#()?&!/|'"\\~*{}♫-]+)})(splitup($1))e;
+ s({($RE)})(splitup($1))e;
if (length($1) > 7) {
$_=$hold;
s/^<M([M_])>/### <M$1>/;