From d07a674727b1037cf3e9a03766c9cb1954e20c55 Mon Sep 17 00:00:00 2001 From: jvr Date: Thu, 12 Sep 2002 17:02:38 +0000 Subject: [PATCH] new version will appear in MetaTools git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@343 4cde692c-a291-49d1-8350-778aa11640f8 --- Tools/ttroundtrip | 111 ---------------------------------------------- 1 file changed, 111 deletions(-) delete mode 100755 Tools/ttroundtrip diff --git a/Tools/ttroundtrip b/Tools/ttroundtrip deleted file mode 100755 index b1e3bf815..000000000 --- a/Tools/ttroundtrip +++ /dev/null @@ -1,111 +0,0 @@ -#! /usr/bin/env python - -"""usage: ttroundtrip [options] font1 ... fontN - - Dump each TT/OT font as a TTX file, compile again to TTF or OTF - and dump again. Then do a diff on the two TTX files. Append problems - and diffs to a file called "report.txt" in the current directory. - This is only for testing FontTools/TTX, the resulting files are - deleted afterwards. - - This tool supports some of ttdump's command line options (-i, -t - and -x) and they will in fact be passed to ttdump. Specifying -t - or -x implies ttcompile -i on the way back. - - Normally all output from ttdump and ttcompile is suppressed, - -v (verbose) causes it to be shown. -""" - -import sys -import os -import tempfile -import getopt - - -class Error(Exception): pass - - -def usage(): - print __doc__ - sys.exit(2) - - -def doCommand(cmd, verbose=1, okresult=None): - print "--> ", cmd - output = os.popen(cmd, "r", 1) - lines = [] - while 1: - line = output.readline() - if not line: - break - if verbose: - sys.stdout.write(line) - lines.append(line) - result = os.wait()[1] >> 8 - if result and result <> okresult: - raise Error, result - return "".join(lines) - - -try: - options, args = getopt.getopt(sys.argv[1:], "it:x:v") -except getopt.GetoptError: - usage() - -if not args: - usage() - -dumpOptions = [] -compileWithMinusI = 0 -verbose = 0 -for option, value in options: - if option in ("-t", "-x"): - compileWithMinusI = 1 - dumpOptions.extend((option, value)) - elif option == "-v": - verbose = 1 - else: - dumpOptions.extend((option, value)) - -dumpOptions = " ".join(dumpOptions) -if dumpOptions: - dumpOptions = dumpOptions + " " - -report = open("report.txt", "a+") - - -for ttFile in args: - print "--- roundtripping %s ---" % ttFile - fn = os.path.basename(ttFile) - xmlFile1 = tempfile.mktemp(".%s.ttx1" % fn) - ttFile2 = tempfile.mktemp(".%s" % fn) - xmlFile2 = tempfile.mktemp(".%s.ttx2" % fn) - - try: - cmd = 'ttdump -f %s"%s" "%s"' % (dumpOptions, ttFile, xmlFile1) - doCommand(cmd, verbose) - if compileWithMinusI: - cmd = 'ttcompile -f -i "%s" "%s" "%s"' % (ttFile, xmlFile1, ttFile2) - else: - cmd = 'ttcompile -f "%s" "%s"' % (xmlFile1, ttFile2) - doCommand(cmd, verbose) - cmd = 'ttdump -f %s"%s" "%s"' % (dumpOptions, ttFile2, xmlFile2) - doCommand(cmd, verbose) - cmd = 'diff -c2 -I ".*modified value\|checkSumAdjustment.*" "%s" "%s"' % (xmlFile1, xmlFile2) - diff = doCommand(cmd, 1, okresult=1) - if diff: - report.write("=============================================================\n") - report.write("%s\n" % xmlFile1) - report.write("%s\n" % xmlFile2) - report.write("-------------------------------------------------------------\n") - report.write(diff) - print "--- done ---" - except Error, why: - report.write("=============================================================\n") - report.write("%s\n" % ttFile) - report.write("*** round tripping aborted (code %s) ***\n" % why) - report.write("-------------------------------------------------------------\n") - print "*** round tripping aborted (code %s) ***" % why - for tmpFile in (xmlFile1, ttFile2, xmlFile2): - if os.path.exists(tmpFile): - os.remove(tmpFile)