diff --git a/FiraCode.glyphs b/FiraCode.glyphs index b7a923e..a9108be 100644 --- a/FiraCode.glyphs +++ b/FiraCode.glyphs @@ -202,7 +202,7 @@ name = locl; { code = "sub zero by zero.zero;\012sub zero.tosf by zero.tosf.zero;"; name = zero; -notes = "Name: Zero with a dot inside"; +notes = "Zero with a dot inside"; }, { code = "lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub less.spacer bar.spacer greater' by less_bar_greater.liga;\012 sub less.spacer bar' greater by bar.spacer;\012 sub less' bar greater by less.spacer;\012} less_bar_greater;\012\012lookup bar_bar_bar_greater {\012 ignore sub bar bar' bar bar greater;\012 ignore sub bar' bar bar greater greater;\012 sub bar.spacer bar.spacer bar.spacer greater' by bar_bar_bar_greater.liga;\012 sub bar.spacer bar.spacer bar' greater by bar.spacer;\012 sub bar.spacer bar' bar greater by bar.spacer;\012 sub bar' bar bar greater by bar.spacer;\012} bar_bar_bar_greater;\012\012lookup less_bar_bar_bar {\012 ignore sub less less' bar bar bar;\012 ignore sub less' bar bar bar bar;\012 sub less.spacer bar.spacer bar.spacer bar' by less_bar_bar_bar.liga;\012 sub less.spacer bar.spacer bar' bar by bar.spacer;\012 sub less.spacer bar' bar bar by bar.spacer;\012 sub less' bar bar bar by less.spacer;\012} less_bar_bar_bar;\012\012lookup bar_bar_greater {\012 ignore sub bar bar' bar greater;\012 ignore sub bar' bar greater greater;\012 ignore sub less bar' bar greater;\012 sub bar.spacer bar.spacer greater' by bar_bar_greater.liga;\012 sub bar.spacer bar' greater by bar.spacer;\012 sub bar' bar greater by bar.spacer;\012} bar_bar_greater;\012\012lookup less_bar_bar {\012 ignore sub less less' bar bar;\012 ignore sub less' bar bar bar;\012 ignore sub less' bar bar greater;\012 sub less.spacer bar.spacer bar' by less_bar_bar.liga;\012 sub less.spacer bar' bar by bar.spacer;\012 sub less' bar bar by less.spacer;\012} less_bar_bar;\012\012lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub bar.spacer greater' by bar_greater.liga;\012 sub bar' greater by bar.spacer;\012} bar_greater;\012\012lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub less.spacer bar' by less_bar.liga;\012 sub less' bar by less.spacer;\012} less_bar;\012\012lookup bar_bar_bar {\012 ignore sub bar bar' bar bar;\012 ignore sub bar' bar bar bar;\012 sub bar.spacer bar.spacer bar' by bar_bar_bar.liga;\012 sub bar.spacer bar' bar by bar.spacer;\012 sub bar' bar bar by bar.spacer;\012} bar_bar_bar;\012\012lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 ignore sub [asterisk plus dollar] greater' greater greater;\012 sub greater.spacer greater.spacer greater' by greater_greater_greater.liga;\012 sub greater.spacer greater' greater by greater.spacer;\012 sub greater' greater greater by greater.spacer;\012} greater_greater_greater;\012\012lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 ignore sub less' less less [asterisk plus dollar];\012 sub less.spacer less.spacer less' by less_less_less.liga;\012 sub less.spacer less' less by less.spacer;\012 sub less' less less by less.spacer;\012} less_less_less;\012\012lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 ignore sub [hyphen equal] bar' bar;\012 ignore sub bar' bar hyphen;\012 ignore sub bar' bar equal [equal less greater bar colon exclam slash];\012 sub bar.spacer bar' by bar_bar.liga;\012 sub bar' bar by bar.spacer;\012} bar_bar;\012\012lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 ignore sub [asterisk plus dollar] greater' greater;\012 ignore sub [hyphen equal] greater' greater;\012 ignore sub greater' greater hyphen;\012 ignore sub greater' greater equal [equal less greater bar colon exclam slash];\012 sub greater.spacer greater' by greater_greater.liga;\012 sub greater' greater by greater.spacer;\012} greater_greater;\012\012lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 ignore sub less' less [asterisk plus dollar];\012 ignore sub [hyphen equal] less' less;\012 ignore sub less' less hyphen;\012 ignore sub less' less equal [equal less greater bar colon exclam slash];\012 sub less.spacer less' by less_less.liga;\012 sub less' less by less.spacer;\012} less_less;\012\012lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 ignore sub parenleft question less' exclam hyphen hyphen;\012 sub less.spacer exclam.spacer hyphen.spacer hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub less.spacer exclam.spacer hyphen' hyphen by hyphen.spacer;\012 sub less.spacer exclam' hyphen hyphen by exclam.spacer;\012 sub less' exclam hyphen hyphen by less.spacer;\012} less_exclam_hyphen_hyphen;\012\012lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub asciitilde.spacer asciitilde.spacer greater' by asciitilde_asciitilde_greater.liga;\012 sub asciitilde.spacer asciitilde' greater by asciitilde.spacer;\012 sub asciitilde' asciitilde greater by asciitilde.spacer;\012} asciitilde_asciitilde_greater;\012\012lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 ignore sub slash asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk slash;\012 sub asterisk.spacer asterisk.spacer asterisk' by asterisk_asterisk_asterisk.liga;\012 sub asterisk.spacer asterisk' asterisk by asterisk.spacer;\012 sub asterisk' asterisk asterisk by asterisk.spacer;\012} asterisk_asterisk_asterisk;\012\012lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 ignore sub parenleft question colon' colon colon;\012 ignore sub colon' colon colon [less greater];\012 ignore sub [less greater] colon' colon colon;\012 sub colon.spacer colon.spacer colon' by colon_colon_colon.liga;\012 sub colon.spacer colon' colon by colon.spacer;\012 sub colon' colon colon by colon.spacer;\012} colon_colon_colon;\012\012lookup colon_colon_equal {\012 ignore sub colon colon' colon equal;\012 ignore sub colon' colon equal equal;\012 ignore sub parenleft question colon' colon equal;\012 sub colon.spacer colon.spacer equal' by colon_colon_equal.liga;\012 sub colon.spacer colon' equal by colon.spacer;\012 sub colon' colon equal by colon.spacer;\012} colon_colon_equal;\012\012lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 ignore sub parenleft question equal' equal equal;\012 ignore sub parenleft question less equal' equal equal;\012 ignore sub less question equal' equal equal;\012 ignore sub bracketleft equal' equal equal;\012 ignore sub equal' equal equal bracketright;\012 ignore sub equal [colon exclam] equal' equal equal;\012 ignore sub [less greater bar slash] equal' equal equal;\012 ignore sub equal' equal equal [less greater bar slash];\012 ignore sub equal' equal equal [colon exclam] equal;\012 sub equal.spacer equal.spacer equal' by equal_equal_equal.liga;\012 sub equal.spacer equal' equal by equal.spacer;\012 sub equal' equal equal by equal.spacer;\012} equal_equal_equal;\012\012lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 ignore sub parenleft question exclam' equal equal;\012 ignore sub parenleft question less exclam' equal equal;\012 ignore sub equal exclam' equal equal;\012 sub exclam.spacer equal.spacer equal' by exclam_equal_equal.liga;\012 sub exclam.spacer equal' equal by equal.spacer;\012 sub exclam' equal equal by exclam.spacer;\012} exclam_equal_equal;\012\012lookup exclam_exclam_period {\012 ignore sub exclam exclam' exclam period;\012 ignore sub exclam' exclam period period;\012 ignore sub parenleft question exclam' exclam period;\012 ignore sub parenleft question less exclam' exclam period;\012 sub exclam.spacer exclam.spacer period' by exclam_exclam_period.liga;\012 sub exclam.spacer exclam' period by exclam.spacer;\012 sub exclam' exclam period by exclam.spacer;\012} exclam_exclam_period;\012\012lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub less.spacer asciitilde.spacer asciitilde' by less_asciitilde_asciitilde.liga;\012 sub less.spacer asciitilde' asciitilde by asciitilde.spacer;\012 sub less' asciitilde asciitilde by less.spacer;\012} less_asciitilde_asciitilde;\012\012lookup less_asciitilde_greater {\012 ignore sub less less' asciitilde greater;\012 ignore sub less' asciitilde greater greater;\012 sub less.spacer asciitilde.spacer greater' by less_asciitilde_greater.liga;\012 sub less.spacer asciitilde' greater by asciitilde.spacer;\012 sub less' asciitilde greater by less.spacer;\012} less_asciitilde_greater;\012\012lookup less_asterisk_greater {\012 sub less.spacer asterisk.spacer greater' by less_asterisk_greater.liga;\012 sub less.spacer asterisk' greater by asterisk.spacer;\012 sub less' asterisk greater by less.spacer;\012} less_asterisk_greater;\012\012lookup less_dollar_greater {\012 sub less.spacer dollar.spacer greater' by less_dollar_greater.liga;\012 sub less.spacer dollar' greater by dollar.spacer;\012 sub less' dollar greater by less.spacer;\012} less_dollar_greater;\012\012lookup less_plus_greater {\012 sub less.spacer plus.spacer greater' by less_plus_greater.liga;\012 sub less.spacer plus' greater by plus.spacer;\012 sub less' plus greater by less.spacer;\012} less_plus_greater;\012\012lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub less.spacer slash.spacer greater' by less_slash_greater.liga;\012 sub less.spacer slash' greater by slash.spacer;\012 sub less' slash greater by less.spacer;\012} less_slash_greater;\012\012lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub numbersign.spacer underscore.spacer parenleft' by numbersign_underscore_parenleft.liga;\012 sub numbersign.spacer underscore' parenleft by underscore.spacer;\012 sub numbersign' underscore parenleft by numbersign.spacer;\012} numbersign_underscore_parenleft;\012\012lookup period_period_equal {\012 ignore sub period period' period equal;\012 ignore sub period' period equal equal;\012 sub period.spacer period.spacer equal' by period_period_equal.liga;\012 sub period.spacer period' equal by period.spacer;\012 sub period' period equal by period.spacer;\012} period_period_equal;\012\012lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub period.spacer period.spacer less' by period_period_less.liga;\012 sub period.spacer period' less by period.spacer;\012 sub period' period less by period.spacer;\012} period_period_less;\012\012lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub period.spacer period.spacer period' by period_period_period.liga;\012 sub period.spacer period' period by period.spacer;\012 sub period' period period by period.spacer;\012} period_period_period;\012\012lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub plus.spacer plus.spacer plus' by plus_plus_plus.liga;\012 sub plus.spacer plus' plus by plus.spacer;\012 sub plus' plus plus by plus.spacer;\012} plus_plus_plus;\012\012lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub slash.spacer slash.spacer slash' by slash_slash_slash.liga;\012 sub slash.spacer slash' slash by slash.spacer;\012 sub slash' slash slash by slash.spacer;\012} slash_slash_slash;\012\012lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub w.spacer w.spacer w' by w_w_w.liga;\012 sub w.spacer w' w by w.spacer;\012 sub w' w w by w.spacer;\012} w_w_w;\012\012lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub ampersand.spacer ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by ampersand.spacer;\012} ampersand_ampersand;\012\012lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub asciicircum.spacer equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by asciicircum.spacer;\012} asciicircum_equal;\012\012lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub asciitilde.spacer asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by asciitilde.spacer;\012} asciitilde_asciitilde;\012\012lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub asciitilde.spacer at' by asciitilde_at.liga;\012 sub asciitilde' at by asciitilde.spacer;\012} asciitilde_at;\012\012lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub asciitilde.spacer greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by asciitilde.spacer;\012} asciitilde_greater;\012\012lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub asciitilde.spacer hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by asciitilde.spacer;\012} asciitilde_hyphen;\012\012lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 ignore sub slash asterisk' asterisk;\012 ignore sub asterisk' asterisk slash;\012 sub asterisk.spacer asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by asterisk.spacer;\012} asterisk_asterisk;\012\012lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub asterisk.spacer greater' by asterisk_greater.liga;\012 sub asterisk' greater by asterisk.spacer;\012} asterisk_greater;\012\012lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 ignore sub slash asterisk' slash;\012 ignore sub asterisk' slash asterisk;\012 sub asterisk.spacer slash' by asterisk_slash.liga;\012 sub asterisk' slash by asterisk.spacer;\012} asterisk_slash;\012\012lookup bar_braceright {\012 ignore sub bar bar' braceright;\012 ignore sub bar' braceright braceright;\012 ignore sub braceleft bar' braceright;\012 sub bar.spacer braceright' by bar_braceright.liga;\012 sub bar' braceright by bar.spacer;\012} bar_braceright;\012\012lookup bar_bracketright {\012 ignore sub bar bar' bracketright;\012 ignore sub bar' bracketright bracketright;\012 ignore sub bracketleft bar' bracketright;\012 sub bar.spacer bracketright' by bar_bracketright.liga;\012 sub bar' bracketright by bar.spacer;\012} bar_bracketright;\012\012lookup braceleft_bar {\012 ignore sub braceleft braceleft' bar;\012 ignore sub braceleft' bar bar;\012 ignore sub braceleft' bar braceright;\012 sub braceleft.spacer bar' by braceleft_bar.liga;\012 sub braceleft' bar by braceleft.spacer;\012} braceleft_bar;\012\012lookup bracketleft_bar {\012 ignore sub bracketleft bracketleft' bar;\012 ignore sub bracketleft' bar bar;\012 ignore sub bracketleft' bar bracketright;\012 sub bracketleft.spacer bar' by bracketleft_bar.liga;\012 sub bracketleft' bar by bracketleft.spacer;\012} bracketleft_bar;\012\012lookup bracketright_numbersign {\012 ignore sub bracketright bracketright' numbersign;\012 ignore sub bracketright' numbersign numbersign;\012 sub bracketright.spacer numbersign' by bracketright_numbersign.liga;\012 sub bracketright' numbersign by bracketright.spacer;\012} bracketright_numbersign;\012\012lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 ignore sub parenleft question colon' colon;\012 ignore sub colon' colon [less greater];\012 ignore sub [less greater] colon' colon;\012 sub colon.spacer colon' by colon_colon.liga;\012 sub colon' colon by colon.spacer;\012} colon_colon;\012\012lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 ignore sub parenleft question colon' equal;\012 ignore sub equal colon' equal;\012 sub colon.spacer equal' by colon_equal.liga;\012 sub colon' equal by colon.spacer;\012} colon_equal;\012\012lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub dollar.spacer greater' by dollar_greater.liga;\012 sub dollar' greater by dollar.spacer;\012} dollar_greater;\012\012lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 ignore sub parenleft question equal' equal;\012 ignore sub parenleft question less equal' equal;\012 ignore sub less question equal' equal;\012 ignore sub bracketleft equal' equal;\012 ignore sub equal' equal bracketright;\012 ignore sub equal [colon exclam] equal' equal;\012 ignore sub [less greater bar slash] equal' equal;\012 ignore sub equal' equal [less greater bar slash] ;\012 ignore sub equal' equal [colon exclam] equal;\012 sub equal.spacer equal' by equal_equal.liga;\012 sub equal' equal by equal.spacer;\012} equal_equal;\012\012lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 ignore sub parenleft question exclam' equal;\012 ignore sub parenleft question less exclam' equal;\012 ignore sub equal exclam' equal;\012 sub exclam.spacer equal' by exclam_equal.liga;\012 sub exclam' equal by exclam.spacer;\012} exclam_equal;\012\012lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 ignore sub parenleft question exclam' exclam;\012 ignore sub parenleft question less exclam' exclam;\012 sub exclam.spacer exclam' by exclam_exclam.liga;\012 sub exclam' exclam by exclam.spacer;\012} exclam_exclam;\012\012lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 ignore sub equal greater' equal;\012 ignore sub greater' equal [less greater bar colon exclam slash];\012 sub greater.spacer equal' by greater_equal.liga;\012 sub greater' equal by greater.spacer;\012} greater_equal;\012\012lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub hyphen.spacer asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by hyphen.spacer;\012} hyphen_asciitilde;\012\012lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 ignore sub [less greater bar] hyphen' hyphen;\012 ignore sub hyphen' hyphen [less greater bar];\012 sub hyphen.spacer hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by hyphen.spacer;\012} hyphen_hyphen;\012\012lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub less.spacer asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by less.spacer;\012} less_asciitilde;\012\012lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub less.spacer asterisk' by less_asterisk.liga;\012 sub less' asterisk by less.spacer;\012} less_asterisk;\012\012lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub less.spacer dollar' by less_dollar.liga;\012 sub less' dollar by less.spacer;\012} less_dollar;\012\012lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 ignore sub parenleft question less' equal;\012 ignore sub equal less' equal;\012 ignore sub less' equal [less greater bar colon exclam slash];\012 sub less.spacer equal' by less_equal.liga;\012 sub less' equal by less.spacer;\012} less_equal;\012\012lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub less.spacer greater' by less_greater.liga;\012 sub less' greater by less.spacer;\012} less_greater;\012\012lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub less.spacer plus' by less_plus.liga;\012 sub less' plus by less.spacer;\012} less_plus;\012\012lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub less.spacer slash' by less_slash.liga;\012 sub less' slash by less.spacer;\012} less_slash;\012\012lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub numbersign.spacer braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by numbersign.spacer;\012} numbersign_braceleft;\012\012lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub numbersign.spacer bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by numbersign.spacer;\012} numbersign_bracketleft;\012\012lookup numbersign_colon {\012 ignore sub numbersign numbersign' colon;\012 ignore sub numbersign' colon colon;\012 sub numbersign.spacer colon' by numbersign_colon.liga;\012 sub numbersign' colon by numbersign.spacer;\012} numbersign_colon;\012\012lookup numbersign_equal {\012 ignore sub numbersign numbersign' equal;\012 ignore sub numbersign' equal equal;\012 sub numbersign.spacer equal' by numbersign_equal.liga;\012 sub numbersign' equal by numbersign.spacer;\012} numbersign_equal;\012\012lookup numbersign_exclam {\012 ignore sub numbersign numbersign' exclam;\012 ignore sub numbersign' exclam exclam;\012 sub numbersign.spacer exclam' by numbersign_exclam.liga;\012 sub numbersign' exclam by numbersign.spacer;\012} numbersign_exclam;\012\012lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub numbersign.spacer parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by numbersign.spacer;\012} numbersign_parenleft;\012\012lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub numbersign.spacer question' by numbersign_question.liga;\012 sub numbersign' question by numbersign.spacer;\012} numbersign_question;\012\012lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub numbersign.spacer underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by numbersign.spacer;\012} numbersign_underscore;\012\012lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub percent.spacer percent' by percent_percent.liga;\012 sub percent' percent by percent.spacer;\012} percent_percent;\012\012lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub period.spacer period' by period_period.liga;\012 sub period' period by period.spacer;\012} period_period;\012\012lookup period_question {\012 ignore sub period period' question;\012 ignore sub period' question question;\012 sub period.spacer question' by period_question.liga;\012 sub period' question by period.spacer;\012} period_question;\012\012lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub plus.spacer greater' by plus_greater.liga;\012 sub plus' greater by plus.spacer;\012} plus_greater;\012\012lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub plus.spacer plus' by plus_plus.liga;\012 sub plus' plus by plus.spacer;\012} plus_plus;\012\012lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 ignore sub parenleft question' equal;\012 ignore sub less question' equal;\012 sub question.spacer equal' by question_equal.liga;\012 sub question' equal by question.spacer;\012} question_equal;\012\012lookup question_period {\012 ignore sub question question' period;\012 ignore sub question' period period;\012 sub question.spacer period' by question_period.liga;\012 sub question' period by question.spacer;\012} question_period;\012\012lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub question.spacer question' by question_question.liga;\012 sub question' question by question.spacer;\012} question_question;\012\012lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub semicolon.spacer semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by semicolon.spacer;\012} semicolon_semicolon;\012\012lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 ignore sub slash' asterisk slash;\012 ignore sub asterisk slash' asterisk;\012 sub slash.spacer asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by slash.spacer;\012} slash_asterisk;\012\012lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub slash.spacer greater' by slash_greater.liga;\012 sub slash' greater by slash.spacer;\012} slash_greater;\012\012lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 ignore sub equal slash' slash;\012 ignore sub slash' slash equal;\012 sub slash.spacer slash' by slash_slash.liga;\012 sub slash' slash by slash.spacer;\012} slash_slash;\012\012### Vertical-align colon/greater/less\012\012# :> :< >: <:\012# :>: :<:\012# <:> >:< <:< >:>\012# <::> <::< >::< >::>\012# <:::> <:::< >:::< >:::>\012# <::::> <::::< >::::< >::::>\012\012lookup center {\012 #574 :>= :<=\012 ignore sub colon' [less greater] [equal hyphen];\012\012 #1145 ::< ::> <:: >::\012 ignore sub colon colon' [less greater];\012 ignore sub [less greater]' colon colon;\012\012 # middles & ends\012 sub [less.center greater.center colon.center] colon' by colon.center;\012 sub colon.center [less greater]' by [less.center greater.center];\012\012 # starts\012 sub [less greater]' colon by [less.center greater.center];\012 sub colon' [less greater] by colon.center;\012} center;\012\012### Logical conjunction/disjunction #738\012\012lookup slash_backslash {\012 ignore sub @NotSpace slash' backslash;\012 ignore sub slash' backslash @NotSpace;\012 sub slash.spacer backslash' by slash_backslash.liga;\012 sub slash' backslash by slash.spacer;\012} slash_backslash;\012\012lookup backslash_slash {\012 ignore sub @NotSpace backslash' slash;\012 ignore sub backslash' slash @NotSpace;\012 sub backslash.spacer slash' by backslash_slash.liga;\012 sub backslash' slash by backslash.spacer;\012} backslash_slash;\012\012lookup hexadecimal_x {\012 ### 0xFF\012 sub [zero zero.zero] x' [@Digit @HexDigit] by x.multiply;\012 sub [zero.tosf zero.zero.tosf zero.tosf.zero] x' [@DigitTosf @HexDigit] by x.multiply.tosf;\012\012 ### 800x600\012 sub @Digit x' @Digit by x.multiply; \012 sub @DigitTosf x' @DigitTosf by x.multiply.tosf;\012} hexadecimal_x;\012\012### Long dashes\012\012sub twoemdash by hyphen_start.seq hyphen_end.seq;\012sub threeemdash by hyphen_start.seq hyphen_middle.seq hyphen_end.seq;\012\012lookup equal_arrows {\012 # Disable |||\012 ignore sub bar bar' bar equal;\012 ignore sub bar bar' equal;\012 ignore sub [equal_start.seq equal_middle.seq] bar' bar bar;\012\012 # equal middle & end\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' [equal less greater bar slash colon exclam] by equal_middle.seq;\012\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' by equal_end.seq;\012\012 # double middles\012 sub [equal_start.seq equal_middle.seq] less.spacer less' equal by less_less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] less' less equal by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' equal by greater_greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater equal by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' equal by bar_bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar equal by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' equal by slash_slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash equal by slash.spacer;\012\012 # single middles\012 sub [equal_start.seq equal_middle.seq] less' equal by less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' equal by greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' equal by bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' equal by slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] colon' equal by colon_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] exclam' equal by exclam_equal_middle.seq;\012\012 # double ends\012 sub [equal_start.seq equal_middle.seq] less.spacer less' by less_less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] less' less by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' by greater_greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' by bar_bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' by slash_slash_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash by slash.spacer;\012\012 # single ends\012 sub [equal_start.seq equal_middle.seq] less' by less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' by greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' by bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' by slash_equal_end.seq;\012\012 # double beginnings\012 sub less.spacer less' equal by less_less_equal_start.seq;\012 sub less' less equal by less.spacer;\012 sub greater.spacer greater' equal by greater_greater_equal_start.seq;\012 sub greater' greater equal by greater.spacer;\012 sub bar.spacer bar' equal by bar_bar_equal_start.seq;\012 sub bar' bar equal by bar.spacer;\012 sub slash.spacer slash' equal by slash_slash_equal_start.seq;\012 sub slash' slash equal by slash.spacer;\012\012 # Disable >=< #548\012 sub greater' equal less [equal less] by greater_equal_start.seq;\012 ignore sub greater' equal less;\012 \012 # Disable =< #479 #468 #424 #406 #355 #305\012 sub equal' less [equal less] by equal_start.seq;\012\012 # Disable =/ #1056\012 sub equal' slash [equal slash] by equal_start.seq; \012\012 # single beginnings\012 sub less' equal by less_equal_start.seq;\012 sub greater' equal by greater_equal_start.seq;\012 sub bar' equal [equal less greater bar colon exclam slash] by bar_equal_start.seq; # disable |= \012 sub slash' equal by slash_equal_start.seq;\012 sub equal' [equal greater bar colon exclam] by equal_start.seq;\012\012} equal_arrows;\012\012### fi/fl #795\012\012sub [f i.salt_low j.salt_low] [i j]' by [i.salt_low j.salt_low];\012sub [F T I l.salt_low] l' by l.salt_low;\012\012### Greek\012\012lookup caltGreekUCdiph {\012 sub @GreekUCdiphIOTA Iota' by Iotadieresis;\012 sub @GreekUCdiphUPSILON Upsilon' by Upsilondieresis;\012} caltGreekUCdiph;\012\012lookup caltGreekUC {\012 sub @GreekUCAcc' @GreekUC by @GreekUCcalt;\012 sub @GreekUC @GreekUCAcc' by @GreekUCcalt;\012 sub @GreekUCAcc' space @GreekUC by @GreekUCcalt;\012 sub @GreekUC space @GreekUCAcc' by @GreekUCcalt;\012} caltGreekUC;\012\012### Arbitrary-length arrows #346\012\012lookup hyphen_arrows {\012 # Disable |||\012 ignore sub bar bar' bar hyphen;\012 ignore sub bar bar' hyphen;\012 ignore sub [hyphen_start.seq hyphen_middle.seq] bar' bar bar;\012\012 # hyphen middle & end\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' [hyphen less greater bar] by hyphen_middle.seq;\012\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' by hyphen_end.seq;\012\012 # double middles\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' hyphen by less_less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less hyphen by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' hyphen by greater_greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater hyphen by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' hyphen by bar_bar_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar hyphen by bar.spacer;\012\012 # single middles\012 sub [hyphen_start.seq hyphen_middle.seq] less' hyphen by less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' hyphen by greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' hyphen by bar_hyphen_middle.seq;\012\012 # double ends\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' by less_less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' by greater_greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' by bar_bar_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar by bar.spacer;\012\012 # single ends\012 sub [hyphen_start.seq hyphen_middle.seq] less' by less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' by greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' by bar_hyphen_end.seq;\012\012 # double beginnings\012 sub less.spacer less' hyphen by less_less_hyphen_start.seq;\012 sub less' less hyphen by less.spacer;\012 sub greater.spacer greater' hyphen by greater_greater_hyphen_start.seq;\012 sub greater' greater hyphen by greater.spacer;\012 sub bar.spacer bar' hyphen by bar_bar_hyphen_start.seq;\012 sub bar' bar hyphen by bar.spacer;\012\012 # single beginnings\012 sub less' hyphen by less_hyphen_start.seq;\012 sub greater' hyphen by greater_hyphen_start.seq;\012 sub bar' hyphen by bar_hyphen_start.seq;\012 sub hyphen' [hyphen less greater bar] by hyphen_start.seq;\012} hyphen_arrows;\012\012### Lowercase/uppercase operators\012\012# Must go after hyphen_arrows.fea\012\012lookup lowercase_hyphen {\012 ignore sub @Tall \\hyphen' @Lowercase;\012 ignore sub @Lowercase \\hyphen' @Tall; \012 sub \\hyphen' @Lowercase by \\hyphen.lc;\012 sub @Lowercase \\hyphen' by \\hyphen.lc;\012} lowercase_hyphen;\012\012lookup lowercase_plus {\012 ignore sub @Tall \\plus' @Lowercase;\012 ignore sub @Lowercase \\plus' @Tall;\012 sub \\plus' @Lowercase by \\plus.lc;\012 sub @Lowercase \\plus' by \\plus.lc;\012} lowercase_plus;\012\012lookup lowercase_asterisk {\012 ignore sub @Tall \\asterisk' @Lowercase;\012 ignore sub @Lowercase \\asterisk' @Tall;\012 sub \\asterisk' @Lowercase by \\asterisk.lc;\012 sub @Lowercase \\asterisk' by \\asterisk.lc;\012} lowercase_asterisk;\012\012lookup lowercase_asteriskmath {\012 ignore sub @Tall \\asteriskmath' @Lowercase;\012 ignore sub @Lowercase \\asteriskmath' @Tall;\012 sub \\asteriskmath' @Lowercase by \\asteriskmath.lc;\012 sub @Lowercase \\asteriskmath' by \\asteriskmath.lc;\012} lowercase_asteriskmath;\012\012lookup uppercase_colon {\012 ignore sub @Tall \\colon' @Lowercase;\012 ignore sub @Lowercase \\colon' @Tall;\012 sub @Tall \\colon' by \\colon.uc;\012 sub \\colon' @Tall by \\colon.uc;\012# pos @Tall \\colon' <0 160 0 0>;\012# pos \\colon' @Tall <0 160 0 0>;\012} uppercase_colon;\012\012lookup numbersigns {\012 # middle parts\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' numbersign by numbersign_middle.seq;\012\012 # ends\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' by numbersign_end.seq;\012 \012 # beginnings\012 sub numbersign' numbersign by numbersign_start.seq; \012} numbersigns;\012\012lookup underscores {\012 # middle parts\012 sub [underscore_start.seq underscore_middle.seq] bar' underscore by bar_underscore_middle.seq;\012\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' bar underscore by underscore_middle.seq;\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' underscore by underscore_middle.seq;\012\012 # ends\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' by underscore_end.seq;\012 \012 # beginnings\012 sub underscore' bar underscore by underscore_start.seq; \012 sub underscore' underscore by underscore_start.seq; \012} underscores;"; @@ -281,162 +281,162 @@ name = hwid; { code = "sub a by a.cv01;\012sub aacute by aacute.cv01;\012sub abreve by abreve.cv01;\012sub acircumflex by acircumflex.cv01;\012sub adieresis by adieresis.cv01;\012sub agrave by agrave.cv01;\012sub amacron by amacron.cv01;\012sub aogonek by aogonek.cv01;\012sub aring by aring.cv01;\012sub atilde by atilde.cv01;"; name = cv01; -notes = "Name: alternate lowercase a"; +notes = "alternate lowercase a"; }, { code = "sub g by g.cv02;\012sub gbreve by gbreve.cv02;\012sub gcircumflex by gcircumflex.cv02;\012sub gcommaaccent by gcommaaccent.cv02;\012sub gdotaccent by gdotaccent.cv02;"; name = cv02; -notes = "Name: single storey lowercase g"; +notes = "single storey lowercase g"; }, { code = "sub i by i.cv03;\012sub idotless by idotless.cv03;\012sub iacute by iacute.cv03;\012sub ibreve by ibreve.cv03;\012sub icircumflex by icircumflex.cv03;\012sub idieresis by idieresis.cv03;\012sub idotaccent by idotaccent.cv03;\012sub igrave by igrave.cv03;\012sub imacron by imacron.cv03;\012sub iogonek by iogonek.cv03;\012sub itilde by itilde.cv03;"; name = cv03; -notes = "Name: lowercase I without any horizontal decorations"; +notes = "lowercase I without any horizontal decorations"; }, { code = "sub i by i.cv04;\012sub idotless by idotless.cv04;\012sub iacute by iacute.cv04;\012sub ibreve by ibreve.cv04;\012sub icircumflex by icircumflex.cv04;\012sub idieresis by idieresis.cv04;\012sub idotaccent by idotaccent.cv04;\012sub igrave by igrave.cv04;\012sub imacron by imacron.cv04;\012sub iogonek by iogonek.cv04;\012sub itilde by itilde.cv04;"; name = cv04; -notes = "Name: lowercase I with horizontal left line at the top"; +notes = "lowercase I with horizontal left line at the top"; }, { code = "sub i by i.cv05;\012sub idotless by idotless.cv05;\012sub iacute by iacute.cv05;\012sub ibreve by ibreve.cv05;\012sub icircumflex by icircumflex.cv05;\012sub idieresis by idieresis.cv05;\012sub idotaccent by idotaccent.cv05;\012sub igrave by igrave.cv05;\012sub imacron by imacron.cv05;\012sub iogonek by iogonek.cv05;\012sub itilde by itilde.cv05;"; name = cv05; -notes = "Name: lowercase I with horizontal left line at the top and right line at the bottom"; +notes = "lowercase I with horizontal left line at the top and right line at the bottom"; }, { code = "sub i by i.cv06;\012sub idotless by idotless.cv06;\012sub iacute by iacute.cv06;\012sub ibreve by ibreve.cv06;\012sub icircumflex by icircumflex.cv06;\012sub idieresis by idieresis.cv06;\012sub idotaccent by idotaccent.cv06;\012sub igrave by igrave.cv06;\012sub imacron by imacron.cv06;\012sub iogonek by iogonek.cv06;\012sub itilde by itilde.cv06;"; name = cv06; -notes = "Name: lowercase I with horizontal left line at the top and curved right hook at the bottom"; +notes = "lowercase I with horizontal left line at the top and curved right hook at the bottom"; }, { code = "sub l by l.cv07;\012sub lacute by lacute.cv07;\012sub lcaron by lcaron.cv07;\012sub lcommaaccent by lcommaaccent.cv07;\012sub ldot by ldot.cv07;\012sub lslash by lslash.cv07;"; name = cv07; -notes = "Name: lowercase L without any horizontal decorations"; +notes = "lowercase L without any horizontal decorations"; }, { code = "sub l by l.cv08;\012sub lacute by lacute.cv08;\012sub lcaron by lcaron.cv08;\012sub lcommaaccent by lcommaaccent.cv08;\012sub ldot by ldot.cv08;\012sub lslash by lslash.cv08;"; name = cv08; -notes = "Name: lowercase L with horizontal left line at the top"; +notes = "lowercase L with horizontal left line at the top"; }, { code = "sub l by l.cv09;\012sub lacute by lacute.cv09;\012sub lcaron by lcaron.cv09;\012sub lcommaaccent by lcommaaccent.cv09;\012sub ldot by ldot.cv09;\012sub lslash by lslash.cv09;"; name = cv09; -notes = "Name: lowercase L with horizontal left line at the top and right line at the bottom"; +notes = "lowercase L with horizontal left line at the top and right line at the bottom"; }, { code = "sub l by l.cv10;\012sub lacute by lacute.cv10;\012sub lcaron by lcaron.cv10;\012sub lcommaaccent by lcommaaccent.cv10;\012sub ldot by ldot.cv10;\012sub lslash by lslash.cv10;"; name = cv10; -notes = "Name: lowercase L with horizontal left line at the top and horizontal base"; +notes = "lowercase L with horizontal left line at the top and horizontal base"; }, { code = "sub zero by zero.cv11;\012sub zero.tosf by zero.tosf.cv11;"; name = cv11; -notes = "Name: zero without anything inside"; +notes = "zero without anything inside"; }, { code = "sub zero by zero.cv12;\012sub zero.tosf by zero.tosf.cv12;"; name = cv12; -notes = "Name: zero with a backslash inside"; +notes = "zero with a backslash inside"; }, { code = "sub zero by zero.cv13;\012sub zero.tosf by zero.tosf.cv13;"; name = cv13; -notes = "Name: zero with a vertical line inside"; +notes = "zero with a vertical line inside"; }, { code = "sub three by three.cv14;\012sub three.tosf by three.tosf.cv14;\012sub threeinferior by threeinferior.cv14;\012sub three.dnom by three.dnom.cv14;\012sub three.numr by three.numr.cv14;\012sub threesuperior by threesuperior.cv14;"; name = cv14; -notes = "Name: 3 with straight lines for the top half"; +notes = "3 with straight lines for the top half"; }, { code = "sub [asterisk asterisk.lc] by asterisk.cv15;\012sub [asteriskmath asteriskmath.lc] by asteriskmath.cv15;"; name = cv15; -notes = "Name: Top-aligned asterisk"; +notes = "Top-aligned asterisk"; }, { code = "sub [asterisk asterisk.lc asterisk.cv15 asteriskmath asteriskmath.lc asteriskmath.cv15]\012 by [asteriskmath asteriskmath.lc asteriskmath.cv15 asterisk asterisk.lc asterisk.cv15];\012\012sub [asterisk_asterisk.liga asterisk_asterisk_asterisk.liga asterisk_slash.liga slash_asterisk.liga less_asterisk.liga less_asterisk_greater.liga asterisk_greater.liga]\012 by [asterisk_asterisk.liga.cv16 asterisk_asterisk_asterisk.liga.cv16 asterisk_slash.liga.cv16 slash_asterisk.liga.cv16 less_asterisk.liga.cv16 less_asterisk_greater.liga.cv16 asterisk_greater.liga.cv16];"; name = cv16; -notes = "Name: Hexagonal asterisk"; +notes = "Hexagonal asterisk"; }, { code = "sub asciitilde by asciitilde.cv17;"; name = cv17; -notes = "Name: Top-aligned tilde"; +notes = "Top-aligned tilde"; }, { code = "sub percent by percent.cv18;\012sub perthousand by perthousand.cv18;\012sub percent_percent.liga by percent_percent.liga.cv18;"; name = cv18; -notes = "Name: percent sign with dots instead of hollow circles"; +notes = "percent sign with dots instead of hollow circles"; }, { code = "sub less_equal.liga by less_equal.ss02;"; name = cv19; -notes = "Name: Less Than + Equal with horizontal bar"; +notes = "Less Than + Equal with horizontal bar"; }, { code = "lookup less_equal_cv20 {\012 sub less_equal_start.seq less_equal.liga' by equal_end.seq;\012 sub less.spacer' less_equal.liga by less_equal_start.seq;\012} less_equal_cv20;"; name = cv20; -notes = "Name: Less Than + Equal as an arrow"; +notes = "Less Than + Equal as an arrow"; }, { code = "lookup equal_less_cv21 {\012 ignore sub equal equal' less;\012 ignore sub equal' less [less greater equal];\012\012 sub equal.spacer less' by less_equal.liga;\012 sub equal' less by equal.spacer;\012} equal_less_cv21;"; name = cv21; -notes = "Name: =<"; +notes = "=<"; }, { code = "lookup equal_less_cv22 {\012 ignore sub equal equal' less;\012 ignore sub equal' less [less greater equal];\012\012 sub equal.spacer less' by less_equal.ss02;\012 sub equal' less by equal.spacer;\012} equal_less_cv22;"; name = cv22; -notes = "Name: =< with horizontal bar"; +notes = "=< with horizontal bar"; }, { code = "sub greater_equal.liga by greater_equal.ss02;"; name = cv23; -notes = "Name: >= with horizontal bar"; +notes = ">= with horizontal bar"; }, { code = "lookup slash_equal_as_not_equal {\012 sub slash.spacer equal_end.seq' by exclam_equal.liga;\012 sub slash_equal_start.seq' equal_end.seq by slash.spacer;\012} slash_equal_as_not_equal;"; name = cv24; -notes = "Name: /= as not equal"; +notes = "/= as not equal"; }, { code = "lookup period_hyphen {\012 ignore sub period period' hyphen;\012 ignore sub period' hyphen hyphen;\012 sub period.spacer hyphen' by period_hyphen.cv25;\012 sub period' hyphen by period.spacer;\012} period_hyphen;"; name = cv25; -notes = "Name: .- as ligature"; +notes = ".- as ligature"; }, { code = "lookup colon_hyphen {\012 ignore sub colon colon' hyphen;\012 ignore sub colon' hyphen hyphen;\012 sub colon.spacer hyphen' by colon_hyphen.cv26;\012 sub colon' hyphen by colon.spacer;\012} colon_hyphen;"; name = cv26; -notes = "Name: :- as ligature"; +notes = ":- as ligature"; }, { code = "lookup bracketleft_bracketright {\012 sub bracketleft.spacer bracketright' by bracketleft_bracketright.cv27;\012 sub bracketleft' bracketright by bracketleft.spacer;\012} bracketleft_bracketright;"; name = cv27; -notes = "Name: [] as ligature"; +notes = "[] as ligature"; }, { code = "sub braceleft period' by bullet;\012sub period' braceright by bullet;"; name = cv28; -notes = "Name: {. .} as ligature"; +notes = "{. .} as ligature"; }, { code = "sub braceleft by braceleft.cv29;\012sub braceright by braceright.cv29;\012sub numbersign_braceleft.liga by numbersign_braceleft.liga.cv29;"; name = cv29; -notes = "Name: Rounded curly braces {}"; +notes = "Rounded curly braces {}"; }, { code = "sub bar by bar.cv30;\012sub bar_bar.liga by bar_bar.liga.cv30;\012sub bar_bar_bar.liga by bar_bar_bar.liga.cv30;\012sub bar_bar_equal_middle.seq by bar_bar_equal_middle.seq.cv30;\012sub bar_equal_middle.seq by bar_equal_middle.seq.cv30;\012sub bar_bar_equal_end.seq by bar_bar_equal_end.seq.cv30;\012sub bar_bar_equal_start.seq by bar_bar_equal_start.seq.cv30;\012sub bar_bar_hyphen_middle.seq by bar_bar_hyphen_middle.seq.cv30;\012sub bar_hyphen_middle.seq by bar_hyphen_middle.seq.cv30;\012sub bar_bar_hyphen_end.seq by bar_bar_hyphen_end.seq.cv30;\012sub bar_bar_hyphen_start.seq by bar_bar_hyphen_start.seq.cv30;\012sub bar_equal_end.seq by bar_equal_end.seq.cv30;\012sub bar_equal_start.seq by bar_equal_start.seq.cv30;\012sub bar_hyphen_end.seq by bar_hyphen_end.seq.cv30;\012sub bar_hyphen_start.seq by bar_hyphen_start.seq.cv30;\012sub bar_underscore_middle.seq by bar_underscore_middle.seq.cv30;"; name = cv30; -notes = "Name: longer pipe symbol"; +notes = "longer pipe symbol"; }, { code = "sub parenleft by parenleft.cv31;\012sub parenright by parenright.cv31;"; name = cv31; -notes = "Name: Circular parentheses"; +notes = "Circular parentheses"; }, { code = "lookup period_equal {\012 ignore sub period period' equal;\012 ignore sub period' equal equal;\012 sub period.spacer equal' by period_equal.cv32;\012 sub period' equal by period.spacer;\012} period_equal;"; name = cv32; -notes = "Name: .= as ligature"; +notes = ".= as ligature"; } ); fontMaster = ( diff --git a/clojure/fira_code/features.clj b/clojure/fira_code/features.clj index 982ee6e..66d7240 100644 --- a/clojure/fira_code/features.clj +++ b/clojure/fira_code/features.clj @@ -20,12 +20,10 @@ (let [[_ name] (re-matches #"([^.]+)\.fea" (.getName file)) code (slurp file) [_ notes code'] (re-matches #"(?s)#([^\n]+)\n(.*)" code) - feature (if notes - {:code (str/trim code') - :name name - :notes (str/trim notes)} - {:code (str/trim code) - :name name})] + feature (cond-> {:code (str/trim (or code' code)) + :name name} + notes + (assoc :notes (str/trim notes)))] (glyphs/set-feature font name feature))) diff --git a/features/cv01.fea b/features/cv01.fea index e6e6bd8..38512e0 100644 --- a/features/cv01.fea +++ b/features/cv01.fea @@ -1,4 +1,4 @@ -# Name: alternate lowercase a +# alternate lowercase a sub a by a.cv01; sub aacute by aacute.cv01; diff --git a/features/cv02.fea b/features/cv02.fea index 2133b3c..d304854 100644 --- a/features/cv02.fea +++ b/features/cv02.fea @@ -1,4 +1,4 @@ -# Name: single storey lowercase g +# single storey lowercase g sub g by g.cv02; sub gbreve by gbreve.cv02; diff --git a/features/cv03.fea b/features/cv03.fea index 3d07411..3bea0af 100644 --- a/features/cv03.fea +++ b/features/cv03.fea @@ -1,4 +1,4 @@ -# Name: lowercase I without any horizontal decorations +# lowercase I without any horizontal decorations sub i by i.cv03; sub idotless by idotless.cv03; diff --git a/features/cv04.fea b/features/cv04.fea index 3fa3250..0585cf1 100644 --- a/features/cv04.fea +++ b/features/cv04.fea @@ -1,4 +1,4 @@ -# Name: lowercase I with horizontal left line at the top +# lowercase I with horizontal left line at the top sub i by i.cv04; sub idotless by idotless.cv04; diff --git a/features/cv05.fea b/features/cv05.fea index 5a606a7..a1aeb5b 100644 --- a/features/cv05.fea +++ b/features/cv05.fea @@ -1,4 +1,4 @@ -# Name: lowercase I with horizontal left line at the top and right line at the bottom +# lowercase I with horizontal left line at the top and right line at the bottom sub i by i.cv05; sub idotless by idotless.cv05; diff --git a/features/cv06.fea b/features/cv06.fea index ccfea4a..483b573 100644 --- a/features/cv06.fea +++ b/features/cv06.fea @@ -1,4 +1,4 @@ -# Name: lowercase I with horizontal left line at the top and curved right hook at the bottom +# lowercase I with horizontal left line at the top and curved right hook at the bottom sub i by i.cv06; sub idotless by idotless.cv06; diff --git a/features/cv07.fea b/features/cv07.fea index a0b5cd0..7bfb83b 100644 --- a/features/cv07.fea +++ b/features/cv07.fea @@ -1,4 +1,4 @@ -# Name: lowercase L without any horizontal decorations +# lowercase L without any horizontal decorations sub l by l.cv07; sub lacute by lacute.cv07; diff --git a/features/cv08.fea b/features/cv08.fea index 590aaac..86e868b 100644 --- a/features/cv08.fea +++ b/features/cv08.fea @@ -1,4 +1,4 @@ -# Name: lowercase L with horizontal left line at the top +# lowercase L with horizontal left line at the top sub l by l.cv08; sub lacute by lacute.cv08; diff --git a/features/cv09.fea b/features/cv09.fea index c22f514..ca77339 100644 --- a/features/cv09.fea +++ b/features/cv09.fea @@ -1,4 +1,4 @@ -# Name: lowercase L with horizontal left line at the top and right line at the bottom +# lowercase L with horizontal left line at the top and right line at the bottom sub l by l.cv09; sub lacute by lacute.cv09; diff --git a/features/cv10.fea b/features/cv10.fea index 6ad26cb..2d94b58 100644 --- a/features/cv10.fea +++ b/features/cv10.fea @@ -1,4 +1,4 @@ -# Name: lowercase L with horizontal left line at the top and horizontal base +# lowercase L with horizontal left line at the top and horizontal base sub l by l.cv10; sub lacute by lacute.cv10; diff --git a/features/cv11.fea b/features/cv11.fea index 0bff833..7249c3f 100644 --- a/features/cv11.fea +++ b/features/cv11.fea @@ -1,4 +1,4 @@ -# Name: zero without anything inside +# zero without anything inside sub zero by zero.cv11; sub zero.tosf by zero.tosf.cv11; diff --git a/features/cv12.fea b/features/cv12.fea index 18021bd..699384d 100644 --- a/features/cv12.fea +++ b/features/cv12.fea @@ -1,4 +1,4 @@ -# Name: zero with a backslash inside +# zero with a backslash inside sub zero by zero.cv12; sub zero.tosf by zero.tosf.cv12; diff --git a/features/cv13.fea b/features/cv13.fea index f3be7cd..971c6d1 100644 --- a/features/cv13.fea +++ b/features/cv13.fea @@ -1,4 +1,4 @@ -# Name: zero with a vertical line inside +# zero with a vertical line inside sub zero by zero.cv13; sub zero.tosf by zero.tosf.cv13; diff --git a/features/cv14.fea b/features/cv14.fea index 35466d9..9b3f457 100644 --- a/features/cv14.fea +++ b/features/cv14.fea @@ -1,4 +1,4 @@ -# Name: 3 with straight lines for the top half +# 3 with straight lines for the top half sub three by three.cv14; sub three.tosf by three.tosf.cv14; diff --git a/features/cv15.fea b/features/cv15.fea index ae9c2e4..1570359 100644 --- a/features/cv15.fea +++ b/features/cv15.fea @@ -1,4 +1,4 @@ -# Name: Top-aligned asterisk +# Top-aligned asterisk sub [asterisk asterisk.lc] by asterisk.cv15; sub [asteriskmath asteriskmath.lc] by asteriskmath.cv15; diff --git a/features/cv16.fea b/features/cv16.fea index 21a05ff..59a2f06 100644 --- a/features/cv16.fea +++ b/features/cv16.fea @@ -1,4 +1,4 @@ -# Name: Hexagonal asterisk +# Hexagonal asterisk sub [asterisk asterisk.lc asterisk.cv15 asteriskmath asteriskmath.lc asteriskmath.cv15] by [asteriskmath asteriskmath.lc asteriskmath.cv15 asterisk asterisk.lc asterisk.cv15]; diff --git a/features/cv17.fea b/features/cv17.fea index 81ce39c..f618370 100644 --- a/features/cv17.fea +++ b/features/cv17.fea @@ -1,3 +1,3 @@ -# Name: Top-aligned tilde +# Top-aligned tilde sub asciitilde by asciitilde.cv17; diff --git a/features/cv18.fea b/features/cv18.fea index d34f100..679322c 100644 --- a/features/cv18.fea +++ b/features/cv18.fea @@ -1,4 +1,4 @@ -# Name: percent sign with dots instead of hollow circles +# percent sign with dots instead of hollow circles sub percent by percent.cv18; sub perthousand by perthousand.cv18; diff --git a/features/cv19.fea b/features/cv19.fea index f4b2881..2874346 100644 --- a/features/cv19.fea +++ b/features/cv19.fea @@ -1,3 +1,3 @@ -# Name: Less Than + Equal with horizontal bar +# Less Than + Equal with horizontal bar sub less_equal.liga by less_equal.ss02; \ No newline at end of file diff --git a/features/cv20.fea b/features/cv20.fea index ec73a8d..60513d7 100644 --- a/features/cv20.fea +++ b/features/cv20.fea @@ -1,4 +1,4 @@ -# Name: Less Than + Equal as an arrow +# Less Than + Equal as an arrow lookup less_equal_cv20 { sub less_equal_start.seq less_equal.liga' by equal_end.seq; diff --git a/features/cv21.fea b/features/cv21.fea index 6d7d17a..3b8ce57 100644 --- a/features/cv21.fea +++ b/features/cv21.fea @@ -1,4 +1,4 @@ -# Name: =< +# =< lookup equal_less_cv21 { ignore sub equal equal' less; diff --git a/features/cv22.fea b/features/cv22.fea index b7efedb..efcb9a8 100644 --- a/features/cv22.fea +++ b/features/cv22.fea @@ -1,4 +1,4 @@ -# Name: =< with horizontal bar +# =< with horizontal bar lookup equal_less_cv22 { ignore sub equal equal' less; diff --git a/features/cv23.fea b/features/cv23.fea index 6022e58..41238bf 100644 --- a/features/cv23.fea +++ b/features/cv23.fea @@ -1,3 +1,3 @@ -# Name: >= with horizontal bar +# >= with horizontal bar sub greater_equal.liga by greater_equal.ss02; \ No newline at end of file diff --git a/features/cv24.fea b/features/cv24.fea index fa9da8c..d3e36da 100644 --- a/features/cv24.fea +++ b/features/cv24.fea @@ -1,4 +1,4 @@ -# Name: /= as not equal +# /= as not equal lookup slash_equal_as_not_equal { sub slash.spacer equal_end.seq' by exclam_equal.liga; diff --git a/features/cv25.fea b/features/cv25.fea index 019aff7..37d7443 100644 --- a/features/cv25.fea +++ b/features/cv25.fea @@ -1,4 +1,4 @@ -# Name: .- as ligature +# .- as ligature lookup period_hyphen { ignore sub period period' hyphen; diff --git a/features/cv26.fea b/features/cv26.fea index a19b89b..d4261ac 100644 --- a/features/cv26.fea +++ b/features/cv26.fea @@ -1,4 +1,4 @@ -# Name: :- as ligature +# :- as ligature lookup colon_hyphen { ignore sub colon colon' hyphen; diff --git a/features/cv27.fea b/features/cv27.fea index 294372e..1d891c5 100644 --- a/features/cv27.fea +++ b/features/cv27.fea @@ -1,4 +1,4 @@ -# Name: [] as ligature +# [] as ligature lookup bracketleft_bracketright { sub bracketleft.spacer bracketright' by bracketleft_bracketright.cv27; diff --git a/features/cv28.fea b/features/cv28.fea index 62eb42e..12d73f7 100644 --- a/features/cv28.fea +++ b/features/cv28.fea @@ -1,4 +1,4 @@ -# Name: {. .} as ligature +# {. .} as ligature sub braceleft period' by bullet; sub period' braceright by bullet; \ No newline at end of file diff --git a/features/cv29.fea b/features/cv29.fea index 65a92ff..d34b04b 100644 --- a/features/cv29.fea +++ b/features/cv29.fea @@ -1,4 +1,4 @@ -# Name: Rounded curly braces {} +# Rounded curly braces {} sub braceleft by braceleft.cv29; sub braceright by braceright.cv29; diff --git a/features/cv30.fea b/features/cv30.fea index 1e4cc7e..482c65f 100644 --- a/features/cv30.fea +++ b/features/cv30.fea @@ -1,4 +1,4 @@ -# Name: longer pipe symbol +# longer pipe symbol sub bar by bar.cv30; sub bar_bar.liga by bar_bar.liga.cv30; diff --git a/features/cv31.fea b/features/cv31.fea index 29f935b..bdc8378 100644 --- a/features/cv31.fea +++ b/features/cv31.fea @@ -1,4 +1,4 @@ -# Name: Circular parentheses +# Circular parentheses sub parenleft by parenleft.cv31; sub parenright by parenright.cv31; diff --git a/features/cv32.fea b/features/cv32.fea index 0eeae43..da08df6 100644 --- a/features/cv32.fea +++ b/features/cv32.fea @@ -1,4 +1,4 @@ -# Name: .= as ligature +# .= as ligature lookup period_equal { ignore sub period period' equal; diff --git a/features/zero.fea b/features/zero.fea index f4dc336..ad04f47 100644 --- a/features/zero.fea +++ b/features/zero.fea @@ -1,4 +1,4 @@ -# Name: Zero with a dot inside +# Zero with a dot inside sub zero by zero.zero; -sub zero.tosf by zero.tosf.zero; +sub zero.tosf by zero.tosf.zero; \ No newline at end of file