Fixed #12119. Changed smart_split to stop splitting on whitespace in quotes. Thanks, emulbreh.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12581 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
3304afa67a
commit
c8cd8b80aa
|
@ -202,9 +202,14 @@ javascript_quote = allow_lazy(javascript_quote, unicode)
|
||||||
# Expression to match some_token and some_token="with spaces" (and similarly
|
# Expression to match some_token and some_token="with spaces" (and similarly
|
||||||
# for single-quoted strings).
|
# for single-quoted strings).
|
||||||
smart_split_re = re.compile(r"""
|
smart_split_re = re.compile(r"""
|
||||||
([^\s"]*"(?:[^"\\]*(?:\\.[^"\\]*)*)"\S*|
|
((?:
|
||||||
[^\s']*'(?:[^'\\]*(?:\\.[^'\\]*)*)'\S*|
|
[^\s'"]*
|
||||||
\S+)""", re.VERBOSE)
|
(?:
|
||||||
|
(?:"(?:[^"\\]|\\.)*" | '(?:[^'\\]|\\.)*')
|
||||||
|
[^\s'"]*
|
||||||
|
)+
|
||||||
|
) | \S+)
|
||||||
|
""", re.VERBOSE)
|
||||||
|
|
||||||
def smart_split(text):
|
def smart_split(text):
|
||||||
r"""
|
r"""
|
||||||
|
|
|
@ -27,6 +27,8 @@ friends'
|
||||||
[u'url', u'search_page', u'words=hello']
|
[u'url', u'search_page', u'words=hello']
|
||||||
>>> list(smart_split(u'url search_page words="something else'))
|
>>> list(smart_split(u'url search_page words="something else'))
|
||||||
[u'url', u'search_page', u'words="something', u'else']
|
[u'url', u'search_page', u'words="something', u'else']
|
||||||
|
>>> list(smart_split("cut:','|cut:' '"))
|
||||||
|
[u"cut:','|cut:' '"]
|
||||||
|
|
||||||
### urlquote #############################################################
|
### urlquote #############################################################
|
||||||
>>> from django.utils.http import urlquote, urlquote_plus
|
>>> from django.utils.http import urlquote, urlquote_plus
|
||||||
|
|
Loading…
Reference in New Issue