xaizek / pinfo (License: GPLv2 only) (since 2018-12-07)
Console-based info and manual pages reader, which adds interactive navigation to man pages.
<root> / doc / pinfo.texi (9925202cb4c945fe111654ea869355451768e244) (22KiB) (mode 100644) [raw]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740
\input texinfo
@c %**start of header
@setfilename pinfo.info
@settitle Pinfo
@c %**end of header

@include version.texi

@set AUTHOR Przemek Borys, Bas Zoetekouw
@set CONTACT @email{pborys@@dione.ids.pl}, @email{bas@@debian.org}
@set AUTHORTEXI Stanislav Kuchar
@set CONTACTTEXI @email{thorn@@slonik.sk}, @uref{http://slonik.sk/}
@set PROGRAM @file{pinfo}

@ifinfo
This is documentation for @value{PROGRAM}, version @value{VERSION}.
Edition @value{EDITION}, date @value{UPDATED}.

@flushright
Copyright 2000 @copyright{} @value{AUTHOR}@*
@value{CONTACT}
@end flushright
@end ifinfo

@titlepage
@title Pinfo
@subtitle Version of @value{PROGRAM} @value{VERSION}
@subtitle Edition @value{EDITION}
@subtitle @value{UPDATED-MONTH}
@author @value{AUTHOR}
@author @value{CONTACT}
@page

@vskip 0pt plus 1filll

@flushright
Copyright 2000 @copyright{} @value{AUTHOR}@*
@value{CONTACT}
@end flushright

@end titlepage

@dircategory Texinfo documentation system
@direntry
* Pinfo: (pinfo).           curses based lynx-style info browser.
@end direntry

@node Top, Invoking, (dir), (dir)
@cindex Date

This documentation is for @value{PROGRAM}, version @value{VERSION}.

@menu
* Invoking::                    Command line options.
* Configuration::               Configurable behaviour of pinfo.
* Internationalization Support::  Localization.
* Author::                      Who wrote pinfo.
* Bugs::                        Help debugging.
* Copyright::                   Copying.
* Index::                       Index.

@detailmenu
 --- The Detailed Node Listing ---

Configuration

* Configuration file::          Save your preferences.
* Environment::                 Variables.

Configuration file

* Color::                       Color settings.
* Keys::                        Bindable keyboard.
* Options::                     Configuration options.
* Example config file::         Build in values.

Keys

* Keybindings::                 What keys can be used.

@end detailmenu
@end menu

@node Invoking, Configuration, Top, Top
@chapter Invoking
@cindex Description
@cindex Command line
@cindex Options
@cindex info files

@value{PROGRAM} [@var{options}] [@var{info_page}]

@value{PROGRAM} is a program for viewing info files. You specify which
page you want to read by passing it an @var{info_page} argument. This argument
contains the name of an info page (i.e. @samp{bash}). The program
will then (by default) search for it in the current directory, @file{/usr/share/info},
@file{/usr/info}, @file{/usr/local/share/info}, @file{/usr/local/info},
and @file{/opt/info}. Other searchpath may be
specified in configfile or via INFOPATH environmental variable.
Pinfo will also automatically add the suffix
@samp{-info}, @samp{-info.Z}, @samp{-info.gz}, or @samp{-info.bz2}. At
present other suffixes are not recognized, but you can easily add them
to the function @code{openinfo()} in @file{filehandling_functions.c}.

When the search for info pages fails, man is called with the @var{info_page}
argument, and its output is parsed by @value{PROGRAM}. 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 @var{info_page} is specified, the default @samp{dir} page is shown.

@noindent
Supported @var{options} are

@table @samp
@item -h, --help
print help information and exit
@item -v, --version
print version information and exit
@item -m, --manual
uses manual page instead of info by default. (@value{PROGRAM} @samp{-m}
could be used as a manual pager). Warning: Everything what follows this
option is passed to the @code{man} program. Don't be confused if
@value{PROGRAM} options, which followed @samp{-m} don't work.
When using this option, pinfo does not parse the info options as usual!
It invokes the man part of program.

You can also call the man function of @value{PROGRAM} in another way.
When @value{PROGRAM} is called with an @code{argv[0]} (the program file
name), which contains the word @code{man} in its name, the man
functions are enabled automatically.

Previously there was a symlink to @value{PROGRAM}, called @code{pman},
but I had to remove it from the distribution, since its name was in
conflict with some other utility. Anyway, you can feel free to create
such a link if you wish.
@item -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 specified location).
@item -f, --file
Same as '-r'.
@item -a, --apropos
if this is set, apropos is called when no man or info page could be
found.
@item -c, --cut-man-headers
if this is set, man parsing code will try to cut out the repeated man
headers. Use with care. ;)
@item -s, --squeeze-lines
cut empty lines from manual pages. This option enables autocutting of
every repeated newline in a manual page.
@item -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 usually appears in that

