mercurial/ui.py
changeset 3349 25d270e0b27f
parent 3347 bce7c1b4c1c8
child 3350 ab900698b832
--- a/mercurial/ui.py	Tue Oct 10 18:43:20 2006 -0300
+++ b/mercurial/ui.py	Tue Oct 10 18:43:20 2006 -0300
@@ -55,14 +55,29 @@
 
     def updateopts(self, verbose=False, debug=False, quiet=False,
                    interactive=True, traceback=False, config=[]):
-        self.quiet = (self.quiet or quiet) and not verbose and not debug
-        self.verbose = ((self.verbose or verbose) or debug) and not self.quiet
-        self.debugflag = (self.debugflag or debug)
+        self.quiet = self.quiet or quiet
+        self.verbose = self.verbose or verbose
+        self.debugflag = self.debugflag or debug
+
+        self.verbosity_constraints(quiet, verbose, debug)
+
         self.interactive = (self.interactive and interactive)
         self.traceback = self.traceback or traceback
         for section, name, value in config:
             self.setconfig(section, name, value)
 
+    def verbosity_constraints(self, quiet, verbose, debug):
+        if self.debugflag:
+            self.verbose = True
+            self.quiet = False
+        elif self.verbose and self.quiet:
+            if quiet and not verbose:
+                self.verbose = False
+            elif not quiet and verbose:
+                self.quiet = False
+            else:
+                self.quiet = self.verbose = False
+
     def readconfig(self, fn, root=None):
         if isinstance(fn, basestring):
             fn = [fn]