summaryrefslogtreecommitdiff
path: root/misc/rf-scripts/StripGlyphs.py
diff options
context:
space:
mode:
Diffstat (limited to 'misc/rf-scripts/StripGlyphs.py')
-rw-r--r--misc/rf-scripts/StripGlyphs.py384
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"