Ticket #2042: 2042-fix.patch
| File 2042-fix.patch, 3.6 KB (added by cboos, 3 years ago) |
|---|
-
trac/ticket/query.py
21 21 from trac.core import * 22 22 from trac.perm import IPermissionRequestor 23 23 from trac.ticket import Ticket, TicketSystem 24 from trac.util import escape, shorten_line, sql_escape, CRLF, TRUE24 from trac.util import escape, unescape, shorten_line, sql_escape, CRLF, TRUE 25 25 from trac.web import IRequestHandler 26 26 from trac.web.chrome import add_link, add_stylesheet, INavigationContributor 27 27 from trac.wiki import wiki_to_html, wiki_to_oneliner, IWikiMacroProvider, \ … … 593 593 def _format_link(self, formatter, ns, query, label): 594 594 if query[0] == '?': 595 595 return '<a class="query" href="%s">%s</a>' \ 596 % (formatter.href.query() + escape(query), escape(label)) 596 % (escape(formatter.href.query()) + query.replace(' ', '+'), 597 label) 597 598 else: 598 599 from trac.ticket.query import Query, QuerySyntaxError 599 600 try: 600 query = Query.from_string(formatter.env, query)601 query = Query.from_string(formatter.env, unescape(query)) 601 602 return '<a class="query" href="%s">%s</a>' \ 602 % (escape(query.get_href()), escape(label))603 % (escape(query.get_href()), label) 603 604 except QuerySyntaxError, e: 604 605 return '<em class="error">[Error: %s]</em>' % escape(e) 605 606 -
trac/Search.py
241 241 query.replace('&', '&').replace(' ', '+') 242 242 else: 243 243 href = formatter.href.search(q=query) 244 return '<a class="search" href="%s">%s</a>' % ( href, label)244 return '<a class="search" href="%s">%s</a>' % (escape(href), label) 245 245 -
trac/wiki/tests/wiki-tests.txt
242 242 ============================== 243 243 query:?order=priority 244 244 245 query:?order=priority&owner=me 246 245 247 query:status=new|reopened 246 248 247 249 query:milestone!= 250 251 query:milestone=1.0|2.0&owner=me 248 252 ------------------------------ 249 253 <p> 250 254 <a class="query" href="/query?order=priority">query:?order=priority</a> 251 255 </p> 252 256 <p> 257 <a class="query" href="/query?order=priority&owner=me">query:?order=priority&owner=me</a> 258 </p> 259 <p> 253 260 <a class="query" href="/query?status=new&status=reopened&order=priority">query:status=new|reopened</a> 254 261 </p> 255 262 <p> 256 263 <a class="query" href="/query?milestone=%21&order=priority">query:milestone!=</a> 257 264 </p> 265 <p> 266 <a class="query" href="/query?milestone=1.0&milestone=2.0&owner=me&order=priority">query:milestone=1.0|2.0&owner=me</a> 267 </p> 258 268 ============================== 259 269 {{{ 260 270 Preformatted text. … … 468 478 [search:?q=bar&ticket=on Bar in Tickets] 469 479 ------------------------------ 470 480 <p> 471 <a class="search" href="/search?q=foo& wiki=on">search:?q=foo&wiki=on</a>472 <a class="search" href="/search?q=foo+bar& wiki=on">search:"?q=foo bar&wiki=on"</a>473 <a class="search" href="/search?q=bar& ticket=on">Bar in Tickets</a>481 <a class="search" href="/search?q=foo&wiki=on">search:?q=foo&wiki=on</a> 482 <a class="search" href="/search?q=foo+bar&wiki=on">search:"?q=foo bar&wiki=on"</a> 483 <a class="search" href="/search?q=bar&ticket=on">Bar in Tickets</a> 474 484 </p> 475 485 ============================== 476 486 '''Note:'''
