Commit a80790de authored by Craig Citro's avatar Craig Citro

Make multiple '--directive's on command line cumulative

parent 0f02f513
...@@ -116,7 +116,9 @@ def parse_command_line(args): ...@@ -116,7 +116,9 @@ def parse_command_line(args):
options.emit_linenums = True options.emit_linenums = True
elif option in ("-X", "--directive"): elif option in ("-X", "--directive"):
try: try:
options.compiler_directives = Options.parse_directive_list(pop_arg(), relaxed_bool=True) options.compiler_directives = Options.parse_directive_list(
pop_arg(), relaxed_bool=True,
current_settings=options.compiler_directives)
except ValueError, e: except ValueError, e:
sys.stderr.write("Error in compiler directive: %s\n" % e.args[0]) sys.stderr.write("Error in compiler directive: %s\n" % e.args[0])
sys.exit(1) sys.exit(1)
......
...@@ -129,7 +129,8 @@ def parse_directive_value(name, value, relaxed_bool=False): ...@@ -129,7 +129,8 @@ def parse_directive_value(name, value, relaxed_bool=False):
else: else:
assert False assert False
def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False): def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False,
current_settings=None):
""" """
Parses a comma-separated list of pragma options. Whitespace Parses a comma-separated list of pragma options. Whitespace
is not considered. is not considered.
...@@ -152,7 +153,10 @@ def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False): ...@@ -152,7 +153,10 @@ def parse_directive_list(s, relaxed_bool=False, ignore_unknown=False):
... ...
ValueError: Unknown option: "unknown" ValueError: Unknown option: "unknown"
""" """
if current_settings is None:
result = {} result = {}
else:
result = current_settings
for item in s.split(','): for item in s.split(','):
item = item.strip() item = item.strip()
if not item: continue if not item: continue
......
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