Miscellaneous code cleanup. (#2583)

* Misc cleanup.

* Misc cleanup.

* Misc cleanup.

* Cleanup of #2578 .
This commit is contained in:
John McWilliams 2024-11-11 20:40:50 -05:00 committed by GitHub
parent ded9331f9c
commit 603e8e4543
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 134 additions and 120 deletions

View file

@ -42,7 +42,7 @@ export : define Superscript : list
list 0x1D42 'W' list 0x1D42 'W'
list 0x1D43 'a' list 0x1D43 'a'
list 0x1D44 'turna' list 0x1D44 'turna'
list 0x1D45 'scripta' list 0x1D45 'aScript'
list 0x1D46 'turnae' list 0x1D46 'turnae'
list 0x1D47 'b' list 0x1D47 'b'
list 0x1D48 'd' list 0x1D48 'd'
@ -72,7 +72,7 @@ export : define Superscript : list
list 0x1D60 'grek/phi' list 0x1D60 'grek/phi'
list 0x1D61 'grek/chi' list 0x1D61 'grek/chi'
list 0x1D78 'cyrl/en' list 0x1D78 'cyrl/en'
list 0x1D9B 'turnscripta' list 0x1D9B 'turnaScript'
list 0x1D9C 'c' list 0x1D9C 'c'
list 0x1D9D 'cCurlyTail' list 0x1D9D 'cCurlyTail'
list 0x1D9E 'eth' list 0x1D9E 'eth'
@ -368,7 +368,7 @@ export : define MedievalComb_e : list
list 0x1DE3 'rRotunda' list 0x1DE3 'rRotunda'
list 0x1DE4 's' list 0x1DE4 's'
list 0x1DE6 'z' list 0x1DE6 'z'
list 0x1DE7 'scripta' list 0x1DE7 'aScript'
list 0x1DEA 'schwa' list 0x1DEA 'schwa'
list 0x1DED 'oWithLightCentralizationStroke' list 0x1DED 'oWithLightCentralizationStroke'
list 0x1DF0 'uWithLightCentralizationStroke' list 0x1DF0 'uWithLightCentralizationStroke'

View file

@ -10,43 +10,45 @@ glyph-block Letter-Armenian-Feh : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : SerifFrame glyph-block-import Letter-Shared-Shapes : SerifFrame
define [FehBody df top bot ada adb] : glyph-proc define [FehBody df top bot sw hook ada adb] : glyph-proc
local midy : mix bot top HBarPos local midy : mix bot top HBarPos
local midyTop : midy + 0.5 * df.mvs local midyTop : midy + 0.5 * sw
local midyBot : midy - 0.5 * df.mvs local midyBot : midy - 0.5 * sw
include : dispiro include : dispiro
widths.lhs df.mvs widths.lhs sw
straight.left.start df.middle top straight.left.start df.middle top
archv archv
flatside.ld df.leftSB midyBot top ada adb flatside.ld df.leftSB midyBot top ada adb
arcvh arcvh
straight.right.end df.middle midyBot [heading Rightward] straight.right.end df.middle midyBot [heading Rightward]
include : dispiro include : dispiro
widths.rhs df.mvs widths.rhs sw
straight.right.start df.middle midyTop [heading Rightward] straight.right.start df.middle midyTop [heading Rightward]
archv archv
flatside.rd df.rightSB 0 midyTop ada adb flatside.rd df.rightSB 0 midyTop ada adb
hookend 0 (sw -- df.mvs) hookend 0 (sw -- sw)
g4 (df.leftSB + OX) Hook g4 (df.leftSB + OX) (0 + hook)
create-glyph 'armn/Feh' 0x556 : glyph-proc create-glyph 'armn/Feh' 0x556 : glyph-proc
local df : include : DivFrame para.diversityM 3 local df : include : DivFrame para.diversityM 3
include : df.markSet.capital include : df.markSet.capital
local ada : df.archDepthA ArchDepth df.mvs local sw : Math.min df.mvs : AdviceStroke2 3 3 CAP df.div
local adb : df.archDepthB ArchDepth df.mvs local ada : df.archDepthA ArchDepth sw
include : FehBody df CAP 0 ada adb local adb : df.archDepthB ArchDepth sw
include : VBar.m df.middle 0 CAP df.mvs include : FehBody df CAP 0 sw Hook ada adb
include : VBar.m df.middle 0 CAP sw
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df CAP 0 local sf : SerifFrame.fromDf df CAP 0 (swSerif -- sw)
include sf.mt.right include sf.mt.right
create-glyph 'armn/feh' 0x586 : glyph-proc create-glyph 'armn/feh' 0x586 : glyph-proc
local df : include : DivFrame para.diversityM 3 local df : include : DivFrame para.diversityM 3
include : df.markSet.bp include : df.markSet.bp
local ada : df.archDepthA SmallArchDepth df.mvs local sw : Math.min df.mvs : AdviceStroke2 3 3 Ascender df.div
local adb : df.archDepthB SmallArchDepth df.mvs local ada : df.archDepthA SmallArchDepth sw
include : FehBody df Ascender 0 ada adb local adb : df.archDepthB SmallArchDepth sw
include : VBar.m df.middle Descender Ascender df.mvs include : FehBody df Ascender 0 sw Hook ada adb
include : VBar.m df.middle Descender Ascender sw
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df Ascender Descender local sf : SerifFrame.fromDf df Ascender Descender (swSerif -- sw)
include sf.mb.full include sf.mb.full

View file

@ -11,25 +11,27 @@ glyph-block Letter-Armenian-Hook-Group : begin
glyph-block-import Letter-Shared-Shapes : nShoulder uBowl SerifFrame glyph-block-import Letter-Shared-Shapes : nShoulder uBowl SerifFrame
glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar glyph-block-import Letter-Armenian-Shared-Shapes : ArmHBar
define [RightHook df top bot sw _hook _ada _adb] : glyph-proc define [RightHook df top bot _sw _hook _ada _adb] : glyph-proc
local sw : fallback _sw df.mvs
local hook : fallback _hook Hook local hook : fallback _hook Hook
local ada : fallback _ada ArchDepthA local ada : fallback _ada ArchDepthA
local adb : fallback _adb ArchDepthB local adb : fallback _adb ArchDepthB
local yMid : if (top - bot > ada + adb) (top - ada) : mix top bot (ada / (ada + adb)) local yMid : if (top - bot > ada + adb) (top - ada) : mix top bot (ada / (ada + adb))
include : dispiro include : dispiro
widths.lhs df.mvs widths.lhs sw
g4 df.rightSB (top - hook) g4 df.rightSB (top - hook)
hookstart top (sw -- sw) hookstart top (sw -- sw)
flat df.leftSB yMid flat df.leftSB yMid
curl df.leftSB bot [heading Downward] curl df.leftSB bot [heading Downward]
define [LeftHook df top bot sw _hook _ada _adb] : glyph-proc define [LeftHook df top bot _sw _hook _ada _adb] : glyph-proc
local sw : fallback _sw df.mvs
local hook : fallback _hook Hook local hook : fallback _hook Hook
local ada : fallback _ada ArchDepthA local ada : fallback _ada ArchDepthA
local adb : fallback _adb ArchDepthB local adb : fallback _adb ArchDepthB
local yMid : if (top - bot > ada + adb) (top - adb) : mix top bot (adb / (ada + adb)) local yMid : if (top - bot > ada + adb) (top - adb) : mix top bot (adb / (ada + adb))
include : dispiro include : dispiro
widths.rhs df.mvs widths.rhs sw
g4 df.leftSB (top - hook) g4 df.leftSB (top - hook)
hookstart top (sw -- sw) hookstart top (sw -- sw)
flat df.rightSB yMid flat df.rightSB yMid

View file

@ -279,7 +279,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
include : VBar.l df.leftSB 0 XH df.mvs include : VBar.l df.leftSB 0 XH df.mvs
# Combination of nShoulder.knots and the straight 2 shape # Combination of nShoulder.knots and the straight 2 shape
local fine : df.mvs * (ShoulderFine / Stroke) local fine : ShoulderFine * (df.mvs / Stroke)
local left : Math.max (df.rightSB - [HSwToV df.mvs] - jut) df.middle local left : Math.max (df.rightSB - [HSwToV df.mvs] - jut) df.middle
include : dispiro include : dispiro
widths.rhs fine widths.rhs fine
@ -291,8 +291,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
if SLAB : begin if SLAB : begin
local sf : SerifFrame.fromDf df XH 0 local sf : SerifFrame.fromDf df XH 0
include sf.lt.outer include sf.lt.outer
if [not para.isItalic] : begin if [not para.isItalic] : include sf.lb.outer
include : composite-proc sf.lb.outer
# Alternate straight 'n' form # Alternate straight 'n' form
# include : nShoulder.shape # include : nShoulder.shape
@ -305,8 +304,7 @@ glyph-block Letter-Armenian-Lower-U-Group : begin
# if SLAB : begin # if SLAB : begin
# local sf : SerifFrame.fromDf df XH 0 # local sf : SerifFrame.fromDf df XH 0
# include sf.lt.outer # include sf.lt.outer
# if [not para.isItalic] : begin # if [not para.isItalic] : include sf.lb.full
# include : composite-proc sf.lb.full
do "Seh" do "Seh"
create-glyph 'armn/seh' 0x57D : glyph-proc create-glyph 'armn/seh' 0x57D : glyph-proc

View file

@ -14,21 +14,22 @@ glyph-block Letter-Armenian-Shared-Shapes : begin
define highBarPos XH define highBarPos XH
define jut Jut define jut Jut
define JUT-NORMAL 0 define JUT : object
define JUT-SHORT 1 NORMAL 0
define JUT-RIGHT 2 SHORT 1
define JUT-LEFT 3 RIGHT 2
LEFT 3
glyph-block-export ArmHBar glyph-block-export ArmHBar
define [ArmHBar hPos df] : namespace define [ArmHBar hPos df] : namespace
define left : match hPos define left : match hPos
[Just JUT-RIGHT] df.rightSB [Just JUT.RIGHT] df.rightSB
[Just JUT-LEFT] (df.leftSB - (jut * [if SLAB 1.5 1]) + [HSwToV : 0.5 * df.mvs]) [Just JUT.LEFT] (df.leftSB - (jut * [if SLAB 1.5 1]) + [HSwToV : 0.5 * df.mvs])
-- df.leftSB -- df.leftSB
define right : match hPos define right : match hPos
[Just JUT-RIGHT] (df.rightSB + (jut * [if SLAB 1.5 1]) - [HSwToV : 0.5 * df.mvs]) [Just JUT.RIGHT] (df.rightSB + (jut * [if SLAB 1.5 1]) - [HSwToV : 0.5 * df.mvs])
[Just JUT-SHORT] (df.rightSB - (jut - [HSwToV : 0.5 * df.mvs]) * df.div) [Just JUT.SHORT] (df.rightSB - (jut - [HSwToV : 0.5 * df.mvs]) * df.div)
[Just JUT-LEFT] df.leftSB [Just JUT.LEFT] df.leftSB
-- df.rightSB -- df.rightSB
export : define [cap] : glyph-proc export : define [cap] : glyph-proc
@ -46,10 +47,10 @@ glyph-block Letter-Armenian-Shared-Shapes : begin
export : define [at y] : glyph-proc export : define [at y] : glyph-proc
include : HBar.m left right y df.mvs include : HBar.m left right y df.mvs
set [ArmHBar.normal df] : ArmHBar JUT-NORMAL df set [ArmHBar.normal df] : ArmHBar JUT.NORMAL df
set [ArmHBar.short df] : ArmHBar JUT-SHORT df set [ArmHBar.short df] : ArmHBar JUT.SHORT df
set [ArmHBar.right df] : ArmHBar JUT-RIGHT df set [ArmHBar.right df] : ArmHBar JUT.RIGHT df
set [ArmHBar.left df] : ArmHBar JUT-LEFT df set [ArmHBar.left df] : ArmHBar JUT.LEFT df
glyph-block-export TwoNeck glyph-block-export TwoNeck
define [TwoNeck df top bot _left _right _adb _flatp] : begin define [TwoNeck df top bot _left _right _adb _flatp] : begin

View file

@ -30,6 +30,7 @@ glyph-block Letter-Armenian-Upper-Ho : begin
curl df.middle CAP [heading Rightward] curl df.middle CAP [heading Rightward]
archv archv
flatside.rd df.rightSB midyBot CAP ArchDepthA ArchDepthB flatside.rd df.rightSB midyBot CAP ArchDepthA ArchDepthB
arcvh
straight.left.end df.middle midyBot [heading Leftward] straight.left.end df.middle midyBot [heading Leftward]
include : dispiro include : dispiro

View file

@ -18,10 +18,11 @@ glyph-block Letter-Armenian-Upper-Yi : begin
local ze : CyrZe 0 0 CAP 0 local ze : CyrZe 0 0 CAP 0
left -- df.leftSB left -- df.leftSB
right -- df.rightSB right -- df.rightSB
blend -- (1 + 2 * O / (df.rightSB - df.leftSB)) blend -- (1 + (2 * O) / (df.rightSB - df.leftSB))
hook -- Hook hook -- Hook
op -- HBarPos
include : ze.Shape include : ze.Shape
if SLAB : begin if SLAB : begin
local midy : mix 0 CAP OverlayPos local midy : mix 0 CAP HBarPos
local vJut : Math.min VJut : CAP - 2 * Hook - df.mvs local vJut : Math.min VJut : CAP - 2 * Hook - df.mvs
include : VBar.l (df.leftSB - 2 * O) (midy - 0.5 * vJut) (midy + 0.5 * vJut) df.mvs include : VBar.l (df.leftSB - 2 * O) (midy - 0.5 * vJut) (midy + 0.5 * vJut) df.mvs

View file

@ -58,7 +58,7 @@ glyph-block Letter-Cyrillic-Orthography : begin
link-gr LocalizedForm.SRB.Italic 'cyrl/te/reduced' 'cyrl/te/reduced.SRB' link-gr LocalizedForm.SRB.Italic 'cyrl/te/reduced' 'cyrl/te/reduced.SRB'
link-gr LocalizedForm.BGR 'cyrl/ve' 'cyrl/ve.BGR' link-gr LocalizedForm.BGR 'cyrl/ve' 'cyrl/ve.BGR'
link-gr LocalizedForm.BGR 'cyrl/ghe' 'cyrl/ghe.italic' link-gr LocalizedForm.BGR 'cyrl/ghe' 'cyrl/ghe.BGR'
link-gr LocalizedForm.BGR 'cyrl/De' 'cyrl/De.BGR' link-gr LocalizedForm.BGR 'cyrl/De' 'cyrl/De.BGR'
link-gr LocalizedForm.BGR 'cyrl/de' 'cyrl/de.BGR' link-gr LocalizedForm.BGR 'cyrl/de' 'cyrl/de.BGR'
link-gr LocalizedForm.BGR 'cyrl/zhe' 'cyrl/zhe.BGR' link-gr LocalizedForm.BGR 'cyrl/zhe' 'cyrl/zhe.BGR'

View file

@ -143,7 +143,7 @@ glyph-block Letter-Cyrillic-Yeri : begin
local bowl : top * pBar + HalfStroke local bowl : top * pBar + HalfStroke
local turnRadius : bowl * 0.45 local turnRadius : bowl * 0.45
local turnbottom : mix 0 bowl (ArchDepthB / (ArchDepthA + ArchDepthB)) local turnbottom : mix 0 bowl (ArchDepthB / (ArchDepthA + ArchDepthB))
local trShrink [Math.pow ((right - left) / (RightSB - SB)) 0.5] local trShrink : Math.sqrt : (right - left) / (RightSB - SB)
include : dispiro include : dispiro
widths.rhs stroke widths.rhs stroke
flat (right - Stroke * 0.2) 0 [heading Leftward] flat (right - Stroke * 0.2) 0 [heading Leftward]
@ -215,7 +215,7 @@ glyph-block Letter-Cyrillic-Yeri : begin
define [CyrYeryShape LeftHalf df top fBackYer fTail] : glyph-proc define [CyrYeryShape LeftHalf df top fBackYer fTail] : glyph-proc
local sw : if fBackYer [AdviceStroke 3.25 df.div] df.mvs local sw : if fBackYer [AdviceStroke 3.25 df.div] df.mvs
local jut : Math.min Jut : [Math.pow (sw / Stroke) 0.5] * Jut local jut : Math.min Jut : [Math.sqrt : sw / Stroke] * Jut
local xm : mix (df.rightSB - [HSwToV sw]) (df.middle + [HSwToV : 0.5 * sw]) 0.75 local xm : mix (df.rightSB - [HSwToV sw]) (df.middle + [HSwToV : 0.5 * sw]) 0.75
include : if fBackYer include : if fBackYer

View file

@ -13,10 +13,10 @@ glyph-block Letter-Greek-Phi : begin
glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift
define [VarPhiRing fFlatTB df y2 y3] : glyph-proc define [VarPhiRing fFlatTB df y2 y3] : glyph-proc
local gap : Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV df.mvs
include : VBar.m df.middle y2 y3 df.mvs include : VBar.m df.middle y2 y3 df.mvs
include : if fFlatTB include : if fFlatTB
OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs (ArchDepthA * df.div) (ArchDepthB * df.div) gap OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs (ArchDepthA * df.div) (ArchDepthB * df.div)
Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV df.mvs
OShape y3 y2 df.leftSB df.rightSB df.mvs (ArchDepthA * df.div) (ArchDepthB * df.div) OShape y3 y2 df.leftSB df.rightSB df.mvs (ArchDepthA * df.div) (ArchDepthB * df.div)
define [CyrlEfSplitRing fFlatTB df y2 y3] : glyph-proc define [CyrlEfSplitRing fFlatTB df y2 y3] : glyph-proc
@ -25,17 +25,19 @@ glyph-block Letter-Greek-Phi : begin
local adb : subDf.archDepthB SmallArchDepth df.mvs local adb : subDf.archDepthB SmallArchDepth df.mvs
include : VBar.m df.middle y2 y3 df.mvs include : VBar.m df.middle y2 y3 df.mvs
include : with-transform [ApparentTranslate 0 y2] : union include : union
OBarRight.shape OBarRight.shape
top -- (y3 - y2) top -- y3
bot -- y2
left -- df.leftSB left -- df.leftSB
right -- df.middle + [HSwToV : 0.5 * df.mvs] right -- (df.middle + [HSwToV : 0.5 * df.mvs])
sw -- df.mvs sw -- df.mvs
ada -- ada ada -- ada
adb -- adb adb -- adb
OBarLeft.shape OBarLeft.shape
top -- (y3 - y2) top -- y3
left -- df.middle - [HSwToV : 0.5 * df.mvs] bot -- y2
left -- (df.middle - [HSwToV : 0.5 * df.mvs])
right -- df.rightSB right -- df.rightSB
sw -- df.mvs sw -- df.mvs
ada -- ada ada -- ada

View file

@ -254,13 +254,13 @@ glyph-block Letter-Latin-Lower-A : begin
create-glyph "a.\(suffix)" : glyph-proc create-glyph "a.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
include : body [DivFrame 1] XH bar no-shape include : body [DivFrame 1] XH bar no-shape
create-glyph "largescripta.\(suffix)" : glyph-proc create-glyph "AScript.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : body [DivFrame 1] CAP bar SingleStorey.ScriptCut include : body [DivFrame 1] CAP bar SingleStorey.ScriptCut
create-glyph "scripta.\(suffix)" : glyph-proc create-glyph "aScript.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
include : body [DivFrame 1] XH bar SingleStorey.ScriptCut include : body [DivFrame 1] XH bar SingleStorey.ScriptCut
create-glyph "invscripta.\(suffix)" : glyph-proc create-glyph "invaScript.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
include : body [DivFrame 1] XH bar.inv SingleStorey.InvScriptCut include : body [DivFrame 1] XH bar.inv SingleStorey.InvScriptCut
@ -275,15 +275,15 @@ glyph-block Letter-Latin-Lower-A : begin
derive-composites 'aRetroflexHook' 0x1D8F 'a/rtailBase' derive-composites 'aRetroflexHook' 0x1D8F 'a/rtailBase'
RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke) RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)
select-variant 'scripta' 0x251 (follow -- [conditional-follow SLAB 'scripta/autoSerifed/slab' 'scripta/autoSerifed/sans']) select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
select-variant 'largescripta' 0x2C6D (follow -- [conditional-follow SLAB 'scripta/autoSerifed/slab' 'scripta/autoSerifed/sans']) select-variant 'AScript' 0x2C6D (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
select-variant 'invscripta' 0xAB64 (follow -- [conditional-follow SLAB 'scripta/autoSerifed/slab' 'scripta/autoSerifed/sans']) select-variant 'invaScript' 0xAB64 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
derive-composites 'scriptaRetroflexHook' 0x1D90 'scripta.singleStoreySerifless' derive-composites 'aScriptRetroflexHook' 0x1D90 'aScript.singleStoreySerifless'
RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke) RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)
CreateTurnedLetter 'turnscripta' 0x252 'scripta' HalfAdvance (XH / 2) CreateTurnedLetter 'turnaScript' 0x252 'aScript' HalfAdvance (XH / 2)
CreateTurnedLetter 'turnlargescripta' 0x2C70 'largescripta' HalfAdvance (CAP / 2) CreateTurnedLetter 'turnAScript' 0x2C70 'AScript' HalfAdvance (CAP / 2)
CreateAccentedComposition 'aDieresis' 0xE4 'a' 'dieresisAbove' CreateAccentedComposition 'aDieresis' 0xE4 'a' 'dieresisAbove'
CreateAccentedComposition 'aSbRsbUnderlineBelow' null 'a' 'sbRsbUnderlineBelow' CreateAccentedComposition 'aSbRsbUnderlineBelow' null 'a' 'sbRsbUnderlineBelow'

