diff --git a/ttDump.py b/ttDump.py
index f4186a713..23409490f 100644
--- a/ttDump.py
+++ b/ttDump.py
@@ -5,23 +5,25 @@ usage: %s [-hvisf] [-t
] [-x ] [-d ] TrueType-file(s)
Dump TrueType fonts as TTX files (an XML-based text format).
Options:
- -h help: print this message
- -v verbose: messages will be written to stdout about what is
+ -h Help: print this message
+ -v Verbose: messages will be written to stdout about what is
being done.
- -i disassemble TT instructions: when this option is given, all
+ -i Disassemble TT instructions: when this option is given, all
TrueType programs (glyph programs, the font program and the
pre-program) will be written to the TTX file as assembly instead
of hex data.
- -s split tables: save the TTX data into separate TTX files per table.
+ -s Split tables: save the TTX data into separate TTX files per table.
The files will be saved in a directory. The name of this
directory will be constructed from the input filename (by
dropping the extension) or can be specified by the optional
TTX-output-file argument.
- -f force overwriting existing files.
- -t specify a table to dump. Multiple -t options
+ -f Force overwriting existing files.
+ -d Specify a directory in which the output file(s)
+ should end up. The directory must exist.
+ -t Specify a table to dump. Multiple -t options
are allowed. When no -t option is specified, all tables
will be dumped.
- -x specify a table to exclude from the dump. Multiple
+ -x Specify a table to exclude from the dump. Multiple
-x options are allowed. -t and -x are mutually exclusive.
"""
@@ -30,12 +32,15 @@ from fontTools import ttLib
options, args = getopt.getopt(sys.argv[1:], "hvisft:x:")
+# default values
verbose = 0
splitTables = 0
disassembleInstructions = 0
forceOverwrite = 0
tables = []
skipTables = []
+outputDir = None
+
for option, value in options:
if option == "-t":
if len(value) > 4:
@@ -51,6 +56,8 @@ for option, value in options:
# normalize tag
value = value + (4 - len(value)) * " "
skipTables.append(value)
+ elif option == "-d":
+ outputDir = value
elif option == "-v":
verbose = 1
elif option == "-f":
@@ -73,6 +80,10 @@ if not args:
for ttPath in args:
path, ext = os.path.splitext(ttPath)
+ if outputDir is not None:
+ fileName = os.path.basename(path)
+ path = os.path.join(outputDir, fileName)
+
if splitTables:
xmlPath = path
else: