diff --git a/src/Inter-UI-Black.ufo/features.fea b/src/Inter-UI-Black.ufo/features.fea
index 8595a68d9..34c84e1c5 100644
--- a/src/Inter-UI-Black.ufo/features.fea
+++ b/src/Inter-UI-Black.ufo/features.fea
@@ -1024,7 +1024,6 @@ sub leftLongArrow by leftLongArrow.case;
sub rightArrow by rightArrow.case;
sub rightLongArrow by rightLongArrow.case;
sub leftRightArrow by leftRightArrow.case;
-sub upDownArrow by upDownArrow.case;
sub leftRightLongArrow by leftRightLongArrow.case;
} case;
@@ -1057,7 +1056,6 @@ feature calt {
rightLongArrow
leftRightArrow
leftRightLongArrow
- upDownArrow
notequal
colon
];
@@ -1093,7 +1091,6 @@ feature calt {
rightLongArrow.case
leftRightArrow.case
leftRightLongArrow.case
- upDownArrow.case
notequal.case
colon.case
];
@@ -1105,23 +1102,19 @@ feature calt {
@UC = [ @UC_ROMAN @UC_SET1 exclam question ];
@LC = [ @LC_ROMAN @LC_SET1 ];
-sub [ @UC @CASE_R ] @CASE_L' by @CASE_R; # Z y' -> Z x -> Z x 'y -> Z x x ...
-ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M
-sub @CASE_L' [ @UC @CASE_R ] by @CASE_R; # y' Z -> x Z
-
-# rule to support left-hand repetition of CASE{L}->{R} [issue #57]
-# e.g. /at /at /UC -> /at.case /at /UC -> /at.case /at.case /UC
-# Note that we can't look further than 2 glyphs back, since it would break
-# cases like /a /braceleft /braceright /asterisk /asterisk /A
-sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;
+# ---------------------------------------------------
# ignore <-NUM e.g. "<-3"
ignore sub less [ hyphen hyphen.case endash endash.case emdash emdash.case ] @NUM;
+
# arrows: <->
sub less hyphen greater by leftRightArrow;
sub less hyphen.case greater by leftRightArrow.case;
sub less [endash emdash] greater by leftRightLongArrow;
sub less [endash.case emdash.case] greater by leftRightLongArrow.case;
+sub less hyphen hyphen greater by leftRightLongArrow;
+sub less hyphen.case hyphen.case greater by leftRightLongArrow.case;
+
# arrows: ->
sub hyphen greater by rightArrow;
sub hyphen.case greater by rightArrow.case;
@@ -1133,6 +1126,30 @@ sub less hyphen.case by leftArrow.case;
sub less [endash emdash] by leftLongArrow;
sub less [endash.case emdash.case] by leftLongArrow.case;
+# :-)
+sub colon' [hyphen hyphen.case endash endash.case emdash emdash.case] [parenright parenright.case] by colon.case;
+sub [colon colon.case] hyphen' [parenright parenright.case] by hyphen.case;
+sub [colon colon.case] endash' [parenright parenright.case] by endash.case;
+sub [colon colon.case] emdash' [parenright parenright.case] by emdash.case;
+sub [colon colon.case] [hyphen hyphen.case endash endash.case emdash emdash.case] parenright' by parenright.case;
+
+# A foo' -> A foo.case
+sub [ @UC @CASE_R ] @CASE_L' by @CASE_R;
+ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M
+
+# foo' foo foo foo foo A -> foo.case foo foo foo foo A
+# foo' foo foo foo A -> foo.case foo foo foo A
+# foo' foo foo A -> foo.case foo foo A
+# foo' foo A -> foo.case foo A
+# foo' A -> foo.case A
+# Note: since we look quite far back, sequences like x{}[]M will case both
+# the square brackets next to M _and_ the curly braces to become .case
+sub @CASE_L' @CASE_L @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' [ @UC @CASE_R ] by @CASE_R;
+
} calt;
feature tnum {
diff --git a/src/Inter-UI-Black.ufo/fontinfo.plist b/src/Inter-UI-Black.ufo/fontinfo.plist
index 705774642..2d36c6298 100644
--- a/src/Inter-UI-Black.ufo/fontinfo.plist
+++ b/src/Inter-UI-Black.ufo/fontinfo.plist
@@ -48,6 +48,14 @@
y
768.0
+
+ angle
+ 0.0
+ x
+ 2660.0
+ y
+ 1024.0
+
italicAngle
-0.0
@@ -89,9 +97,9 @@
openTypeNameSampleText
openTypeNameUniqueID
- Inter UI Black:2018:a2200c6b
+ Inter UI Black:2018:06dfba3d
openTypeNameVersion
- 3.0;a2200c6b
+ 3.0;06dfba3d
openTypeOS2CodePageRanges
0
diff --git a/src/Inter-UI-Black.ufo/glyphs.public.background/K_hook.glif b/src/Inter-UI-Black.ufo/glyphs.public.background/K_hook.glif
deleted file mode 100644
index cfa28c13a..000000000
--- a/src/Inter-UI-Black.ufo/glyphs.public.background/K_hook.glif
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/src/Inter-UI-Black.ufo/glyphs.public.background/contents.plist b/src/Inter-UI-Black.ufo/glyphs.public.background/contents.plist
deleted file mode 100644
index 4aa48d64e..000000000
--- a/src/Inter-UI-Black.ufo/glyphs.public.background/contents.plist
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
- C
- C_.glif
- G
- G_.glif
- Khook
- K_hook.glif
- Omega
- O_mega.glif
- P
- P_.glif
- ae
- ae.glif
- asterisk
- asterisk.glif
- b
- b.glif
- c
- c.glif
- comma
- comma.glif
- e
- e.glif
- eight
- eight.glif
- eight.dnomf
- eight.dnomf.glif
- five
- five.glif
- four
- four.glif
- four.ss01
- four.ss01.glif
- g
- g.glif
- interrobang
- interrobang.glif
- lambda
- lambda.glif
- m
- m.glif
- micro
- micro.glif
- nu
- nu.glif
- pertenthousand
- pertenthousand.glif
- perthousand
- perthousand.glif
- phigreek
- phigreek.glif
- seven
- seven.glif
- seven.dnomf
- seven.dnomf.glif
- six
- six.glif
- six.dnomf
- six.dnomf.glif
- six.ss01
- six.ss01.glif
- two
- two.glif
- uni04FD
- uni04F_D_.glif
- y
- y.glif
-
-
diff --git a/src/Inter-UI-Black.ufo/glyphs.public.background/lambda.glif b/src/Inter-UI-Black.ufo/glyphs.public.background/lambda.glif
deleted file mode 100644
index 20e4d8d71..000000000
--- a/src/Inter-UI-Black.ufo/glyphs.public.background/lambda.glif
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/src/Inter-UI-Black.ufo/glyphs.public.background/layerinfo.plist b/src/Inter-UI-Black.ufo/glyphs.public.background/layerinfo.plist
deleted file mode 100644
index 564c7a6bb..000000000
--- a/src/Inter-UI-Black.ufo/glyphs.public.background/layerinfo.plist
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/src/Inter-UI-Black.ufo/glyphs/contents.plist b/src/Inter-UI-Black.ufo/glyphs/contents.plist
index 4876b88ff..fda28c9ed 100644
--- a/src/Inter-UI-Black.ufo/glyphs/contents.plist
+++ b/src/Inter-UI-Black.ufo/glyphs/contents.plist
@@ -4350,8 +4350,6 @@
upA_rrow.glif
upDownArrow
upD_ownA_rrow.glif
- upDownArrow.case
- upD_ownA_rrow.case.glif
upsilon
upsilon.glif
upsilondieresis
diff --git a/src/Inter-UI-Black.ufo/glyphs/upD_ownA_rrow.case.glif b/src/Inter-UI-Black.ufo/glyphs/upD_ownA_rrow.case.glif
deleted file mode 100644
index 5e2f0bcc7..000000000
--- a/src/Inter-UI-Black.ufo/glyphs/upD_ownA_rrow.case.glif
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
- com.schriftgestaltung.Glyphs.glyph.leftMetricsKey
- upArrow
- com.schriftgestaltung.Glyphs.glyph.rightMetricsKey
- upArrow
- public.markColor
- 0.67,0.95,0.38,1
-
-
-
diff --git a/src/Inter-UI-Black.ufo/layercontents.plist b/src/Inter-UI-Black.ufo/layercontents.plist
index 25677ffcc..963df4006 100644
--- a/src/Inter-UI-Black.ufo/layercontents.plist
+++ b/src/Inter-UI-Black.ufo/layercontents.plist
@@ -6,69 +6,5 @@
public.default
glyphs
-
- public.background
- glyphs.public.background
-
-
- Sep 26 18, 17:42
- glyphs.S_ep 26 18, 17_42
-
-
- Sep 26 18, 17:42.background
- glyphs.S_ep 26 18, 17_42.background
-
-
- Sep 9 18, 17:18
- glyphs.S_ep 9 18, 17_18
-
-
- Sep 16 18, 18:28
- glyphs.S_ep 16 18, 18_28
-
-
- Sep 16 18, 17:50
- glyphs.S_ep 16 18, 17_50
-
-
- Sep 16 18, 18:59
- glyphs.S_ep 16 18, 18_59
-
-
- Sep 20 18, 18:25
- glyphs.S_ep 20 18, 18_25
-
-
- Sep 20 18, 18:25.background
- glyphs.S_ep 20 18, 18_25.background
-
-
- Sep 23 18, 19:05
- glyphs.S_ep 23 18, 19_05
-
-
- Sep 23 18, 19:05.background
- glyphs.S_ep 23 18, 19_05.background
-
-
- Sep 23 18, 23:18
- glyphs.S_ep 23 18, 23_18
-
-
- Sep 23 18, 23:18.background
- glyphs.S_ep 23 18, 23_18.background
-
-
- _base
- glyphs._base
-
-
- Sep 11 18, 18:19
- glyphs.S_ep 11 18, 18_19
-
-
- Sep 11 18, 18:19.background
- glyphs.S_ep 11 18, 18_19.background
-
diff --git a/src/Inter-UI-Black.ufo/lib.plist b/src/Inter-UI-Black.ufo/lib.plist
index 117852485..15b0a7907 100644
--- a/src/Inter-UI-Black.ufo/lib.plist
+++ b/src/Inter-UI-Black.ufo/lib.plist
@@ -1573,22 +1573,21 @@
leftArrow.case
leftLongArrow
leftLongArrow.case
- upArrow
rightArrow
rightArrow.case
rightLongArrow
rightLongArrow.case
- downArrow
northWestArrow
northEastArrow
southEastArrow
southWestArrow
leftRightArrow
leftRightArrow.case
- upDownArrow
- upDownArrow.case
leftRightLongArrow
leftRightLongArrow.case
+ upArrow
+ downArrow
+ upDownArrow
dngb_check
dngb_ballotx
triagrt
diff --git a/src/Inter-UI-BlackItalic.ufo/features.fea b/src/Inter-UI-BlackItalic.ufo/features.fea
index 8595a68d9..34c84e1c5 100644
--- a/src/Inter-UI-BlackItalic.ufo/features.fea
+++ b/src/Inter-UI-BlackItalic.ufo/features.fea
@@ -1024,7 +1024,6 @@ sub leftLongArrow by leftLongArrow.case;
sub rightArrow by rightArrow.case;
sub rightLongArrow by rightLongArrow.case;
sub leftRightArrow by leftRightArrow.case;
-sub upDownArrow by upDownArrow.case;
sub leftRightLongArrow by leftRightLongArrow.case;
} case;
@@ -1057,7 +1056,6 @@ feature calt {
rightLongArrow
leftRightArrow
leftRightLongArrow
- upDownArrow
notequal
colon
];
@@ -1093,7 +1091,6 @@ feature calt {
rightLongArrow.case
leftRightArrow.case
leftRightLongArrow.case
- upDownArrow.case
notequal.case
colon.case
];
@@ -1105,23 +1102,19 @@ feature calt {
@UC = [ @UC_ROMAN @UC_SET1 exclam question ];
@LC = [ @LC_ROMAN @LC_SET1 ];
-sub [ @UC @CASE_R ] @CASE_L' by @CASE_R; # Z y' -> Z x -> Z x 'y -> Z x x ...
-ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M
-sub @CASE_L' [ @UC @CASE_R ] by @CASE_R; # y' Z -> x Z
-
-# rule to support left-hand repetition of CASE{L}->{R} [issue #57]
-# e.g. /at /at /UC -> /at.case /at /UC -> /at.case /at.case /UC
-# Note that we can't look further than 2 glyphs back, since it would break
-# cases like /a /braceleft /braceright /asterisk /asterisk /A
-sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;
+# ---------------------------------------------------
# ignore <-NUM e.g. "<-3"
ignore sub less [ hyphen hyphen.case endash endash.case emdash emdash.case ] @NUM;
+
# arrows: <->
sub less hyphen greater by leftRightArrow;
sub less hyphen.case greater by leftRightArrow.case;
sub less [endash emdash] greater by leftRightLongArrow;
sub less [endash.case emdash.case] greater by leftRightLongArrow.case;
+sub less hyphen hyphen greater by leftRightLongArrow;
+sub less hyphen.case hyphen.case greater by leftRightLongArrow.case;
+
# arrows: ->
sub hyphen greater by rightArrow;
sub hyphen.case greater by rightArrow.case;
@@ -1133,6 +1126,30 @@ sub less hyphen.case by leftArrow.case;
sub less [endash emdash] by leftLongArrow;
sub less [endash.case emdash.case] by leftLongArrow.case;
+# :-)
+sub colon' [hyphen hyphen.case endash endash.case emdash emdash.case] [parenright parenright.case] by colon.case;
+sub [colon colon.case] hyphen' [parenright parenright.case] by hyphen.case;
+sub [colon colon.case] endash' [parenright parenright.case] by endash.case;
+sub [colon colon.case] emdash' [parenright parenright.case] by emdash.case;
+sub [colon colon.case] [hyphen hyphen.case endash endash.case emdash emdash.case] parenright' by parenright.case;
+
+# A foo' -> A foo.case
+sub [ @UC @CASE_R ] @CASE_L' by @CASE_R;
+ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M
+
+# foo' foo foo foo foo A -> foo.case foo foo foo foo A
+# foo' foo foo foo A -> foo.case foo foo foo A
+# foo' foo foo A -> foo.case foo foo A
+# foo' foo A -> foo.case foo A
+# foo' A -> foo.case A
+# Note: since we look quite far back, sequences like x{}[]M will case both
+# the square brackets next to M _and_ the curly braces to become .case
+sub @CASE_L' @CASE_L @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' [ @UC @CASE_R ] by @CASE_R;
+
} calt;
feature tnum {
diff --git a/src/Inter-UI-BlackItalic.ufo/fontinfo.plist b/src/Inter-UI-BlackItalic.ufo/fontinfo.plist
index e48d8440d..eb580b285 100644
--- a/src/Inter-UI-BlackItalic.ufo/fontinfo.plist
+++ b/src/Inter-UI-BlackItalic.ufo/fontinfo.plist
@@ -105,9 +105,9 @@
openTypeNameSampleText
openTypeNameUniqueID
- Inter UI Black Italic:2018:a2200c6b
+ Inter UI Black Italic:2018:06dfba3d
openTypeNameVersion
- 3.0;a2200c6b
+ 3.0;06dfba3d
openTypeOS2CodePageRanges
0
diff --git a/src/Inter-UI-BlackItalic.ufo/glyphs/contents.plist b/src/Inter-UI-BlackItalic.ufo/glyphs/contents.plist
index 4876b88ff..fda28c9ed 100644
--- a/src/Inter-UI-BlackItalic.ufo/glyphs/contents.plist
+++ b/src/Inter-UI-BlackItalic.ufo/glyphs/contents.plist
@@ -4350,8 +4350,6 @@
upA_rrow.glif
upDownArrow
upD_ownA_rrow.glif
- upDownArrow.case
- upD_ownA_rrow.case.glif
upsilon
upsilon.glif
upsilondieresis
diff --git a/src/Inter-UI-BlackItalic.ufo/glyphs/fdotaccent.glif b/src/Inter-UI-BlackItalic.ufo/glyphs/fdotaccent.glif
index 95ba9917c..a8c8132e4 100644
--- a/src/Inter-UI-BlackItalic.ufo/glyphs/fdotaccent.glif
+++ b/src/Inter-UI-BlackItalic.ufo/glyphs/fdotaccent.glif
@@ -4,6 +4,6 @@
-
+
diff --git a/src/Inter-UI-BlackItalic.ufo/glyphs/upD_ownA_rrow.case.glif b/src/Inter-UI-BlackItalic.ufo/glyphs/upD_ownA_rrow.case.glif
deleted file mode 100644
index 614ab7dad..000000000
--- a/src/Inter-UI-BlackItalic.ufo/glyphs/upD_ownA_rrow.case.glif
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
- com.schriftgestaltung.Glyphs.glyph.leftMetricsKey
- upArrow
- com.schriftgestaltung.Glyphs.glyph.rightMetricsKey
- upArrow
- public.markColor
- 0.67,0.95,0.38,1
-
-
-
diff --git a/src/Inter-UI-BlackItalic.ufo/layercontents.plist b/src/Inter-UI-BlackItalic.ufo/layercontents.plist
index 6b6641a58..963df4006 100644
--- a/src/Inter-UI-BlackItalic.ufo/layercontents.plist
+++ b/src/Inter-UI-BlackItalic.ufo/layercontents.plist
@@ -6,77 +6,5 @@
public.default
glyphs
-
- public.background
- glyphs.public.background
-
-
- Sep 14 18, 09:35
- glyphs.S_ep 14 18, 09_35
-
-
- Sep 14 18, 09:35.background
- glyphs.S_ep 14 18, 09_35.background
-
-
- Sep 14 18, 09:46
- glyphs.S_ep 14 18, 09_46
-
-
- Sep 14 18, 09:43
- glyphs.S_ep 14 18, 09_43
-
-
- Sep 14 18, 09:43.background
- glyphs.S_ep 14 18, 09_43.background
-
-
- Sep 14 18, 09:53
- glyphs.S_ep 14 18, 09_53
-
-
- Sep 14 18, 09:39
- glyphs.S_ep 14 18, 09_39
-
-
- Sep 14 18, 09:56
- glyphs.S_ep 14 18, 09_56
-
-
- Sep 14 18, 10:05
- glyphs.S_ep 14 18, 10_05
-
-
- Sep 14 18, 10:05.background
- glyphs.S_ep 14 18, 10_05.background
-
-
- Sep 14 18, 19:17
- glyphs.S_ep 14 18, 19_17
-
-
- Sep 14 18, 19:17.background
- glyphs.S_ep 14 18, 19_17.background
-
-
- Sep 16 18, 21:53
- glyphs.S_ep 16 18, 21_53
-
-
- Sep 16 18, 18:56
- glyphs.S_ep 16 18, 18_56
-
-
- Sep 16 18, 19:03
- glyphs.S_ep 16 18, 19_03
-
-
- Sep 16 18, 17:54
- glyphs.S_ep 16 18, 17_54
-
-
- Sep 16 18, 17:30
- glyphs.S_ep 16 18, 17_30
-
diff --git a/src/Inter-UI-BlackItalic.ufo/lib.plist b/src/Inter-UI-BlackItalic.ufo/lib.plist
index 5bed23ee2..a8a69d01d 100644
--- a/src/Inter-UI-BlackItalic.ufo/lib.plist
+++ b/src/Inter-UI-BlackItalic.ufo/lib.plist
@@ -1569,22 +1569,21 @@
leftArrow.case
leftLongArrow
leftLongArrow.case
- upArrow
rightArrow
rightArrow.case
rightLongArrow
rightLongArrow.case
- downArrow
northWestArrow
northEastArrow
southEastArrow
southWestArrow
leftRightArrow
leftRightArrow.case
- upDownArrow
- upDownArrow.case
leftRightLongArrow
leftRightLongArrow.case
+ upArrow
+ downArrow
+ upDownArrow
dngb_check
dngb_ballotx
triagrt
diff --git a/src/Inter-UI-Italic.ufo/features.fea b/src/Inter-UI-Italic.ufo/features.fea
index 8595a68d9..34c84e1c5 100644
--- a/src/Inter-UI-Italic.ufo/features.fea
+++ b/src/Inter-UI-Italic.ufo/features.fea
@@ -1024,7 +1024,6 @@ sub leftLongArrow by leftLongArrow.case;
sub rightArrow by rightArrow.case;
sub rightLongArrow by rightLongArrow.case;
sub leftRightArrow by leftRightArrow.case;
-sub upDownArrow by upDownArrow.case;
sub leftRightLongArrow by leftRightLongArrow.case;
} case;
@@ -1057,7 +1056,6 @@ feature calt {
rightLongArrow
leftRightArrow
leftRightLongArrow
- upDownArrow
notequal
colon
];
@@ -1093,7 +1091,6 @@ feature calt {
rightLongArrow.case
leftRightArrow.case
leftRightLongArrow.case
- upDownArrow.case
notequal.case
colon.case
];
@@ -1105,23 +1102,19 @@ feature calt {
@UC = [ @UC_ROMAN @UC_SET1 exclam question ];
@LC = [ @LC_ROMAN @LC_SET1 ];
-sub [ @UC @CASE_R ] @CASE_L' by @CASE_R; # Z y' -> Z x -> Z x 'y -> Z x x ...
-ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M
-sub @CASE_L' [ @UC @CASE_R ] by @CASE_R; # y' Z -> x Z
-
-# rule to support left-hand repetition of CASE{L}->{R} [issue #57]
-# e.g. /at /at /UC -> /at.case /at /UC -> /at.case /at.case /UC
-# Note that we can't look further than 2 glyphs back, since it would break
-# cases like /a /braceleft /braceright /asterisk /asterisk /A
-sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;
+# ---------------------------------------------------
# ignore <-NUM e.g. "<-3"
ignore sub less [ hyphen hyphen.case endash endash.case emdash emdash.case ] @NUM;
+
# arrows: <->
sub less hyphen greater by leftRightArrow;
sub less hyphen.case greater by leftRightArrow.case;
sub less [endash emdash] greater by leftRightLongArrow;
sub less [endash.case emdash.case] greater by leftRightLongArrow.case;
+sub less hyphen hyphen greater by leftRightLongArrow;
+sub less hyphen.case hyphen.case greater by leftRightLongArrow.case;
+
# arrows: ->
sub hyphen greater by rightArrow;
sub hyphen.case greater by rightArrow.case;
@@ -1133,6 +1126,30 @@ sub less hyphen.case by leftArrow.case;
sub less [endash emdash] by leftLongArrow;
sub less [endash.case emdash.case] by leftLongArrow.case;
+# :-)
+sub colon' [hyphen hyphen.case endash endash.case emdash emdash.case] [parenright parenright.case] by colon.case;
+sub [colon colon.case] hyphen' [parenright parenright.case] by hyphen.case;
+sub [colon colon.case] endash' [parenright parenright.case] by endash.case;
+sub [colon colon.case] emdash' [parenright parenright.case] by emdash.case;
+sub [colon colon.case] [hyphen hyphen.case endash endash.case emdash emdash.case] parenright' by parenright.case;
+
+# A foo' -> A foo.case
+sub [ @UC @CASE_R ] @CASE_L' by @CASE_R;
+ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M
+
+# foo' foo foo foo foo A -> foo.case foo foo foo foo A
+# foo' foo foo foo A -> foo.case foo foo foo A
+# foo' foo foo A -> foo.case foo foo A
+# foo' foo A -> foo.case foo A
+# foo' A -> foo.case A
+# Note: since we look quite far back, sequences like x{}[]M will case both
+# the square brackets next to M _and_ the curly braces to become .case
+sub @CASE_L' @CASE_L @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' [ @UC @CASE_R ] by @CASE_R;
+
} calt;
feature tnum {
diff --git a/src/Inter-UI-Italic.ufo/fontinfo.plist b/src/Inter-UI-Italic.ufo/fontinfo.plist
index 96ca5dd51..dca501a1d 100644
--- a/src/Inter-UI-Italic.ufo/fontinfo.plist
+++ b/src/Inter-UI-Italic.ufo/fontinfo.plist
@@ -105,9 +105,9 @@
openTypeNameSampleText
openTypeNameUniqueID
- Inter UI Italic:2018:a2200c6b
+ Inter UI Italic:2018:06dfba3d
openTypeNameVersion
- 3.0;a2200c6b
+ 3.0;06dfba3d
openTypeOS2CodePageRanges
0
diff --git a/src/Inter-UI-Italic.ufo/glyphs/contents.plist b/src/Inter-UI-Italic.ufo/glyphs/contents.plist
index 4876b88ff..fda28c9ed 100644
--- a/src/Inter-UI-Italic.ufo/glyphs/contents.plist
+++ b/src/Inter-UI-Italic.ufo/glyphs/contents.plist
@@ -4350,8 +4350,6 @@
upA_rrow.glif
upDownArrow
upD_ownA_rrow.glif
- upDownArrow.case
- upD_ownA_rrow.case.glif
upsilon
upsilon.glif
upsilondieresis
diff --git a/src/Inter-UI-Italic.ufo/glyphs/downA_rrow.glif b/src/Inter-UI-Italic.ufo/glyphs/downA_rrow.glif
index f119c91ab..477e0fc24 100644
--- a/src/Inter-UI-Italic.ufo/glyphs/downA_rrow.glif
+++ b/src/Inter-UI-Italic.ufo/glyphs/downA_rrow.glif
@@ -3,7 +3,7 @@
-
+
diff --git a/src/Inter-UI-Italic.ufo/glyphs/upA_rrow.glif b/src/Inter-UI-Italic.ufo/glyphs/upA_rrow.glif
index ae1f5b792..f0bde5764 100644
--- a/src/Inter-UI-Italic.ufo/glyphs/upA_rrow.glif
+++ b/src/Inter-UI-Italic.ufo/glyphs/upA_rrow.glif
@@ -4,17 +4,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Inter-UI-Italic.ufo/glyphs/upD_ownA_rrow.case.glif b/src/Inter-UI-Italic.ufo/glyphs/upD_ownA_rrow.case.glif
deleted file mode 100644
index 3e3ba2b58..000000000
--- a/src/Inter-UI-Italic.ufo/glyphs/upD_ownA_rrow.case.glif
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
- com.schriftgestaltung.Glyphs.glyph.leftMetricsKey
- upArrow
- com.schriftgestaltung.Glyphs.glyph.rightMetricsKey
- upArrow
- public.markColor
- 0.67,0.95,0.38,1
-
-
-
diff --git a/src/Inter-UI-Italic.ufo/layercontents.plist b/src/Inter-UI-Italic.ufo/layercontents.plist
index ab4f645ce..963df4006 100644
--- a/src/Inter-UI-Italic.ufo/layercontents.plist
+++ b/src/Inter-UI-Italic.ufo/layercontents.plist
@@ -6,61 +6,5 @@
public.default
glyphs
-
- public.background
- glyphs.public.background
-
-
- Sep 11 18, 23:27
- glyphs.S_ep 11 18, 23_27
-
-
- Sep 11 18, 23:23
- glyphs.S_ep 11 18, 23_23
-
-
- Sep 11 18, 23:24
- glyphs.S_ep 11 18, 23_24
-
-
- Sep 11 18, 23:22
- glyphs.S_ep 11 18, 23_22
-
-
- Sep 14 18, 19:26
- glyphs.S_ep 14 18, 19_26
-
-
- Sep 11 18, 19:44
- glyphs.S_ep 11 18, 19_44
-
-
- Sep 11 18, 19:44.background
- glyphs.S_ep 11 18, 19_44.background
-
-
- Sep 16 18, 17:48
- glyphs.S_ep 16 18, 17_48
-
-
- Sep 15 18, 14:44
- glyphs.S_ep 15 18, 14_44
-
-
- Sep 16 18, 16:57
- glyphs.S_ep 16 18, 16_57
-
-
- Sep 23 18, 16:27
- glyphs.S_ep 23 18, 16_27
-
-
- Sep 11 18, 20:42
- glyphs.S_ep 11 18, 20_42
-
-
- _base
- glyphs._base
-
diff --git a/src/Inter-UI-Italic.ufo/lib.plist b/src/Inter-UI-Italic.ufo/lib.plist
index ceac6c478..c4c10494b 100644
--- a/src/Inter-UI-Italic.ufo/lib.plist
+++ b/src/Inter-UI-Italic.ufo/lib.plist
@@ -1575,22 +1575,21 @@
leftArrow.case
leftLongArrow
leftLongArrow.case
- upArrow
rightArrow
rightArrow.case
rightLongArrow
rightLongArrow.case
- downArrow
northWestArrow
northEastArrow
southEastArrow
southWestArrow
leftRightArrow
leftRightArrow.case
- upDownArrow
- upDownArrow.case
leftRightLongArrow
leftRightLongArrow.case
+ upArrow
+ downArrow
+ upDownArrow
dngb_check
dngb_ballotx
triagrt
diff --git a/src/Inter-UI-Regular.ufo/features.fea b/src/Inter-UI-Regular.ufo/features.fea
index 8595a68d9..34c84e1c5 100644
--- a/src/Inter-UI-Regular.ufo/features.fea
+++ b/src/Inter-UI-Regular.ufo/features.fea
@@ -1024,7 +1024,6 @@ sub leftLongArrow by leftLongArrow.case;
sub rightArrow by rightArrow.case;
sub rightLongArrow by rightLongArrow.case;
sub leftRightArrow by leftRightArrow.case;
-sub upDownArrow by upDownArrow.case;
sub leftRightLongArrow by leftRightLongArrow.case;
} case;
@@ -1057,7 +1056,6 @@ feature calt {
rightLongArrow
leftRightArrow
leftRightLongArrow
- upDownArrow
notequal
colon
];
@@ -1093,7 +1091,6 @@ feature calt {
rightLongArrow.case
leftRightArrow.case
leftRightLongArrow.case
- upDownArrow.case
notequal.case
colon.case
];
@@ -1105,23 +1102,19 @@ feature calt {
@UC = [ @UC_ROMAN @UC_SET1 exclam question ];
@LC = [ @LC_ROMAN @LC_SET1 ];
-sub [ @UC @CASE_R ] @CASE_L' by @CASE_R; # Z y' -> Z x -> Z x 'y -> Z x x ...
-ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M
-sub @CASE_L' [ @UC @CASE_R ] by @CASE_R; # y' Z -> x Z
-
-# rule to support left-hand repetition of CASE{L}->{R} [issue #57]
-# e.g. /at /at /UC -> /at.case /at /UC -> /at.case /at.case /UC
-# Note that we can't look further than 2 glyphs back, since it would break
-# cases like /a /braceleft /braceright /asterisk /asterisk /A
-sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;
+# ---------------------------------------------------
# ignore <-NUM e.g. "<-3"
ignore sub less [ hyphen hyphen.case endash endash.case emdash emdash.case ] @NUM;
+
# arrows: <->
sub less hyphen greater by leftRightArrow;
sub less hyphen.case greater by leftRightArrow.case;
sub less [endash emdash] greater by leftRightLongArrow;
sub less [endash.case emdash.case] greater by leftRightLongArrow.case;
+sub less hyphen hyphen greater by leftRightLongArrow;
+sub less hyphen.case hyphen.case greater by leftRightLongArrow.case;
+
# arrows: ->
sub hyphen greater by rightArrow;
sub hyphen.case greater by rightArrow.case;
@@ -1133,6 +1126,30 @@ sub less hyphen.case by leftArrow.case;
sub less [endash emdash] by leftLongArrow;
sub less [endash.case emdash.case] by leftLongArrow.case;
+# :-)
+sub colon' [hyphen hyphen.case endash endash.case emdash emdash.case] [parenright parenright.case] by colon.case;
+sub [colon colon.case] hyphen' [parenright parenright.case] by hyphen.case;
+sub [colon colon.case] endash' [parenright parenright.case] by endash.case;
+sub [colon colon.case] emdash' [parenright parenright.case] by emdash.case;
+sub [colon colon.case] [hyphen hyphen.case endash endash.case emdash emdash.case] parenright' by parenright.case;
+
+# A foo' -> A foo.case
+sub [ @UC @CASE_R ] @CASE_L' by @CASE_R;
+ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M
+
+# foo' foo foo foo foo A -> foo.case foo foo foo foo A
+# foo' foo foo foo A -> foo.case foo foo foo A
+# foo' foo foo A -> foo.case foo foo A
+# foo' foo A -> foo.case foo A
+# foo' A -> foo.case A
+# Note: since we look quite far back, sequences like x{}[]M will case both
+# the square brackets next to M _and_ the curly braces to become .case
+sub @CASE_L' @CASE_L @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;
+sub @CASE_L' [ @UC @CASE_R ] by @CASE_R;
+
} calt;
feature tnum {
diff --git a/src/Inter-UI-Regular.ufo/fontinfo.plist b/src/Inter-UI-Regular.ufo/fontinfo.plist
index bbdc7104a..4f000304d 100644
--- a/src/Inter-UI-Regular.ufo/fontinfo.plist
+++ b/src/Inter-UI-Regular.ufo/fontinfo.plist
@@ -68,6 +68,14 @@
y
2304.0
+
+ angle
+ 0.0
+ x
+ 2296.0
+ y
+ 1024.0
+
italicAngle
-0.0
@@ -109,9 +117,9 @@
openTypeNameSampleText
openTypeNameUniqueID
- Inter UI Regular:2018:a2200c6b
+ Inter UI Regular:2018:06dfba3d
openTypeNameVersion
- 3.0;a2200c6b
+ 3.0;06dfba3d
openTypeOS2CodePageRanges
0
diff --git a/src/Inter-UI-Regular.ufo/glyphs.public.background/K_hook.glif b/src/Inter-UI-Regular.ufo/glyphs.public.background/K_hook.glif
deleted file mode 100644
index 6f3b463df..000000000
--- a/src/Inter-UI-Regular.ufo/glyphs.public.background/K_hook.glif
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/src/Inter-UI-Regular.ufo/glyphs.public.background/R_x.glif b/src/Inter-UI-Regular.ufo/glyphs.public.background/R_x.glif
deleted file mode 100644
index 74dafda55..000000000
--- a/src/Inter-UI-Regular.ufo/glyphs.public.background/R_x.glif
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/src/Inter-UI-Regular.ufo/glyphs.public.background/b.glif b/src/Inter-UI-Regular.ufo/glyphs.public.background/b.glif
deleted file mode 100644
index ef3b81372..000000000
--- a/src/Inter-UI-Regular.ufo/glyphs.public.background/b.glif
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/src/Inter-UI-Regular.ufo/glyphs.public.background/contents.plist b/src/Inter-UI-Regular.ufo/glyphs.public.background/contents.plist
deleted file mode 100644
index 251e2d0ae..000000000
--- a/src/Inter-UI-Regular.ufo/glyphs.public.background/contents.plist
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
- G
- G_.glif
- Khook
- K_hook.glif
- Omega
- O_mega.glif
- Rx
- R_x.glif
- asterisk
- asterisk.glif
- asterisk.case
- asterisk.case.glif
- b
- b.glif
- e
- e.glif
- four.ss01
- four.ss01.glif
- interrobang
- interrobang.glif
- jcrosstail.ccmp
- jcrosstail.ccmp.glif
- lambda
- lambda.glif
- pertenthousand
- pertenthousand.glif
- perthousand
- perthousand.glif
- six
- six.glif
- six.dnomf
- six.dnomf.glif
- six.ss01
- six.ss01.glif
- three
- three.glif
- two
- two.glif
-
-
diff --git a/src/Inter-UI-Regular.ufo/glyphs.public.background/jcrosstail.ccmp.glif b/src/Inter-UI-Regular.ufo/glyphs.public.background/jcrosstail.ccmp.glif
deleted file mode 100644
index 6fbcda319..000000000
--- a/src/Inter-UI-Regular.ufo/glyphs.public.background/jcrosstail.ccmp.glif
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/src/Inter-UI-Regular.ufo/glyphs.public.background/lambda.glif b/src/Inter-UI-Regular.ufo/glyphs.public.background/lambda.glif
deleted file mode 100644
index d46c1376d..000000000
--- a/src/Inter-UI-Regular.ufo/glyphs.public.background/lambda.glif
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/src/Inter-UI-Regular.ufo/glyphs.public.background/layerinfo.plist b/src/Inter-UI-Regular.ufo/glyphs.public.background/layerinfo.plist
deleted file mode 100644
index 564c7a6bb..000000000
--- a/src/Inter-UI-Regular.ufo/glyphs.public.background/layerinfo.plist
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/src/Inter-UI-Regular.ufo/glyphs/contents.plist b/src/Inter-UI-Regular.ufo/glyphs/contents.plist
index 4876b88ff..fda28c9ed 100644
--- a/src/Inter-UI-Regular.ufo/glyphs/contents.plist
+++ b/src/Inter-UI-Regular.ufo/glyphs/contents.plist
@@ -4350,8 +4350,6 @@
upA_rrow.glif
upDownArrow
upD_ownA_rrow.glif
- upDownArrow.case
- upD_ownA_rrow.case.glif
upsilon
upsilon.glif
upsilondieresis
diff --git a/src/Inter-UI-Regular.ufo/glyphs/upD_ownA_rrow.case.glif b/src/Inter-UI-Regular.ufo/glyphs/upD_ownA_rrow.case.glif
deleted file mode 100644
index 9436f46d7..000000000
--- a/src/Inter-UI-Regular.ufo/glyphs/upD_ownA_rrow.case.glif
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
- com.schriftgestaltung.Glyphs.glyph.leftMetricsKey
- upArrow
- com.schriftgestaltung.Glyphs.glyph.rightMetricsKey
- upArrow
- public.markColor
- 0.67,0.95,0.38,1
-
-
-
diff --git a/src/Inter-UI-Regular.ufo/layercontents.plist b/src/Inter-UI-Regular.ufo/layercontents.plist
index 4d4f4e2b5..963df4006 100644
--- a/src/Inter-UI-Regular.ufo/layercontents.plist
+++ b/src/Inter-UI-Regular.ufo/layercontents.plist
@@ -6,85 +6,5 @@
public.default
glyphs
-
- public.background
- glyphs.public.background
-
-
- Sep 16 18, 16:08
- glyphs.S_ep 16 18, 16_08
-
-
- Sep 16 18, 16:08.background
- glyphs.S_ep 16 18, 16_08.background
-
-
- Sep 23 18, 16:20
- glyphs.S_ep 23 18, 16_20
-
-
- Sep 20 18, 18:59
- glyphs.S_ep 20 18, 18_59
-
-
- Sep 22 - traditional
- glyphs.S_ep 22 - traditional
-
-
- Sep 23 - slice side
- glyphs.S_ep 23 - slice side
-
-
- Sep 23 - slice side.background
- glyphs.S_ep 23 - slice side.background
-
-
- Sep 23 - conjoined
- glyphs.S_ep 23 - conjoined
-
-
- Sep 23 - conjoined.background
- glyphs.S_ep 23 - conjoined.background
-
-
- Sep 23 - trad 2
- glyphs.S_ep 23 - trad 2
-
-
- Sep 23 - trad 2.background
- glyphs.S_ep 23 - trad 2.background
-
-
- Sep 23 - slice center
- glyphs.S_ep 23 - slice center
-
-
- Sep 23 - slice center.background
- glyphs.S_ep 23 - slice center.background
-
-
- Sep 23 - crazy1
- glyphs.S_ep 23 - crazy1
-
-
- Sep 23 - crazy1.background
- glyphs.S_ep 23 - crazy1.background
-
-
- Sep 23 18, 23:20
- glyphs.S_ep 23 18, 23_20
-
-
- Sep 23 18, 23:20.background
- glyphs.S_ep 23 18, 23_20.background
-
-
- _base
- glyphs._base
-
-
- Sep 23 18, 17:53
- glyphs.S_ep 23 18, 17_53
-
diff --git a/src/Inter-UI-Regular.ufo/lib.plist b/src/Inter-UI-Regular.ufo/lib.plist
index a7998b705..dd25a31c2 100644
--- a/src/Inter-UI-Regular.ufo/lib.plist
+++ b/src/Inter-UI-Regular.ufo/lib.plist
@@ -1577,22 +1577,21 @@
leftArrow.case
leftLongArrow
leftLongArrow.case
- upArrow
rightArrow
rightArrow.case
rightLongArrow
rightLongArrow.case
- downArrow
northWestArrow
northEastArrow
southEastArrow
southWestArrow
leftRightArrow
leftRightArrow.case
- upDownArrow
- upDownArrow.case
leftRightLongArrow
leftRightLongArrow.case
+ upArrow
+ downArrow
+ upDownArrow
dngb_check
dngb_ballotx
triagrt
diff --git a/src/Inter-UI.glyphs b/src/Inter-UI.glyphs
index 464d3c97f..1f4761573 100644
--- a/src/Inter-UI.glyphs
+++ b/src/Inter-UI.glyphs
@@ -1646,22 +1646,21 @@ leftArrow,
leftArrow.case,
leftLongArrow,
leftLongArrow.case,
-upArrow,
rightArrow,
rightArrow.case,
rightLongArrow,
rightLongArrow.case,
-downArrow,
northWestArrow,
northEastArrow,
southEastArrow,
southWestArrow,
leftRightArrow,
leftRightArrow.case,
-upDownArrow,
-upDownArrow.case,
leftRightLongArrow,
leftRightLongArrow.case,
+upArrow,
+downArrow,
+upDownArrow,
dngb_check,
dngb_ballotx,
triagrt,
@@ -2574,11 +2573,11 @@ name = dnom;
},
{
automatic = 1;
-code = "sub parenleft by parenleft.case;\012sub parenright by parenright.case;\012sub bracketleft by bracketleft.case;\012sub bracketright by bracketright.case;\012sub braceleft by braceleft.case;\012sub braceright by braceright.case;\012sub at by at.case;\012sub hyphen by hyphen.case;\012sub endash by endash.case;\012sub figuredash by figuredash.case;\012sub emdash by emdash.case;\012sub bullet by bullet.case;\012sub openbullet by openbullet.case;\012sub colon by colon.case;\012sub equal by equal.case;\012sub notequal by notequal.case;\012sub plus by plus.case;\012sub minus by minus.case;\012sub multiply by multiply.case;\012sub divide by divide.case;\012sub plusminus by plusminus.case;\012sub asterisk by asterisk.case;\012sub leftArrow by leftArrow.case;\012sub leftLongArrow by leftLongArrow.case;\012sub rightArrow by rightArrow.case;\012sub rightLongArrow by rightLongArrow.case;\012sub leftRightArrow by leftRightArrow.case;\012sub upDownArrow by upDownArrow.case;\012sub leftRightLongArrow by leftRightLongArrow.case;\012";
+code = "sub parenleft by parenleft.case;\012sub parenright by parenright.case;\012sub bracketleft by bracketleft.case;\012sub bracketright by bracketright.case;\012sub braceleft by braceleft.case;\012sub braceright by braceright.case;\012sub at by at.case;\012sub hyphen by hyphen.case;\012sub endash by endash.case;\012sub figuredash by figuredash.case;\012sub emdash by emdash.case;\012sub bullet by bullet.case;\012sub openbullet by openbullet.case;\012sub colon by colon.case;\012sub equal by equal.case;\012sub notequal by notequal.case;\012sub plus by plus.case;\012sub minus by minus.case;\012sub multiply by multiply.case;\012sub divide by divide.case;\012sub plusminus by plusminus.case;\012sub asterisk by asterisk.case;\012sub leftArrow by leftArrow.case;\012sub leftLongArrow by leftLongArrow.case;\012sub rightArrow by rightArrow.case;\012sub rightLongArrow by rightLongArrow.case;\012sub leftRightArrow by leftRightArrow.case;\012sub leftRightLongArrow by leftRightLongArrow.case;\012";
name = case;
},
{
-code = "@CASE_DELIM_L = [\012 braceleft braceright\012 bracketleft bracketright\012 parenleft parenright\012];\012@CASE_NONDELIM_L = [\012 asterisk\012 at\012 multiply\012 minus\012 plus\012 plusminus\012 divide\012 equal\012 notequal\012 endash\012 figuredash\012 emdash\012 hyphen\012 bullet\012 openbullet\012 leftArrow\012 leftLongArrow\012 rightArrow\012 rightLongArrow\012 leftRightArrow\012 leftRightLongArrow\012 upDownArrow\012 notequal\012 colon\012];\012@CASE_L = [\012 @CASE_DELIM_L\012 @CASE_NONDELIM_L\012];\012\012@CASE_DELIM_R = [\012 braceleft.case braceright.case\012 bracketleft.case bracketright.case\012 parenleft.case parenright.case\012];\012@CASE_NONDELIM_R = [\012 asterisk.case\012 at.case\012 multiply.case\012 minus.case\012 plus.case\012 plusminus.case\012 divide.case\012 equal.case\012 notequal.case\012 endash.case\012 figuredash.case\012 emdash.case\012 hyphen.case\012 bullet.case\012 openbullet.case\012 leftArrow.case\012 leftLongArrow.case\012 rightArrow.case\012 rightLongArrow.case\012 leftRightArrow.case\012 leftRightLongArrow.case\012 upDownArrow.case\012 notequal.case\012 colon.case\012];\012@CASE_R = [\012 @CASE_DELIM_R\012 @CASE_NONDELIM_R\012];\012\012@UC = [ @UC_ROMAN @UC_SET1 exclam question ];\012@LC = [ @LC_ROMAN @LC_SET1 ];\012\012sub [ @UC @CASE_R ] @CASE_L' by @CASE_R; # Z y' -> Z x -> Z x 'y -> Z x x ...\012ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M\012sub @CASE_L' [ @UC @CASE_R ] by @CASE_R; # y' Z -> x Z\012\012# rule to support left-hand repetition of CASE{L}->{R} [issue #57]\012# e.g. /at /at /UC -> /at.case /at /UC -> /at.case /at.case /UC\012# Note that we can't look further than 2 glyphs back, since it would break\012# cases like /a /braceleft /braceright /asterisk /asterisk /A\012sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;\012\012# ignore <-NUM e.g. \"<-3\"\012ignore sub less [ hyphen hyphen.case endash endash.case emdash emdash.case ] @NUM;\012# arrows: <->\012sub less hyphen greater by leftRightArrow;\012sub less hyphen.case greater by leftRightArrow.case;\012sub less [endash emdash] greater by leftRightLongArrow;\012sub less [endash.case emdash.case] greater by leftRightLongArrow.case;\012# arrows: ->\012sub hyphen greater by rightArrow;\012sub hyphen.case greater by rightArrow.case;\012sub [endash emdash] greater by rightLongArrow;\012sub [endash.case emdash.case] greater by rightLongArrow.case;\012# arrows: <-\012sub less hyphen by leftArrow;\012sub less hyphen.case by leftArrow.case;\012sub less [endash emdash] by leftLongArrow;\012sub less [endash.case emdash.case] by leftLongArrow.case;\012";
+code = "@CASE_DELIM_L = [\012 braceleft braceright\012 bracketleft bracketright\012 parenleft parenright\012];\012@CASE_NONDELIM_L = [\012 asterisk\012 at\012 multiply\012 minus\012 plus\012 plusminus\012 divide\012 equal\012 notequal\012 endash\012 figuredash\012 emdash\012 hyphen\012 bullet\012 openbullet\012 leftArrow\012 leftLongArrow\012 rightArrow\012 rightLongArrow\012 leftRightArrow\012 leftRightLongArrow\012 notequal\012 colon\012];\012@CASE_L = [\012 @CASE_DELIM_L\012 @CASE_NONDELIM_L\012];\012\012@CASE_DELIM_R = [\012 braceleft.case braceright.case\012 bracketleft.case bracketright.case\012 parenleft.case parenright.case\012];\012@CASE_NONDELIM_R = [\012 asterisk.case\012 at.case\012 multiply.case\012 minus.case\012 plus.case\012 plusminus.case\012 divide.case\012 equal.case\012 notequal.case\012 endash.case\012 figuredash.case\012 emdash.case\012 hyphen.case\012 bullet.case\012 openbullet.case\012 leftArrow.case\012 leftLongArrow.case\012 rightArrow.case\012 rightLongArrow.case\012 leftRightArrow.case\012 leftRightLongArrow.case\012 notequal.case\012 colon.case\012];\012@CASE_R = [\012 @CASE_DELIM_R\012 @CASE_NONDELIM_R\012];\012\012@UC = [ @UC_ROMAN @UC_SET1 exclam question ];\012@LC = [ @LC_ROMAN @LC_SET1 ];\012\012# ---------------------------------------------------\012\012# ignore <-NUM e.g. \"<-3\"\012ignore sub less [ hyphen hyphen.case endash endash.case emdash emdash.case ] @NUM;\012\012# arrows: <->\012sub less hyphen greater by leftRightArrow;\012sub less hyphen.case greater by leftRightArrow.case;\012sub less [endash emdash] greater by leftRightLongArrow;\012sub less [endash.case emdash.case] greater by leftRightLongArrow.case;\012sub less hyphen hyphen greater by leftRightLongArrow;\012sub less hyphen.case hyphen.case greater by leftRightLongArrow.case;\012\012# arrows: ->\012sub hyphen greater by rightArrow;\012sub hyphen.case greater by rightArrow.case;\012sub [endash emdash] greater by rightLongArrow;\012sub [endash.case emdash.case] greater by rightLongArrow.case;\012# arrows: <-\012sub less hyphen by leftArrow;\012sub less hyphen.case by leftArrow.case;\012sub less [endash emdash] by leftLongArrow;\012sub less [endash.case emdash.case] by leftLongArrow.case;\012\012# :-)\012sub colon' [hyphen hyphen.case endash endash.case emdash emdash.case] [parenright parenright.case] by colon.case;\012sub [colon colon.case] hyphen' [parenright parenright.case] by hyphen.case;\012sub [colon colon.case] endash' [parenright parenright.case] by endash.case;\012sub [colon colon.case] emdash' [parenright parenright.case] by emdash.case;\012sub [colon colon.case] [hyphen hyphen.case endash endash.case emdash emdash.case] parenright' by parenright.case;\012\012# A foo' -> A foo.case\012sub [ @UC @CASE_R ] @CASE_L' by @CASE_R;\012ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M\012\012# foo' foo foo foo foo A -> foo.case foo foo foo foo A\012# foo' foo foo foo A -> foo.case foo foo foo A\012# foo' foo foo A -> foo.case foo foo A\012# foo' foo A -> foo.case foo A\012# foo' A -> foo.case A\012# Note: since we look quite far back, sequences like x{}[]M will case both\012# the square brackets next to M _and_ the curly braces to become .case\012sub @CASE_L' @CASE_L @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;\012sub @CASE_L' @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;\012sub @CASE_L' @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;\012sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;\012sub @CASE_L' [ @UC @CASE_R ] by @CASE_R;\012";
name = calt;
},
{
@@ -2757,6 +2756,10 @@ position = "{1224, 1056}";
alignment = center;
name = anchors_Cap;
position = "{52, 2304}";
+},
+{
+alignment = center;
+position = "{2296, 1024}";
}
);
horizontalStems = (
@@ -2978,6 +2981,10 @@ position = "{472, 2168}";
{
alignment = center;
position = "{1016, 768}";
+},
+{
+alignment = center;
+position = "{2660, 1024}";
}
);
horizontalStems = (
@@ -37193,7 +37200,7 @@ unicode = 01C8;
{
color = (219,235,247,1);
glyphname = M;
-lastChange = "2018-09-27 17:36:45 +0000";
+lastChange = "2018-09-28 19:03:14 +0000";
layers = (
{
anchors = (
@@ -91300,7 +91307,7 @@ interface.gridadjust.original = "{'width': 989, 'leftMargin': 315, 'rightMargin'
},
{
glyphname = fdotaccent;
-lastChange = "2018-09-28 02:11:20 +0000";
+lastChange = "2018-09-28 19:13:04 +0000";
layers = (
{
components = (
@@ -91348,7 +91355,7 @@ name = f;
},
{
name = dotaccent;
-transform = "{1, 0, 0, 1, 340, 592}";
+transform = "{1, 0, 0, 1, 344, 616}";
}
);
layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
@@ -259541,177 +259548,6 @@ com.typemytype.robofont.guideline.magnetic.j1R7bzZtA3 = 5;
},
{
color = (204,240,242,1);
-glyphname = upArrow;
-lastChange = "2018-09-27 00:56:25 +0000";
-layers = (
-{
-hints = (
-{
-horizontal = 1;
-origin = "{0, 10}";
-target = up;
-type = BottomGhost;
-},
-{
-horizontal = 1;
-origin = "{0, 5}";
-target = down;
-type = TopGhost;
-},
-{
-origin = "{0, 10}";
-target = "{0, 0}";
-type = Stem;
-},
-{
-horizontal = 1;
-origin = "{0, 10}";
-type = Anchor;
-options = 4;
-},
-{
-horizontal = 1;
-origin = "{0, 5}";
-type = Anchor;
-options = 4;
-}
-);
-layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
-paths = (
-{
-closed = 1;
-nodes = (
-"1400 0 LINE",
-"1400 1636 LINE",
-"1416 1636 LINE",
-"2032 1024 LINE",
-"2184 1172 LINE",
-"1288 2068 LINE",
-"392 1172 LINE",
-"548 1024 LINE",
-"1160 1636 LINE",
-"1176 1636 LINE",
-"1176 0 LINE"
-);
-}
-);
-width = 2576;
-},
-{
-guideLines = (
-{
-angle = 90;
-position = "{1324, 452}";
-}
-);
-hints = (
-{
-horizontal = 1;
-origin = "{0, 10}";
-target = up;
-type = BottomGhost;
-},
-{
-horizontal = 1;
-origin = "{0, 5}";
-target = down;
-type = TopGhost;
-},
-{
-horizontal = 1;
-origin = "{0, 10}";
-type = Anchor;
-options = 4;
-},
-{
-horizontal = 1;
-origin = "{0, 5}";
-type = Anchor;
-options = 4;
-}
-);
-layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
-paths = (
-{
-closed = 1;
-nodes = (
-"1612 0 LINE",
-"1612 1304 LINE",
-"1628 1304 LINE",
-"2060 912 LINE",
-"2332 1184 LINE",
-"1408 2064 LINE",
-"484 1184 LINE",
-"756 912 LINE",
-"1188 1304 LINE",
-"1204 1304 LINE",
-"1204 0 LINE"
-);
-}
-);
-width = 2816;
-},
-{
-layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
-paths = (
-{
-closed = 1;
-nodes = (
-"1400 0 LINE",
-"1400 1636 LINE",
-"1416 1636 LINE",
-"2032 1024 LINE",
-"2184 1172 LINE",
-"1288 2068 LINE",
-"392 1172 LINE",
-"548 1024 LINE",
-"1160 1636 LINE",
-"1176 1636 LINE",
-"1176 0 LINE"
-);
-}
-);
-width = 2576;
-},
-{
-guideLines = (
-{
-angle = 90;
-position = "{1220, 452}";
-}
-);
-layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
-paths = (
-{
-closed = 1;
-nodes = (
-"1484 0 LINE",
-"1700 1304 LINE",
-"1716 1304 LINE",
-"2084 912 LINE",
-"2400 1184 LINE",
-"1624 2064 LINE",
-"552 1184 LINE",
-"780 912 LINE",
-"1276 1304 LINE",
-"1292 1304 LINE",
-"1076 0 LINE"
-);
-}
-);
-width = 2816;
-}
-);
-unicode = 2191;
-userData = {
-interface.gridadjust.original = "{'width': 1800, 'leftMargin': 296, 'rightMargin': 304}";
-"interface.width-adjustments" = (
--16
-);
-};
-},
-{
-color = (204,240,242,1);
glyphname = rightArrow;
lastChange = "2018-09-27 16:34:03 +0000";
layers = (
@@ -259767,7 +259603,7 @@ userData = {
{
color = 4;
glyphname = rightArrow.case;
-lastChange = "2018-09-27 18:13:12 +0000";
+lastChange = "2018-09-28 19:07:49 +0000";
layers = (
{
components = (
@@ -259996,61 +259832,6 @@ com.typemytype.robofont.guideline.magnetic.MLXbi8JRvP = 5;
},
{
color = (204,240,242,1);
-glyphname = downArrow;
-lastChange = "2018-09-27 18:09:57 +0000";
-layers = (
-{
-components = (
-{
-name = upArrow;
-transform = "{-1, 0, 0, -1, 2576, 2048}";
-}
-);
-layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
-width = 2576;
-},
-{
-components = (
-{
-name = upArrow;
-transform = "{-1, 0, 0, -1, 2816, 2048}";
-}
-);
-layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
-width = 2816;
-},
-{
-components = (
-{
-name = upArrow;
-transform = "{-1, 0, 0, -1, 2528, 2048}";
-}
-);
-layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
-width = 2576;
-},
-{
-components = (
-{
-name = upArrow;
-transform = "{-1, 0, 0, -1, 2900, 2048}";
-}
-);
-layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
-width = 2816;
-}
-);
-leftMetricsKey = upArrow;
-rightMetricsKey = upArrow;
-unicode = 2193;
-userData = {
-"interface.width-adjustments" = (
--16
-);
-};
-},
-{
-color = (204,240,242,1);
glyphname = northWestArrow;
lastChange = "2018-09-27 00:56:25 +0000";
layers = (
@@ -260598,6 +260379,458 @@ leftMetricsKey = leftArrow;
rightMetricsKey = rightArrow;
},
{
+glyphname = leftRightLongArrow;
+lastChange = "2018-09-27 18:11:05 +0000";
+layers = (
+{
+hints = (
+{
+horizontal = 1;
+origin = "{0, 17}";
+target = up;
+type = BottomGhost;
+},
+{
+horizontal = 1;
+origin = "{0, 2}";
+target = "{0, 12}";
+type = Stem;
+},
+{
+horizontal = 1;
+origin = "{0, 17}";
+type = Anchor;
+options = 4;
+},
+{
+horizontal = 1;
+origin = "{0, 2}";
+target = "{0, 12}";
+type = TTStem;
+options = 4;
+},
+{
+horizontal = 1;
+origin = "{0, 8}";
+target = up;
+type = BottomGhost;
+},
+{
+horizontal = 1;
+origin = "{0, 11}";
+target = "{0, 3}";
+type = Stem;
+},
+{
+horizontal = 1;
+origin = "{0, 8}";
+type = Anchor;
+options = 4;
+},
+{
+horizontal = 1;
+origin = "{0, 11}";
+target = "{0, 3}";
+type = TTStem;
+options = 4;
+}
+);
+layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
+paths = (
+{
+closed = 1;
+nodes = (
+"1420 152 LINE",
+"804 768 LINE",
+"804 784 LINE",
+"4092 784 LINE",
+"4092 768 LINE",
+"3476 152 LINE",
+"3628 0 LINE",
+"4524 896 LINE",
+"3628 1792 LINE",
+"3476 1640 LINE",
+"4092 1024 LINE",
+"4092 1008 LINE",
+"804 1008 LINE",
+"804 1024 LINE",
+"1420 1640 LINE",
+"1268 1792 LINE",
+"372 896 LINE",
+"1268 0 LINE"
+);
+}
+);
+width = 4912;
+},
+{
+layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
+paths = (
+{
+closed = 1;
+nodes = (
+"1456 196 LINE",
+"1024 588 LINE",
+"1024 604 LINE",
+"3620 604 LINE",
+"3620 588 LINE",
+"3188 196 LINE",
+"3464 -72 LINE",
+"4388 804 LINE",
+"3464 1684 LINE",
+"3188 1416 LINE",
+"3620 1024 LINE",
+"3620 1008 LINE",
+"1024 1008 LINE",
+"1024 1024 LINE",
+"1456 1416 LINE",
+"1180 1684 LINE",
+"256 808 LINE",
+"1180 -72 LINE"
+);
+}
+);
+width = 4712;
+},
+{
+layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
+paths = (
+{
+closed = 1;
+nodes = (
+"1360 196 LINE",
+"996 588 LINE",
+"996 604 LINE",
+"3592 604 LINE",
+"3592 588 LINE",
+"3092 196 LINE",
+"3324 -72 LINE",
+"4392 804 LINE",
+"3616 1684 LINE",
+"3296 1416 LINE",
+"3664 1024 LINE",
+"3660 1008 LINE",
+"1064 1008 LINE",
+"1068 1024 LINE",
+"1564 1416 LINE",
+"1332 1684 LINE",
+"264 808 LINE",
+"1040 -72 LINE"
+);
+}
+);
+width = 4712;
+},
+{
+layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
+paths = (
+{
+closed = 1;
+nodes = (
+"1300 152 LINE",
+"784 768 LINE",
+"788 784 LINE",
+"4076 784 LINE",
+"4072 768 LINE",
+"3356 152 LINE",
+"3480 0 LINE",
+"4524 896 LINE",
+"3776 1792 LINE",
+"3600 1640 LINE",
+"4116 1024 LINE",
+"4112 1008 LINE",
+"824 1008 LINE",
+"828 1024 LINE",
+"1544 1640 LINE",
+"1416 1792 LINE",
+"372 896 LINE",
+"1120 0 LINE"
+);
+}
+);
+width = 4912;
+}
+);
+leftMetricsKey = leftArrow;
+rightMetricsKey = rightArrow;
+unicode = 27F7;
+},
+{
+color = 4;
+glyphname = leftRightLongArrow.case;
+lastChange = "2018-09-27 18:27:45 +0000";
+layers = (
+{
+components = (
+{
+name = leftRightLongArrow;
+transform = "{1, 0, 0, 1, 0, 128}";
+}
+);
+layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
+width = 4912;
+},
+{
+components = (
+{
+name = leftRightLongArrow;
+transform = "{1, 0, 0, 1, 24, 128}";
+}
+);
+layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
+width = 4916;
+},
+{
+components = (
+{
+name = leftRightLongArrow;
+transform = "{1, 0, 0, 1, 0, 216}";
+}
+);
+layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
+width = 4712;
+},
+{
+components = (
+{
+name = leftRightLongArrow;
+transform = "{1, 0, 0, 1, 36, 216}";
+}
+);
+layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
+width = 4712;
+}
+);
+leftMetricsKey = leftArrow;
+rightMetricsKey = rightArrow;
+},
+{
+color = (204,240,242,1);
+glyphname = upArrow;
+lastChange = "2018-09-28 19:04:36 +0000";
+layers = (
+{
+hints = (
+{
+horizontal = 1;
+origin = "{0, 10}";
+target = up;
+type = BottomGhost;
+},
+{
+horizontal = 1;
+origin = "{0, 5}";
+target = down;
+type = TopGhost;
+},
+{
+origin = "{0, 10}";
+target = "{0, 0}";
+type = Stem;
+},
+{
+horizontal = 1;
+origin = "{0, 10}";
+type = Anchor;
+options = 4;
+},
+{
+horizontal = 1;
+origin = "{0, 5}";
+type = Anchor;
+options = 4;
+}
+);
+layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
+paths = (
+{
+closed = 1;
+nodes = (
+"1400 0 LINE",
+"1400 1636 LINE",
+"1416 1636 LINE",
+"2032 1024 LINE",
+"2184 1172 LINE",
+"1288 2068 LINE",
+"392 1172 LINE",
+"548 1024 LINE",
+"1160 1636 LINE",
+"1176 1636 LINE",
+"1176 0 LINE"
+);
+}
+);
+width = 2576;
+},
+{
+guideLines = (
+{
+angle = 90;
+position = "{1324, 452}";
+}
+);
+hints = (
+{
+horizontal = 1;
+origin = "{0, 10}";
+target = up;
+type = BottomGhost;
+},
+{
+horizontal = 1;
+origin = "{0, 5}";
+target = down;
+type = TopGhost;
+},
+{
+horizontal = 1;
+origin = "{0, 10}";
+type = Anchor;
+options = 4;
+},
+{
+horizontal = 1;
+origin = "{0, 5}";
+type = Anchor;
+options = 4;
+}
+);
+layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
+paths = (
+{
+closed = 1;
+nodes = (
+"1612 0 LINE",
+"1612 1304 LINE",
+"1628 1304 LINE",
+"2060 912 LINE",
+"2332 1184 LINE",
+"1408 2064 LINE",
+"484 1184 LINE",
+"756 912 LINE",
+"1188 1304 LINE",
+"1204 1304 LINE",
+"1204 0 LINE"
+);
+}
+);
+width = 2816;
+},
+{
+layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
+paths = (
+{
+closed = 1;
+nodes = (
+"1272 0 LINE",
+"1544 1636 LINE",
+"1560 1636 LINE",
+"2076 1024 LINE",
+"2252 1172 LINE",
+"1504 2068 LINE",
+"460 1172 LINE",
+"592 1024 LINE",
+"1304 1636 LINE",
+"1320 1636 LINE",
+"1048 0 LINE"
+);
+}
+);
+width = 2576;
+},
+{
+guideLines = (
+{
+angle = 90;
+position = "{1220, 452}";
+}
+);
+layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
+paths = (
+{
+closed = 1;
+nodes = (
+"1484 0 LINE",
+"1700 1304 LINE",
+"1716 1304 LINE",
+"2084 912 LINE",
+"2400 1184 LINE",
+"1624 2064 LINE",
+"552 1184 LINE",
+"780 912 LINE",
+"1276 1304 LINE",
+"1292 1304 LINE",
+"1076 0 LINE"
+);
+}
+);
+width = 2816;
+}
+);
+unicode = 2191;
+userData = {
+interface.gridadjust.original = "{'width': 1800, 'leftMargin': 296, 'rightMargin': 304}";
+"interface.width-adjustments" = (
+-16
+);
+};
+},
+{
+color = (204,240,242,1);
+glyphname = downArrow;
+lastChange = "2018-09-28 19:05:08 +0000";
+layers = (
+{
+components = (
+{
+name = upArrow;
+transform = "{-1, 0, 0, -1, 2576, 2048}";
+}
+);
+layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
+width = 2576;
+},
+{
+components = (
+{
+name = upArrow;
+transform = "{-1, 0, 0, -1, 2816, 2048}";
+}
+);
+layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
+width = 2816;
+},
+{
+components = (
+{
+name = upArrow;
+transform = "{-1, 0, 0, -1, 2664, 2048}";
+}
+);
+layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
+width = 2576;
+},
+{
+components = (
+{
+name = upArrow;
+transform = "{-1, 0, 0, -1, 2900, 2048}";
+}
+);
+layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
+width = 2816;
+}
+);
+leftMetricsKey = upArrow;
+rightMetricsKey = upArrow;
+unicode = 2193;
+userData = {
+"interface.width-adjustments" = (
+-16
+);
+};
+},
+{
glyphname = upDownArrow;
lastChange = "2018-09-27 18:11:35 +0000";
layers = (
@@ -260833,281 +261066,6 @@ rightMetricsKey = upArrow;
unicode = 2195;
},
{
-color = 4;
-glyphname = upDownArrow.case;
-lastChange = "2018-09-27 18:27:45 +0000";
-layers = (
-{
-components = (
-{
-name = upDownArrow;
-transform = "{1, 0, 0, 1, 0, 128}";
-}
-);
-layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
-width = 2576;
-},
-{
-components = (
-{
-name = upDownArrow;
-transform = "{1, 0, 0, 1, 20, 128}";
-}
-);
-layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
-width = 2580;
-},
-{
-components = (
-{
-name = upDownArrow;
-transform = "{1, 0, 0, 1, 0, 216}";
-}
-);
-layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
-width = 2816;
-},
-{
-components = (
-{
-name = upDownArrow;
-transform = "{1, 0, 0, 1, 32, 216}";
-}
-);
-layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
-width = 2816;
-}
-);
-leftMetricsKey = upArrow;
-rightMetricsKey = upArrow;
-},
-{
-glyphname = leftRightLongArrow;
-lastChange = "2018-09-27 18:11:05 +0000";
-layers = (
-{
-hints = (
-{
-horizontal = 1;
-origin = "{0, 17}";
-target = up;
-type = BottomGhost;
-},
-{
-horizontal = 1;
-origin = "{0, 2}";
-target = "{0, 12}";
-type = Stem;
-},
-{
-horizontal = 1;
-origin = "{0, 17}";
-type = Anchor;
-options = 4;
-},
-{
-horizontal = 1;
-origin = "{0, 2}";
-target = "{0, 12}";
-type = TTStem;
-options = 4;
-},
-{
-horizontal = 1;
-origin = "{0, 8}";
-target = up;
-type = BottomGhost;
-},
-{
-horizontal = 1;
-origin = "{0, 11}";
-target = "{0, 3}";
-type = Stem;
-},
-{
-horizontal = 1;
-origin = "{0, 8}";
-type = Anchor;
-options = 4;
-},
-{
-horizontal = 1;
-origin = "{0, 11}";
-target = "{0, 3}";
-type = TTStem;
-options = 4;
-}
-);
-layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
-paths = (
-{
-closed = 1;
-nodes = (
-"1420 152 LINE",
-"804 768 LINE",
-"804 784 LINE",
-"4092 784 LINE",
-"4092 768 LINE",
-"3476 152 LINE",
-"3628 0 LINE",
-"4524 896 LINE",
-"3628 1792 LINE",
-"3476 1640 LINE",
-"4092 1024 LINE",
-"4092 1008 LINE",
-"804 1008 LINE",
-"804 1024 LINE",
-"1420 1640 LINE",
-"1268 1792 LINE",
-"372 896 LINE",
-"1268 0 LINE"
-);
-}
-);
-width = 4912;
-},
-{
-layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
-paths = (
-{
-closed = 1;
-nodes = (
-"1456 196 LINE",
-"1024 588 LINE",
-"1024 604 LINE",
-"3620 604 LINE",
-"3620 588 LINE",
-"3188 196 LINE",
-"3464 -72 LINE",
-"4388 804 LINE",
-"3464 1684 LINE",
-"3188 1416 LINE",
-"3620 1024 LINE",
-"3620 1008 LINE",
-"1024 1008 LINE",
-"1024 1024 LINE",
-"1456 1416 LINE",
-"1180 1684 LINE",
-"256 808 LINE",
-"1180 -72 LINE"
-);
-}
-);
-width = 4712;
-},
-{
-layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
-paths = (
-{
-closed = 1;
-nodes = (
-"1360 196 LINE",
-"996 588 LINE",
-"996 604 LINE",
-"3592 604 LINE",
-"3592 588 LINE",
-"3092 196 LINE",
-"3324 -72 LINE",
-"4392 804 LINE",
-"3616 1684 LINE",
-"3296 1416 LINE",
-"3664 1024 LINE",
-"3660 1008 LINE",
-"1064 1008 LINE",
-"1068 1024 LINE",
-"1564 1416 LINE",
-"1332 1684 LINE",
-"264 808 LINE",
-"1040 -72 LINE"
-);
-}
-);
-width = 4712;
-},
-{
-layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
-paths = (
-{
-closed = 1;
-nodes = (
-"1300 152 LINE",
-"784 768 LINE",
-"788 784 LINE",
-"4076 784 LINE",
-"4072 768 LINE",
-"3356 152 LINE",
-"3480 0 LINE",
-"4524 896 LINE",
-"3776 1792 LINE",
-"3600 1640 LINE",
-"4116 1024 LINE",
-"4112 1008 LINE",
-"824 1008 LINE",
-"828 1024 LINE",
-"1544 1640 LINE",
-"1416 1792 LINE",
-"372 896 LINE",
-"1120 0 LINE"
-);
-}
-);
-width = 4912;
-}
-);
-leftMetricsKey = leftArrow;
-rightMetricsKey = rightArrow;
-unicode = 27F7;
-},
-{
-color = 4;
-glyphname = leftRightLongArrow.case;
-lastChange = "2018-09-27 18:27:45 +0000";
-layers = (
-{
-components = (
-{
-name = leftRightLongArrow;
-transform = "{1, 0, 0, 1, 0, 128}";
-}
-);
-layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
-width = 4912;
-},
-{
-components = (
-{
-name = leftRightLongArrow;
-transform = "{1, 0, 0, 1, 24, 128}";
-}
-);
-layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
-width = 4916;
-},
-{
-components = (
-{
-name = leftRightLongArrow;
-transform = "{1, 0, 0, 1, 0, 216}";
-}
-);
-layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
-width = 4712;
-},
-{
-components = (
-{
-name = leftRightLongArrow;
-transform = "{1, 0, 0, 1, 36, 216}";
-}
-);
-layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
-width = 4712;
-}
-);
-leftMetricsKey = leftArrow;
-rightMetricsKey = rightArrow;
-},
-{
glyphname = dngb_check;
lastChange = "2018-09-27 00:56:25 +0000";
layers = (