Mercurial > hg
view tests/test-revset.out @ 11765:aff419e260f9 stable
templatefilters: make json filter handle multibyte characters correctly
It aims to fix javascript error of hgweb's graph view in Japanese 'cp932'
encoding.
'cp932' contains multibyte characters ending with '\x5c' (backslash),
e.g. '\x94\x5c' for Japanese Kanji 'Noh'.
Due to json filter escapes '\' to '\\', multibyte string ending with
'\x5c' is translated to "xxx\", resulting javascript parse error on
a web browser.
This patch changes json() to pass unicode to jsonescape().
Unicode decoding error handler changed to 'replace' by Patrick Mézard.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 07 Aug 2010 16:27:16 +0900 |
parents | ebaf117c2642 |
children | ba65d61f3158 b75dea24e296 |
line wrap: on
line source
marked working directory as branch a marked working directory as branch b marked working directory as branch a-b-c- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved marked working directory as branch +a+b+c+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved marked working directory as branch -a-b-c- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved marked working directory as branch /a/b/c/ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved (branch merge, don't forget to commit) marked working directory as branch _a_b_c_ marked working directory as branch .a.b.c. marked working directory as branch all abort: can only close branch heads 0 files updated, 0 files merged, 0 files removed, 0 files unresolved marked working directory as branch é % hg debugrevspec a ('symbol', 'a') 0 % hg debugrevspec b-a ('minus', ('symbol', 'b'), ('symbol', 'a')) 1 % hg debugrevspec _a_b_c_ ('symbol', '_a_b_c_') 6 % hg debugrevspec _a_b_c_-a ('minus', ('symbol', '_a_b_c_'), ('symbol', 'a')) 6 % hg debugrevspec .a.b.c. ('symbol', '.a.b.c.') 7 % hg debugrevspec .a.b.c.-a ('minus', ('symbol', '.a.b.c.'), ('symbol', 'a')) 7 % hg debugrevspec -- -a-b-c- hg: parse error at 7: not a prefix: end % log '-a-b-c-' 4 % hg debugrevspec -- -a-b-c--a ('minus', ('minus', ('minus', ('negate', ('symbol', 'a')), ('symbol', 'b')), ('symbol', 'c')), ('negate', ('symbol', 'a'))) abort: unknown revision '-a'! % hg debugrevspec é ('symbol', '\xc3\xa9') 9 % hg debugrevspec "-a-b-c-"-a ('minus', ('string', '-a-b-c-'), ('symbol', 'a')) 4 % log '1 or 2' 1 2 % log '1|2' 1 2 % log '1 and 2' % log '1&2' % hg debugrevspec 1&2|3 ('or', ('and', ('symbol', '1'), ('symbol', '2')), ('symbol', '3')) 3 % hg debugrevspec 1|2&3 ('or', ('symbol', '1'), ('and', ('symbol', '2'), ('symbol', '3'))) 1 % hg debugrevspec 1&2&3 ('and', ('and', ('symbol', '1'), ('symbol', '2')), ('symbol', '3')) % hg debugrevspec 1|(2|3) ('or', ('symbol', '1'), ('group', ('or', ('symbol', '2'), ('symbol', '3')))) 1 2 3 % log '1.0' 6 % log 'a' 0 % log '2785f51ee' 0 % log 'date(2005)' 4 % log 'date(this is a test)' hg: parse error at 10: unexpected token: symbol % log 'date()' hg: parse error: date wants a string % log 'date' hg: parse error: can't use date here % log 'date(' hg: parse error at 5: not a prefix: end % log 'date(tip)' abort: invalid date: 'tip' % log '"date"' abort: unknown revision 'date'! % log 'date(2005) and 1::' 4 % log 'ancestor(1)' hg: parse error: ancestor wants two arguments % log 'ancestor(4,5)' 1 % log 'ancestor(4,5) and 4' % log 'ancestors(5)' 0 1 3 5 % log 'author(bob)' 2 % log 'branch(é)' 8 9 % log 'children(ancestor(4,5))' 2 3 % log 'closed()' % log 'contains(a)' 0 1 3 5 % log 'descendants(2 or 3)' 2 3 4 5 6 7 8 9 % log 'file(b)' 1 4 % log 'follow()' 0 1 2 4 8 9 % log 'grep("issue\d+")' 6 % log 'head()' 0 1 2 3 4 5 6 7 9 % log 'heads(6::)' 7 % log 'keyword(issue)' 6 % log 'limit(head(), 1)' 0 % log 'max(contains(a))' 5 % log 'merge()' 6 % log 'modifies(b)' 4 % log 'p1(merge())' 5 % log 'p2(merge())' 4 % log 'parents(merge())' 4 5 % log 'removes(a)' 2 6 % log 'roots(all())' 0 % log 'reverse(2 or 3 or 4 or 5)' 5 4 3 2 % log 'sort(limit(reverse(all()), 3))' 7 8 9 % log 'sort(2 or 3 or 4 or 5, date)' 2 3 5 4 % log 'tagged()' 6 % log 'user(bob)' 2 % log '4::8' 4 8 % log '4:8' 4 5 6 7 8 % log 'sort(!merge() & (modifies(b) | user(bob) | keyword(bug) | keyword(issue) & 1::9), "-date")' 4 2 5 % log 'not 0 and 0:2' 1 2 % log 'not 1 and 0:2' 0 2 % log 'not 2 and 0:2' 0 1 % log '(1 and 2)::' % log '(1 and 2):' % log '(1 and 2):3' % log 'sort(head(), -rev)' 9 7 6 5 4 3 2 1 0