# HG changeset patch # User Thomas Arendsen Hein # Date 1276024181 -7200 # Node ID ef7636efeb013e948b4b195d8784e97d489d281e # Parent 16277f8aca1add68b62ec7bfdef45573d31071ba 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. diff -r 16277f8aca1a -r ef7636efeb01 mercurial/ui.py --- 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 diff -r 16277f8aca1a -r ef7636efeb01 tests/test-ui-config.py --- 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')) diff -r 16277f8aca1a -r ef7636efeb01 tests/test-ui-config.py.out --- 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']