Patchwork [3,of,4,STABLE,V3] ui: add 'force' parameter to traceback() to override the current print setting

login
register
mail settings
Submitter Matt Harbison
Date Feb. 15, 2013, 3:57 a.m.
Message ID <531876e328ce07dd3a93.1360900673@Envy>
Download mbox | patch
Permalink /patch/1010/
State Accepted
Commit 5572f688e0a90e99e077cecfe308ce20c1133c91
Headers show

Comments

Matt Harbison - Feb. 15, 2013, 3:57 a.m.
# HG changeset patch
# User Matt Harbison <matt_harbison@yahoo.com>
# Date 1360437772 18000
# Branch stable
# Node ID 531876e328ce07dd3a93ea00e63b00afdfd0b806
# Parent  18b83d035077297b4da66bbd177743533870b061
ui: add 'force' parameter to traceback() to override the current print setting

This will allow a current traceback.print_exc() call in dispatch to be replaced
with ui.traceback() even if --traceback was not given on the command line.

Patch

diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -681,11 +681,11 @@ 
 
         return t
 
-    def traceback(self, exc=None):
-        '''print exception traceback if traceback printing enabled.
+    def traceback(self, exc=None, force=False):
+        '''print exception traceback if traceback printing enabled or forced.
         only to call in exception handler. returns true if traceback
         printed.'''
-        if self.tracebackflag:
+        if self.tracebackflag or force:
             if exc is None:
                 exc = sys.exc_info()
             cause = getattr(exc[1], 'cause', None)
@@ -703,7 +703,7 @@ 
             else:
                 traceback.print_exception(exc[0], exc[1], exc[2],
                                           file=self.ferr)
-        return self.tracebackflag
+        return self.tracebackflag or force
 
     def geteditor(self):
         '''return editor to use'''