comparison mercurial/cmdutil.py @ 28628:ed1d90f6e921

templater: do not abuse SyntaxError to report errors in template map file SyntaxError is the class representing syntax errors in Python code. We should use a dedicated exception class for our needs. With this change, unnecessary re-wrapping of SyntaxError can be eliminated.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 26 Mar 2016 18:01:04 +0900
parents 1a1e4350b560
children bf35644b9f3a
comparison
equal deleted inserted replaced
28627:d7af9b4ae7dd 28628:ed1d90f6e921
1530 self.footer = templater.stringify( 1530 self.footer = templater.stringify(
1531 self.t(self._parts['footer'], **props)) 1531 self.t(self._parts['footer'], **props))
1532 except KeyError as inst: 1532 except KeyError as inst:
1533 msg = _("%s: no key named '%s'") 1533 msg = _("%s: no key named '%s'")
1534 raise error.Abort(msg % (self.t.mapfile, inst.args[0])) 1534 raise error.Abort(msg % (self.t.mapfile, inst.args[0]))
1535 except SyntaxError as inst:
1536 raise error.Abort('%s: %s' % (self.t.mapfile, inst.args[0]))
1537 1535
1538 def gettemplate(ui, tmpl, style): 1536 def gettemplate(ui, tmpl, style):
1539 """ 1537 """
1540 Find the template matching the given template spec or style. 1538 Find the template matching the given template spec or style.
1541 """ 1539 """
1588 tmpl, mapfile = gettemplate(ui, opts.get('template'), opts.get('style')) 1586 tmpl, mapfile = gettemplate(ui, opts.get('template'), opts.get('style'))
1589 1587
1590 if not tmpl and not mapfile: 1588 if not tmpl and not mapfile:
1591 return changeset_printer(ui, repo, matchfn, opts, buffered) 1589 return changeset_printer(ui, repo, matchfn, opts, buffered)
1592 1590
1593 try: 1591 return changeset_templater(ui, repo, matchfn, opts, tmpl, mapfile, buffered)
1594 t = changeset_templater(ui, repo, matchfn, opts, tmpl, mapfile,
1595 buffered)
1596 except SyntaxError as inst:
1597 raise error.Abort(inst.args[0])
1598 return t
1599 1592
1600 def showmarker(ui, marker, index=None): 1593 def showmarker(ui, marker, index=None):
1601 """utility function to display obsolescence marker in a readable way 1594 """utility function to display obsolescence marker in a readable way
1602 1595
1603 To be used by debug function.""" 1596 To be used by debug function."""
2841 2834
2842 def buildcommittemplate(repo, ctx, subs, extramsg, tmpl): 2835 def buildcommittemplate(repo, ctx, subs, extramsg, tmpl):
2843 ui = repo.ui 2836 ui = repo.ui
2844 tmpl, mapfile = gettemplate(ui, tmpl, None) 2837 tmpl, mapfile = gettemplate(ui, tmpl, None)
2845 2838
2846 try: 2839 t = changeset_templater(ui, repo, None, {}, tmpl, mapfile, False)
2847 t = changeset_templater(ui, repo, None, {}, tmpl, mapfile, False)
2848 except SyntaxError as inst:
2849 raise error.Abort(inst.args[0])
2850 2840
2851 for k, v in repo.ui.configitems('committemplate'): 2841 for k, v in repo.ui.configitems('committemplate'):
2852 if k != 'changeset': 2842 if k != 'changeset':
2853 t.t.cache[k] = v 2843 t.t.cache[k] = v
2854 2844