equal
deleted
inserted
replaced
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")) |
|