diff --git a/hgext/pager.py b/hgext/pager.py --- a/hgext/pager.py +++ b/hgext/pager.py @@ -5,50 +5,31 @@ # This software may be used and distributed according to the terms # of the GNU General Public License, incorporated herein by reference. # -# To load the extension add it to your .hgrc file +# To load the extension, add it to your .hgrc file: # # [extension] # hgext.pager = # -# To set the pager that should be used, set the application variable -# -# [pager] -# application = less -# -# You can also set environment variables there +# To set the pager that should be used, set the application variable: # # [pager] -# application = LESS='FSRX' less +# pager = LESS='FSRX' less # -# If no application is set, the pager extensions use the environment -# variable $PAGER. If neither pager.application, nor -# $PAGER is set, no pager is used. +# If no pager is set, the pager extensions uses the environment +# variable $PAGER. If neither pager.pager, nor $PAGER is set, no pager +# is used. # # If you notice "BROKEN PIPE" error messages, you can disable them -# by setting +# by setting: # -# [pager] -# quiet = True -# +# [pager] +# quiet = True import sys, os, signal -def getpager(ui): - '''return a pager - - We separate this method from the pager class as we don't want to - instantiate a pager if it is not used at all - ''' - if sys.stdout.isatty(): - return (ui.config("pager", "application") - or os.environ.get("PAGER")) - def uisetup(ui): - # disable broken pipe error messages - if ui.configbool('pager', 'quiet', False): - signal.signal(signal.SIGPIPE, signal.SIG_DFL) - - if getpager(ui): - pager = os.popen(getpager(ui), 'wb') - sys.stderr = pager - sys.stdout = pager + p = ui.config("pager", "pager", os.environ.get("PAGER")) + if p and sys.stdout.isatty(): + if ui.configbool('pager', 'quiet'): + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + sys.stderr = sys.stdout = os.popen(p, "wb")