From 0279e77d46016f6ac3d42f325b4b1c8cc7f4bfe5 Mon Sep 17 00:00:00 2001 From: Andrey Kislyuk Date: Tue, 27 Nov 2012 09:07:08 -0800 Subject: [PATCH] Don't always inactivate actions just because they ate some arguments --- argcomplete/my_argparse.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/argcomplete/my_argparse.py b/argcomplete/my_argparse.py index ea85f656..b7914719 100644 --- a/argcomplete/my_argparse.py +++ b/argcomplete/my_argparse.py @@ -136,8 +136,6 @@ def consume_optional(start_index): selected_patterns = arg_strings_pattern[start:] self.active_actions = [action] # Added by argcomplete arg_count = match_argument(action, selected_patterns) - if arg_count > 0: # Added by argcomplete - self.active_actions = [] # Added by argcomplete stop = start + arg_count args = arg_strings[start:stop] action_tuples.append((action, args, option_string)) @@ -164,12 +162,13 @@ def consume_positionals(start_index): # slice off the appropriate arg strings for each Positional # and add the Positional and its args to the list for action, arg_count in zip(positionals, arg_counts): - self.active_actions.append(action) # Added by argcomplete + if arg_count > 0: # Added by argcomplete + self.active_actions = [action] # Added by argcomplete + else: # Added by argcomplete + self.active_actions.append(action) # Added by argcomplete args = arg_strings[start_index: start_index + arg_count] start_index += arg_count take_action(action, args) - if arg_count > 0: # Added by argcomplete - self.active_actions = [] # Added by argcomplete # slice off the Positionals that we just parsed and return the # index at which the Positionals' string args stopped