Mercurial > hg-stable
changeset 11309:ef7636efeb01
ui: handle leading newlines/spaces/commas in configlist
Thanks to Greg Ward for spotting the problem introduced in 0a548640e012
and for supplying the test case.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Tue, 08 Jun 2010 21:09:41 +0200 |
parents | 16277f8aca1a |
children | fcd06ecd4cb7 |
files | mercurial/ui.py tests/test-ui-config.py tests/test-ui-config.py.out |
diffstat | 3 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/ui.py Tue Jun 08 11:58:09 2010 -0500 +++ b/mercurial/ui.py Tue Jun 08 21:09:41 2010 +0200 @@ -228,7 +228,7 @@ if result is None: result = default or [] if isinstance(result, basestring): - result = _configlist(result) + result = _configlist(result.lstrip(' ,\n')) if result is None: result = default or [] return result
--- a/tests/test-ui-config.py Tue Jun 08 11:58:09 2010 -0500 +++ b/tests/test-ui-config.py Tue Jun 08 21:09:41 2010 +0200 @@ -24,6 +24,7 @@ 'lists.list15=" just with starting quotation', 'lists.list16="longer quotation" with "no ending quotation', 'lists.list17=this is \\" "not a quotation mark"', + 'lists.list18=\n \n\nding\ndong', ]) print repr(testui.configitems('values')) @@ -62,6 +63,7 @@ print repr(testui.configlist('lists', 'list15')) print repr(testui.configlist('lists', 'list16')) print repr(testui.configlist('lists', 'list17')) +print repr(testui.configlist('lists', 'list18')) print repr(testui.configlist('lists', 'unknown')) print repr(testui.configlist('lists', 'unknown', '')) print repr(testui.configlist('lists', 'unknown', 'foo'))
--- a/tests/test-ui-config.py.out Tue Jun 08 11:58:09 2010 -0500 +++ b/tests/test-ui-config.py.out Tue Jun 08 21:09:41 2010 +0200 @@ -1,5 +1,5 @@ [('string', 'string value'), ('bool1', 'true'), ('bool2', 'false')] -[('list1', 'foo'), ('list2', 'foo bar baz'), ('list3', 'alice, bob'), ('list4', 'foo bar baz alice, bob'), ('list5', 'abc d"ef"g "hij def"'), ('list6', '"hello world", "how are you?"'), ('list7', 'Do"Not"Separate'), ('list8', '"Do"Separate'), ('list9', '"Do\\"NotSeparate"'), ('list10', 'string "with extraneous" quotation mark"'), ('list11', 'x, y'), ('list12', '"x", "y"'), ('list13', '""" key = "x", "y" """'), ('list14', ',,,, '), ('list15', '" just with starting quotation'), ('list16', '"longer quotation" with "no ending quotation'), ('list17', 'this is \\" "not a quotation mark"')] +[('list1', 'foo'), ('list2', 'foo bar baz'), ('list3', 'alice, bob'), ('list4', 'foo bar baz alice, bob'), ('list5', 'abc d"ef"g "hij def"'), ('list6', '"hello world", "how are you?"'), ('list7', 'Do"Not"Separate'), ('list8', '"Do"Separate'), ('list9', '"Do\\"NotSeparate"'), ('list10', 'string "with extraneous" quotation mark"'), ('list11', 'x, y'), ('list12', '"x", "y"'), ('list13', '""" key = "x", "y" """'), ('list14', ',,,, '), ('list15', '" just with starting quotation'), ('list16', '"longer quotation" with "no ending quotation'), ('list17', 'this is \\" "not a quotation mark"'), ('list18', '\n \n\nding\ndong')] --- 'string value' 'true' @@ -31,6 +31,7 @@ ['"', 'just', 'with', 'starting', 'quotation'] ['longer quotation', 'with', '"no', 'ending', 'quotation'] ['this', 'is', '"', 'not a quotation mark'] +['ding', 'dong'] [] [] ['foo']