diff -r e6b962fa44bb -r 7691d1d4b955 Lib/argparse.py --- a/Lib/argparse.py Wed May 01 20:52:07 2013 +0200 +++ b/Lib/argparse.py Wed May 01 17:45:11 2013 -0700 @@ -466,7 +466,7 @@ close = r'[\])]' text = _re.sub(r'(%s) ' % open, r'\1', text) text = _re.sub(r' (%s)' % close, r'\1', text) - text = _re.sub(r'%s *%s' % (open, close), r'', text) + text = _re.sub(r'%s *%s *' % (open, close), r'', text) text = _re.sub(r'\(([^|]*)\)', r'\1', text) text = text.strip() diff -r e6b962fa44bb -r 7691d1d4b955 Lib/test/test_argparse.py --- a/Lib/test/test_argparse.py Wed May 01 20:52:07 2013 +0200 +++ b/Lib/test/test_argparse.py Wed May 01 17:45:11 2013 -0700 @@ -2494,6 +2494,7 @@ add('--spam', action='store_true', help=argparse.SUPPRESS) add('--badger', action='store_false', help=argparse.SUPPRESS) add('--bladder', help=argparse.SUPPRESS) + parser.add_argument('--' + 'eggs' * 20, dest='eggs') return parser failures = [ @@ -2502,23 +2503,25 @@ '--bladder B --spam', ] successes = [ - ('--spam', NS(spam=True, badger=True, bladder=None)), - ('--badger', NS(spam=False, badger=False, bladder=None)), - ('--bladder B', NS(spam=False, badger=True, bladder='B')), - ('--spam --spam', NS(spam=True, badger=True, bladder=None)), + ('--spam', NS(spam=True, badger=True, bladder=None, eggs=None)), + ('--badger', NS(spam=False, badger=False, bladder=None, eggs=None)), + ('--bladder B', NS(spam=False, badger=True, bladder='B', eggs=None)), + ('--spam --spam', NS(spam=True, badger=True, bladder=None, eggs=None)), ] successes_when_not_required = [ - ('', NS(spam=False, badger=True, bladder=None)), + ('', NS(spam=False, badger=True, bladder=None, eggs=None)), ] usage_when_required = usage_when_not_required = '''\ usage: PROG [-h] - ''' + [--{eggs} EGGS] + '''.format(eggs=('eggs' * 20)) help = '''\ optional arguments: - -h, --help show this help message and exit - ''' + -h, --help show this help message and exit + --{eggs} EGGS + '''.format(eggs=('eggs' * 20)) class TestMutuallyExclusiveOptionalAndPositional(MEMixin, TestCase):