pinfo - curses based lynx-style info browser


SYNTAX

       pinfo [options] [infopage]


DESCRIPTION

       This  is  a  program  for  viewing info files. You specify
       which page you want to read  by  passing  it  an  infopage
       argument.  This argument contains the name of an info page
       (i.e. 'bash').  The program will then search for it in ./,
       /usr/info, and /usr/local/info.  It will also automaticaly
       add  the  suffix  '-info',   '-info.Z',   '-info.gz',   or
       '-info.bz2'.   At  present  other  suffixes are not recog­
       nized, but you can easily add them to the  function  open­
       info() in filehandling_functions.c.

       When  the  search for info pages fails, man is called with
       the infopage argument, and it's output is parsed by pinfo.
       This  means  that when you don't have the appropriate info
       page, but have a man page instead; the man  page  will  be
       viewed.

       When  no  infopage is specified, the default `dir' page is
       shown.

       Supported options are

       -h, --help - print help information and exit.

       -v, --version - print version information and exit.

       -m, --manual  -  uses  manual  page  instead  of  info  by
       default. (pinfo -m could be used as a manual pager). Warn­
       ing: Everything what follows this option is passed to  the
       `man'  program.  Don't be confused if pinfo options, which
       followed `-m' don't work.

       You can also call the man function  of  pinfo  in  another
       way.  When  pinfo  is  called with an argv[0] (the program
       file name), which contains the word 'man'  in  it's  name,
       the man functions are enabled automatically.

       Previously  there was a symlink to pinfo, called pman, but
       I had to remove it from the distribution, since it's  name
       was  in  conflict with some other utility. Anyway, you can
       feel free to create such a link if you wish.

       -r, --raw-filename - uses a raw filename first  (i.e.  the
       name which you specified as infopage is considered to be a
       real file in the current directory).

       -a, --apropos - if this is set, apropos is called when  no
       man or info page could be found.

       will try to cut out the repeated  man  headers.  Use  with
       care. ;)

       -s,  --squeeze-lines-  cut  empty lines from manual pages.
       This option enables autocutting of every repeated  newline
       in a manual page.

       -t,  --force-manual-tag-table-  forces manual detection of
       tag table. This allows you to view info pages,  which  may
       be  corrupted.  (as  i.e.  version of jed's pages, shipped
       with RH5.0). The tag table corruption ussualy  appears  in
       that  the  info links, which you follow, move you to quite
       unexpected nodes.

       --node=nodename, --node nodename- Go to  the  node  `node­
       name' of info file.

       --long-manual-links,  -l-  Use long link names in manuals.
       On some systems the manual hierarchy is divided into  sub­
       sections  like `3ncurses', etc, while on other systems all
       belongs to section `3'. If this option is what your system
       is like, feel free to use it.

       --clear-at-exit, -x- Clear screen at exit.

       The  options are handled by GNU getopt, so you can here as
       in other programs abbreviate the option names to the mini­
       mal number of characters by which the options differ.

       Warning! If you do not have getopt, these options will not
       work!


DEFAULT KEYS WHEN BROWSING INFO FILE

       Just take a look at the example config file (bellow),  and
       at  the  key descriptions. Keys available in manual viewer
       differ a bit from the keys available in info viewer.


ENVIRONMENT

       There is a variable $INFOPATH, which can specify the paths
       to  be  searched for info files. It's format is similar to
       the format of the $PATH variable. An example setting could
       look like:

       /usr/info:/usr/somewhere/info:/not/even/in/usr/info

       etc. paths are separated by colons.


