diff options
Diffstat (limited to 'misc/rf-scripts/StripGlyphs.py')
-rw-r--r-- | misc/rf-scripts/StripGlyphs.py | 384 |
1 files changed, 384 insertions, 0 deletions
diff --git a/misc/rf-scripts/StripGlyphs.py b/misc/rf-scripts/StripGlyphs.py new file mode 100644 index 000000000..12bc2ab88 --- /dev/null +++ b/misc/rf-scripts/StripGlyphs.py @@ -0,0 +1,384 @@ +# +# Removes unused glyphs +# +from mojo.roboFont import version + +SC_ROMAN = [ + "A.smcp", + "B.smcp", + "C.smcp", + "D.smcp", + "E.smcp", + "F.smcp", + "G.smcp", + "H.smcp", + "I.smcp", + "J.smcp", + "K.smcp", + "L.smcp", + "M.smcp", + "N.smcp", + "O.smcp", + "P.smcp", + "Q.smcp", + "R.smcp", + "S.smcp", + "T.smcp", + "U.smcp", + "V.smcp", + "W.smcp", + "X.smcp", + "Y.smcp", + "Z.smcp", + "AE.smcp", + "AEacute.smcp", + "Aacute.smcp", + "Abreve.smcp", + "Acircumflex.smcp", + "Adieresis.smcp", + "Agrave.smcp", + "Alpha.smcp", + "Alphatonos.smcp", + "Amacron.smcp", + "Aogonek.smcp", + "Aogonek.smcp.NAV", + "Aring.smcp", + "Aringacute.smcp", + "Atilde.smcp", + "Beta.smcp", + "Cacute.smcp", + "Ccaron.smcp", + "Ccedilla.smcp", + "Ccircumflex.smcp", + "Chi.smcp", + "Dcaron.smcp", + "Dcroat.smcp", + "Delta.smcp", + "Eacute.smcp", + "Ebreve.smcp", + "Ecaron.smcp", + "Ecircumflex.smcp", + "Edieresis.smcp", + "Edotaccent.smcp", + "Egrave.smcp", + "Emacron.smcp", + "Eng.smcp", + "Eogonek.smcp", + "Eogonek.smcp.NAV", + "Epsilon.smcp", + "Epsilontonos.smcp", + "Eta.smcp", + "Etatonos.smcp", + "Eth.smcp", + "Gamma.smcp", + "Gbreve.smcp", + "Gcircumflex.smcp", + "Gcommaaccent.smcp", + "Germandbls.smcp", + "Hbar.smcp", + "Hcircumflex.smcp", + "IJ.smcp", + "Iacute.smcp", + "Ibreve.smcp", + "Icircumflex.smcp", + "Idieresis.smcp", + "Igrave.smcp", + "Imacron.smcp", + "Iogonek.smcp", + "Iota.smcp", + "Iotadieresis.smcp", + "Iotatonos.smcp", + "Itilde.smcp", + "Jcircumflex.smcp", + "Kappa.smcp", + "Kcommaaccent.smcp", + "Lacute.smcp", + "Lambda.smcp", + "Lcaron.smcp", + "Lcommaaccent.smcp", + "Ldot.smcp", + "Lslash.smcp", + "Nacute.smcp", + "Ncaron.smcp", + "Ncommaaccent.smcp", + "Ntilde.smcp", + "Nu.smcp", + "OE.smcp", + "Oacute.smcp", + "Obreve.smcp", + "Ocircumflex.smcp", + "Odieresis.smcp", + "Ograve.smcp", + "Ohungarumlaut.smcp", + "Omacron.smcp", + "Omega.smcp", + "Omegatonos.smcp", + "Omicron.smcp", + "Omicrontonos.smcp", + "Oogonek.smcp", + "Oogonek.smcp.NAV", + "Oslash.smcp", + "Oslashacute.smcp", + "Otilde.smcp", + "Phi.smcp", + "Pi.smcp", + "Psi.smcp", + "Racute.smcp", + "Rcaron.smcp", + "Rcommaaccent.smcp", + "Rho.smcp", + "Sacute.smcp", + "Scaron.smcp", + "Scedilla.smcp", + "Scircumflex.smcp", + "Sigma.smcp", + "Tau.smcp", + "Tbar.smcp", + "Tcaron.smcp", + "Theta.smcp", + "Thorn.smcp", + "Uacute.smcp", + "Ubreve.smcp", + "Ucircumflex.smcp", + "Udieresis.smcp", + "Ugrave.smcp", + "Uhungarumlaut.smcp", + "Umacron.smcp", + "Uogonek.smcp", + "Upsilon.smcp", + "Upsilondieresis.smcp", + "Upsilontonos.smcp", + "Uring.smcp", + "Utilde.smcp", + "Wacute.smcp", + "Wcircumflex.smcp", + "Wdieresis.smcp", + "Wgrave.smcp", + "Xi.smcp", + "Yacute.smcp", + "Ycircumflex.smcp", + "Ydieresis.smcp", + "Ygrave.smcp", + "Zacute.smcp", + "Zcaron.smcp", + "Zdotaccent.smcp", + "Zeta.smcp", + "ampersand.smcp", + "uni010A.smcp", + "uni0120.smcp", + "uni0162.smcp", + "Scommaaccent.smcp", + "Tcommaaccent.smcp", + "uni037F.smcp" +] + + +SC_SET1 = [ + "zero.smcp", + "one.smcp", + "two.smcp", + "three.smcp", + "four.smcp", + "five.smcp", + "six.smcp", + "seven.smcp", + "eight.smcp", + "nine.smcp", + "Euro.smcp", + "Idotaccent.smcp", + "Mu.smcp", + "dollar.smcp", + "lira.smcp", + "sterling.smcp", + "uni0401.smcp", + "uni0402.smcp", + "uni0403.smcp", + "uni0404.smcp", + "uni0405.smcp", + "uni0406.smcp", + "uni0407.smcp", + "uni0408.smcp", + "uni0409.smcp", + "uni040A.smcp", + "uni040B.smcp", + "uni040C.smcp", + "uni040E.smcp", + "uni040F.smcp", + "uni0410.smcp", + "uni0411.smcp", + "uni0412.smcp", + "uni0413.smcp", + "uni0414.smcp", + "uni0415.smcp", + "uni0416.smcp", + "uni0417.smcp", + "uni0418.smcp", + "uni0419.smcp", + "uni041A.smcp", + "uni041B.smcp", + "uni041C.smcp", + "uni041D.smcp", + "uni041E.smcp", + "uni041F.smcp", + "uni0420.smcp", + "uni0421.smcp", + "uni0422.smcp", + "uni0423.smcp", + "uni0424.smcp", + "uni0425.smcp", + "uni0426.smcp", + "uni0427.smcp", + "uni0428.smcp", + "uni0429.smcp", + "uni042A.smcp", + "uni042B.smcp", + "uni042C.smcp", + "uni042D.smcp", + "uni042E.smcp", + "uni042F.smcp", + "uni0490.smcp", + "uni0492.smcp", + "uni0496.smcp", + "uni0498.smcp", + "uni049A.smcp", + "uni049C.smcp", + "uni04A0.smcp", + "uni04A2.smcp", + "uni04A8.smcp", + "uni04AA.smcp", + "uni04AE.smcp", + "uni04B0.smcp", + "uni04B2.smcp", + "uni04B4.smcp", + "uni04B8.smcp", + "uni04BA.smcp", + "uni04BC.smcp", + "uni04BE.smcp", + "uni04D8.smcp", + "uni04E0.smcp", + "uni04E2.smcp", + "uni04E8.smcp", + "uni04EE.smcp", + "uni20B4.smcp", + "uni20B8.smcp", + "uni20BD.smcp", + "uni2116.smcp", + "yen.smcp" +] + + +SC_SET2 = [ + "I.smcp", + "Sigma.smcp", + "Mu.smcp", + "uni0410.smcp", + "uni0411.smcp", + "uni0412.smcp", + "uni0413.smcp", + "uni0414.smcp", + "uni0415.smcp", + "uni0416.smcp", + "uni0417.smcp", + "uni0418.smcp", + "uni0419.smcp", + "uni041A.smcp", + "uni041B.smcp", + "uni041C.smcp", + "uni041D.smcp", + "uni041E.smcp", + "uni041F.smcp", + "uni0420.smcp", + "uni0421.smcp", + "uni0422.smcp", + "uni0423.smcp", + "uni0424.smcp", + "uni0425.smcp", + "uni0426.smcp", + "uni0427.smcp", + "uni0428.smcp", + "uni0429.smcp", + "uni042A.smcp", + "uni042B.smcp", + "uni042C.smcp", + "uni042D.smcp", + "uni042E.smcp", + "uni042F.smcp", + "uni0401.smcp", + "uni0402.smcp", + "uni0403.smcp", + "uni0404.smcp", + "uni0405.smcp", + "uni0406.smcp", + "uni0407.smcp", + "uni0408.smcp", + "uni0409.smcp", + "uni040A.smcp", + "uni040B.smcp", + "uni040C.smcp", + "uni040E.smcp", + "uni040F.smcp", + "uni0490.smcp", + "uni0492.smcp", + "uni0496.smcp", + "uni0498.smcp", + "uni049A.smcp", + "uni049C.smcp", + "uni04A0.smcp", + "uni04A2.smcp", + "uni04A8.smcp", + "uni04AA.smcp", + "uni04AE.smcp", + "uni04B0.smcp", + "uni04B2.smcp", + "uni04B4.smcp", + "uni04B8.smcp", + "uni04BA.smcp", + "uni04BC.smcp", + "uni04BE.smcp", + "uni04D8.smcp", + "uni04E0.smcp", + "uni04E2.smcp", + "uni04E8.smcp", + "uni04EE.smcp" +] + + +STRIP_NAME_SET = set(SC_ROMAN).union(SC_SET1).union(SC_SET2) + +STRIP_SUFFIXES = ( + '.smcp', + '.unic', + '.alt', + '.alt2', + '.ss06', + '.ss07', + '.onum', + '.pnum', + '.tnum' +) + +def hasStripSuffix(g): + name = g.name + for suffix in STRIP_SUFFIXES: + if str.endswith(name, suffix): + return True + return False + +if __name__ == "__main__": + font = CurrentFont() + if font is not None: + for g in font: + if g.name in STRIP_NAME_SET or hasStripSuffix(g): + + if g.unicode is not None: + # glyph maps to a codepoint -- keep it + continue + + print 'Removing "%s"' % g.name + + font.removeGlyph(g.name) + font.update() + else: + print "No fonts open" + + print "Done" |