Show More
@@ -6,10 +6,11 b'' | |||
|
6 | 6 | # This software may be used and distributed according to the terms of the |
|
7 | 7 | # GNU General Public License version 2 or any later version. |
|
8 | 8 | |
|
9 |
import os, copy |
|
|
9 | import os, copy | |
|
10 | 10 | from mercurial import match, patch, error, ui, util, pathutil, context |
|
11 | 11 | from mercurial.i18n import _ |
|
12 | 12 | from mercurial.node import hex, nullid, short |
|
13 | from mercurial.templatefilters import revescape | |
|
13 | 14 | from common import ErrorResponse, paritygen |
|
14 | 15 | from common import HTTP_NOT_FOUND |
|
15 | 16 | import difflib |
@@ -281,7 +282,7 b' def changelistentry(web, ctx, tmpl):' | |||
|
281 | 282 | |
|
282 | 283 | def symrevorshortnode(req, ctx): |
|
283 | 284 | if 'node' in req.form: |
|
284 |
return |
|
|
285 | return revescape(req.form['node'][0]) | |
|
285 | 286 | else: |
|
286 | 287 | return short(ctx.node()) |
|
287 | 288 |
@@ -283,6 +283,13 b' def person(author):' | |||
|
283 | 283 | f = author.find('@') |
|
284 | 284 | return author[:f].replace('.', ' ') |
|
285 | 285 | |
|
286 | def revescape(text): | |
|
287 | """:revescape: Any text. Escapes all "special" characters, except @. | |
|
288 | Forward slashes are escaped twice to prevent web servers from prematurely | |
|
289 | unescaping them. For example, "@foo bar/baz" becomes "@foo%20bar%252Fbaz". | |
|
290 | """ | |
|
291 | return urllib.quote(text, safe='/@').replace('/', '%252F') | |
|
292 | ||
|
286 | 293 | def rfc3339date(text): |
|
287 | 294 | """:rfc3339date: Date. Returns a date using the Internet date format |
|
288 | 295 | specified in RFC 3339: "2009-08-18T13:00:13+02:00". |
@@ -402,6 +409,7 b' filters = {' | |||
|
402 | 409 | "obfuscate": obfuscate, |
|
403 | 410 | "permissions": permissions, |
|
404 | 411 | "person": person, |
|
412 | "revescape": revescape, | |
|
405 | 413 | "rfc3339date": rfc3339date, |
|
406 | 414 | "rfc822date": rfc822date, |
|
407 | 415 | "short": short, |
General Comments 0
You need to be logged in to leave comments.
Login now