# HG changeset patch # User FUJIWARA Katsunori # Date 1324812916 -32400 # Node ID 917f263eeb2684cbc78756533fac1568ba1df524 # Parent 9b822edecb4cb4aa28d8fdf10ae8fdea01818e8b i18n: use "encoding.lower()" to normalize string in hgweb search query some problematic encoding (e.g.: cp932) uses ASCII alphabet characters in byte sequence of multi byte characters. "str.lower()" on such byte sequence may treat distinct characters as same one, and cause unexpected log matching. this patch uses "encoding.lower()" instead of "str.lower()" to normalize strings for compare. diff -r 9b822edecb4c -r 917f263eeb26 mercurial/hgweb/webcommands.py --- a/mercurial/hgweb/webcommands.py Sun Dec 25 20:35:16 2011 +0900 +++ b/mercurial/hgweb/webcommands.py Sun Dec 25 20:35:16 2011 +0900 @@ -124,7 +124,8 @@ def changelist(**map): count = 0 - qw = query.lower().split() + lower = encoding.lower + qw = lower(query).split() def revgen(): for i in xrange(len(web.repo) - 1, 0, -100): @@ -139,9 +140,9 @@ for ctx in revgen(): miss = 0 for q in qw: - if not (q in ctx.user().lower() or - q in ctx.description().lower() or - q in " ".join(ctx.files()).lower()): + if not (q in lower(ctx.user()) or + q in lower(ctx.description()) or + q in lower(" ".join(ctx.files()))): miss = 1 break if miss: