sync_name_table.py 1015 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env python
  2. """
  3. Generates PDF names for name-table.h, replacing symbols invalid for .NET fields.
  4. """
  5. import os, re, time
  6. import pathlib
  7. def replaceInvalidSymbol(m):
  8. return "PDF_MAKE_NAME(\""+m.group(1)+"\", _"+m.group(2)+")"
  9. def main():
  10. os.chdir(os.path.join(os.path.dirname(__file__), ".."))
  11. src = "mupdf/include/mupdf/pdf/name-table.h"
  12. dest = "MuPDFLib/!Include/name-table.h"
  13. if os.path.isfile(dest):
  14. ms = os.path.getmtime(src)
  15. md = os.path.getmtime(dest)
  16. if ms == md:
  17. print("skipped up-to-date name-table.h")
  18. return;
  19. name_table = open(src).read()
  20. name_table = re.sub(r"PDF_MAKE_NAME\(\"(.+?)\", (\d.*)\)", replaceInvalidSymbol, name_table)
  21. name_table = re.sub(r"/[/\*].*?\r?\n", "", name_table)
  22. target = open(dest, "wt")
  23. target.write("// This file is automatically generated by sync_name_table.py from mupdf/include/mupdf/pdf/name-table.h\n")
  24. target.write(name_table)
  25. os.utime(dest, (time.time(), ms))
  26. print("synced name-table.h")
  27. if __name__ == "__main__":
  28. main()