"Undoing" this patch is enough to restore the coverage of combining chars
which was present before math symbols started to get in the way: one should:
A) remove math greenkeys from kbdd file,
B) disable uni_manual (except for phonetization, where only ? --> ? gets in the way),
C) turn off recognition of SQUARED/OPERATOR/SIGN/IN TRIANGLE.
--- examples/EurKey++.kbdd 2012-02-19 23:14:32.372000000 -0800
+++ examples/EurKey++.kbdd-ook 2012-02-19 21:52:37.637200000 -0800
@@ -95,7 +95,7 @@ ExportDeadKeys= ´ ˋ ˜ ˆ ˇ °
@char2key_prefer_first=\,|,.,002c
#
# Will be only considered when putting a diacritic on AltGr-key (~∼, *∗, .⋅ )
-@AltGrCharSubstitutions=ijü
+@AltGrCharSubstitutions=ijü,^∧,&∩,*×,#≠,6∨,7∪,|∣
#
# Tibetan range: take only tibetan diacritics, so our code adding diacritics won't be confused by prefices... ???
Auto_Diacritic_Start=0f00
--- lib/UI/KeyboardLayout.pm 2012-02-19 23:32:19.630400000 -0800
+++ lib/UI/KeyboardLayout.pm-ook 2012-02-19 22:33:04.515200000 -0800
@@ -3964,8 +3964,7 @@ my %operators = (DOT => ['MIDDLE DOT', '
'DOUBLE SOLIDUS' => ['PARALLEL TO'], MINUS => ['HYPHEN-MINUS']);
# THIS IS NOT A MULTIMAP!
-my %uni_manual = (phonetized => {qw( 0 ə s ʃ z ʒ j ɟ v ⱱ n ŋ V ɤ ! ǃ q ʔ ¿ ʕ )},
-); my %ignore = (
+my %uni_manual = (phonetized => {qw( 0 ə s ʃ z ʒ j ɟ v ⱱ n ŋ V ɤ ! ǃ ? ʔ ¿ ʕ )},
addline => {qw( 0 ∅ ( ∈ ) ∋ = ≡ ≡ ≣ † ‡ + ∦ / ∠ | ∟ . ∸ ∨ ⊻ ∧ ⊼ )}, # conflict with modifiers: qw( | ‖ _ ‗ )
addtilde => {qw( 0 ∝ / ∡ \ ∢ ∫ ∱ : ∻ - ≂ ≠ ≆ ~ ≈ ∼ ≈ ≃ ≊ ≈ ≋ = ≌ ( ⟅ ) ⟆ )}, # not on 2A**
addleft => {qw( = ≔ × ⨴ × ⋉ \ ⋋ + ⨭ → ⧴)}, # × ⨴ is hidden
@@ -4013,7 +4012,7 @@ sub parse_NameList ($$) {
if ($name =~ /^(.*)\s+(?=OR\s)(.*?)\s*$/) { # Find the latest possible...
push @{$candidates{$k}}, [$1, $2];
}
- if (($t = $name) =~ s/\b(COMBINING(?=\s+CYRILLIC\s+LETTER)|BARRED|SLANTED|APPROXIMATELY|ASYMPTOTICALLY|ALMOST|^xxx-SQUARED|LUNATE|SIDEWAYS(?:\s+(?:DIAERESIZED|OPEN))?|INVERTED|ARCHAIC|SCRIPT|LONG|TURNED(?:\s+(?:INSULAR|SANS-SERIF))?|REVERSED|OPEN|CLOSED|DOTLESS|FINAL)\s+|\s+(BAR|SYMBOL|xxx-OPERATOR|xxx-SIGN|xxx-IN\s+TRIANGLE)$//) {
+ if (($t = $name) =~ s/\b(COMBINING(?=\s+CYRILLIC\s+LETTER)|BARRED|SLANTED|APPROXIMATELY|ASYMPTOTICALLY|ALMOST|^SQUARED|LUNATE|SIDEWAYS(?:\s+(?:DIAERESIZED|OPEN))?|INVERTED|ARCHAIC|SCRIPT|LONG|TURNED(?:\s+(?:INSULAR|SANS-SERIF))?|REVERSED|OPEN|CLOSED|DOTLESS|FINAL)\s+|\s+(BAR|SYMBOL|OPERATOR|SIGN|IN\s+TRIANGLE)$//) {
push @{$candidates{$k}}, [$t, "calculated-$+"];
$candidates{$k}[-1][1] .= '-epigraphic' if $t =~ /\bEPIGRAPHIC\b/; # will be massaged away from $t later
$candidates{$k}[-1][0] =~ s/\s+SYMBOL$// and $candidates{$k}[-1][1] .= '-symbol'
@@ -4081,7 +4080,7 @@ sub parse_NameList ($$) {
my $name = $NM{$self->charhex2key($base)};
next if not $name and ($k =~ /^[12]?F[89A]..$/ or hex $base >= 0x4E00 and hex $base <= 0x9FCC); # ideographs; there is also 3400 region...
warn "Basic: `$k' --> `@$exp', base=`$base' --> `",$self->charhex2key($base),"'" unless $name;
- if ((my $NN = $name) =~ s/\s+xxx-OPERATOR$//) {
+ if ((my $NN = $name) =~ s/\s+OPERATOR$//) {
#warn "operator: `$k' --> <$NN>, `@$exp', base=`$base' --> `",$self->charhex2key($base),"'";
push @{$candidates{$k}}, [$_, @$exp[2..$#$exp]] for $NN, @{ $operators{$NN} || []};
}