View file

@ -173,7 +173,7 @@ glyph-block Letter-Latin-Lower-G : begin
include : bodyShape df CAP include : bodyShape df CAP
include : hookShape df (CAP - hookStart) include : hookShape df (CAP - hookStart)
create-glyph "gScriptPalatalHook.\(suffix)" : glyph-proc create-glyph "gPalatalHook.\(suffix)" : glyph-proc
local df : include : DivFrame para.diversityM 1 local df : include : DivFrame para.diversityM 1
include : df.markSet.p include : df.markSet.p
set-base-anchor 'overlay' Middle (XH / 2) set-base-anchor 'overlay' Middle (XH / 2)
@ -198,7 +198,7 @@ glyph-block Letter-Latin-Lower-G : begin
select-variant 'gScript' 0x261 (shapeFrom -- 'g') (follow -- 'gScript') select-variant 'gScript' 0x261 (shapeFrom -- 'g') (follow -- 'gScript')
select-variant 'GScript' 0xA7AC (follow -- 'gScript') select-variant 'GScript' 0xA7AC (follow -- 'gScript')
select-variant 'gScriptPalatalHook' 0x1D83 (follow -- 'gScript') select-variant 'gScriptPalatalHook' 0x1D83 (shapeFrom -- 'gPalatalHook') (follow -- 'gScript')
select-variant 'cyrl/de.BGR' (shapeFrom -- 'g') (follow -- [conditional-follow SLAB 'g/singleStorey/autoSerifed/slab' 'g/singleStorey/autoSerifed/sans']) select-variant 'cyrl/de.BGR' (shapeFrom -- 'g') (follow -- [conditional-follow SLAB 'g/singleStorey/autoSerifed/slab' 'g/singleStorey/autoSerifed/sans'])
alias 'cyrl/de.SRB' null 'cyrl/de.BGR' alias 'cyrl/de.SRB' null 'cyrl/de.BGR'