the info links, which you follow, move you to quite unexpected nodes.
@item --node=@var{nodename}, --node @var{nodename}
Go to the node @var{nodename} of info file. Since 0.6.7 it is also
possible to specify nodes as in standalone info via filenames, like
`(gcc)Introduction'.

@item --rcfile=@var{filename}, --node @var{filename}
Use alternate rcfile.
@item -l, --long-manual-links
Use long link names in manuals.  On some systems the manual hierarchy is
divided into subsections like @samp{3ncurses}, etc, while on other
systems all belongs to section @samp{3}. If this option is what your
system is like, feel free to use it.
@item  -x, --clear-at-exit
Clear screen at exit.
@end table

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!

@node Configuration, Internationalization Support, Invoking, Top
@chapter Configuration

@menu
* Configuration file::          Save your preferences.
* Environment::                 Variables.
@end menu

@node Configuration file, Environment, Configuration, Configuration
@section Configuration file
@cindex Customization
@cindex Configure

Just take a look at the example config file, @xref{Example config
file}, and at the key descriptions, @xref{Keys}. Keys available in
manual viewer differ a bit from the keys available in info viewer.

There are configuration files called @file{~/.pinforc} and
@file{[prefix]/etc/pinforc}, for local and global configuration (where
prefix is the prefix of the directory, where @value{PROGRAM} is
installed, i.e. @file{/usr/local}, or @file{/usr}).

@menu
* Color::                       Color settings.
* Keys::                        Bindable keyboard.
* Options::                     Configuration options.
* Example config file::         Build in values.
@end menu

@node Color, Keys, Configuration file, Configuration file
@subsection Color
@cindex Color
@cindex Look preferences

First you must enter a color name (all available color names are present
in the example, @xref{Example config file}, and they're self
explanatory, I think.

There is also a special color @var{COLOR_DEFAULT}, which stands for
transparency). Then you enter the foreground color, and the background
color.

The @var{BOLD} attribute means that we want the foreground color to be
highlighted. (i.e.  lightblue, lightgreen).  @var{BLINK} attribute is
the blinking attribute, or highlighted background in some other
configurations.

@node Keys, Options, Color, Configuration file
@subsection Keys
@cindex Keyboard
@cindex Configure keys
@cindex How to use it

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 its value --
either surrounded by apostrophes, or a keycode number (like in
@var{KEY_REFRESH_1}), or its mnemonic code name if its a special key
(like i.e.  in @var{KEY_FOLLOWLINK_1}).

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
want 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 @var{KEY_FOLLOWLINK_1} and
@var{KEY_FOLLOWLINK_2}.

@menu
* Keybindings::                 What keys can be used.
@end menu

@node Keybindings,  , Keys, Keys
@subsubsection Keybindings
@cindex Keybindings
@cindex Configuration Keys

Here's an explanation of the key names:

@table @var
@item KEY_TOTALSEARCH_1
Key for searching through all nodes of info file.

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

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

@item KEY_SEARCH_2
Alternate key for searching through current node (or manual).

@item KEY_SEARCH_AGAIN_1
Key for repeating the last search.

@item KEY_SEARCH_AGAIN_2
Alternate key for repeating the last search.

@item KEY_GOTO_1
Key for explicitly going to a node (by specifing its name).

@item KEY_GOTO_2
Alternate key for explicitly going to a node (by specifing its name).

@item KEY_PREVNODE_1
Key for going to a node marked as 'Prev' in the header. In manpage viewer
this goes to the previous man section.

@item KEY_PREVNODE_2
Alternate key for going to a node marked as 'Prev' in the header. In manpage
viewer this goes to the previous man section.

@item KEY_NEXTNODE_1
Key for going to a node marked as 'Next' in the header. In manpage viewer
this goes to the next man section.

@item KEY_NEXTNODE_2
Alternate key for going to a node marked as 'Next' in the header. In manpage
viewer this goes to the next man section.

@item KEY_UP_1
Key for scrolling text one line up.

@item KEY_UP_2
Alternate key for scrolling text one line up.

@item KEY_END_1
Key for going to the end of the node.

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

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

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

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

@item 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).

@item KEY_HOME_1
Key for going to the beginning of the node.

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

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

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

@item KEY_PGUP_AUTO_1
Key for going to the `up' node, when being at the top of node. (Default
value is zero -- turned off).

