PINFO(1) PINFO(1)
21 Mar 1999
NAME
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 recognized, but you
can easily add them to the function openinfo() 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). Warning: 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.
- 1 - Formatted: October 28, 2025
PINFO(1) PINFO(1)
21 Mar 1999
-c, --cut-man-headers - if this is set, man parsing code 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 `nodename' of info
file.
--long-manual-links, -l- Use long link names in manuals. On some
systems the manual hierarchy is divided into subsections 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 minimal 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
[prefix]/etc/pinforc, for local and global configuration (where prefix
is the prefix of the directory, where pinfo is installed, i.e.
/usr/local, or /). Here's an example of such a file; we'll discuss
the contents below:
- 2 - Formatted: October 28, 2025
PINFO(1) PINFO(1)
21 Mar 1999
# 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
# 12 is a code for ctrl+l
KEY_REFRESH_1=12
- 3 - Formatted: October 28, 2025
PINFO(1) PINFO(1)
21 Mar 1999
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 background 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).
- 4 - Formatted: October 28, 2025
PINFO(1) PINFO(1)
21 Mar 1999
If you wish to specify key by code value, use the supplied program
'testkey' to obtain the needed value. It mainly is a feature, when you
wan't to add some ctrl+letter keybindings, and similar.
For each function you can bind two keys, i.e. you could bind both
Enter and Cursor Right to the FollowLink-function. 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:
APROPOS If set to true, apropos is called if no info or man
page is found.
DONT-HANDLE-WITHOUT-TAG-TABLE
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) manpage), 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
- 5 - Formatted: October 28, 2025
PINFO(1) PINFO(1)
21 Mar 1999
man's error messages 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 0xb7 chars to
`o', or not. For example for iso-8859-2 fonts this
makes man's list marks a bit nicer ;) (look for example
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 directory, into a subdirectory, which is called `$LANG'.
- 6 - Formatted: October 28, 2025
PINFO(1) PINFO(1)
21 Mar 1999
LICENSE
This program is distributed under the terms of GPL.
BUGS
Please send bug reports to the author.
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.silesia.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 suggestions from you,
if any.
- 7 - Formatted: October 28, 2025