View file

@ -28,7 +28,7 @@ glyph-block Letter-Latin-S : begin
define [AdviceSArchDepth y sign _stroke] : begin define [AdviceSArchDepth y sign _stroke] : begin
# Handle with extreme care. # Handle with extreme care.
local stroke : fallback _stroke Stroke local stroke : fallback _stroke Stroke
local strokeFactor : stroke * [clamp 1 2 : linreg 126 1 137 1.025 stroke] * [clamp 0 1 : Math.pow (Width / HalfUPM) 0.5] local strokeFactor : stroke * [clamp 1 2 : linreg 126 1 137 1.025 stroke] * [clamp 0 1 : Math.sqrt : Width / HalfUPM]
local widthFactor : RightSB - SB local widthFactor : RightSB - SB
local ss : y * 0.22 + 0.12 * strokeFactor + 0.05 * widthFactor local ss : y * 0.22 + 0.12 * strokeFactor + 0.05 * widthFactor
return : ss + sign * TanSlope * SmoothAdjust return : ss + sign * TanSlope * SmoothAdjust
@ -340,14 +340,22 @@ glyph-block Letter-Latin-S : begin
select-variant 'S' 'S' select-variant 'S' 'S'
link-reduced-variant 'S/sansSerif' 'S' MathSansSerif link-reduced-variant 'S/sansSerif' 'S' MathSansSerif
select-variant 's' 's' select-variant 's' 's'
link-reduced-variant 's/sansSerif' 's' MathSansSerif link-reduced-variant 's/sansSerif' 's' MathSansSerif
select-variant 'smcpS' 0xA731 (follow -- 'S') select-variant 'smcpS' 0xA731 (follow -- 'S')
select-variant 's/phoneticRight'
select-variant 'revS' 0x1A7 (follow -- 'S') select-variant 'revS' 0x1A7 (follow -- 'S')
select-variant 'revs' 0x1A8 (follow -- 's') select-variant 'revs' 0x1A8 (follow -- 's')
alias 'cyrl/Dze' 0x405 'S' alias 'cyrl/Dze' 0x405 'S'
alias 'cyrl/dze' 0x455 's' alias 'cyrl/dze' 0x455 's'
alias 'cyrl/ghe.italic' null 'revs'
select-variant 'cyrl/ghe.italic' (shapeFrom -- 'revs') (follow -- 's')
alias 'cyrl/ghe.BGR' null 'cyrl/ghe.italic'
alias 'cyrl/DzeRev' 0xA644 'revS' alias 'cyrl/DzeRev' 0xA644 'revS'
alias 'cyrl/dzeRev' 0xA645 'revs' alias 'cyrl/dzeRev' 0xA645 'revs'
@ -360,25 +368,25 @@ glyph-block Letter-Latin-S : begin
select-variant 'SSwash' 0x2C7E select-variant 'SSwash' 0x2C7E
select-variant 'sSwash' 0x23F select-variant 'sSwash' 0x23F
select-variant 'sCurlyTail' 0x1DF1E (follow -- 'sSwash') select-variant 'sCurlyTail' 0x1DF1E (follow -- 'sSwash')
select-variant 'S/descBase' (shapeFrom -- 'S') (follow -- 'SRTail') select-variant 'S/descBase' (shapeFrom -- 'S') (follow -- 'SRTail')
select-variant 's/ascBase' (shapeFrom -- 's')
select-variant 's/descBase' (shapeFrom -- 's') (follow -- 'sRTail') select-variant 's/descBase' (shapeFrom -- 's') (follow -- 'sRTail')
select-variant 'revs/descBase' (shapeFrom -- 'revs') (follow -- 'sRTail')
select-variant 's/phoneticRight'
derive-composites 'SRTail' 0xA7C5 'S/descBase' derive-composites 'SRTail' 0xA7C5 'S/descBase'
RetroflexHook.l SB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 CAP]) RetroflexHook.l SB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 CAP])
derive-composites 'sRTail' 0x282 's/descBase' derive-composites 'sRTail' 0x282 's/descBase'
RetroflexHook.l SB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH]) RetroflexHook.l SB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH])
derive-composites 'cyrl/gheDescender.italic' null 'revs/descBase'
select-variant 'cyrl/ghe.italic/descBase' (shapeFrom -- 'revs') (follow -- 'sRTail')
derive-composites 'cyrl/gheDescender.italic' null 'cyrl/ghe.italic/descBase'
CyrDescender.r DfLower.rightSB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH]) CyrDescender.r DfLower.rightSB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH])
derive-composites 'cyrl/gheDHook.italic' null 'revs/descBase' derive-composites 'cyrl/gheDHook.italic' null 'cyrl/ghe.italic/descBase'
PalatalHook.r DfLower.rightSB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH]) PalatalHook.r DfLower.rightSB 0 (yAttach -- DToothlessRise) (refSw -- [AdviceStroke2 2 3 XH])
derive-composites 'cyrl/ghayn.italic' null 'revs' derive-composites 'cyrl/ghayn.italic' null 'cyrl/ghe.italic'
FlatSlashShape Middle (XH / 2) (OverlayStroke / 2) (-0.2) 0.75 FlatSlashShape Middle (XH / 2) (OverlayStroke / 2) (-0.2) 0.75
derive-composites 'cyrl/gheStrokeHook.italic' null 'cyrl/gheDHook.italic' derive-composites 'cyrl/gheStrokeHook.italic' null 'cyrl/gheDHook.italic'
FlatSlashShape Middle (XH / 2) (OverlayStroke / 2) (-0.2) 0.75 FlatSlashShape Middle (XH / 2) (OverlayStroke / 2) (-0.2) 0.75
@ -388,6 +396,8 @@ glyph-block Letter-Latin-S : begin
y -- 0 y -- 0
yAttach -- [mix O [AdviceSArchDepth XH (-1) [AdviceStroke2 2 3 XH]] : archv.yFromX 0.75] yAttach -- [mix O [AdviceSArchDepth XH (-1) [AdviceStroke2 2 3 XH]] : archv.yFromX 0.75]
select-variant 's/ascBase' (shapeFrom -- 's')
derive-composites "s/compLigLeft" null "s/ascBase" : glyph-proc derive-composites "s/compLigLeft" null "s/ascBase" : glyph-proc
eject-contour 'arcStartSerifR' eject-contour 'arcStartSerifR'
local sw : ArcStartSerifWidth [AdviceStroke2 2 3 XH] local sw : ArcStartSerifWidth [AdviceStroke2 2 3 XH]