@item 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).

@item KEY_DOWN_1
Key for scrolling the text down one line.

@item KEY_DOWN_2
Alternate key for scrolling the text down one line.

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

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

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

@item KEY_BACK_2
Alternate key for going back (in the history of viewed nodes).

@item KEY_FOLLOWLINK_1
Key for following a hypertext link.

@item KEY_FOLLOWLINK_2
Alternate key for following a hypertext link.

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

@item KEY_REFRESH_2
Alternate key for refreshing the screen.

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

@item KEY_SHELLFEED_2
Alternate key for calling a shell command, and passing the viewed node
to the stdin of that command.

@item KEY_QUIT_1
Key for exiting the program.

@item KEY_QUIT_2
Alternate key for exiting the program.

@item KEY_GOLINE_1
Key for going to a specified line in file.

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

@item KEY_PRINT_1
Key for printing viewed node or man page.

@item KEY_PRINT_2
Alternate key for printing viewed node or man page.

@end table

The special mnemonics for keys (which are defined at present) are:

@table @var
@item KEY_BREAK

@item KEY_DOWN

@item KEY_UP

@item KEY_LEFT

@item KEY_RIGHT

@item KEY_DOWN

@item KEY_HOME

@item KEY_BACKSPACE

@item KEY_NPAGE

@item KEY_PPAGE

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

@item KEY_F(x)

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

@item KEY_ALT('c')
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.

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

@item [number]
you can also specify key as its code number.  It is useful e.g. when
specifying control keys, and some nonstandard keys.  A numerical value of
zero turns given keybinding off.

@end table

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

Warning!  Try not to create some serious keybinding conflicts!

@node Options, Example config file, Keys, Configuration file
@subsection Options
@cindex Configuration options
@cindex Manual

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.

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

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

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

@item 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 @code{INFOPATH} will
only be searched if a file with this name is not in the working
directory.

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

@item DONT-HANDLE-WITHOUT-TAG-TABLE
If set to true, pinfo will not attempt to display texinfo pages without
tag tables.

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

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

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

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

@item 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).

@item INFOPATH
This allows you to override the default search paths for info pages.
Paths should be separated by colons.

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

@item STDERR-REDIRECTION
Pinfo allows you to redirect the stderr output of called programs.  For
example if you don't want to see man's error messages about manual page
formatting, you can use @samp{STDERR-REDIRECTION="2> /dev/null"}.  This
is the default.

@item 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").

@item FILTER-0xB7
This decides, whether you want to convert 0xb7 chars to @samp{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).

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

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

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

@item CALL-READLINE-HISTORY
This true/false option determines if you want to have a prompt of last
history entry whenever calling readline wrapper, eg. in subsequent searches.

@item 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!

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

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

@end table

@node Example config file,  , Options, Configuration file
@subsection Example config file
@cindex Config file

@example
#
# 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     ='\n'
# 12 is a code for ctrl+l
KEY_REFRESH_1        =KEY_CTRL('l')
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
KEY_SEARCH_AGAIN_1   ='f'
KEY_SEARCH_AGAIN_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
INFOPATH=/usr/info:/usr/share/info:/usr/local/info
HIGHLIGHTREGEXP=bash.*has
SAFE-USER=nobody
SAFE-GROUP=nobody
@end example


@node Environment,  , Configuration file, Configuration
@section Environment
@cindex Environment configuration
@cindex Search path

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

@samp{/usr/info:/usr/somewhere/info:/not/even/in/usr/info}

etc. Directories are separated by colons.

@node Internationalization Support, Author, Configuration, Top
@chapter Internationalization Support
@cindex Languages

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
@code{$LANG}.

@node Author, Bugs, Internationalization Support, Top
@chapter Author
@cindex Who did it
@cindex Comments

@value{AUTHOR} @value{CONTACT}

A lot of other people also contributed
to this code.
See the @file{AUTHORS} file.

Please file bug reports on Github: @uref{https://github.com/baszoetekouw/pinfo}

@node Bugs, Copyright, Author, Top
@chapter Bugs

Please file bug reports on Github: @uref{https://github.com/baszoetekouw/pinfo}

@node Copyright, Index, Bugs, Top
@chapter Copyright
@cindex Copyright

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of this License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 021111, USA.

@flushright
Copyright 2000 @copyright{} @value{AUTHOR}@*
@value{CONTACT}
@end flushright

@node Index,  , Copyright, Top
@unnumbered Index

@printindex cp

@contents

@bye
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/pinfo

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/pinfo

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master