summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/lab/index.html9
-rw-r--r--src/features.fea13
2 files changed, 18 insertions, 4 deletions
diff --git a/docs/lab/index.html b/docs/lab/index.html
index 63c4949ea..0179faa22 100644
--- a/docs/lab/index.html
+++ b/docs/lab/index.html
@@ -141,6 +141,13 @@ x<-4 x < -4 x<-y
1.2 34.56.78.90.12
A*Y V*V W*W N*N X*X
Λ*Λ Σ*Σ Δ*Δ Y*Y &*
+
+calt case should cascade:
+U() U[] U{} — rightx should be rightx.case
+()U []U {}U — special-cased as "delim' delim -> delim.case"
+U--- — all hyphens should be hyphen.case
+---U — only the hyphen next to U should be hyphen.case
+U-→(){}[]*
`)
// From http://justanotherfoundry.com/generator
@@ -157,6 +164,8 @@ samples.set('Latin extended', `
ĀĂĄǍǞǠǢǺǼȀȂȦȺ ƁƂɃ ĆĈĊČƇȻ ĎĐƉƊDŽDždžDZDzdz ĒĔĖĘĚȄȆȨɆ ĜĞĠĢƓǤǦǴ ĤĦǶȞ ĨĪĬĮİǏȈȊƗƖ IJ ĴɈ ĶƘǨ ĹĻĽĿŁȽ LJLjNJNjljnj ŃŅŇŊƝǸ ŌŎŐŒƠǑǪǬǾȌȎȪȬȮȰ Ƥ ŔŖŘȐȒɌ ŚŜŞŠȘ ŢŤŦƬƮȚȾ ŨŪŬŮŰŲǓǕǗǙǛƯȔȖɄ Ŵ ŶŸƳȲɎ ŹŻŽƵȤ
āăąǎȧǟǡǣǻǽȁȃ ƀƂƄƅ ćĉċčƈȼ ďđƋƌȡ ȸȹ ēĕėęěȅȇȩɇ ƒ ĝğġģǥǧǵ ĥħƕȟ ĩīĭįıijǐȉȋ ĵǰȷɉ ķĸƙǩ ĺļľŀƚł ńņňʼnŋƞǹȵ ōŏőœơǒǫǭǿȍȏȫȭȯȱ ƥ ŕŗřȑȓɍ śŝşšƨșȿ ţťŧƫƭțȶ ũūŭůűųưǔǖǘǚǜȕȗ ŵ ŷȳɏ źżžƶȥɀ
+
+
`)
samples.set('Combi base glyphs (top 200)', `
diff --git a/src/features.fea b/src/features.fea
index 8b5e9860d..e62b0dd91 100644
--- a/src/features.fea
+++ b/src/features.fea
@@ -884,11 +884,13 @@ feature numr {
colon
];
@CASE_L = [ @CASE_DELIM_L @CASE_NONDELIM_L ];
-@CASE_R = [
+
+@CASE_DELIM_R = [
braceleft.case braceright.case
bracketleft.case bracketright.case
parenleft.case parenright.case
-
+];
+@CASE_NONDELIM_R = [
asterisk.case
at.case
multiply.case
@@ -910,6 +912,7 @@ feature numr {
notequal.case
colon.case
];
+@CASE_R = [ @CASE_DELIM_R @CASE_NONDELIM_R ];
feature case {
sub @CASE_L by @CASE_R;
@@ -919,9 +922,11 @@ feature calt {
@UC = [ @UC_ROMAN @UC_SET1 exclam question ];
@LC = [ @LC_ROMAN @LC_SET1 ];
- sub @UC @CASE_L' by @CASE_R;
+ sub [ @UC @CASE_R ] @CASE_L' by @CASE_R;
ignore sub @LC @CASE_NONDELIM_L' @UC;
- sub @CASE_L' @UC by @CASE_R;
+ sub @CASE_L' [ @CASE_R @UC ] by @CASE_R;
+
+ sub @CASE_DELIM_L' @CASE_DELIM_L [ @CASE_R @UC ] by @CASE_DELIM_R;
# ->, <-
@ARROW_DASH = [ hyphen endash emdash ];