# HG changeset patch # User Gregory Szorc # Date 1440283233 25200 # Node ID 268b39770c282b6f6ea1028f9fa4831877e36122 # Parent 16d54bbdbf8916be5ad065d15b77bedef0f07a1e hgweb: extract web substitutions table generation to own function It doesn't use any state in hgweb except for the repo instance. Move it to a standalone function. diff -r 16d54bbdbf89 -r 268b39770c28 mercurial/hgweb/hgweb_mod.py --- a/mercurial/hgweb/hgweb_mod.py Sat Aug 22 15:32:16 2015 -0700 +++ b/mercurial/hgweb/hgweb_mod.py Sat Aug 22 15:40:33 2015 -0700 @@ -6,7 +6,7 @@ # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. -import os, re +import os from mercurial import ui, hg, hook, error, encoding, templater, util, repoview from mercurial.templatefilters import websub from mercurial.i18n import _ @@ -60,7 +60,6 @@ urlel = os.path.dirname(urlel) return reversed(breadcrumb) - class requestcontext(object): """Holds state/context for an individual request. @@ -163,7 +162,7 @@ # web.templates in .hg/hgrc to get access to any file readable # by the user running the CGI script self.templatepath = self.config('web', 'templates', untrusted=False) - self.websubtable = self.loadwebsub() + self.websubtable = webutil.getwebsubs(r) # The CGI scripts are often run by a user different from the repo owner. # Trust the settings from the .hg/hgrc files by default. @@ -369,47 +368,6 @@ return [''] return tmpl('error', error=inst.message) - def loadwebsub(self): - websubtable = [] - websubdefs = self.repo.ui.configitems('websub') - # we must maintain interhg backwards compatibility - websubdefs += self.repo.ui.configitems('interhg') - for key, pattern in websubdefs: - # grab the delimiter from the character after the "s" - unesc = pattern[1] - delim = re.escape(unesc) - - # identify portions of the pattern, taking care to avoid escaped - # delimiters. the replace format and flags are optional, but - # delimiters are required. - match = re.match( - r'^s%s(.+)(?:(?<=\\\\)|(?