View file

@ -63,14 +63,11 @@ glyph-block Letter-Latin-X : begin
local fine : [AdviceStroke 3] * (sw / Stroke) local fine : [AdviceStroke 3] * (sw / Stroke)
local leftXExt : leftX - [if fSlab SideJut 0]
local rightXExt : rightX + [if fSlab SideJut 0]
return : dispiro return : dispiro
if fHalf if fHalf
flat [mix leftX rightX 0.5] [mix leftY rightY 0.5] [widths.center fine] flat [mix leftX rightX 0.5] [mix leftY rightY 0.5] [widths.center fine]
list list
flat leftXExt (leftY - sign * sw / 2) [widths.center.heading sw Rightward] flat (leftX - [if fSlab SideJut 0]) (leftY - sign * sw / 2) [widths.center.heading sw Rightward]
curl (leftX + TINY) (leftY - sign * sw / 2) [widths.center.heading sw Rightward] curl (leftX + TINY) (leftY - sign * sw / 2) [widths.center.heading sw Rightward]
alsoThruThem {{blendK1X blendK1Y} {blendK2X blendK2Y}} alsoThruThem {{blendK1X blendK1Y} {blendK2X blendK2Y}}
flat [mix leftX rightX pStraightX] [mix leftY rightY pStraightY] [widths.center : mix sw fine 0.5] flat [mix leftX rightX pStraightX] [mix leftY rightY pStraightY] [widths.center : mix sw fine 0.5]
@ -78,7 +75,7 @@ glyph-block Letter-Latin-X : begin
curl [mix leftX rightX (1 - pStraightX)] [mix leftY rightY (1 - pStraightY)] [widths.center : mix sw fine 0.5] curl [mix leftX rightX (1 - pStraightX)] [mix leftY rightY (1 - pStraightY)] [widths.center : mix sw fine 0.5]
alsoThruThem {{(1 - blendK2X) (1 - blendK2Y)} {(1 - blendK1X) (1 - blendK1Y)}} alsoThruThem {{(1 - blendK2X) (1 - blendK2Y)} {(1 - blendK1X) (1 - blendK1Y)}}
flat (rightX - TINY) (rightY + sign * sw / 2) [widths.center.heading sw Rightward] flat (rightX - TINY) (rightY + sign * sw / 2) [widths.center.heading sw Rightward]
curl rightXExt (rightY + sign * sw / 2) [widths.center.heading sw Rightward] curl (rightX + [if fSlab SideJut 0]) (rightY + sign * sw / 2) [widths.center.heading sw Rightward]
glyph-block-export XCursiveHalfShape glyph-block-export XCursiveHalfShape
define [XCursiveHalfShape] : with-params [ define [XCursiveHalfShape] : with-params [

View file

@ -212,7 +212,7 @@ export : define decompOverrides : object
0xA7CC { 'S' 'longSlash' } 0xA7CC { 'S' 'longSlash' }
0xA7CD { 's' 'shortSlash' } 0xA7CD { 's' 'shortSlash' }
0xAB30 { 'scripta' 'hStrike' } 0xAB30 { 'aScript' 'hStrike' }
0xAB3E { 'frak/o' 'shortSlash' } 0xAB3E { 'frak/o' 'shortSlash' }
0xAB3F { 'turnc' 'shortSlash' } 0xAB3F { 'turnc' 'shortSlash' }
0xAB4F { 'uShortLeg' 'hStrike' } 0xAB4F { 'uShortLeg' 'hStrike' }

View file

@ -26,8 +26,8 @@ glyph-block Symbol-Punctuation-Joiners : do
create-glyph 'zwnj' 0x200C : glyph-proc create-glyph 'zwnj' 0x200C : glyph-proc
set-width 0 set-width 0
include : VBar.m 0 Descender CAP fine include : VBar.m 0 Descender CAP fine
define outerSize : size + 0.5 * fine * [Math.sqrt 2] define outerSize : size + fine * Math.SQRT1_2
define innerSize : size - 0.5 * fine * [Math.sqrt 2] define innerSize : size - fine * Math.SQRT1_2
include : difference include : difference
spiro-outline spiro-outline
widths.center fine widths.center fine

View file

@ -2139,8 +2139,8 @@ selectorAffix."a/rtailBase" = "doubleStorey"
selectorAffix."a/turnABase" = "doubleStorey" selectorAffix."a/turnABase" = "doubleStorey"
selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey" selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey"
selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey" selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey"
selectorAffix."scripta/autoSerifed/slab" = "singleStorey" selectorAffix."aScript/autoSerifed/slab" = "singleStorey"
selectorAffix."scripta/autoSerifed/sans" = "singleStorey" selectorAffix."aScript/autoSerifed/sans" = "singleStorey"
[prime.a.variants-buildup.stages.storey.single-storey] [prime.a.variants-buildup.stages.storey.single-storey]
rank = 2 rank = 2
@ -2153,8 +2153,8 @@ selectorAffix."a/rtailBase" = "singleStorey"
selectorAffix."a/turnABase" = "doubleStorey" selectorAffix."a/turnABase" = "doubleStorey"
selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey" selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey"
selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey" selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey"
selectorAffix."scripta/autoSerifed/slab" = "singleStorey" selectorAffix."aScript/autoSerifed/slab" = "singleStorey"
selectorAffix."scripta/autoSerifed/sans" = "singleStorey" selectorAffix."aScript/autoSerifed/sans" = "singleStorey"
[prime.a.variants-buildup.stages.double-storey-hook."*"] [prime.a.variants-buildup.stages.double-storey-hook."*"]
next = "bar" next = "bar"
@ -2170,8 +2170,8 @@ selectorAffix."a/rtailBase" = ""
selectorAffix."a/turnABase" = "" selectorAffix."a/turnABase" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "" selectorAffix."a/singleStorey/autoSerifed/slab" = ""
selectorAffix."a/singleStorey/autoSerifed/sans" = "" selectorAffix."a/singleStorey/autoSerifed/sans" = ""
selectorAffix."scripta/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
selectorAffix."scripta/autoSerifed/sans" = "" selectorAffix."aScript/autoSerifed/sans" = ""
[prime.a.variants-buildup.stages.double-storey-hook.hook-serifed] [prime.a.variants-buildup.stages.double-storey-hook.hook-serifed]
rank = 2 rank = 2
@ -2184,8 +2184,8 @@ selectorAffix."a/rtailBase" = "hookInwardSerifed"
selectorAffix."a/turnABase" = "hookInwardSerifed" selectorAffix."a/turnABase" = "hookInwardSerifed"
selectorAffix."a/singleStorey/autoSerifed/slab" = "" selectorAffix."a/singleStorey/autoSerifed/slab" = ""
selectorAffix."a/singleStorey/autoSerifed/sans" = "" selectorAffix."a/singleStorey/autoSerifed/sans" = ""
selectorAffix."scripta/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
selectorAffix."scripta/autoSerifed/sans" = "" selectorAffix."aScript/autoSerifed/sans" = ""
[prime.a.variants-buildup.stages.ear."*"] [prime.a.variants-buildup.stages.ear."*"]
next = "bar" next = "bar"
@ -2200,8 +2200,8 @@ selectorAffix."a/rtailBase" = ""
selectorAffix."a/turnABase" = "" selectorAffix."a/turnABase" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "" selectorAffix."a/singleStorey/autoSerifed/slab" = ""
selectorAffix."a/singleStorey/autoSerifed/sans" = "" selectorAffix."a/singleStorey/autoSerifed/sans" = ""
selectorAffix."scripta/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
selectorAffix."scripta/autoSerifed/sans" = "" selectorAffix."aScript/autoSerifed/sans" = ""
[prime.a.variants-buildup.stages.ear.earless-corner] [prime.a.variants-buildup.stages.ear.earless-corner]
rank = 2 rank = 2
@ -2213,8 +2213,8 @@ selectorAffix."a/rtailBase" = "earlessCorner"
selectorAffix."a/turnABase" = "" selectorAffix."a/turnABase" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessCorner" selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessCorner"
selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessCorner" selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessCorner"
selectorAffix."scripta/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
selectorAffix."scripta/autoSerifed/sans" = "" selectorAffix."aScript/autoSerifed/sans" = ""
[prime.a.variants-buildup.stages.ear.earless-rounded] [prime.a.variants-buildup.stages.ear.earless-rounded]
rank = 3 rank = 3
@ -2226,8 +2226,8 @@ selectorAffix."a/rtailBase" = "earlessRounded"
selectorAffix."a/turnABase" = "" selectorAffix."a/turnABase" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessRounded" selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessRounded"
selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessRounded" selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessRounded"
selectorAffix."scripta/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
selectorAffix."scripta/autoSerifed/sans" = "" selectorAffix."aScript/autoSerifed/sans" = ""
[prime.a.variants-buildup.stages.bar.serifless] [prime.a.variants-buildup.stages.bar.serifless]
rank = 1 rank = 1
@ -2240,8 +2240,8 @@ selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "serifless" selectorAffix."a/turnABase" = "serifless"
selectorAffix."a/singleStorey/autoSerifed/slab" = "serifless" selectorAffix."a/singleStorey/autoSerifed/slab" = "serifless"
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless" selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless"
selectorAffix."scripta/autoSerifed/slab" = "serifless" selectorAffix."aScript/autoSerifed/slab" = "serifless"
selectorAffix."scripta/autoSerifed/sans" = "serifless" selectorAffix."aScript/autoSerifed/sans" = "serifless"
[prime.a.variants-buildup.stages.bar.serifed] [prime.a.variants-buildup.stages.bar.serifed]
rank = 2 rank = 2
@ -2253,8 +2253,8 @@ selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "serifed" selectorAffix."a/turnABase" = "serifed"
selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "doubleSerifed", else = "serifed" } selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "doubleSerifed", else = "serifed" }
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifed" selectorAffix."a/singleStorey/autoSerifed/sans" = "serifed"
selectorAffix."scripta/autoSerifed/slab" = "serifed" selectorAffix."aScript/autoSerifed/slab" = "serifed"
selectorAffix."scripta/autoSerifed/sans" = "serifed" selectorAffix."aScript/autoSerifed/sans" = "serifed"
[prime.a.variants-buildup.stages.bar.double-serifed] [prime.a.variants-buildup.stages.bar.double-serifed]
rank = 3 rank = 3
@ -2267,8 +2267,8 @@ selectorAffix."a/rtailBase" = "topSerifed"
selectorAffix."a/turnABase" = "serifed" selectorAffix."a/turnABase" = "serifed"
selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed" selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed"
selectorAffix."a/singleStorey/autoSerifed/sans" = "doubleSerifed" selectorAffix."a/singleStorey/autoSerifed/sans" = "doubleSerifed"
selectorAffix."scripta/autoSerifed/slab" = "serifed" selectorAffix."aScript/autoSerifed/slab" = "serifed"
selectorAffix."scripta/autoSerifed/sans" = "serifed" selectorAffix."aScript/autoSerifed/sans" = "serifed"
[prime.a.variants-buildup.stages.bar.tailed] [prime.a.variants-buildup.stages.bar.tailed]
rank = 4 rank = 4
@ -2280,8 +2280,8 @@ selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "tailed" selectorAffix."a/turnABase" = "tailed"
selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "tailedSerifed", else = "tailed" } selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "tailedSerifed", else = "tailed" }
selectorAffix."a/singleStorey/autoSerifed/sans" = "tailed" selectorAffix."a/singleStorey/autoSerifed/sans" = "tailed"
selectorAffix."scripta/autoSerifed/slab" = "tailed" selectorAffix."aScript/autoSerifed/slab" = "tailed"
selectorAffix."scripta/autoSerifed/sans" = "tailed" selectorAffix."aScript/autoSerifed/sans" = "tailed"
[prime.a.variants-buildup.stages.bar.tailed-serifed] [prime.a.variants-buildup.stages.bar.tailed-serifed]
rank = 5 rank = 5
@ -2294,8 +2294,8 @@ selectorAffix."a/rtailBase" = "topSerifed"
selectorAffix."a/turnABase" = "tailed" selectorAffix."a/turnABase" = "tailed"
selectorAffix."a/singleStorey/autoSerifed/slab" = "tailedSerifed" selectorAffix."a/singleStorey/autoSerifed/slab" = "tailedSerifed"
selectorAffix."a/singleStorey/autoSerifed/sans" = "tailedSerifed" selectorAffix."a/singleStorey/autoSerifed/sans" = "tailedSerifed"
selectorAffix."scripta/autoSerifed/slab" = "tailed" selectorAffix."aScript/autoSerifed/slab" = "tailed"
selectorAffix."scripta/autoSerifed/sans" = "tailed" selectorAffix."aScript/autoSerifed/sans" = "tailed"
[prime.a.variants-buildup.stages.bar.toothless-corner] [prime.a.variants-buildup.stages.bar.toothless-corner]
rank = 6 rank = 6
@ -2308,8 +2308,8 @@ selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "toothlessCorner" selectorAffix."a/turnABase" = "toothlessCorner"
selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed" selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed"
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless" selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless"
selectorAffix."scripta/autoSerifed/slab" = "serifed" selectorAffix."aScript/autoSerifed/slab" = "serifed"
selectorAffix."scripta/autoSerifed/sans" = "serifless" selectorAffix."aScript/autoSerifed/sans" = "serifless"
[prime.a.variants-buildup.stages.bar.toothless-rounded] [prime.a.variants-buildup.stages.bar.toothless-rounded]
rank = 7 rank = 7
@ -2322,8 +2322,8 @@ selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "toothlessRounded" selectorAffix."a/turnABase" = "toothlessRounded"
selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed" selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed"
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless" selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless"
selectorAffix."scripta/autoSerifed/slab" = "serifed" selectorAffix."aScript/autoSerifed/slab" = "serifed"
selectorAffix."scripta/autoSerifed/sans" = "serifless" selectorAffix."aScript/autoSerifed/sans" = "serifless"
@ -2766,9 +2766,9 @@ descriptionAffix = "double-storey shape"
selectorAffix.g = "doubleStorey" selectorAffix.g = "doubleStorey"
selectorAffix."g/sansSerif" = "doubleStorey" selectorAffix."g/sansSerif" = "doubleStorey"
selectorAffix."g/hookTopBase" = "singleStoreySerifless" selectorAffix."g/hookTopBase" = "singleStoreySerifless"
selectorAffix."gScript" = "singleStoreyScriptCut"
selectorAffix."g/singleStorey/autoSerifed/slab" = "singleStoreySerifed" selectorAffix."g/singleStorey/autoSerifed/slab" = "singleStoreySerifed"
selectorAffix."g/singleStorey/autoSerifed/sans" = "singleStoreySerifless" selectorAffix."g/singleStorey/autoSerifed/sans" = "singleStoreySerifless"
selectorAffix.gScript = "singleStoreyScriptCut"
[prime.g.variants-buildup.stages.openness."*"] [prime.g.variants-buildup.stages.openness."*"]
next = "END" next = "END"
@ -2779,9 +2779,9 @@ keyAffix = ""
selectorAffix.g = "" selectorAffix.g = ""
selectorAffix."g/sansSerif" = "" selectorAffix."g/sansSerif" = ""
selectorAffix."g/hookTopBase" = "" selectorAffix."g/hookTopBase" = ""
selectorAffix."gScript" = ""
selectorAffix."g/singleStorey/autoSerifed/slab" = "" selectorAffix."g/singleStorey/autoSerifed/slab" = ""
selectorAffix."g/singleStorey/autoSerifed/sans" = "" selectorAffix."g/singleStorey/autoSerifed/sans" = ""
selectorAffix.gScript = ""
[prime.g.variants-buildup.stages.openness.open] [prime.g.variants-buildup.stages.openness.open]
rank = 1 rank = 1
@ -2789,9 +2789,9 @@ descriptionAffix = "open contour"
selectorAffix.g = "open" selectorAffix.g = "open"
selectorAffix."g/sansSerif" = "open" selectorAffix."g/sansSerif" = "open"
selectorAffix."g/hookTopBase" = "" selectorAffix."g/hookTopBase" = ""
selectorAffix."gScript" = ""
selectorAffix."g/singleStorey/autoSerifed/slab" = "" selectorAffix."g/singleStorey/autoSerifed/slab" = ""
selectorAffix."g/singleStorey/autoSerifed/sans" = "" selectorAffix."g/singleStorey/autoSerifed/sans" = ""
selectorAffix.gScript = ""
[prime.g.variants-buildup.stages.storey.single-storey] [prime.g.variants-buildup.stages.storey.single-storey]
next = "hook" next = "hook"
@ -2800,9 +2800,9 @@ descriptionAffix = "single-storey shape"
selectorAffix.g = "singleStorey" selectorAffix.g = "singleStorey"
selectorAffix."g/sansSerif" = "singleStorey" selectorAffix."g/sansSerif" = "singleStorey"
selectorAffix."g/hookTopBase" = "singleStorey" selectorAffix."g/hookTopBase" = "singleStorey"
selectorAffix."gScript" = "singleStorey"
selectorAffix."g/singleStorey/autoSerifed/slab" = "singleStorey" selectorAffix."g/singleStorey/autoSerifed/slab" = "singleStorey"
selectorAffix."g/singleStorey/autoSerifed/sans" = "singleStorey" selectorAffix."g/singleStorey/autoSerifed/sans" = "singleStorey"
selectorAffix.gScript = "singleStorey"
[prime.g.variants-buildup.stages.hook."*"] [prime.g.variants-buildup.stages.hook."*"]
next = "ear" next = "ear"
@ -2813,9 +2813,9 @@ keyAffix = ""
selectorAffix.g = "" selectorAffix.g = ""
selectorAffix."g/sansSerif" = "" selectorAffix."g/sansSerif" = ""
selectorAffix."g/hookTopBase" = "" selectorAffix."g/hookTopBase" = ""
selectorAffix."gScript" = ""
selectorAffix."g/singleStorey/autoSerifed/slab" = "" selectorAffix."g/singleStorey/autoSerifed/slab" = ""
selectorAffix."g/singleStorey/autoSerifed/sans" = "" selectorAffix."g/singleStorey/autoSerifed/sans" = ""
selectorAffix.gScript = ""
[prime.g.variants-buildup.stages.hook.flat-hook] [prime.g.variants-buildup.stages.hook.flat-hook]
rank = 2 rank = 2
@ -2823,18 +2823,18 @@ descriptionAffix = "flat bottom hook"
selectorAffix.g = "flatHook" selectorAffix.g = "flatHook"
selectorAffix."g/sansSerif" = "flatHook" selectorAffix."g/sansSerif" = "flatHook"
selectorAffix."g/hookTopBase" = "flatHook" selectorAffix."g/hookTopBase" = "flatHook"
selectorAffix."gScript" = "flatHook"
selectorAffix."g/singleStorey/autoSerifed/slab" = "flatHook" selectorAffix."g/singleStorey/autoSerifed/slab" = "flatHook"
selectorAffix."g/singleStorey/autoSerifed/sans" = "flatHook" selectorAffix."g/singleStorey/autoSerifed/sans" = "flatHook"
selectorAffix.gScript = "flatHook"
[prime.g.variants-buildup.stages.ear.serifless] [prime.g.variants-buildup.stages.ear.serifless]
rank = 1 rank = 1
selectorAffix.g = "serifless" selectorAffix.g = "serifless"
selectorAffix."g/sansSerif" = "serifless" selectorAffix."g/sansSerif" = "serifless"
selectorAffix."g/hookTopBase" = "serifless" selectorAffix."g/hookTopBase" = "serifless"
selectorAffix."gScript" = "scriptCut"
selectorAffix."g/singleStorey/autoSerifed/slab" = "serifless" selectorAffix."g/singleStorey/autoSerifed/slab" = "serifless"
selectorAffix."g/singleStorey/autoSerifed/sans" = "serifless" selectorAffix."g/singleStorey/autoSerifed/sans" = "serifless"
selectorAffix.gScript = "scriptCut"
[prime.g.variants-buildup.stages.ear.serifed] [prime.g.variants-buildup.stages.ear.serifed]
rank = 2 rank = 2
@ -2842,9 +2842,9 @@ descriptionAffix = "top-right serif"
selectorAffix.g = "serifed" selectorAffix.g = "serifed"
selectorAffix."g/sansSerif" = "serifless" selectorAffix."g/sansSerif" = "serifless"
selectorAffix."g/hookTopBase" = "serifless" selectorAffix."g/hookTopBase" = "serifless"
selectorAffix."gScript" = "scriptCut"
selectorAffix."g/singleStorey/autoSerifed/slab" = "serifed" selectorAffix."g/singleStorey/autoSerifed/slab" = "serifed"
selectorAffix."g/singleStorey/autoSerifed/sans" = "serifed" selectorAffix."g/singleStorey/autoSerifed/sans" = "serifed"
selectorAffix.gScript = "scriptCut"
[prime.g.variants-buildup.stages.ear.earless-corner] [prime.g.variants-buildup.stages.ear.earless-corner]
rank = 3 rank = 3
@ -2852,9 +2852,9 @@ descriptionAffix = "earless (cornered top-right)"
selectorAffix.g = "earlessCorner" selectorAffix.g = "earlessCorner"
selectorAffix."g/sansSerif" = "earlessCorner" selectorAffix."g/sansSerif" = "earlessCorner"
selectorAffix."g/hookTopBase" = "earlessCornerHTB" selectorAffix."g/hookTopBase" = "earlessCornerHTB"
selectorAffix."gScript" = "scriptCut"
selectorAffix."g/singleStorey/autoSerifed/slab" = "earlessCorner" selectorAffix."g/singleStorey/autoSerifed/slab" = "earlessCorner"
selectorAffix."g/singleStorey/autoSerifed/sans" = "earlessCorner" selectorAffix."g/singleStorey/autoSerifed/sans" = "earlessCorner"
selectorAffix.gScript = "scriptCut"
[prime.g.variants-buildup.stages.ear.earless-rounded] [prime.g.variants-buildup.stages.ear.earless-rounded]
rank = 4 rank = 4
@ -2862,9 +2862,9 @@ descriptionAffix = "earless (rounded top-right)"
selectorAffix.g = "earlessRounded" selectorAffix.g = "earlessRounded"
selectorAffix."g/sansSerif" = "earlessRounded" selectorAffix."g/sansSerif" = "earlessRounded"
selectorAffix."g/hookTopBase" = "serifless" selectorAffix."g/hookTopBase" = "serifless"
selectorAffix."gScript" = "scriptCut"
selectorAffix."g/singleStorey/autoSerifed/slab" = "earlessRounded" selectorAffix."g/singleStorey/autoSerifed/slab" = "earlessRounded"
selectorAffix."g/singleStorey/autoSerifed/sans" = "earlessRounded" selectorAffix."g/singleStorey/autoSerifed/sans" = "earlessRounded"
selectorAffix.gScript = "scriptCut"