Mercurial > public > mercurial-scm > hg
comparison mercurial/ui.py @ 3737:9f5c46c50118
add a simple nested buffering scheme to ui
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 01 Dec 2006 01:28:18 -0600 |
parents | 98f2507c5551 |
children | abaee83ce0a6 f82b3f915605 |
comparison
equal
deleted
inserted
replaced
3736:ad3d5b4367cb | 3737:9f5c46c50118 |
---|---|
27 class ui(object): | 27 class ui(object): |
28 def __init__(self, verbose=False, debug=False, quiet=False, | 28 def __init__(self, verbose=False, debug=False, quiet=False, |
29 interactive=True, traceback=False, report_untrusted=True, | 29 interactive=True, traceback=False, report_untrusted=True, |
30 parentui=None): | 30 parentui=None): |
31 self.overlay = None | 31 self.overlay = None |
32 self.buffers = [] | |
32 if parentui is None: | 33 if parentui is None: |
33 # this is the parent of all ui children | 34 # this is the parent of all ui children |
34 self.parentui = None | 35 self.parentui = None |
35 self.readhooks = [] | 36 self.readhooks = [] |
36 self.quiet = quiet | 37 self.quiet = quiet |
365 path = self.config("paths", loc) | 366 path = self.config("paths", loc) |
366 if not path and default is not None: | 367 if not path and default is not None: |
367 path = self.config("paths", default) | 368 path = self.config("paths", default) |
368 return path or loc | 369 return path or loc |
369 | 370 |
371 def pushbuffer(self): | |
372 self.buffers.append([]) | |
373 | |
374 def popbuffer(self): | |
375 return "".join(self.buffers.pop()) | |
376 | |
370 def write(self, *args): | 377 def write(self, *args): |
371 for a in args: | 378 if self.buffers: |
372 sys.stdout.write(str(a)) | 379 self.buffers[-1].extend([str(a) for a in args]) |
380 else: | |
381 for a in args: | |
382 sys.stdout.write(str(a)) | |
373 | 383 |
374 def write_err(self, *args): | 384 def write_err(self, *args): |
375 try: | 385 try: |
376 if not sys.stdout.closed: sys.stdout.flush() | 386 if not sys.stdout.closed: sys.stdout.flush() |
377 for a in args: | 387 for a in args: |