# HG changeset patch # User Yuya Nishihara # Date 1457535566 -32400 # Node ID dbba18ba26d469085c2930de3f8e3904a980aae5 # Parent b433233e25d96a3884af54e7eec8c7ea15d234c3 templater: make label() just fail if ui object isn't available Silent failure hides bugs and makes it harder to track down the issue. It's worse than raising exception. In future patches, I plan to sort out template functions that require 'ui', 'ctx', 'fctx', etc. so that incompatible functions are excluded and the doc can say in which context these functions are usable. @templatefunc('label', requires=('ui',)) def label(context, mapping, args): ... diff -r b433233e25d9 -r dbba18ba26d4 mercurial/templater.py --- a/mercurial/templater.py Fri Mar 11 21:55:44 2016 +0900 +++ b/mercurial/templater.py Wed Mar 09 23:59:26 2016 +0900 @@ -547,12 +547,8 @@ # i18n: "label" is a keyword raise error.ParseError(_("label expects two arguments")) + ui = mapping['ui'] thing = evalstring(context, mapping, args[1]) - - ui = mapping.get('ui', '') - if isinstance(ui, str): - return thing - # preserve unknown symbol as literal so effects like 'red', 'bold', # etc. don't need to be quoted label = evalstringliteral(context, mapping, args[0])