First attempt to use git so apologies if I have got this wrong.
From 19a9688932aa7119a1a24180a07958e941a4564e Mon Sep 17 00:00:00 2001
From: Geoff Streeter ge...@dyalog.com
Date: Thu, 22 Mar 2012 15:02:00 +
Subject: [PATCH] Add APL support to compose
---
nls/en_US.UTF-8/Compose.pre | 185 +++
1 files changed, 185 insertions(+), 0 deletions(-)
diff --git a/nls/en_US.UTF-8/Compose.pre b/nls/en_US.UTF-8/Compose.pre
index 2eae912..e17c3ec 100644
--- a/nls/en_US.UTF-8/Compose.pre
+++ b/nls/en_US.UTF-8/Compose.pre
@@ -5830,3 +5830,188 @@ XCOMM
Multi_key asciicircum Cyrillic_ER: Р̂ #
CYRILLIC CAPITAL LETTER ER WITH COMBINING CIRCUMFLEX ACCENT
Multi_key backslash o slash: # PERSON
RAISING BOTH HANDS IN CELEBRATION
+
+XCOMM APL support Geoff Streeter 2012-01-04
+
+XCOMM APL was initially an overstruck language. The original APL terminal was
an IBM golfball
+XCOMM with a specially designed golfball. This meant that characters could be
overstruck to
+XCOMM produce other characters. This gave APL a richness of primitives which
is still powerful
+XCOMM today. Overstrikes were always independent of order.
+
+XCOMM APLs have extended this into a number of dialects. Let us try to support
lots of them.
+XCOMM Together with some that have not been used yet. Some traditional ones
are not included.
+
+XCOMM Characters from Mathematical Operators
+
+Multi_key v slash : √ U221a # v / SQUARE
ROOT
+Multi_key slash v : √ U221a # / v SQUARE
ROOT
+Multi_key 8 8 : ∞ U221e # 8 8 INFINITY
+Multi_key equal slash : ≠ U2260 # = / NOT
EQUAL TO
+Multi_key slash equal : ≠ U2260 # / = NOT
EQUAL TO
+Multi_key underscore equal: ≡ U2261 # _ =
IDENTICAL TO
+Multi_key equal underscore: ≡ U2261 # = _
IDENTICAL TO
+Multi_key underscore U2260: ≢ U2262 # _ ≠ NOT
IDENTICAL TO
+Multi_key U2260 underscore: ≢ U2262 # ≠ _ NOT
IDENTICAL TO
+Multi_key less underscore : ≤ U2264 # _
LESS-THAN OR EQUAL TO
+Multi_key underscore less : ≤ U2264 # _
LESS-THAN OR EQUAL TO
+Multi_key greater underscore : ≥ U2265 # _
GREATER-THAN OR EQUAL TO
+Multi_key underscore greater : ≥ U2265 # _
GREATER-THAN OR EQUAL TO
+Multi_key underscore U2282: ⊆ U2286 # _ ⊂ SUBSET
OF OR EQUAL TO
+Multi_key U2282 underscore: ⊆ U2286 # ⊂ _ SUBSET
OF OR EQUAL TO
+Multi_key underscore U2283: ⊇ U2287 # _ ⊃ SUPERSET
OF OR EQUAL TO
+Multi_key U2283 underscore: ⊇ U2287 # ⊃ _ SUPERSET
OF OR EQUAL TO
+Multi_key U25cb minus : ⊖ U2296 # ○ - CIRCLED
MINUS
+Multi_key minus U25cb : ⊖ U2296 # - ○ CIRCLED
MINUS
+Multi_key U25cb period: ⊙ U2299 # ○ - CIRCLED
DOT
+Multi_key period U25cb: ⊙ U2299 # - ○ CIRCLED
DOT
+Multi_key parenleft minus : ⊢ U22a2 # ( - RIGHT
TACK
+Multi_key minus parenleft : ⊢ U22a2 # - ( RIGHT
TACK
+Multi_key parenright minus: ⊣ U22a3 # ) - LEFT TACK
+Multi_key minus parenright: ⊣ U22a3 # - ) LEFT TACK
+Multi_key less greater: ⋄ U22c4 # DIAMOND
OPERATOR
+Multi_key greater less: ⋄ U22c4 # DIAMOND
OPERATOR
+Multi_key U2227 U2228 : ⋄ U22c4 # ∧ ∨ DIAMOND
OPERATOR
+Multi_key U2228 U2227 : ⋄ U22c4 # ∨ ∧ DIAMOND
OPERATOR
+
+XCOMM Characters from Miscellaneous Technical
+
+Multi_key U22a5 U22a4 : ⌶ U2336 # ⊥ ⊤ APL
FUNCTIONAL SYMBOL I-BEAM
+Multi_key U22a4 U22a5 : ⌶ U2336 # ⊥ ⊤ APL
FUNCTIONAL SYMBOL I-BEAM
+Multi_key bracketleft bracketright: ⌷ U2337 # [ ] APL
FUNCTIONAL SYMBOL SQUISH QUAD
+Multi_key bracketright bracketleft: ⌷ U2337 # ] [ APL
FUNCTIONAL SYMBOL SQUISH QUAD
+Multi_key U2395 equal : ⌸ U2338 # ⎕ = APL
FUNCTIONAL SYMBOL QUAD EQUAL
+Multi_key equal U2395 : ⌸ U2338 # = ⎕ APL
FUNCTIONAL SYMBOL QUAD EQUAL
+Multi_key U2395 division : ⌹ U2339 # ⎕ ÷ APL
FUNCTIONAL SYMBOL QUAD DIVIDE
+Multi_key division U2395 : ⌹ U2339 # ÷ ⎕ APL
FUNCTIONAL SYMBOL QUAD DIVIDE
+Multi_key U2395 U22c4 : ⌺ U233a # ⎕ ⋄ APL
FUNCTIONAL SYMBOL QUAD DIAMOND
+Multi_key U22c4 U2395 : ⌺ U233a # ⋄ ⎕ APL
FUNCTIONAL SYMBOL QUAD DIAMOND
+Multi_key U2395 U2218 : ⌻ U233b # ⎕ ∘ APL
FUNCTIONAL SYMBOL QUAD JOT
+Multi_key U2218 U2395 : ⌻ U233b # ∘ ⎕ APL
FUNCTIONAL SYMBOL QUAD JOT
+Multi_key U2395