|  | @@ -288,7 +288,7 @@ def parse_arguments_for_actions(unparsed_arguments, action_parsers, global_parse
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -OMITTED_FLAG_NAMES = {'match_archives', 'progress', 'statistics', 'list_details'}
 | 
	
		
			
				|  |  | +OMITTED_FLAG_NAMES = {'match-archives', 'progress', 'statistics', 'list-details'}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def make_argument_description(schema, flag_name):
 | 
	
	
		
			
				|  | @@ -359,9 +359,7 @@ def add_array_element_arguments(arguments_group, unparsed_arguments, flag_name):
 | 
	
		
			
				|  |  |      if '[0]' not in flag_name or not unparsed_arguments or '--help' in unparsed_arguments:
 | 
	
		
			
				|  |  |          return
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    pattern = re.compile(
 | 
	
		
			
				|  |  | -        fr'^--{flag_name.replace("[0]", r"\[\d+\]").replace(".", r"\.").replace("_", "-")}$'
 | 
	
		
			
				|  |  | -    )
 | 
	
		
			
				|  |  | +    pattern = re.compile(fr'^--{flag_name.replace("[0]", r"\[\d+\]").replace(".", r"\.")}$')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      try:
 | 
	
		
			
				|  |  |          # Find an existing list index flag (and its action) corresponding to the given flag name.
 | 
	
	
		
			
				|  | @@ -370,7 +368,7 @@ def add_array_element_arguments(arguments_group, unparsed_arguments, flag_name):
 | 
	
		
			
				|  |  |              for action in arguments_group._group_actions
 | 
	
		
			
				|  |  |              for action_flag_name in action.option_strings
 | 
	
		
			
				|  |  |              if pattern.match(action_flag_name)
 | 
	
		
			
				|  |  | -            if f'--{flag_name.replace("_", "-")}'.startswith(action_flag_name)
 | 
	
		
			
				|  |  | +            if f'--{flag_name}'.startswith(action_flag_name)
 | 
	
		
			
				|  |  |          )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          # Based on the type of the action (e.g. argparse._StoreTrueAction), look up the corresponding
 | 
	
	
		
			
				|  | @@ -386,6 +384,7 @@ def add_array_element_arguments(arguments_group, unparsed_arguments, flag_name):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      for unparsed in unparsed_arguments:
 | 
	
		
			
				|  |  |          unparsed_flag_name = unparsed.split('=', 1)[0]
 | 
	
		
			
				|  |  | +        destination_name = unparsed_flag_name.lstrip('-').replace('-', '_')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if not pattern.match(unparsed_flag_name) or unparsed_flag_name == existing_flag_name:
 | 
	
		
			
				|  |  |              continue
 | 
	
	
		
			
				|  | @@ -395,7 +394,7 @@ def add_array_element_arguments(arguments_group, unparsed_arguments, flag_name):
 | 
	
		
			
				|  |  |                  unparsed_flag_name,
 | 
	
		
			
				|  |  |                  action=action_registry_name,
 | 
	
		
			
				|  |  |                  default=argument_action.default,
 | 
	
		
			
				|  |  | -                dest=unparsed_flag_name.lstrip('-'),
 | 
	
		
			
				|  |  | +                dest=destination_name,
 | 
	
		
			
				|  |  |                  required=argument_action.nargs,
 | 
	
		
			
				|  |  |              )
 | 
	
		
			
				|  |  |          else:
 | 
	
	
		
			
				|  | @@ -404,7 +403,7 @@ def add_array_element_arguments(arguments_group, unparsed_arguments, flag_name):
 | 
	
		
			
				|  |  |                  action=action_registry_name,
 | 
	
		
			
				|  |  |                  choices=argument_action.choices,
 | 
	
		
			
				|  |  |                  default=argument_action.default,
 | 
	
		
			
				|  |  | -                dest=unparsed_flag_name.lstrip('-'),
 | 
	
		
			
				|  |  | +                dest=destination_name,
 | 
	
		
			
				|  |  |                  nargs=argument_action.nargs,
 | 
	
		
			
				|  |  |                  required=argument_action.nargs,
 | 
	
		
			
				|  |  |                  type=argument_action.type,
 | 
	
	
		
			
				|  | @@ -488,7 +487,7 @@ def add_arguments_from_schema(arguments_group, schema, unparsed_arguments, names
 | 
	
		
			
				|  |  |                      names[:-1] + (f'{names[-1]}[0]',) + (name,),
 | 
	
		
			
				|  |  |                  )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    flag_name = '.'.join(names)
 | 
	
		
			
				|  |  | +    flag_name = '.'.join(names).replace('_', '-')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      # Certain options already have corresponding flags on individual actions (like "create
 | 
	
		
			
				|  |  |      # --progress"), so don't bother adding them to the global flags.
 | 
	
	
		
			
				|  | @@ -501,7 +500,7 @@ def add_arguments_from_schema(arguments_group, schema, unparsed_arguments, names
 | 
	
		
			
				|  |  |      # The ...=str given here is to support specifying an object or an array as a YAML string on the
 | 
	
		
			
				|  |  |      # command-line.
 | 
	
		
			
				|  |  |      argument_type = borgmatic.config.schema.parse_type(schema_type, object=str, array=str)
 | 
	
		
			
				|  |  | -    full_flag_name = f"--{flag_name.replace('_', '-')}"
 | 
	
		
			
				|  |  | +    full_flag_name = f"--{flag_name}"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      # As a UX nicety, allow boolean options that have a default of false to have command-line flags
 | 
	
		
			
				|  |  |      # without values.
 |