Mercurial > hg
changeset 15727:917f263eeb26
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.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sun, 25 Dec 2011 20:35:16 +0900 |
parents | 9b822edecb4c |
children | bc2a22357538 |
files | mercurial/hgweb/webcommands.py |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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: