diff -r c7355a0e1f39 -r 56284451a22c mercurial/cmdutil.py --- a/mercurial/cmdutil.py Tue Dec 29 16:00:38 2009 +0100 +++ b/mercurial/cmdutil.py Mon Dec 28 17:55:52 2009 +0100 @@ -637,6 +637,7 @@ self.header = {} self.hunk = {} self.lastheader = None + self.footer = None def flush(self, rev): if rev in self.header: @@ -651,6 +652,10 @@ return 1 return 0 + def close(self): + if self.footer: + self.ui.write(self.footer) + def show(self, ctx, copies=None, **props): if self.buffered: self.ui.pushbuffer() @@ -817,7 +822,7 @@ (self.ui.debugflag, 'debug'), ] - types = {'header': '', 'changeset': 'changeset'} + types = {'header': '', 'footer':'', 'changeset': 'changeset'} for mode, postfix in tmplmodes: for type in types: cur = postfix and ('%s_%s' % (type, postfix)) or type @@ -839,6 +844,11 @@ self.ui.write(templater.stringify(self.t(key, **props))) self.showpatch(ctx.node()) + if types['header']: + if not self.footer: + self.footer = templater.stringify(self.t(types['footer'], + **props)) + except KeyError, inst: msg = _("%s: no key named '%s'") raise util.Abort(msg % (self.t.mapfile, inst.args[0]))