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