# HG changeset patch # User Christian Ebert # Date 2012-08-10 19:37:20 # Node ID bededd3f07358bdf524e294e5ade1bb025bbab68 # Parent 19e9bf7c0927714b6a6a58795f4a989bb5f2df60 templatefilters: avoid traceback caused by bogus date input (issue3344) Wrap datefilters which split date texts with util.parsedate. We do not abort, as the bogus date must have been given by the user. diff --git a/hgext/keyword.py b/hgext/keyword.py --- a/hgext/keyword.py +++ b/hgext/keyword.py @@ -117,7 +117,7 @@ colortable = { def utcdate(text): ''':utcdate: Date. Returns a UTC-date in this format: "2009/08/18 11:00:13". ''' - return util.datestr((text[0], 0), '%Y/%m/%d %H:%M:%S') + return util.datestr((util.parsedate(text)[0], 0), '%Y/%m/%d %H:%M:%S') # date like in svn's $Date def svnisodate(text): ''':svnisodate: Date. Returns a date in this format: "2009-08-18 13:00:13 @@ -129,7 +129,7 @@ def svnutcdate(text): ''':svnutcdate: Date. Returns a UTC-date in this format: "2009-08-18 11:00:13Z". ''' - return util.datestr((text[0], 0), '%Y-%m-%d %H:%M:%SZ') + return util.datestr((util.parsedate(text)[0], 0), '%Y-%m-%d %H:%M:%SZ') templatefilters.filters.update({'utcdate': utcdate, 'svnisodate': svnisodate, diff --git a/mercurial/templatefilters.py b/mercurial/templatefilters.py --- a/mercurial/templatefilters.py +++ b/mercurial/templatefilters.py @@ -221,7 +221,7 @@ def jsonescape(s): def localdate(text): """:localdate: Date. Converts a date to local date.""" - return (text[0], util.makedate()[1]) + return (util.parsedate(text)[0], util.makedate()[1]) def nonempty(str): """:nonempty: Any text. Returns '(none)' if the string is empty."""