[gs-commits] mupdf 1.16.1.39 Update scripts to python3 with "2to3".

[email protected] (Tor Andersson)
Newsgroups gmane.comp.printing.ghostscript.cvs
Message-ID <[email protected]>
commit f28c624fb10a4d5a429341d892f6fe60f38c1304
Author: Tor Andersson <[email protected]>
Date:   Tue Sep 10 12:03:53 2019 +0200

    Update scripts to python3 with "2to3".
    
    Python 2 is being sunset in 2020, so this is as good a time as any to switch.

diff --git a/Makefile b/Makefile
index c5bc541..691765c 100644
--- a/Makefile
+++ b/Makefile
@@ -176,7 +176,7 @@ CMAP_GEN := $(notdir $(sort $(wildcard resources/cmaps/*)))
 CMAP_GEN := $(CMAP_GEN:%=source/pdf/cmaps/%.h)
 
 source/pdf/cmaps/%.h: resources/cmaps/% scripts/cmapdump.py
-	$(QUIET_GEN) python scripts/cmapdump.py > $@ $<
+	$(QUIET_GEN) python3 scripts/cmapdump.py > $@ $<
 
 generate: $(CMAP_GEN)
 
diff --git a/scripts/cmapclean.py b/scripts/cmapclean.py
index f41f8af..5d9c853 100644
--- a/scripts/cmapclean.py
+++ b/scripts/cmapclean.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
 # Parse a CMap file and dump it back out.
 
 import sys
@@ -41,16 +43,16 @@ def cleancmap(filename):
 		elif len(v) <= 8:
 			map[lo] = v[:]
 		else:
-			print "/* warning: too long one-to-many mapping: %s */" % (v)
+			print("/* warning: too long one-to-many mapping: %s */" % (v))
 
 	def map_bfchar(lo, bf):
 		bf = bf[1:-1] # drop < >
-		v = [int(bf[i:i+4],16) for i in xrange(0, len(bf), 4)]
+		v = [int(bf[i:i+4],16) for i in range(0, len(bf), 4)]
 		add_bf(lo, v)
 
 	def map_bfrange(lo, hi, bf):
 		bf = bf[1:-1] # drop < >
-		v = [int(bf[i:i+4],16) for i in xrange(0, len(bf), 4)]
+		v = [int(bf[i:i+4],16) for i in range(0, len(bf), 4)]
 		while lo <= hi:
 			add_bf(lo, v)
 			lo = lo + 1
@@ -116,7 +118,7 @@ def cleancmap(filename):
 			else:
 				ranges.append((out_lo, out_hi, out_v_lo))
 
-	keys = map.keys()
+	keys = list(map.keys())
 	keys.sort()
 	for code in keys:
 		v = map[code]
@@ -136,69 +138,69 @@ def cleancmap(filename):
 
 	# Print CMap file
 
-	print "%!PS-Adobe-3.0 Resource-CMap"
-	print "%%DocumentNeededResources: procset (CIDInit)"
-	print "%%IncludeResource: procset (CIDInit)"
-	print "%%%%BeginResource: CMap (%s)" % cmapname
-	print "%%%%Version: %s" % cmapversion
-	print "%%EndComments"
-	print "/CIDInit /ProcSet findresource begin"
-	print "12 dict begin"
-	print "begincmap"
-	if usecmap: print "/%s usecmap" % usecmap
-	print "/CIDSystemInfo 3 dict dup begin"
-	print "  /Registry %s def" % csi_registry
-	print "  /Ordering %s def" % csi_ordering
-	print "  /Supplement %s def" % csi_supplement
-	print "end def"
-	print "/CMapName /%s def" % cmapname
-	print "/CMapVersion %s def" % cmapversion
-	print "/CMapType 1 def"
-	print "/WMode %d def" % wmode
+	print("%!PS-Adobe-3.0 Resource-CMap")
+	print("%%DocumentNeededResources: procset (CIDInit)")
+	print("%%IncludeResource: procset (CIDInit)")
+	print("%%%%BeginResource: CMap (%s)" % cmapname)
+	print("%%%%Version: %s" % cmapversion)
+	print("%%EndComments")
+	print("/CIDInit /ProcSet findresource begin")
+	print("12 dict begin")
+	print("begincmap")
+	if usecmap: print("/%s usecmap" % usecmap)
+	print("/CIDSystemInfo 3 dict dup begin")
+	print("  /Registry %s def" % csi_registry)
+	print("  /Ordering %s def" % csi_ordering)
+	print("  /Supplement %s def" % csi_supplement)
+	print("end def")
+	print("/CMapName /%s def" % cmapname)
+	print("/CMapVersion %s def" % cmapversion)
+	print("/CMapType 1 def")
+	print("/WMode %d def" % wmode)
 
 	if len(codespacerange):
-		print "%d begincodespacerange" % len(codespacerange)
+		print("%d begincodespacerange" % len(codespacerange))
 		for r in codespacerange:
 			fmt = "<%%0%dx> <%%0%dx>" % (r[0]*2, r[0]*2)
-			print fmt % (r[1], r[2])
-		print "endcodespacerange"
+			print(fmt % (r[1], r[2]))
+		print("endcodespacerange")
 
 	if len(singles) > 0:
 		if isbf:
-			print "%d beginbfchar" % len(singles)
+			print("%d beginbfchar" % len(singles))
 			for s in singles:
-				print "<%04x> <%04x>" % s
-			print "endbfchar"
+				print("<%04x> <%04x>" % s)
+			print("endbfchar")
 		else:
-			print "%d begincidchar" % len(singles)
+			print("%d begincidchar" % len(singles))
 			for s in singles:
-				print "<%04x> %d" % s
-			print "endcidchar"
+				print("<%04x> %d" % s)
+			print("endcidchar")
 
 	if len(ranges) > 0:
 		if isbf:
-			print "%d beginbfrange" % len(ranges)
+			print("%d beginbfrange" % len(ranges))
 			for r in ranges:
-				print "<%04x> <%04x> <%04x>" % r
-			print "endbfrange"
+				print("<%04x> <%04x> <%04x>" % r)
+			print("endbfrange")
 		else:
-			print "%d begincidrange" % len(ranges)
+			print("%d begincidrange" % len(ranges))
 			for r in ranges:
-				print "<%04x> <%04x> %d" % r
-			print "endcidrange"
+				print("<%04x> <%04x> %d" % r)
+			print("endcidrange")
 
 	if len(mranges) > 0:
-		print "%d beginbfchar" % len(mranges)
+		print("%d beginbfchar" % len(mranges))
 		for cid, v in mranges:
-			print "<%04x> <%s>" % (cid, "".join(["%04x" % ch for ch in v]))
-		print "endbfchar"
-
-	print "endcmap"
-	print "CMapName currentdict /CMap defineresource pop"
-	print "end"
-	print "end"
-	print "%%EndResource"
-	print "%%EOF"
+			print("<%04x> <%s>" % (cid, "".join(["%04x" % ch for ch in v])))
+		print("endbfchar")
+
+	print("endcmap")
+	print("CMapName currentdict /CMap defineresource pop")
+	print("end")
+	print("end")
+	print("%%EndResource")
+	print("%%EOF")
 
 for arg in sys.argv[1:]:
 	cleancmap(arg)
diff --git a/scripts/cmapdump.py b/scripts/cmapdump.py
index 1f1c50d..b7858d8 100644
--- a/scripts/cmapdump.py
+++ b/scripts/cmapdump.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
 # Parse a CMap file and dump it as a C struct.
 
 import sys
@@ -36,16 +38,16 @@ def dumpcmap(filename):
 		elif len(v) <= 8:
 			map[lo] = v[:]
 		else:
-			print "/* warning: too long one-to-many mapping: %s */" % (v)
+			print("/* warning: too long one-to-many mapping: %s */" % (v))
 
 	def map_bfchar(lo, bf):
 		bf = bf[1:-1] # drop < >
-		v = [int(bf[i:i+4],16) for i in xrange(0, len(bf), 4)]
+		v = [int(bf[i:i+4],16) for i in range(0, len(bf), 4)]
 		add_bf(lo, v)
 
 	def map_bfrange(lo, hi, bf):
 		bf = bf[1:-1] # drop < >
-		v = [int(bf[i:i+4],16) for i in xrange(0, len(bf), 4)]
+		v = [int(bf[i:i+4],16) for i in range(0, len(bf), 4)]
 		while lo <= hi:
 			add_bf(lo, v)
 			lo = lo + 1
@@ -111,7 +113,7 @@ def dumpcmap(filename):
 			else:
 				ranges.append((out_lo, out_hi, out_v_lo))
 
-	keys = map.keys()
+	keys = list(map.keys())
 	keys.sort()
 	for code in keys:
 		v = map[code]
@@ -135,29 +137,29 @@ def dumpcmap(filename):
 
 	cname = cmapname.replace('-', '_')
 
-	print
-	print "/*", cmapname, "*/"
-	print
+	print()
+	print("/*", cmapname, "*/")
+	print()
 
 	if len(ranges) > 0:
-		print "static const pdf_range cmap_%s_ranges[] = {" % cname
+		print("static const pdf_range cmap_%s_ranges[] = {" % cname)
 		for r in ranges:
-			print "{%d,%d,%d}," % r
-		print "};"
-		print
+			print("{%d,%d,%d}," % r)
+		print("};")
+		print()
 	if len(xranges) > 0:
-		print "static const pdf_xrange cmap_%s_xranges[] = {" % cname
+		print("static const pdf_xrange cmap_%s_xranges[] = {" % cname)
 		for r in xranges:
-			print "{%d,%d,%d}," % r
-		print "};"
-		print
+			print("{%d,%d,%d}," % r)
+		print("};")
+		print()
 	if len(mranges) > 0:
-		print "static const pdf_mrange cmap_%s_mranges[] = {" % cname
+		print("static const pdf_mrange cmap_%s_mranges[] = {" % cname)
 		for r in mranges:
-			print "{%d,%d}," % r
-		print "};"
-		print
-		print "static const int cmap_%s_table[] = {" % cname
+			print("{%d,%d}," % r)
+		print("};")
+		print()
+		print("static const int cmap_%s_table[] = {" % cname)
 		n = mdata[0]
 		i = 0
 		for r in mdata:
@@ -169,47 +171,47 @@ def dumpcmap(filename):
 				i = 1
 				n = r
 		sys.stdout.write("\n")
-		print "};"
-		print
-
-	print "static pdf_cmap cmap_%s = {" % cname
-	print "\t{ -1, pdf_drop_cmap_imp },"
-	print "\t/* cmapname */ \"%s\"," % cmapname
-	print "\t/* usecmap */ \"%s\", NULL," % usecmap
-	print "\t/* wmode */ %d," % wmode
-	print "\t/* codespaces */ %d, {" % len(codespacerange)
+		print("};")
+		print()
+
+	print("static pdf_cmap cmap_%s = {" % cname)
+	print("\t{ -1, pdf_drop_cmap_imp },")
+	print("\t/* cmapname */ \"%s\"," % cmapname)
+	print("\t/* usecmap */ \"%s\", NULL," % usecmap)
+	print("\t/* wmode */ %d," % wmode)
+	print("\t/* codespaces */ %d, {" % len(codespacerange))
 	if len(codespacerange) > 0:
 		for codespace in codespacerange:
 			fmt = "\t\t{ %%d, 0x%%0%dx, 0x%%0%dx }," % (codespace[0]*2, codespace[0]*2)
-			print fmt % codespace
+			print(fmt % codespace)
 	else:
-			print "\t\t{ 0, 0, 0 },"
-	print "\t},"
+			print("\t\t{ 0, 0, 0 },")
+	print("\t},")
 
 	if len(ranges) > 0:
-		print "\t%d, %d, (pdf_range*)cmap_%s_ranges," % (len(ranges),len(ranges),cname)
+		print("\t%d, %d, (pdf_range*)cmap_%s_ranges," % (len(ranges),len(ranges),cname))
 	else:
-		print "\t0, 0, NULL, /* ranges */"
+		print("\t0, 0, NULL, /* ranges */")
 
 	if len(xranges) > 0:
-		print "\t%d, %d, (pdf_xrange*)cmap_%s_xranges," % (len(xranges),len(xranges),cname)
+		print("\t%d, %d, (pdf_xrange*)cmap_%s_xranges," % (len(xranges),len(xranges),cname))
 	else:
-		print "\t0, 0, NULL, /* xranges */"
+		print("\t0, 0, NULL, /* xranges */")
 
 	if len(mranges) > 0:
-		print "\t%d, %d, (pdf_mrange*)cmap_%s_mranges," % (len(mranges),len(mranges),cname)
+		print("\t%d, %d, (pdf_mrange*)cmap_%s_mranges," % (len(mranges),len(mranges),cname))
 	else:
-		print "\t0, 0, NULL, /* mranges */"
+		print("\t0, 0, NULL, /* mranges */")
 
 	if len(mdata) > 0:
-		print "\t%d, %d, (int*)cmap_%s_table," % (len(mdata),len(mdata),cname)
+		print("\t%d, %d, (int*)cmap_%s_table," % (len(mdata),len(mdata),cname))
 	else:
-		print "\t0, 0, NULL, /* table */"
+		print("\t0, 0, NULL, /* table */")
 
-	print "\t0, 0, 0, NULL /* splay tree */"
-	print "};"
+	print("\t0, 0, 0, NULL /* splay tree */")
+	print("};")
 
-print "/* This is an automatically generated file. Do not edit. */"
+print("/* This is an automatically generated file. Do not edit. */")
 
 for arg in sys.argv[1:]:
 	dumpcmap(arg)
diff --git a/scripts/cmapflatten.py b/scripts/cmapflatten.py
index 8bb2193..a8014a3 100644
--- a/scripts/cmapflatten.py
+++ b/scripts/cmapflatten.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
 # Parse a Uni* CMap file and flatten it.
 #
 # The Uni* CMap files only have 'cidchar' and 'cidrange' sections, never
@@ -62,47 +64,47 @@ def flattencmap(filename):
 
 	# Print flattened CMap file
 
-	print "%!PS-Adobe-3.0 Resource-CMap"
-	print "%%DocumentNeededResources: procset (CIDInit)"
-	print "%%IncludeResource: procset (CIDInit)"
-	print "%%%%BeginResource: CMap (%s)" % cmapname
-	print "%%%%Version: %s" % cmapversion
-	print "%%EndComments"
-	print "/CIDInit /ProcSet findresource begin"
-	print "12 dict begin"
-	print "begincmap"
-	if usecmap: print "/%s usecmap" % usecmap
-	print "/CIDSystemInfo 3 dict dup begin"
-	print "  /Registry %s def" % csi_registry
-	print "  /Ordering %s def" % csi_ordering
-	print "  /Supplement %s def" % csi_supplement
-	print "end def"
-	print "/CMapName /%s def" % cmapname
-	print "/CMapVersion %s def" % cmapversion
-	print "/CMapType 1 def"
-	print "/WMode %d def" % wmode
+	print("%!PS-Adobe-3.0 Resource-CMap")
+	print("%%DocumentNeededResources: procset (CIDInit)")
+	print("%%IncludeResource: procset (CIDInit)")
+	print("%%%%BeginResource: CMap (%s)" % cmapname)
+	print("%%%%Version: %s" % cmapversion)
+	print("%%EndComments")
+	print("/CIDInit /ProcSet findresource begin")
+	print("12 dict begin")
+	print("begincmap")
+	if usecmap: print("/%s usecmap" % usecmap)
+	print("/CIDSystemInfo 3 dict dup begin")
+	print("  /Registry %s def" % csi_registry)
+	print("  /Ordering %s def" % csi_ordering)
+	print("  /Supplement %s def" % csi_supplement)
+	print("end def")
+	print("/CMapName /%s def" % cmapname)
+	print("/CMapVersion %s def" % cmapversion)
+	print("/CMapType 1 def")
+	print("/WMode %d def" % wmode)
 
 	if len(codespacerange):
-		print "%d begincodespacerange" % len(codespacerange)
+		print("%d begincodespacerange" % len(codespacerange))
 		for r in codespacerange:
 			fmt = "<%%0%dx> <%%0%dx>" % (r[0]*2, r[0]*2)
-			print fmt % (r[1], r[2])
-		print "endcodespacerange"
+			print(fmt % (r[1], r[2]))
+		print("endcodespacerange")
 
-	keys = map.keys()
+	keys = list(map.keys())
 	keys.sort()
-	print "%d begincidchar" % len(keys)
+	print("%d begincidchar" % len(keys))
 	for code in keys:
 		v = map[code]
-		print "<%04x> %d" % (code, v)
-	print "endcidchar"
+		print("<%04x> %d" % (code, v))
+	print("endcidchar")
 
-	print "endcmap"
-	print "CMapName currentdict /CMap defineresource pop"
-	print "end"
-	print "end"
-	print "%%EndResource"
-	print "%%EOF"
+	print("endcmap")
+	print("CMapName currentdict /CMap defineresource pop")
+	print("end")
+	print("end")
+	print("%%EndResource")
+	print("%%EOF")
 
 for arg in sys.argv[1:]:
 	flattencmap(arg)
diff --git a/scripts/cmapshare.py b/scripts/cmapshare.py
index f5e62d4..954964f 100644
--- a/scripts/cmapshare.py
+++ b/scripts/cmapshare.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
 # Find and extract common CMap subsets.
 # Taken flattened CMaps as input, using only the 'cidchar' sections.
 # The outputs are truncated; so use 'cmapflatten.py' to clean them up.
@@ -38,14 +40,14 @@ def print_cmap(filename, prologue, cmap):
 	out = open(filename, "w")
 	for line in prologue:
 		if not line.endswith("usecmap"):
-			print >>out, line
+			print(line, file=out)
 		if line == 'begincmap':
-			print >>out, "/"+common_name, "usecmap"
-	print >>out, len(cmap), "begincidchar"
+			print("/"+common_name, "usecmap", file=out)
+	print(len(cmap), "begincidchar", file=out)
 	for line in sorted(cmap):
-		print >>out, line
+		print(line, file=out)
 	for line in epilogue:
-		print >>out, line
+		print(line, file=out)
 
 # Print common subset
 print_cmap(sys.argv[1], ["/CMapName /%s" % common_name], common)
diff --git a/scripts/glyphdump.py b/scripts/glyphdump.py
index 910ffba..9564be0 100755
--- a/scripts/glyphdump.py
+++ b/scripts/glyphdump.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 
 import sys
 
@@ -9,8 +9,8 @@ multi_from_name = []
 name_from_single = {}
 code_from_multi = {}
 
-print "/* This file was generated by scripts/glyphdump.py. Do not edit. */"
-print
+print("/* This file was generated by scripts/glyphdump.py. Do not edit. */")
+print()
 
 def readlist(filename):
 	f = open(filename, "r")
@@ -20,7 +20,7 @@ def readlist(filename):
 		line = line[:-1]
 		name, alts = line.split(';')
 		for list in alts.split(','):
-			list = map(lambda x: int(x, 16), list.split(' '))
+			list = [int(x, 16) for x in list.split(' ')]
 			okay = True
 			for ucs in list:
 				if ucs > 0xffff:
@@ -68,7 +68,7 @@ for name, ucslist in multi_from_name:
 		multicodes.append(" 0x%04x," % ucs)
 	multicodes.append("\n");
 
-keys = name_from_single.keys()
+keys = list(name_from_single.keys())
 keys.sort()
 dupoffsets = []
 dupnames = []
@@ -81,31 +81,31 @@ for ucs in keys:
 			dupnames.append("\"%s\", " % name)
 		dupnames.append("0,\n")
 
-print "static const char *single_name_list[] = {"
+print("static const char *single_name_list[] = {")
 dumplist(singlenames)
-print "};"
-print
-print "static const unsigned short single_code_list[] = {"
+print("};")
+print()
+print("static const unsigned short single_code_list[] = {")
 dumplist(singlecodes)
-print "};"
-print
+print("};")
+print()
 if False:
-	print "static const char *multi_name_list[] = {"
+	print("static const char *multi_name_list[] = {")
 	dumplist(multinames)
-	print "};"
-	print
-	print "static const unsigned short multi_offset_list[] = {"
+	print("};")
+	print()
+	print("static const unsigned short multi_offset_list[] = {")
 	dumplist(multioffsets)
-	print "};"
-	print
-	print "static const unsigned short multi_code_list[] = {"
+	print("};")
+	print()
+	print("static const unsigned short multi_code_list[] = {")
 	dumplist(multicodes)
-	print "};"
-	print
-print "static const unsigned short agl_dup_offsets[] = {"
+	print("};")
+	print()
+print("static const unsigned short agl_dup_offsets[] = {")
 dumplist(dupoffsets)
-print "};"
-print
-print "static const char *agl_dup_names[] = {"
+print("};")
+print()
+print("static const char *agl_dup_names[] = {")
 dumplist(dupnames)
-print "};"
+print("};")
diff --git a/scripts/makeencoding.py b/scripts/makeencoding.py
index cf24b57..3dd7620 100644
--- a/scripts/makeencoding.py
+++ b/scripts/makeencoding.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
 # Convert unicode mapping table to C arrays mapping glyph names and unicode values.
 #
 # ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-U.TXT
@@ -45,20 +47,20 @@ def load_table(fn):
 	return table
 
 def dump_table(name, table):
-	print "unsigned short fz_unicode_from_%s[256] = {" % name
+	print("unsigned short fz_unicode_from_%s[256] = {" % name)
 	for u in table:
-		print '\t%d,' % u
-	print "};"
-	print
+		print('\t%d,' % u)
+	print("};")
+	print()
 
-	print "const char *fz_glyph_name_from_%s[%d] = {" % (name, len(table))
+	print("const char *fz_glyph_name_from_%s[%d] = {" % (name, len(table)))
 	for u in table:
 		if u in glyphs:
-			print '\t"%s",' % glyphs[u]
+			print('\t"%s",' % glyphs[u])
 		else:
-			print '\t_notdef,'
-	print "};"
-	print
+			print('\t_notdef,')
+	print("};")
+	print()
 
 	rev = []
 	i = 0
@@ -69,11 +71,11 @@ def dump_table(name, table):
 		i = i + 1
 	rev.sort()
 
-	print "static const struct { unsigned short u, c; } %s_from_unicode[] = {" % name
+	print("static const struct { unsigned short u, c; } %s_from_unicode[] = {" % name)
 	for s in rev:
-		print "\t" + s
-	print "};"
-	print
+		print("\t" + s)
+	print("};")
+	print()
 
 dump_table("iso8859_1", load_table("scripts/8859-1.TXT"))
 dump_table("iso8859_7", load_table("scripts/8859-7.TXT"))
diff --git a/scripts/makenoto.py b/scripts/makenoto.py
index 8bdc95a..692a81d 100644
--- a/scripts/makenoto.py
+++ b/scripts/makenoto.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
 import sys, glob, os
 
 scripts = []
@@ -40,13 +42,13 @@ fonts = glob.glob("resources/fonts/noto/*.?tf")
 lower = {}
 for f in fonts:
 	lower[f.lower()] = os.path.basename(f)
-unused = lower.keys()
+unused = list(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)
+		print("case %s: RETURN(noto_%s);" % (us,nn))
 		del lower[n]
 		return True
 	return False
@@ -64,13 +66,13 @@ for us in scripts:
 			found = True
 			break
 	if not found:
-		print "case %s: break;" % us
+		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]
+	print("// unmapped font:", lower[f])
 
 for f in lower:
 	if not f in unused:
-		print "// unused font file:", lower[f]
+		print("// unused font file:", lower[f])
diff --git a/scripts/makesubset.py b/scripts/makesubset.py
index 7e12b14..5572da5 100644
--- a/scripts/makesubset.py
+++ b/scripts/makesubset.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
 # Convert MES-2 (or WGL4) character set to list of glyphs for font subsetting.
 # Also add small-caps glyph names for small letters and ligatures.
 
@@ -50,7 +52,7 @@ def load_ligs():
 		table['f_f_l.sc'] = 0xFB04
 
 if len(sys.argv) < 2:
-	print >>sys.stderr, 'usage: python scripts/makesubset.py scripts/MES-2.TXT'
+	print('usage: python scripts/makesubset.py scripts/MES-2.TXT', file=sys.stderr)
 else:
 	for input in sys.argv[1:]:
 		if input == '-sc':
@@ -62,13 +64,13 @@ else:
 
 	if len(sys.argv) > 2 and sys.argv[2] == '-scdump':
 		smcp = []
-		for n in table.keys():
+		for n in list(table.keys()):
 			u = table[n]
 			if u > 0 and n.endswith('.sc') and not n.startswith('uni'):
 				smcp.append('{0x%04X, "%s"},' % (u,n))
 		smcp.sort()
-		print '\n\t'.join(smcp)
+		print('\n\t'.join(smcp))
 	else:
-		list = table.keys()
+		list = list(table.keys())
 		list.sort()
-		print ','.join(list)
+		print(','.join(list))

http://git.ghostscript.com/?p=mupdf.git;a=commit;h=f28c624fb10a4d5a429341d892f6fe60f38c1304

--
MuPDF library
Artifex Software, Inc.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.