summaryrefslogtreecommitdiff
path: root/scripts/makenoto.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/makenoto.py')
-rw-r--r--scripts/makenoto.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/scripts/makenoto.py b/scripts/makenoto.py
new file mode 100644
index 00000000..8bdc95a0
--- /dev/null
+++ b/scripts/makenoto.py
@@ -0,0 +1,76 @@
+import sys, glob, os
+
+scripts = []
+
+for line in open("include/mupdf/ucdn.h").readlines():
+ if line.startswith("#define"):
+ name = line.split()[1]
+ if name.startswith("UCDN_SCRIPT_"):
+ scripts.append(name)
+
+blacklist = [
+ "UCDN_SCRIPT_UNKNOWN",
+ "UCDN_SCRIPT_INHERITED",
+
+ "UCDN_SCRIPT_COMMON",
+ "UCDN_SCRIPT_LATIN",
+ "UCDN_SCRIPT_GREEK",
+ "UCDN_SCRIPT_CYRILLIC",
+ "UCDN_SCRIPT_HIRAGANA",
+ "UCDN_SCRIPT_KATAKANA",
+ "UCDN_SCRIPT_BOPOMOFO",
+ "UCDN_SCRIPT_HAN",
+ "UCDN_SCRIPT_HANGUL",
+
+ "UCDN_SCRIPT_BRAILLE",
+ "UCDN_SCRIPT_MEROITIC_CURSIVE",
+ "UCDN_SCRIPT_MEROITIC_HIEROGLYPHS",
+ "UCDN_SCRIPT_SYRIAC",
+]
+
+for s in blacklist:
+ scripts.remove(s)
+
+fonts = glob.glob("resources/fonts/noto/*.?tf")
+#fonts.remove("resources/fonts/noto/NotoSans-Regular.otf")
+#fonts.remove("resources/fonts/noto/NotoSerif-Regular.otf")
+#fonts.remove("resources/fonts/noto/NotoSansSymbols-Regular.ttf")
+#fonts.remove("resources/fonts/noto/NotoEmoji-Regular.ttf")
+
+lower = {}
+for f in fonts:
+ lower[f.lower()] = os.path.basename(f)
+unused = lower.keys()
+unused.sort()
+
+def casefont(us, ss, n):
+ if n in lower:
+ nn = lower[n].replace('.','_').replace('-','_')
+ print "case %s: RETURN(noto_%s);" % (us,nn)
+ del lower[n]
+ return True
+ return False
+
+for us in scripts:
+ ss = "".join([s.capitalize() for s in us.split("_")[2:]])
+ list = []
+ list.append("resources/fonts/noto/NotoSerif" + ss + "-Regular.otf")
+ list.append("resources/fonts/noto/NotoSans" + ss + "-Regular.otf")
+ list.append("resources/fonts/noto/NotoSerif" + ss + "-Regular.ttf")
+ list.append("resources/fonts/noto/NotoSans" + ss + "-Regular.ttf")
+ found = False
+ for font in list:
+ if casefont(us, ss, font.lower()):
+ found = True
+ break
+ if not found:
+ print "case %s: break;" % us
+ for font in list:
+ if font.lower() in unused: unused.remove(font.lower())
+
+for f in unused:
+ print "// unmapped font:", lower[f]
+
+for f in lower:
+ if not f in unused:
+ print "// unused font file:", lower[f]