Mercurial > hg
annotate hgext/pager.py @ 6364:b22b39059722
Make tip help more helpful
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sun, 23 Mar 2008 21:40:27 +0100 |
parents | ee1077b41d5c |
children | 13fafd8cc4a1 fb76d58f5fee |
rev | line source |
---|---|
6323
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
1 # pager.py - display output using a pager |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
2 # |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
3 # Copyright 2008 David Soria Parra <dsp@php.net> |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
4 # |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
5 # This software may be used and distributed according to the terms |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
6 # of the GNU General Public License, incorporated herein by reference. |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
7 # |
6324
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
8 # To load the extension, add it to your .hgrc file: |
6323
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
9 # |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
10 # [extension] |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
11 # hgext.pager = |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
12 # |
6324
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
13 # To set the pager that should be used, set the application variable: |
6323
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
14 # |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
15 # [pager] |
6324
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
16 # pager = LESS='FSRX' less |
6323
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
17 # |
6324
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
18 # If no pager is set, the pager extensions uses the environment |
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
19 # variable $PAGER. If neither pager.pager, nor $PAGER is set, no pager |
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
20 # is used. |
6323
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
21 # |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
22 # If you notice "BROKEN PIPE" error messages, you can disable them |
6324
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
23 # by setting: |
6323
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
24 # |
6324
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
25 # [pager] |
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
26 # quiet = True |
6323
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
27 |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
28 import sys, os, signal |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
29 |
6e1308a09ffd
Use the pager given by the environment to display long output
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
30 def uisetup(ui): |
6324
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
31 p = ui.config("pager", "pager", os.environ.get("PAGER")) |
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
32 if p and sys.stdout.isatty(): |
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
33 if ui.configbool('pager', 'quiet'): |
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
34 signal.signal(signal.SIGPIPE, signal.SIG_DFL) |
ee1077b41d5c
pager: further simplify code, clean up comments
Matt Mackall <mpm@selenic.com>
parents:
6323
diff
changeset
|
35 sys.stderr = sys.stdout = os.popen(p, "wb") |