--- a/tests/test-revset.t Sun Dec 25 20:35:16 2011 +0900
+++ b/tests/test-revset.t Sun Dec 25 20:35:16 2011 +0900
@@ -475,3 +475,61 @@
$ log 'max(1 or 2) and not 2'
$ log 'min(1 or 2) and not 1'
$ log 'last(1 or 2, 1) and not 2'
+
+ $ cd ..
+
+test author/desc/keyword in problematic encoding
+# unicode: cp932:
+# u30A2 0x83 0x41(= 'A')
+# u30C2 0x83 0x61(= 'a')
+
+ $ hg init problematicencoding
+ $ cd problematicencoding
+
+ $ python > setup.sh <<EOF
+ > print u'''
+ > echo a > text
+ > hg add text
+ > hg --encoding utf-8 commit -u '\u30A2' -m none
+ > echo b > text
+ > hg --encoding utf-8 commit -u '\u30C2' -m none
+ > echo c > text
+ > hg --encoding utf-8 commit -u none -m '\u30A2'
+ > echo d > text
+ > hg --encoding utf-8 commit -u none -m '\u30C2'
+ > '''.encode('utf-8')
+ > EOF
+ $ sh < setup.sh
+
+test in problematic encoding
+ $ python > test.sh <<EOF
+ > print u'''
+ > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30A2)'
+ > echo ====
+ > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30C2)'
+ > echo ====
+ > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30A2)'
+ > echo ====
+ > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30C2)'
+ > echo ====
+ > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30A2)'
+ > echo ====
+ > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30C2)'
+ > '''.encode('cp932')
+ > EOF
+ $ sh < test.sh
+ 0
+ ====
+ 1
+ ====
+ 2
+ ====
+ 3
+ ====
+ 0
+ 2
+ ====
+ 1
+ 3
+
+ $ cd ..