COLOR AND KEY DEFINITIONS

       There  are configuration files called ~/.pinforc and [pre­
       fix]/etc/pinforc,  for  local  and  global   configuration

       is installed, i.e. /usr/local, or /).  Here's  an  example
       of such a file; we'll discuss the contents below:

       # Here are some colour setting.
       # Whitespace between the entries is optional.
       COL_NORMAL = COLOR_WHITE, COLOR_BLACK, NO_BOLD, NO_BLINK
       COL_MENUSELECTED = COLOR_RED, COLOR_BLACK, BOLD, NO_BLINK
       COL_MENU=COLOR_BLUE,COLOR_BLACK,BOLD, NO_BLINK
       COL_NOTESELECTED=COLOR_RED,COLOR_BLACK,BOLD, NO_BLINK
       COL_NOTE=COLOR_GREEN,COLOR_BLACK,BOLD, NO_BLINK
       COL_TOPLINE=COLOR_YELLOW,COLOR_BLUE,BOLD, NO_BLINK
       COL_BOTTOMLINE=COLOR_YELLOW,COLOR_BLUE,BOLD, NO_BLINK
       COL_MANUALBOLD=COLOR_WHITE,COLOR_BLACK,BOLD, NO_BLINK
       COL_MANUALITALIC=COLOR_WHITE,COLOR_BLACK,BOLD, NO_BLINK
       COL_URL=COLOR_MAGENTA,COLOR_BLACK,BOLD, NO_BLINK
       COL_URLSELECTED=COLOR_RED,COLOR_BLACK,NO_BOLD, NO_BLINK
       COL_INFOHIGHLIGHT=COLOR_WHITE,COLOR_BLACK,BOLD, NO_BLINK
       #
       # Here are some keybindings as well...
       #
       KEY_TOTALSEARCH_1 = 's'
       KEY_TOTALSEARCH_2 = 'S'
       KEY_SEARCH_1 = '/'
       KEY_SEARCH_2 = '.'
       KEY_GOTO_1='g'
       KEY_GOTO_2='m'
       KEY_HOME_1='h'
       KEY_HOME_2='H'
       KEY_PREVNODE_1='p'
       KEY_PREVNODE_2='P'
       KEY_NEXTNODE_1='n'
       KEY_NEXTNODE_2='N'
       KEY_UP_1=KEY_UP
       KEY_UP_2='u'
       KEY_END_1=KEY_END
       KEY_END_2='e'
       KEY_PGDN_1=KEY_NPAGE
       KEY_PGDN_2=' '
       KEY_PGDN_AUTO_1=0
       KEY_PGDN_AUTO_2=' '
       KEY_PGUP_1=KEY_PPAGE
       KEY_PGUP_2='b'
       KEY_PGUP_AUTO_1=0
       KEY_PGUP_AUTO_2='b'
       KEY_DOWN_1=KEY_DOWN
       KEY_DOWN_2='d'
       KEY_TOP_1=KEY_HOME
       KEY_TOP_2='t'
       KEY_BACK_1=KEY_LEFT
       KEY_BACK_2='l'
       KEY_FOLLOWLINK_1=KEY_RIGHT
       KEY_FOLLOWLINK_2='0

       KEY_REFRESH_1=12
       KEY_REFRESH_2='~'
       KEY_SHELLFEED_1='!'
       KEY_SHELLFEED_2='1'
       KEY_QUIT_1='q'
       KEY_QUIT_2='Q'
       KEY_DIRPAGE_1='d'
       KEY_DIRPAGE_2='D'
       KEY_GOLINE_1='l'
       KEY_GOLINE_2=0
       KEY_PRINT_1=']'
       KEY_PRINT_2=0
       #
       # Some options, explained in the man page
       #
       MANUAL=false
       CUT-MAN-HEADERS=true
       CUT-EMPTY-MAN-LINES=true
       RAW-FILENAME=false
       APROPOS=false
       DONT-HANDLE-WITHOUT-TAG-TABLE=false
       LONG-MANUAL-LINKS=false
       FILTER-0xB7=true
       QUIT-CONFIRMATION=false
       QUIT-CONFIRM-DEFAULT=no
       CLEAR-SCREEN-AT-EXIT=true
       STDERR-REDIRECTION="2> /dev/null"
       HTTPVIEWER=lynx
       FTPVIEWER=lynx
       MAILEDITOR=pine
       MANLINKS=1:8:2:3:4:5:6:7:9:n:p:o:3X11:3Xt
       HIGHLIGHTREGEXP=Bash.*has
       SAFE-USER=nobody
       SAFE-GROUP=nobody

       As  you  can see, the format is simple. First I'll explain
       the color definitions. First you must enter a  color  name
       (all available color names are present in the example, and
       they're self explanatory, I think. There is also a special
       color  COLOR_DEFAULT, which stands for transparency). Then
       you enter the foreground color, and the background  color.
       The BOLD attribute means that we want the foreground color
       to be highlighted. (i.e.   lightblue,  lightgreen).  BLINK
       attribute  is the blinking attribute, or highlighted back­
       ground in some other configurations.

       Now let's move to the key definitions. Here we first put a
       key name (again all keys are present in the example); then
       we enter it's value -- either surrounded  by  apostrophes,
       or  a  keycode  number  (like  in  KEY_REFRESH_1),  or its
       mnemonic code name if it's a special  key  (like  i.e.  in
       KEY_FOLLOWLINK_1).

       program 'testkey' to obtain the needed value. It mainly is
       a feature, when you wan't to add some ctrl+letter keybind­
       ings, and similar.

       For each function you can bind two keys,  i.e.  you  could
       bind  both  Enter and Cursor Right to the FollowLink-func­
       tion.  As you can see in the example above,  the  two  key
       names are KEY_FOLLOWLINK_1 and KEY_FOLLOWLINK_2.

       Here's an explanation of the key names:

              KEY_TOTALSEARCH_1
                        Key  for  searching  through all nodes of
                        info file.

              KEY_TOTALSEARCH_2
                        Alternate key for searching  through  all
                        nodes of info file.

              KEY_SEARCH_1
                        Key  for  searching  through current node
                        (or manual).

              KEY_SEARCH_2
                        Alternate key for searching through  cur­
                        rent node (or manual).

              KEY_SEARCH_AGAIN_1
                        Key for repeating the last search.

              KEY_SEARCH_AGAIN_2
                        Alternate  key  for  repeating  the  last
                        search.

              KEY_GOTO_1
                        Key for explicitly going to  a  node  (by
                        specifing it's name).

              KEY_GOTO_2
                        Alternate  key  for explicitly going to a
                        node (by specifing it's name).

              KEY_PREVNODE_1
                        Key for going to a node marked as  'Prev'
                        in the header.

              KEY_PREVNODE_2
                        Alternate  key for going to a node marked
                        as 'Prev' in the header.

                        Key for going to a node marked as  'Next'
                        in the header.

              KEY_NEXTNODE_2
                        Alternate  key for going to a node marked
                        as 'Next' in the header.

              KEY_UP_1  Key for scrolling text one line up.

              KEY_UP_2  Alternate key for scrolling text one line
                        up.

              KEY_END_1 Key for going to the end of the node.

              KEY_END_2 Alternate key for going to the end of the
                        node.

              KEY_PGDN_1
                        Key for going one page down in the viewed
                        node.

              KEY_PGDN_2
                        Alternate  key for going one page down in
                        the viewed node.

              KEY_PGDN_AUTO_1
                        Key for  going  to  the  next  node  when
                        you're  at  the  end  of node (default is
                        zero -- turned off).

              KEY_PGDN_AUTO_2
                        Alternate key for going to the next  node
                        when  you're  at the end of node (default
                        is space, as for pgdn_2).

              KEY_HOME_1
                        Key for going to  the  beginning  of  the
                        node.

              KEY_HOME_2
                        Alternate  key for going to the beginning
                        of the node.

              KEY_PGUP_1
                        Key for going one page up in  the  viewed
                        node.

              KEY_PGUP_2
                        Alternate  key  for  going one page up in
                        the viewed node.

              KEY_PGUP_AUTO_1
                        Key for going  to  the  `up'  node,  when

                        is zero -- turned off).

              KEY_PGUP_AUTO_2
                        Alternate key for going to the `up' node,
                        when  being at the top of node.  (Default
                        value is `-', as for pgup_2).

              KEY_DOWN_1
                        Key for scrolling the text down one line.

              KEY_DOWN_2
                        Alternate key for scrolling the text down
                        one line.

              KEY_TOP_1 Key for going to the top (first) node.

              KEY_TOP_2 Alternate  key  for  going  to  the   top
                        (first) node.

              KEY_BACK_1
                        Key  for  going  back  (in the history of
                        viewed nodes).

              KEY_BACK_2
                        Alternate key for going back (in the his­
                        tory of viewed nodes).

              KEY_FOLLOWLINK_1
                        Key for following a hypertext link.

              KEY_FOLLOWLINK_2
                        Alternate  key  for following a hypertext
                        link.

              KEY_REFRESH_1
                        Key for refreshing the screen  (hardcoded
                        is the ^L value).

              KEY_REFRESH_2
                        Alternate  key for refreshing the screen.

              KEY_SHELLFEED_1
                        Key for  calling  a  shell  command,  and
                        passing  the  viewed node to the stdin of
                        that command.

              KEY_SHELLFEED_2
                        Alternate key for calling  a  shell  com­
                        mand,  and passing the viewed node to the
                        stdin of that command.

              KEY_QUIT_1
                        Key for exiting the programm.

                        Alternate key for exiting the programm.

              KEY_GOLINE_1
                        Key for going  to  a  specified  line  in
                        file.

              KEY_GOLINE_2
                        Alternate  key  for  going to a specified
                        line in file.

              KEY_PRINT_1
                        Key for printing viewed node or man page.

              KEY_PRINT_2
                        Alternate key for printing viewed node or
                        man page.

       The special mnemonics for keys (which are defined at  pre­
       sent) are:

              KEY_BREAK

              KEY_DOWN

              KEY_UP

              KEY_LEFT

              KEY_RIGHT

              KEY_DOWN

              KEY_HOME

              KEY_BACKSPACE

              KEY_NPAGE

              KEY_PPAGE

              KEY_END [Note: this works probably ONLY with linux
                        ncurses]

              KEY_F(x)

              KEY_CTRL('c')
                        - this assigns the key value to a  ctrl+c
                        combination.  c  may  be  any  letter you
                        wish.

                        - this assigns the key value to  a  alt+c
                        combination.  c  may  be  any  letter you
                        wish. If alt key won't work, you may  use
                        ESC+key combination.

              'c'       - this means a printable character c. The
                        syntax is just like in C/C++ ;).

              [number]  - you can also specify key as  it's  code
                        number.  It is useful e.g. when specifing
                        control keys, and some nonstandard  keys.
                        A  numerical  value  of  zero turns given
                        keybinding off.

       See manual page for curs_getch  (3x)  for  description  of
       their meaning.

       Warning!  Try  not  to create some serious keybinding con­
       flicts!

       The options in the last part of the example  configuration
       file  should  be  fairly  self-explanatory.  The variables
       that can be set to true or false do the same things as the
       commandline arguments with the same names.

              MANUAL    If  this is set to true the default is to
                        first check for a man page, instead of  a
                        texinfo file.

              CUT-MAN-HEADERS
                        If  set  to true, then pinfo tries to cut
                        off the repeated headers  throughout  man
                        pages.

              CUT-EMPTY-MAN-LINES
                        If  set  to true, then pinfo tries to cut
                        off the repeated newlines (i.e.  it  will
                        shorten  every  repeating newlines to one
                        newline).

              RAW-FILENAME
                        If set to  true,  the  file  argument  is
                        taken  to  be  the  name of a file in the
                        current  working  directory,   i.e.   the
                        directories  in  INFOPATH  will  only  be
                        searched if a file with this name is  not
                        in the working directory.

              APROPOS   If  set  to true, apropos is called if no
                        info or man page is found.

                        If set to true , pinfo will  not  attempt
                        to  display  texinfo  pages  without  tag
                        tables.

              HTTPVIEWER
                        Set this to the program you want  to  use
                        to follow http links in documents.

              FTPVIEWER Set  this  to the program you want to use
                        to follow ftp links in documents.

              MAILEDITOR
                        Set this to your favourite email program,
                        and  it  will be started if you follow an
                        email link in a document.

              PRINTUTILITY
                        Utility, which you use for printing. I.e.
                        `lpr'. If you don't use any, you may also
                        try something like  `cat  >/dev/lp1',  or
                        sth. ;)

              MANLINKS  This  specifies  the section names, which
                        may be referenced in your man pages (i.e.
                        Xtoolkit  man pages match the section 3Xt
                        (see for example  XtVaCreateWidget)  man­
                        page),  Xlib function pages match section
                        3X11, etc. Such  extensions  may  not  be
                        recognized  by  default,  so it is a good
                        idea to add them).

              MAN-OPTIONS
                        This specifies the options, which  should
                        be  passed  to  the  `man' program.  (see
                        man(1) for description  of  what  they're
                        like).

              STDERR-REDIRECTION
                        Pinfo  allows  you to redirect the stderr
                        output of called programms.  For  example
                        if you don't want to see man's error mes­
                        sages about manual page  formatting,  you
                        can use STDER-REDIRECTION="2> /dev/null".
                        This is the default.

              LONG-MANUAL-LINKS
                        This is another true/false option,  which
                        decides whether your system supports long
                        manual  section  names,  or  not.   (i.e.
                        "3ncurses" instead of "3").

              FILTER-0xB7
                        This decides, whether you want to convert

                        for  iso-8859-2  fonts  this  makes man's
                        list marks a bit nicer ;) (look for exam­
                        ple  at perl's man page, to see how those
                        marks look like).

              QUIT-CONFIRMATION
                        This decides whether you want to use quit
                        confirmation on exit, or not.

              QUIT-CONFIRM-DEFAULT
                        This yes/no option determines the default
                        answer to the  QUIT-CONFIRMATION  dialog.
                        (default  answer is when you press a key,
                        that does not match the asked  question).

              CLEAR-SCREEN-AT-EXIT
                        This  true/false option determines if you
                        want to have your screen cleared at exit,
                        or no.

              HIGHLIGHTREGEXP
                        This  is an option, through which you may
                        pass to pinfo regexps,  which  should  be
                        highlighted  when  working with document.
                        Warning! This may turn very slow  if  you
                        use it without care!

              SAFE-USER This  option  is used to pass the name of
                        user, to which suid  when  pinfo  is  run
                        with root privileges.

              SAFE-GROUP
                        This  option  is used to pass the name of
                        group, to which suid when  pinfo  is  run
                        with root privileges.


INTERNATIONALIZATION SUPPORT

       Pinfo  implements  general features of gnu gettext library
       (the thing, which you need to see  national  messages  ;).
       But  it  is  not the end. Pinfo allows you to use national
       info pages! You only need to put them to your info  direc­
       tory, into a subdirectory, which is called `$LANG'.


LICENSE

       This program is distributed under the terms of GPL.


BUGS

       Please send bug reports to the author.

       Przemek Borys <pborys@dione.ids.pl>

       If  that E-mail address wont work (since the machine where
       it is being handled is a bit damaged lately), you can  try
       pborys@zeus.polsl.gliwice.pl,    or    pborys@p-soft.sile­
       sia.linux.org.pl.

       There was also a lot of other people, who  contributed  to
       this code. See the AUTHORS file.


COMMENTS

       The  author  would  like to read some comments and sugges­
       tions from you, if any.


Man(1) output converted with man2html