# HG changeset patch # User Alexander Plavin # Date 1377175523 -14400 # Node ID cf9e5e45c1d3ad3f665182cb7576a7a515842f38 # Parent bb67f630b335270bcbd1f5a26c8d46b9edcd8775 hgweb: add dynamic search function selection, depending on the query This allows adding other specific search functions, in addition to current keyword search. diff -r bb67f630b335 -r cf9e5e45c1d3 mercurial/hgweb/webcommands.py --- a/mercurial/hgweb/webcommands.py Mon Aug 26 17:11:01 2013 -0700 +++ b/mercurial/hgweb/webcommands.py Thu Aug 22 16:45:23 2013 +0400 @@ -138,10 +138,17 @@ yield ctx + searchfuncs = { + 'keyword': keywordsearch, + } + + def getsearchmode(): + return 'keyword' + def changelist(**map): count = 0 - for ctx in keywordsearch(): + for ctx in searchfunc(): count += 1 n = ctx.node() showtags = webutil.showtag(web.repo, tmpl, 'changelogtag', n) @@ -181,6 +188,9 @@ morevars['revcount'] = revcount * 2 morevars['rev'] = query + mode = getsearchmode() + searchfunc = searchfuncs[mode] + tip = web.repo['tip'] parity = paritygen(web.stripecount)