lessfile,
LESSOPEN(N)                                           LESSOPEN(N)



NAME
       lessfile, lesspipe - "input preprocessor" for  less.

SYNOPSIS
       lessfile, lesspipe

DESCRIPTION
       This  manual  page  documents  briefly  the  lessfile, and
       lesspipe commands.  This manual page was written  for  the
       Debian GNU/Linux distribution because the input preproces-
       sor scripts are provided by Debian GNU/Linux and  are  not
       part of the original program.

       lessfile  and  lesspipe  are  programs that can be used to
       modify the way the contents of a  file  are  displayed  in
       less.  What this means is that less can automatically open
       up tar files, uncompress gzipped files, and  even  display
       something reasonable for graphics files.

       lesspipe  will  toss  the contents/info on STDOUT and less
       will read them as they come across.  This means  that  you
       do not have to wait for the decoding to finish before less
       shows you the file.  This also means that you will  get  a
       'byte  N' instead of an N% as your file position.  You can
       seek to the end and back to get the N% but that means  you
       have to wait for the pipe to finish.

       lessfile  will toss the contents/info on a file which less
       will then read.  After you are done,  lessfile  will  then
       delete  the file.  This means that the process has to fin-
       ish before you see it, but you get nice  percentages  (N%)
       up front.

USAGE
       Just  put  one of the following two commands in your login
       script (e.g.  ~/.bash_profile):

       eval $(lessfile) or eval $(lesspipe)

USER DEFINED FILTERS
       It  is  possible  to  extend  and  overwrite  the  default
       lesspipe and lessfile input processor if you have special-
       ized requirements. Create an executable program  with  the
       name .lessfilter and put it into your home directory. This
       can be a shell script or a binary program.


       It is important that this program returns the correct exit
       code:  return 0 if your filter handles the input, return 1
       if the standard lesspipe/lessfile filter should handle the
       input.


       Here is an example script:

         #!/bin/sh

         case "$1" in
             *.extension)
                 extension-handler "$1"
                 ;;
             *)
                 # We don't handle this format.
                 exit 1
         esac

         # No further processing by lesspipe necessary
         exit 0


FILES
       ~/.lessfilter
              Executable  file  that can do user defined process-
              ing. See section  USER  DEFINED  FILTERS  for  more
              information.

BUGS
       When trying to open compressed 0 byte files, less displays
       the actual binary file contents. This is not a bug.   less
       is  designed  to do that (see manual page less(s), section
       INPUT PREPROCESSOR).  This is the answer of Mark  Nudelman
       <markn@greenwoodsoftware.com>:

              "I  recognized  when  I designed it that a lesspipe
              filter cannot output an empty file  and  have  less
              display nothing in that case; it's a side effect of
              using the "no output" case to mean "the filter  has
              nothing  to  do".   It  could have been designed to
              have some other mechanism to indicate  "nothing  to
              do",  but  "no output" seemed the simplest and most
              intuitive for lesspipe writers."


       Sometimes, less does not display  the  contents  file  you
       want  to  view  but  output that is produced by your login
       scripts  (~/.bashrc  or  ~/.bash_profile).  This   happens
       because  less  uses your current shell to run the lesspipe
       filter. Bash first looks for the variable $BASH_ENV in the
       environment expands its value and  uses the expanded value
       as the name of a file to read and execute.  If  this  file
       produces any output less will display this. A way to solve
       this problem is to put the following lines on the  top  of
       your login script that produces output:

         if [ -z "$PS1" ]; then
             exit
         fi

       This  tests whether the prompt variable $PS1 is set and if
       it isn't (which is the case for non-interactive shells) it
       will exit the script.

SEE ALSO
       less(s)

AUTHOR
       This   manual   page   was   written   by  Thomas  Schoepf
       <schoepf@debian.org>, for the Debian GNU/Linux system (but
       may be used by others). Most of the text was copied from a
       description written by Darren Stalder <torin@daft.com>.



                                                      LESSOPEN(N)