equal
deleted
inserted
replaced
635 self.patch = patch |
635 self.patch = patch |
636 self.diffopts = diffopts |
636 self.diffopts = diffopts |
637 self.header = {} |
637 self.header = {} |
638 self.hunk = {} |
638 self.hunk = {} |
639 self.lastheader = None |
639 self.lastheader = None |
|
640 self.footer = None |
640 |
641 |
641 def flush(self, rev): |
642 def flush(self, rev): |
642 if rev in self.header: |
643 if rev in self.header: |
643 h = self.header[rev] |
644 h = self.header[rev] |
644 if h != self.lastheader: |
645 if h != self.lastheader: |
648 if rev in self.hunk: |
649 if rev in self.hunk: |
649 self.ui.write(self.hunk[rev]) |
650 self.ui.write(self.hunk[rev]) |
650 del self.hunk[rev] |
651 del self.hunk[rev] |
651 return 1 |
652 return 1 |
652 return 0 |
653 return 0 |
|
654 |
|
655 def close(self): |
|
656 if self.footer: |
|
657 self.ui.write(self.footer) |
653 |
658 |
654 def show(self, ctx, copies=None, **props): |
659 def show(self, ctx, copies=None, **props): |
655 if self.buffered: |
660 if self.buffered: |
656 self.ui.pushbuffer() |
661 self.ui.pushbuffer() |
657 self._show(ctx, copies, props) |
662 self._show(ctx, copies, props) |
815 (self.ui.verbose, 'verbose'), |
820 (self.ui.verbose, 'verbose'), |
816 (self.ui.quiet, 'quiet'), |
821 (self.ui.quiet, 'quiet'), |
817 (self.ui.debugflag, 'debug'), |
822 (self.ui.debugflag, 'debug'), |
818 ] |
823 ] |
819 |
824 |
820 types = {'header': '', 'changeset': 'changeset'} |
825 types = {'header': '', 'footer':'', 'changeset': 'changeset'} |
821 for mode, postfix in tmplmodes: |
826 for mode, postfix in tmplmodes: |
822 for type in types: |
827 for type in types: |
823 cur = postfix and ('%s_%s' % (type, postfix)) or type |
828 cur = postfix and ('%s_%s' % (type, postfix)) or type |
824 if mode and cur in self.t: |
829 if mode and cur in self.t: |
825 types[type] = cur |
830 types[type] = cur |
836 |
841 |
837 # write changeset metadata, then patch if requested |
842 # write changeset metadata, then patch if requested |
838 key = types['changeset'] |
843 key = types['changeset'] |
839 self.ui.write(templater.stringify(self.t(key, **props))) |
844 self.ui.write(templater.stringify(self.t(key, **props))) |
840 self.showpatch(ctx.node()) |
845 self.showpatch(ctx.node()) |
|
846 |
|
847 if types['header']: |
|
848 if not self.footer: |
|
849 self.footer = templater.stringify(self.t(types['footer'], |
|
850 **props)) |
841 |
851 |
842 except KeyError, inst: |
852 except KeyError, inst: |
843 msg = _("%s: no key named '%s'") |
853 msg = _("%s: no key named '%s'") |
844 raise util.Abort(msg % (self.t.mapfile, inst.args[0])) |
854 raise util.Abort(msg % (self.t.mapfile, inst.args[0])) |
845 except SyntaxError, inst: |
855 except SyntaxError, inst: |