Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/ui.py @ 6325:41c77bb8d7f3
pager: remove pager code from core
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 20 Mar 2008 11:12:35 -0500 |
parents | 7240204121af |
children | f477afeb3a0f |
comparison
equal
deleted
inserted
replaced
6324:ee1077b41d5c | 6325:41c77bb8d7f3 |
---|---|
29 def __init__(self, verbose=False, debug=False, quiet=False, | 29 def __init__(self, verbose=False, debug=False, quiet=False, |
30 interactive=True, traceback=False, report_untrusted=True, | 30 interactive=True, traceback=False, report_untrusted=True, |
31 parentui=None): | 31 parentui=None): |
32 self.overlay = None | 32 self.overlay = None |
33 self.buffers = [] | 33 self.buffers = [] |
34 self.pager = None | |
35 if parentui is None: | 34 if parentui is None: |
36 # this is the parent of all ui children | 35 # this is the parent of all ui children |
37 self.parentui = None | 36 self.parentui = None |
38 self.quiet = quiet | 37 self.quiet = quiet |
39 self.verbose = verbose | 38 self.verbose = verbose |
64 self.buffers = parentui.buffers | 63 self.buffers = parentui.buffers |
65 | 64 |
66 def __getattr__(self, key): | 65 def __getattr__(self, key): |
67 return getattr(self.parentui, key) | 66 return getattr(self.parentui, key) |
68 | 67 |
69 def __del__(self): | |
70 if self.pager: | |
71 try: | |
72 self.pager.close() | |
73 except IOException: | |
74 # we might get into an broken pipe if the users quit | |
75 # the pager before we finished io | |
76 pass | |
77 | |
78 def isatty(self): | 68 def isatty(self): |
79 if ui._isatty is None: | 69 if ui._isatty is None: |
80 ui._isatty = sys.stdin.isatty() | 70 ui._isatty = sys.stdin.isatty() |
81 return ui._isatty | 71 return ui._isatty |
82 | 72 |
379 | 369 |
380 def popbuffer(self): | 370 def popbuffer(self): |
381 return "".join(self.buffers.pop()) | 371 return "".join(self.buffers.pop()) |
382 | 372 |
383 def write(self, *args): | 373 def write(self, *args): |
384 """Write to a pager if available, otherwise to stdout""" | |
385 if self.buffers: | 374 if self.buffers: |
386 self.buffers[-1].extend([str(a) for a in args]) | 375 self.buffers[-1].extend([str(a) for a in args]) |
387 else: | 376 else: |
388 if self.getpager() and not self.pager: | |
389 self.pager = os.popen(self.getpager(), "wb") | |
390 sys.stderr = self.pager | |
391 sys.stdout = self.pager | |
392 for a in args: | 377 for a in args: |
393 sys.stdout.write(str(a)) | 378 sys.stdout.write(str(a)) |
394 | 379 |
395 def write_err(self, *args): | 380 def write_err(self, *args): |
396 try: | 381 try: |
491 '''return editor to use''' | 476 '''return editor to use''' |
492 return (os.environ.get("HGEDITOR") or | 477 return (os.environ.get("HGEDITOR") or |
493 self.config("ui", "editor") or | 478 self.config("ui", "editor") or |
494 os.environ.get("VISUAL") or | 479 os.environ.get("VISUAL") or |
495 os.environ.get("EDITOR", "vi")) | 480 os.environ.get("EDITOR", "vi")) |
496 | |
497 def getpager(self): | |
498 '''return a pager''' | |
499 if sys.stdout.isatty() and self.configbool("ui", "usepager", False): | |
500 return (self.config("ui", "pager") | |
501 or os.environ.get("PAGER")) |