Commit 2857b189 authored by Dylan Baker's avatar Dylan Baker

util/gen_xmlpool: use argparse for argument handling

This is a little cleaner than just looking at sys.argv, but it's also
going to allow us to handle the differences in the way meson and
autotools handle translations more cleanly.
Reviewed-by: Eric Engestrom's avatarEric Engestrom <>
parent 5b757b40
......@@ -9,25 +9,23 @@
from __future__ import print_function
import argparse
import io
import sys
import gettext
import re
parser = argparse.ArgumentParser()
parser.add_argument('languages', nargs='*')
args = parser.parse_args()
if sys.version_info < (3, 0):
gettext_method = 'ugettext'
gettext_method = 'gettext'
# Path to t_options.h
template_header_path = sys.argv[1]
localedir = sys.argv[2]
# List of supported languages
languages = sys.argv[3:]
# Escape special characters in C strings
def escapeCString (s):
escapeSeqs = {'\a' : '\\a', '\b' : '\\b', '\f' : '\\f', '\n' : '\\n',
......@@ -166,9 +164,9 @@ def expandMatches (matches, translations, end=None):
# Compile a list of translation classes to all supported languages.
# The first translation is always a NullTranslations.
translations = [("en", gettext.NullTranslations())]
for lang in languages:
for lang in args.languages:
trans = gettext.translation ("options", localedir, [lang])
trans = gettext.translation ("options", args.localedir, [lang])
except IOError:
sys.stderr.write ("Warning: language '%s' not found.\n" % lang)
......@@ -188,7 +186,7 @@ print("/***********************************************************************\
# Process the options template and generate options.h with all
# translations.
template = (template_header_path, mode="rt", encoding='utf-8')
template = (args.template, mode="rt", encoding='utf-8')
descMatches = []
for line in template:
if len(descMatches) > 0:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment