ui: handle leading newlines/spaces/commas in configlist
authorThomas Arendsen Hein <thomas@intevation.de>
Tue, 08 Jun 2010 21:09:41 +0200
changeset 11309 ef7636efeb01
parent 11308 16277f8aca1a
child 11311 fcd06ecd4cb7
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.
mercurial/ui.py
tests/test-ui-config.py
tests/test-ui-config.py.out
--- 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']