changeset 17334:39c01f8e7b39 stable

templater: handle a missing value correctly Before, using a broken style such as: changeset = would result in a traceback. This fixes a regression introduced in 63c47e4ac617.
author Ross Lagerwall <rosslagerwall@gmail.com>
date Sat, 04 Aug 2012 14:37:17 +0200
parents ba36e771f268
children b5c560787a4e
files mercurial/templater.py tests/test-command-template.t
diffstat 2 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/templater.py	Sat Aug 04 12:29:53 2012 +0200
+++ b/mercurial/templater.py	Sat Aug 04 14:37:17 2012 +0200
@@ -295,6 +295,8 @@
         conf.read(mapfile)
 
         for key, val in conf[''].items():
+            if not val:
+                raise SyntaxError(_('%s: missing value') % conf.source('', key))
             if val[0] in "'\"":
                 try:
                     self.cache[key] = parsestring(val)
--- a/tests/test-command-template.t	Sat Aug 04 12:29:53 2012 +0200
+++ b/tests/test-command-template.t	Sat Aug 04 14:37:17 2012 +0200
@@ -463,6 +463,13 @@
   abort: "changeset" not in template map
   [255]
 
+Error if style missing value:
+
+  $ echo 'changeset =' > t
+  $ hg log --style t
+  abort: t:1: missing value
+  [255]
+
 Error if include fails:
 
   $ echo 'changeset = q' >> t