File: //lib64/python2.7/site-packages/hgext/pager.pyc
�
Hq�Qc @ s� d Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z m
Z
m Z m Z d d l
m Z d Z d � Z d � Z d � Z d � Z d
� Z d d d
d d d d g Z d S( s browse command output with an external pager
To set the pager that should be used, set the application variable::
[pager]
pager = less -FRX
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.
You can disable the pager for certain commands by adding them to the
pager.ignore list::
[pager]
ignore = version, help, update
You can also enable the pager only for certain commands using
pager.attend. Below is the default list of commands to be paged::
[pager]
attend = annotate, cat, diff, export, glog, log, qdiff
Setting pager.attend to an empty value will cause all commands to be
paged.
If pager.attend is present, pager.ignore will be ignored.
To ignore global commands like :hg:`version` or :hg:`help`, you have
to specify them in your user configuration file.
The --pager=... option can also be used to control when the pager is
used. Use a boolean value like yes, no, on, off, or use auto for
normal behavior.
i����N( t commandst dispatcht utilt
extensions( t _t internalc C s� t j t d � sL t j | d � t _ | j t j � rH t j t _ n d St j � \ } } t j � } | d k r� t j
| � t j | t j j � � | j t j � r� t j | t j j � � n t j
| � d St j | t j
j � � t j
| � t j
| � y t j d d d | g � WnN t k
r{} | j t j k rut j | � } t j | d | � q|� n Xd S( Nt forkt wbi s /bin/shs -c( R t safehasattrt ost popent syst stdoutt _isattyt stderrt pipeR t closet dup2t filenot stdint execvpt OSErrort errnot ENOENTt shlext split( t uit pt fdint fdoutt pidt et args( ( s1 /usr/lib64/python2.7/site-packages/hgext/pager.pyt
_pagerfork8 s0
c s� t j | d t d d d t j d t j d t j d t j �� t j
t j j � � � t j
t j j � � � t j � j
j � t j j � � | j t j � r� t j � j
j � t j j � � n t j � � � f d � � } d S( Nt shellt bufsizei����t close_fdsR R R c sx t j t d � r+ t j t j t j � n � j j � t j � t j
j � � t j � t j j � � � j
� d S( Nt SIGINT( R R t signalR% t SIG_IGNR R R R R R R R t wait( ( t pagerR R ( s1 /usr/lib64/python2.7/site-packages/hgext/pager.pyt killpager_ s
( t
subprocesst Popent TrueR t closefdst PIPER R R R t dupR R R R
t atexitt register( R R R* ( ( R) R R s1 /usr/lib64/python2.7/site-packages/hgext/pager.pyt _pagersubprocessT s "%c C s0 t j d k r t | | � n
t | | � d S( Ni i ( i i ( R t version_infoR3 R! ( R R ( ( s1 /usr/lib64/python2.7/site-packages/hgext/pager.pyt _runpagerh s c C s@ d t j k s | j � r d Sd � } t j t d | � d S( Ns
--debuggerc S s | j d d t j j d � � } | r | j d d t � } | d d k } t j | d � } | s� | r | | k s� | | j d d � k r | r | j d d | j � � | j d d t
� t j t d � r� t j t j
t j � n t | | � q n | | | | | � S(
NR) t PAGERt attendt autot ignoreR t formattedt interactivet SIGPIPE( t configR t environt gett
configlistt attendedR t parseboolt setconfigR: t FalseR R&