man-1.6g/0000755000175000001440000000000011507440334012017 5ustar lucifredusersman-1.6g/COPYING0000644000175000001440000004307610301736016013060 0ustar lucifredusers GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy 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 the 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 this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. man-1.6g/README0000644000175000001440000000333210663134221012675 0ustar lucifredusersman was written by John Eaton (jwe@bevo.che.wisc.edu). He does not maintain man anymore - please do not bother him with remarks about the current version, which is rather different from the original one. man-1.2 was released by Zeyd M. Ben-Halim (zmbenhal@netcom.com). man-1.3, man-1.4* and man-1.5* were released by Andries Brouwer (aeb@cwi.nl). In man-1.5 Richard Verhoeven's man2html was added, together with some scripts by Michael Hamilton. man-1.6 and versions following were released by Federico Lucifredi (flucifredi@acm.org). In man-1.6 Eric S. Raymond's browser-handoff functionality was added, with future minor versions planned to cleanup internationalization and cross platform support (Cygwin, solaris, and perhaps Win32). A bugfixing campaign is currently underway. The current maintainer is Federico Lucifredi (flucifredi@acm.org). The current version can usually be found at http://primates.ximian.com/~flucifredi/man/ a backup distribution site is located at http://people.fas.harvard.edu/~lucifred/man/ releases are also posted to the Metalab site regularly. Feedback from distribution packagers is very appreciated. Patches welcome! Man versions are codenamed for bats, starting with 1.6e. Development releases have an 'RC-' suffix followed by the release candidate number. Versions released under the 'RC' label are not to be included in stable distributions (and indeed no one has been to date - do not be the first to goof up!). There is a very different man program, also derived from John Eaton's original version (by Graeme W. Wilford) distributed under the name man_db, with version numbers like man_db-2.3.10. Do not confuse the two, they are mutually incompatible, although they perform nearly the same job. man-1.6g/README.HP0000644000175000001440000000773010361257243013216 0ustar lucifredusersPeople tell me that HP uses compressed man pages named like /usr/man/man1.Z/ls.1 that is, the directory instead of the file has an extension. I have no access to HP machines, and do not know the details of this situation (what happens to cat files? to .so files?), but perhaps this man is usable in such a situation if one puts MAN_HP_DIREXT=.Z in the environment. Untested. Tell me if this works, and if not what is wrong. I may yet gain access to an HP-UX box and verify this myself. flc - flucifredi@acm.org P.S. A report mentions cat1.Z cat1m.Z cat2.Z ... cat8.Z man1 man1.Z man1m man1m.Z ... man8 man8.Z man9.Z subdirectories of /usr/share/man, where the cat dirs are owned by bin:bin with mode 0777 and the man dirs are owned by bin:bin with mode 0555. Scott Marovich adds: As far as your GNU software is concerned, the first very important point is: The paths used for compressed manual pages represent only the tip of a very deep iceberg: Historically, HP-UX derives from A.T.&T. UNIX System V (and System III before that) with some selected BSD features added later, and it doesn't even purport to be GNU-compatible. For many years HP sold a binary HP-UX port of the A.T.&T. Documenter's Work Bench as an optional product, and HP-UX's versions of "man(1)" and "nroff(1)" (etc.) strive to be DWB-compatible. Similarly, the manual pages use only plain, old, simple A.T.&T. "man(7)" macros, HP-UX's standard data-compression utility command is "compress(1)"/"zcat(1)" instead "gzip(1)", and HP-UX follows System V conventions about where to cache formatted pages: they go into directories such as "/usr[/share]/man/cat*" instead of "/var/cache/man" like under Linux. System V "man(1)" can optionally accept compressed input and/or produce compressed output, and it has a built-in algorithm for deciding which directories to use. Assuming, for example, that manual page "foo.1" is requested, the algorithm works like this: (Output-directory search:) If a "/usr[/share]/man/cat1.Z" directory exists, look for a cached (formatted, compressed) "foo.1" file in it; otherwise, if a "/usr[/share]/man/cat1" directory exists, look for a cached (formatted, uncompressed) "foo.1" file in it; otherwise, no formatted-and-cached form of the page exists. After an input page is formatted, it will be compressed and cached if the "cat1.Z" directory exists, or cached without compression if only the "cat1" directory exists, or discarded if neither exist. (Input-directory search:) If "/usr[/share]/man/man1.Z/foo.1" exists, then decompress and format this file; otherwise, if "/usr[/share]/man/foo.1" exists, then format this uncompressed file; otherwise, assume that the manual page is missing. Notice that: 1. Priority is automatically given to fetching and storing manual pages in compressed form if the necessary directories exist. 2. Unlike GNU-compatible path naming schemes, the "regular" files containing [un]formatted manual-page text do *not* have ".Z" (let alone ".gz") suffixes; only their containing directories do. As far as these file's protection modes are concerned, that's partly up to a local HP-UX system administrator. If one prefers not to have "man(1)" be a set-UID/GID binary, then the usual custom is: man?[.Z] directories : mode 555 man?[.Z]/.* files: mode 444 cat?[.Z] directories : mode 777 cat?[.Z]/.* files: mode 666 i.e., any user can delete any other user's cached, formatted pages. If one prefers to run "man(1)" as a set-UID/GID program for a little more control, then an alternative scheme is, say: cat?[.Z] directories : mode 755/575 cat?[.Z]/.* files: mode 644/464 You also expressed some curiousity about the treatment of ".so" directives in compressed manual pages. The answer is simple: there aren't any. ".so" is rarely used in general, so the HP department responsible for producing HP-UX's manual pages decided to "soelim(1)" the small number of exceptions (before compressing the result) in order to avoid dealing with this problem. man-1.6g/README.GNU-WIN320000644000175000001440000000136010662643064014135 0ustar lucifredusersVolker Zell writes: To run a precompiled version of man with Cygwin 1.5.24 and above you will need the following utilities o man, bash, cygwin, bzip2, coreutils, gawk, groff, gzip and less Click on the "Install Cygwin now" link on the http://cygwin.com/ web page. This downloads setup.exe to your system. Save it and run setup, answer the questions and pick up the above mentioned packages from the different categories. Building from source ==================== Adjust the paths in configure and man2html/Makefile.in to suit your installation. man-1.6e builds with: CC="gcc -O2 -DNONLS -DLC_MESSAGES=6" ./configure +fhs +lang all then issue: make then: make install Edit the installed man.conf to suit your site. man-1.6g/INSTALL0000644000175000001440000000600310301736016013043 0ustar lucifredusersINSTALLATION NOTE! The default configuration file has moved from /usr/lib/man.config or /etc/man.conf to /usr/share/misc/man.conf. Remove the former two. The country code dk has been replaced by the language code da. If you had Danish man pages installed, these should probably be moved. The quick installation goes in three steps: 1. configure -default 2. make 3. make install This should suffice for most people. The defaults are: Only English man pages, no message catalogs, man not suid, handle compressed man pages, compress cat pages, create cat pages whenever the appropriate directory exists, follow FHS by putting cat pages under /var/cache/man provided that that directory exists. In order to select man pages in other languages, replace Step 1 by 1. configure +lang de,en,nl or perhaps (especially when making a general distribution) by 1. configure +lang all This yields all the defaults, except for the language setting. People who want something other than the default also use three steps: 1. configure -ask 2. make 3. make install but have to answer a lot of questions during configure. In somewhat greater detail: 1. Run configure. This will grope around your system a bit and then ask you a number of questions. It will create a Makefile from the file Makefile.in. You may have to do some fine tuning to get things to work exactly right on your system. If you do, I'd like to know what changes you had to make to get things working. Man uses groff (nroff, troff) to format man pages. If you don't have *roff, then you can only use preformatted man pages. You can make man suid to some uid, say man, where man is the owner of the directories (like /usr/man/cat*) for formatted man pages. That way man can write formatted pages there, even when the directory does not have universal write permission. However, it is fairly easy to spoof man, so really this setup is not very different from the one where /usr/man/cat* has universal write permission. Never make man suid bin or daemon or root! Of course it is not necessary at all to cache formatted man pages. Formatting usually takes less than a second, and by not having preformatted pages one avoids problems with window width, integrity, etc. 2. Look at the man.conf file. This determines the programs and extensions used in compressing and uncompressing cat pages. It also determines the system-wide mappings from bin directories to man page directories. It was constructed by configure; you might want to make some changes. 3. Do a `make all', try it out, and then if you're happy with that, do a `make install'. You don't need to be root to use this set of programs. [Note: if you want to try man with the new, not yet installed, man.conf file, use "man -C ./man.conf ...".] 4. Install the whatis database(s) by running makewhatis. If you want to keep things absolutely current, you'll need to run this whenever you add new man pages. You might want to add an entry in your crontab. man-1.6g/Makefile.in0000644000175000001440000000421310446001766014067 0ustar lucifredusers# Makefile for man # [need allow_null_glob_expansion=true] # The parts behind % are removed when no message catalogs should be installed all: Makefile conf_script source manhtml manpages %messages @echo; echo 'You can now do "make install"' # On a machine with time before distribution time # it may be necessary to touch all distributed files Makefile: Makefile.in configure @echo "Please run configure first" exit 1 conf_script: configure @echo "Please run configure first" exit 1 src/Makefile: conf_script src/Makefile.in cd src; ../conf_script Makefile man2html/Makefile: conf_script man2html/Makefile.in cd man2html; ../conf_script Makefile man/Makefile: conf_script man/Makefile.in cd man; ../conf_script Makefile msgs/Makefile: conf_script msgs/Makefile.in cd msgs; ../conf_script Makefile makefiles: src/Makefile man2html/Makefile man/Makefile msgs/Makefile source: src/Makefile cd src; $(MAKE) manhtml: man2html/Makefile source cd man2html; $(MAKE) manpages: man/Makefile cd man; $(MAKE) subdirs %messages: gencat/gencat msgs/Makefile source % cd msgs; $(MAKE) %gencat/gencat: % cd gencat; $(MAKE) install: src/Makefile man/Makefile man2html/Makefile %msgs/Makefile cd src; $(MAKE) install cd man2html; $(MAKE) install cd man; $(MAKE) installsubdirs % cd msgs; $(MAKE) install @echo; echo 'Done.' @echo 'In case you want to browse man pages using a www browser,' @echo '"cd man2html", read README, and perhaps "make install-scripts".' # @echo; echo 'Done. In case you want to mount /usr read-only, please' # @echo 'install a symlink /usr/man/whatis -> /var/catman/whatis, or so.' clean: src/Makefile man/Makefile msgs/Makefile man2html/Makefile cd src; $(MAKE) clean cd man2html; $(MAKE) clean cd man; $(MAKE) cleansubdirs cd msgs; $(MAKE) clean cd gencat; $(MAKE) clean rm -f core *~ spotless distclean reallyclean: clean cd src; $(MAKE) spotless cd man2html; $(MAKE) spotless cd man; $(MAKE) spotlesssubdirs cd msgs; $(MAKE) spotless cd gencat; $(MAKE) clean rm -f conf_script Makefile DISTR = COPYING README README.HP README.RedHat README.GNU-WIN32 INSTALL \ Makefile.in configure src man2html man msgs gencat catopen misc man-1.6g/configure0000755000175000001440000010025711507436376013746 0ustar lucifredusers#!/bin/sh # # Guess values for system-dependant variables and create `Makefile'. # Can be distributed according to GPL. # # Usage: # configure -ask (ask all questions) # # As soon as some other option is specified, configure # will not ask questions. Other options: # # configure -d[efault] (language=en, +fhs) # configure -confdir DIR (directory to hold man.conf) # configure +suid/sgid (make man suid or sgid) # configure +lang cs,da,de,el,en,es,fi,fr,hr,it,ko,nl,pl,pt,ro,sl # (language(s) as given) # ("all" will specify all available languages) # ("none" will disable NLS support) # configure +fhs (follow FHS: use /var/cache/man) # configure +fsstnd (follow FSSTND: use /var/catman) # LANGUAGES="bg,cs,da,de,el,en,es,fi,fr,hr,it,ja,ko,nl,pl,pt,ro,ru,sl" LANGOPT="+lang {$LANGUAGES|all|none}" # # Some people prefer "-irs", but probably only when they have a broken setup. # (Indeed, -r may cause the terminal to get into funny states. # Very inconvenient. For viewing pages in strange locales, set LC_*.) # DEFAULTLESSOPT="-is" # # Note that not creating any cat directories (/var/cache/man or so) # and not making man suid or sgid is recommended. # This avoids security problems, the fact that different users have # different window sizes and different character sets, etc. # Formatting is fast enough today. trap 'rm -f conftest conftest.c; exit 1' 1 3 15 set +u # Make sure unset variables are ok. if [ $# = 0 ]; then echo "Usage: configure -ask" echo " or: configure [-d|-default] [-confdir DIR] [+suid] [+sgid] \\" echo " [+fhs|+fsstnd|+traditional] [+lang none|all|LANGUAGES]" echo " where LANGUAGES is a substring of $LANGUAGES". echo echo 'The default "configure -d" is equivalent to "configure +fhs +lang en".' echo 'The option +suid will make man suid to a user "man". Create this first.' echo 'The option +sgid will make man sgid to a group "man". Create this first.' echo 'The options +fhs, +fsstnd, +traditional will make man use' echo ' /var/cache/man, /var/catman and /usr/man/cat?, respectively.' echo 'It is recommended not to use suid/sgid and not to keep cat pages.' echo 'The -confdir option specifies where man.conf lives (default /usr/share/misc).' echo exit 1 fi default=true usenls=true for arg in $*; do if [ x$setlang = xtrue ] then case $arg in none) usenls=false ;; all) languages="??" ;; *) languages=`echo $arg | sed -e 's/,/ /g'` esac setlang=false elif [ x$setconfdir = xtrue ] then confdir=$arg confexplicit=1 setconfdir=false else # help people used to GNU-style --options # e.g. --enable-suid, --disable-suid, --prefix case $arg in --enable-*) arg=`echo $arg | sed -e 's/--enable-/+/'` ;; --disable-*) arg=`echo $arg | sed -e 's/--disable-/-/'` ;; --*) arg=`echo $arg | sed -e 's/--/-/'` esac case $arg in -default | -d) usefhs=true ;; -ask | -a) default= ;; -prefix=*) prefix=`echo $arg | sed -e 's/-prefix=//'` ;; -bindir=*) bindir=`echo $arg | sed -e 's/-bindir=//'` ;; -confdir=*) confdir=`echo $arg | sed -e 's/-confdir=//'` confexplicit=1 ;; -confdir) setconfdir=true; ;; -confprefix=*) confprefix=`echo $arg | sed -e 's/-confprefix=//'` ;; -mandir=*) mandir=`echo $arg | sed -e 's/-mandir=//'` manexplicit=1 ;; -sbindir=*) sbindir=`echo $arg | sed -e 's/-sbindir=//'` ;; +lang) setlang=true ;; +suid) suid=true ;; -suid) suid=false ;; +sgid) sgid=true ;; -sgid) sgid=false ;; +traditional) usefsstnd=false usefhs=false ;; +fsstnd) usefsstnd=true ;; -fsstnd) usefsstnd=false ;; +fhs) usefhs=true ;; -fhs) usefhs=false ;; -compatibility_mode_for_colored_groff) set_compatibility_mode_for_colored_groff=true; ;; *) echo "Usage: configure -ask" echo " or: configure [-d|-default] [-confdir DIR] [+suid] [+sgid] \\" echo " [+fhs|+fsstnd|+traditional] [+lang all|LANGUAGES]" echo " where LANGUAGES is a substring of $LANGUAGES". echo echo 'The default "configure -d" is equivalent to "configure +fhs +lang en".' echo 'The option +suid will make man suid to a user "man". Create this first.' echo 'The option +sgid will make man sgid to a group "man". Create this first.' echo 'The options +fhs, +fsstnd, +traditional will make man use' echo ' /var/cache/man, /var/catman and /usr/man/cat?, respectively.' echo 'The -confdir option specifies where man.conf lives (default /usr/share/misc).' exit 1 ;; esac fi done # Default installation paths # # prefix="/usr/local" or "/usr" # confprefix="/usr/local" or "/usr" or "/etc" # # The configuration file has various names and pathnames in the # various distributions, such as /usr/share/misc/man.conf, # /usr/lib/man.conf, /etc/man.config. # The FHS wants it in /usr/share/misc # All documentation assumes "man.conf" - in case you invent some other name # (why?), also man pages and other docs need to be patched. if [ -z "${prefix}" ]; then prefix="/usr"; fi if [ -z "${confprefix}" ]; then confprefix=${prefix}; fi if [ -z "${bindir}" ]; then bindir="${prefix}/bin"; fi if [ -z "${sbindir}" ]; then sbindir="${prefix}/sbin"; fi if [ -z "${mandir}" ]; then mandir="${prefix}/man"; fi if [ -z "$manexplicit" -a x"$usefhs" = xtrue ]; then mandir="${prefix}/share/man" fi if [ -z "$confexplicit" ]; then confdir="${confprefix}/lib" if [ x"$usefhs" = xtrue ]; then confdir="${confprefix}/share/misc" fi fi conffilename="man.conf" if test "$RANDOM" = "$RANDOM"; then # Plain old Bourne shell. echo checking for gcc test -z "$CC" -a -n "`gcc 2>&1`" && CC="gcc -O" else # ksh, bash or zsh. ksh and zsh write "command not found" to stderr. echo checking for gcc test -z "$CC" && type gcc && CC="gcc -O" fi CC=${CC-cc} BUILD_CC=${BUILD_CC-${CC}} INSTALL=${INSTALL-install} INCLUDEDIR=${INCLUDEDIR-/usr/include} rm -f conftest conftest.c compile="$CC $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1" # Check for various header files. echo checking for ANSI C header files echo "#include #include main() { exit(0); strerror(0); }" > conftest.c eval $compile if test -s conftest && ./conftest 2>/dev/null; then DEFS="$DEFS -DSTDC_HEADERS" fi echo checking for Windows EXEEXT EXEEXT= test -f ./conftest.exe && EXEEXT=.exe rm -f conftest conftest.c echo checking for sys/termios.h echo "#include main() { exit(0); }" > conftest.c eval $compile if test -s conftest && ./conftest 2>/dev/null; then DEFS="$DEFS -DTERMIOS_HEADER" fi rm -f conftest conftest.c echo checking for POSIX.1 header files echo "#include main() { #ifdef _POSIX_VERSION exit(0); #else exit(1); #endif }" > conftest.c eval $compile if test -s conftest && ./conftest 2>/dev/null; then DEFS="$DEFS -DPOSIX" fi rm -f conftest conftest.c echo checking for BSD string and memory functions echo "#include main() { exit(0); rindex(0, 0); bzero(0, 0); }" > conftest.c eval $compile if test -s conftest && ./conftest 2>/dev/null; then : else DEFS="$DEFS -DUSG" fi rm -f conftest conftest.c echo checking whether sys/types.h defines uid_t echo '#include main() { uid_t x; exit(0); }' > conftest.c eval $compile if test -s conftest && ./conftest 2>/dev/null; then : else uid_t=`awk '/pw_uid;/ {print $1}' $INCLUDEDIR/pwd.h` DEFS="$DEFS -Duid_t=${uid_t} -Dgid_t=${uid_t}" fi rm -f conftest conftest.c echo checking for Xenix if test -f /xenix; then LIBS="$LIBS -lx" case "$DEFS" in *SYSNDIR*) ;; *) LIBS="-ldir $LIBS" ;; # Make sure -ldir precedes any -lx. esac fi echo checking how to get alloca echo ' #ifdef __GNUC__ #define alloca __builtin_alloca #else #ifdef sparc #include #else #ifdef _AIX #pragma alloca #else char *alloca (); #endif #endif #endif main() { char *p = (char *) alloca(1); exit(0); }' > conftest.c eval $compile if test -s conftest && ./conftest 2>/dev/null; then : elif test -d /usr/ucblib; then LIBS="$LIBS -L/usr/ucblib -lucb" elif test -f /usr/lib/libPW.a; then LIBS="$LIBS -lPW" else DEFS="$DEFS -DALLOCA_MISSING" fi rm -f conftest conftest.c if [ $usenls = true ]; then echo checking for nls echo '#include main() {nl_catd catfd; exit(0); }' > conftest.c eval $compile if test -s conftest && ./conftest 2>/dev/null; then : else usenls=false fi rm -f conftest conftest.c fi if [ $usenls = false ]; then DEFS="$DEFS -DNONLS" fi echo checking for getopt.h echo '#define _GNU_SOURCE #include #include struct option long_opts[] = { { "", no_argument, NULL, 0 } }; main() { exit(0); }' > conftest.c eval $compile if test -s conftest && ./conftest 2>/dev/null; then manpathoption="--path" else manpathoption="-w" DEFS="$DEFS -DNOGETOPT" fi rm -f conftest conftest.c # first determine how to suppress newline on echo command (stolen from # Perl's Configure) ... echo "Checking echo to see how to suppress newlines..." (echo "hi there\c" ; echo " ") >conftest if grep c conftest >/dev/null 2>&1 ; then echo "...using -n." n='-n' c='' else cat <<'EOM' ...using \c EOM n='' c='\c' fi rm -f conftest # Ask the installer where various things are located. # (A separate variable is needed since various shells do # word-splitting at different moments, which means that # for i in /bin:/usr/bin:$PATH # does not work everywhere.) # Some people might prefer having $PATH first in PREPATH PREPATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:$PATH IFS0="$IFS" IFS=":$IFS" for i in $PREPATH do case $i in /*) DEFPATH="$DEFPATH $i" ;; esac done IFS="$IFS0" if [ x$default = x ]; then echo "" echo $n "Do you have the nroff source for man pages? [yes] $c" ans= while [ x$ans = x ] do read yesno if test "$yesno" = "" || test "$yesno" = "yes" then ans=true elif test "$yesno" = "no" then ans=false else echo "You must enter yes or no" fi done else echo "" echo "Assuming you want to be able to handle the nroff source for man pages." ans=true fi if test "$ans" = "false" then for i in more less cmp cat awk gawk mawk do eval F$i="missing" for j in $DEFPATH do if test -f $j/$i then eval F$i=$j/$i break fi done done troff="" nroff="" jnroff="" eqn="" neqn="" jneqn="" tbl="" col="" vgrind="" refer="" grap="" pic="" if test $Fless = "missing" then pager="$Fmore" else pager="$Fless $DEFAULTLESSOPT" fi if test $Fawk = "missing" then Fawk="$Fgawk" fi if test $Fawk = "missing" then Fawk="$Fmawk" fi cmp="$Fcmp -s" cat="$Fcat" awk="$Fawk" FILTERS="pager cmp cat awk" else for i in nroff groff geqn gtbl col vgrind grefer grap gpic more less lynx cmp cat awk gawk mawk do eval F$i="missing" for j in $DEFPATH do if test -f $j/$i then eval F$i=$j/$i break fi done done for i in eqn tbl refer pic do if test `eval echo \\$Fg$i` = "missing" then for j in $DEFPATH do if test -f $j/$i then eval Fg$i=$j/$i break fi done fi done # -Tlatin1 is bad when utf8 is used, but needed for groff, not for nroff # Hmm - also needed for nroff, to prevent double conversion on uxterm if test $Fgroff = "missing" then if test $Fnroff = "missing" then nroff="nroff -Tlatin1 -mandoc" else nroff="$Fnroff -Tlatin1 -mandoc" fi troff="troff -mandoc" echo "Warning: could not find groff" else if test $Fnroff = "missing" then nroff="$Fgroff -Tlatin1 -mandoc" else nroff="$Fnroff -Tlatin1 -mandoc" fi troff="$Fgroff -Tps -mandoc" jnroff="$Fgroff -Tnippon -mandocj" fi eqn="$Fgeqn -Tps" neqn="$Fgeqn -Tlatin1" jneqn="$Fgeqn -Tnippon" tbl="$Fgtbl" col="$Fcol" vgrind="$Fvgrind" refer="$Fgrefer" grap="$Fgrap" pic="$Fgpic" if test $Fless = "missing" then pager="$Fmore" else pager="$Fless $DEFAULTLESSOPT" fi if test $Flynx = "missing" then browser=$pager htmlpager=$Fcat else browser="$Flynx" htmlpager="$Flynx -dump" fi if test $Fawk = "missing" then Fawk="$Fgawk" fi if test $Fawk = "missing" then Fawk="$Fmawk" fi cmp="$Fcmp -s" cat="$Fcat" awk="$Fawk" FILTERS="troff nroff jnroff eqn neqn jneqn tbl col vgrind refer grap pic pager browser htmlpager cmp cat awk" fi # Note: older nroff gives an error message for -c # Do this only when you have troff 1.18.1 or so. if [ "x$set_compatibility_mode_for_colored_groff" = "xtrue" ]; then troff="$troff -c" nroff="$nroff -c" jnroff="$jnroff -c" fi if [ x$default = x ]; then echo "" echo "If you don't have one of the following programs, enter \`missing'." echo "It's best to enter absolute pathnames so that man won't have to" echo "depend on the user's path to work properly. Default values are" echo "given in square brackets. The answers given are only checked to" echo "see if the programs exist, not to see see if the given flags are" echo "correct." for filter in $FILTERS do found=false while test "$found" = "false" do echo "" echo $n "$filter command to use [`eval echo \\$$filter`] $c" read tmp if test -n "$tmp" then if test "$tmp" = "missing" then if test "$filter" = "pager" then found=false echo "You must have a pager!" else found=true eval $filter="" fi elif test -f `echo $tmp | $awk '{print $1}'` then found=true eval $filter=\""$tmp"\" else found=false echo "" echo "`echo $tmp | $awk '{print $1}'` doesn't seem to exist! Try again or enter \`missing'" fi elif test `eval echo \\$$filter | $awk '{print $1}'` = "missing" then found=true eval $filter="" elif test -f `eval echo \\$$filter | $awk '{print $1}'` then found=true else found=false echo "" echo "`eval echo \\$$filter | $awk '{print $1}'` doesn't seem to exist! Try again or enter \`missing'" fi done done else echo "" echo "Assuming the following ways to invoke the various commands and filters": for filter in $FILTERS do echo "$filter command: `eval echo \\$$filter`" if test `eval echo \\$$filter | $awk '{print $1}'` = "missing" then eval $filter="" fi done fi case $nroff in *roff*) echo "" echo "It seems that no col is needed, since you use groff." pcol= nocol="# " ;; *) pcol=$col nocol= ;; esac fhs="# " fsstnd="# " FHSDIR=/var/cache/man FSSTNDDIR=/var/catman if [ x$usefhs = x -a x$usefsstnd = x ]; then if [ x$default = x ]; then echo "" echo $n "Do you want to put the cat pages under $FHSDIR ? [no] $c" ans= while [ x$ans = x ] do read yesno if test "$yesno" = "" || test "$yesno" = "no" then ans=false elif test "$yesno" = "yes" then ans=true else echo "You must enter yes or no" fi done if [ $ans = true ]; then fhs= else echo $n "Do you want to put the cat pages under $FSSTNDDIR ? [no] $c" ans= while [ x$ans = x ] do read yesno if test "$yesno" = "" || test "$yesno" = "no" then ans=false elif test "$yesno" = "yes" then ans=true else echo "You must enter yes or no" fi done if [ $ans = true ]; then fsstnd= fi fi else echo "" if [ -d $FHSDIR ]; then echo "Using $FHSDIR for cat pages, following FHS." fhs= elif [ -d $FSSTNDDIR ]; then echo "Using $FSSTNDDIR for cat pages, following FSSTND." fsstnd= else echo "Using /usr/man/cat* (if that exists) for cat pages." fi fi else if [ x$usefsstnd = xtrue ]; then fsstnd= elif [ x$usefhs = xtrue ]; then fhs= fi fi # How should man be installed? if [ x$default = x ]; then for d in bindir sbindir mandir confdir do case $d in bindir) echo "" echo $n "Where should executables be installed? [${bindir}] $c" ;; sbindir) echo "" echo $n "Where should makewhatis be installed? [${sbindir}] $c" ;; confdir) echo "" echo $n "Where should $conffilename be installed? [${confdir}] $c" ;; mandir) echo "" echo $n "Where should man pages be installed? [${mandir}] $c" ;; esac dd=`eval echo \\$$d` dir=$prefix/$dd ok=false while test "$ok" = "false" do read tmpdir if test "$tmpdir" = "" && test "$dir" != "" then if test -d $dir then ok=true eval $d=$dir else echo "" echo "$dir doesn't seem to exist! Try again!" fi elif test -d "$tmpdir" then ok=true eval $d=$tmpdir newprefix=`echo $tmpdir | sed -e "s:/$dd::"` if test "$tmpdir" = "$newprefix/$dd" then prefix=$newprefix fi else ok=false echo "" echo "$tmpdir doesn't seem to exist! Try again!" fi done done tmpext=1 echo "" echo $n "What extension should installed man(1) pages have? [${tmpext}] $c" read man1ext if test "$man1ext" = ""; then man1ext=$tmpext; fi tmpext=5 echo "" echo $n "What extension should installed man(5) pages have? [${tmpext}] $c" read man5ext if test "$man5ext" = ""; then man5ext=$tmpext; fi tmpext=8 echo "" echo $n "What extension should installed man(8) pages have? [${tmpext}] $c" read man8ext if test "$man8ext" = ""; then man8ext=$tmpext; fi else echo "" echo "Assuming that binaries go to $bindir, the configuration file" echo "goes to $confdir, makewhatis to $sbindir, and the man pages" echo "to $mandir/man*." man1ext=1 man5ext=5 man8ext=8 fi if [ x$default = x ]; then echo "" echo $n "Do you want to install non-english man pages? [no] $c" ok=false while test "$ok" = "false" do read yesno if test "$yesno" = "" || test "$yesno" = "no" then ok=true ans=false elif test "$yesno" = "yes" then ok=true ans=true else ok=false echo "You must enter yes or no" fi done else if [ "x$languages" = x ]; then echo "" echo "Assuming that you do not want to install non-english man pages." fi ans=false fi if test "$ans" = "true" then cd man languages="" for i in ??; do langname=`cat $i.txt` echo $n "Install $langname pages? [no] $c" ok=false while test "$ok" = "false" do read yesno if test "$yesno" = "" || test "$yesno" = "no" then ok=true ans=false elif test "$yesno" = "yes" then ok=true ans=true else ok=false echo "You must enter yes or no" fi done if test "$ans" = "true" then languages="$languages $i" fi done cd .. if [ "x$languages" = x ]; then echo "Not installing any man pages, then."; fi else if [ "x$languages" = x ] then languages="en" fi fi if [ "x$languages" != x -a "x$languages" != xen ] then DEF_NLSPATH="/usr/share/locale/%L/%N:/usr/lib/locale/%N/%L" deflocalepath=`echo $NLSPATH:$DEF_NLSPATH | sed 's/:/ /g'` for i in $deflocalepath; do if [ x$deflocale = x ]; then tstdir=`echo $i | sed -e 's/%N//; s/%L//'` if [ -d "$tstdir" ]; then deflocale=$i # else # tstdir=`echo $i | sed -e 's/%N/*/; s/%L/*/'` # if [ -d "$tstdir" ]; then # deflocale=$i # fi fi fi done if [ x$deflocale = x ]; then deflocale="/usr/lib/locale/%N/%L" fi if [ x$default = x ]; then echo "" echo $n "Do you want to install non-english message catalogs for man? [yes] $c" ok=false while test "$ok" = "false" do read yesno if test "$yesno" = "" || test "$yesno" = "yes" then ok=true ans=true elif test "$yesno" = "no" then ok=true ans=false else ok=false echo "You must enter yes or no" fi done if [ $ans = true ]; then echo $n "Where? [$deflocale] $c" read locale if [ x$locale = x ]; then locale=$deflocale fi else locale= fi else locale=$deflocale fi echo echo "Using localedir $locale" fi if [ x$suid = x -a x$sgid = x ]; then if [ x$default = x ]; then echo "" echo "Do you want to install man setuid or setgid to some user" echo $n "who owns all the formatted man pages? [no] $c" ok=false while test "$ok" = "false" do read yesno if test "$yesno" = "" || test "$yesno" = "no" then ok=true ans=false elif test "$yesno" = "yes" then ok=true ans=true else ok=false echo "You must enter yes or no" fi done else echo "Assuming that you do not want man to be suid or sgid." echo "(But you can always do _chown man man; chmod 04555 man_ later.)" ans=false fi else ans=true fi if test "$ans" = "true" then # prefer uid/gid man above root, but prefer not to give man the # ability to write into its own binary; never install man suid root if [ x$sgid = x ]; then man_user=man man_mode=4555 if grep -q '^man:' /etc/group >/dev/null 2>/dev/null; then man_group=man else man_group=root fi if grep -q '^man:' /etc/passwd >/dev/null 2>/dev/null; then : else echo "Warning: you still have to create a user \"man\"" fi else man_user=root man_group=man man_mode=2555 if grep -q '^man:' /etc/group >/dev/null 2>/dev/null; then : else echo "Warning: you still have to create a group \"man\"" fi fi if [ x$default = x ]; then echo "" echo $n "What owner should man have? [${man_user}] $c" read user if test "$user" != ""; then man_user=$user; fi echo "" echo $n "What group should man have? [${man_group}] $c" read group if test "$group" != ""; then man_group=$group; fi echo "" echo $n "What mode should the installed man have? [${man_mode}] $c" read mode if test "$mode" != ""; then man_mode=$mode; fi fi man_install_flags="-m $man_mode -o $man_user -g $man_group" fi # What sections do we anticipate? tmpsections="1 1p 8 2 3 3p 4 5 6 7 9 0p tcl n l p o" if [ x$default = x ]; then echo "" echo "Enter the man page sections your system uses, separated by" echo "spaces, and in the order they should be searched." echo $n "[${tmpsections}] $c" read sects if test "$sects" != ""; then tmpsections="$sects"; fi else echo echo "Setting the default section search order to $tmpsections." fi for sect in $tmpsections do if [ x$sections = x ]; then sections=$sect else sections=$sections:$sect fi done if test "$nroff" != "" then if [ x$default = x ]; then echo "" echo $n "Compress formatted pages? [yes] $c" ok=false while test "$ok" = "false" do read yesno if test "$yesno" = "" || test "$yesno" = "yes" then ok=true ans=true elif test "$yesno" = "no" then ok=true ans=false else ok=false echo "You must enter yes or no" fi done else echo "" echo "Assuming that formatted pages should be compressed." ans=true fi if test "$ans" = "true" then DO_COMPRESSION=true compress= for i in xz lzma bzip2 gzip bzip tzip pack compress freeze yabba do eval F$i=missing for j in $DEFPATH do if test -f $j/$i then eval F$i=$j/$i if [ x$compress = x ]; then compress=$j/$i; fi break fi done done if [ x$default = x ]; then echo "" echo "What program should be used to compress the formatted pages?" echo $n "Note that it must work as a filter! [${compress}] $c" found=false while test "$found" = "false" do read tmp if test -n "$tmp" then if test -f `echo $tmp | $awk '{print $1}'` then found=true compress=$tmp else found=false echo "" echo "`echo $tmp | $awk '{print $1}'` doesn't seem to exist! Try again!" fi elif test -f `echo "$compress" | $awk '{print $1}'` then found=true else found=false echo "" echo "`echo "$compress" | $awk '{print $1}'` doesn't seem to exist! Try again!" fi done else if [ x$compress = x ] then DO_COMPRESSION=false echo "Could not find any compression programs." else echo "Using $compress for compression." fi fi case $compress in *xz*) ext=".xz" ;; *lzma*) ext=".lzma" ;; *bzip2*) ext=".bz2" ;; *gzip*) ext=".gz" ;; *bzip*) ext=".bz" ;; *tzip*) ext=".tz" ;; *pack*) ext=".z" ;; *compress*) ext=".Z" ;; *freeze*) ext=".F" ;; *yabba*) ext=".Y" ;; *) ext="" ;; esac if [ x$default = x ]; then echo "" echo "What extension should be added to" if test "$ext" = "" then echo "compressed files?" else echo $n "compressed files? [${ext}] $c" fi ok=false while test "$ok" = "false" do read tmp_ext if test "$tmp_ext" = "" && test "$ext" != "" then ok=true compress_ext=$ext elif test "$tmp_ext" != "" then ok=true compress_ext=$tmp_ext fi done else compress_ext=$ext fi else DO_COMPRESSION=false fi fi # unconditionally handle uncompression UNCOMPRESSORS="unxz unlzma gunzip bzip2 pcat zcat fcat unyabba" for i in $UNCOMPRESSORS do eval F$i=missing for j in $DEFPATH do if test -f $j/$i then eval F$i=$j/$i break fi done done unxz=missing if [ $Funxz != missing ]; then unxz="$Funxz -c" fi gunzip=missing if [ $Fgunzip != missing ]; then gunzip="$Fgunzip -c" fi bzip2=missing if [ $Fbzip2 != missing ]; then bzip2="$Fbzip2 -c -d" fi unlzma=missing if [ $Funlzma != missing ]; then unlzma="$Funlzma -c -d" fi pcat="$Fpcat" zcat="$Fzcat" fcat="$Ffcat" unyabba="$Funyabba" if [ x$default = x ]; then echo "" echo "Now let us look at programs for uncompressing compressed man pages." echo "" echo "If you don't have one of the following programs, enter \`missing'." echo "It's best to enter absolute pathnames so that man won't have to" echo "depend on the user's path to work properly. Default values are" echo "given in square brackets. The answers given are only checked to" echo "see if the programs exist, not to see see if the given flags are" echo "correct." for filter in $UNCOMPRESSORS do found=false while test "$found" = "false" do echo "" case $filter in unxz) echo "Command to use for .xz files (standard xz)" echo $n "[`eval echo \\$$filter`] $c" ;; gunzip) echo "Command to use for .gz files (standard gzip)" echo $n "[`eval echo \\$$filter`] $c" ;; bzip2) echo "Command to use for .bz2 files (standard bzip2)" echo $n "[`eval echo \\$$filter`] $c" ;; unlzma) echo "Command to use for .lzma files (standard lzma)" echo $n "[`eval echo \\$$filter`] $c" ;; pcat) echo "Command to use for .z files (pack/unpack)" echo $n "[`eval echo \\$$filter`] $c" ;; zcat) echo "Command to use for .Z files (standard compress)" echo $n "[`eval echo \\$$filter`] $c" ;; fcat) echo "Command to use for .F files (freeze/melt from net posting)" echo $n "[`eval echo \\$$filter`] $c" ;; unyabba) echo "Command to use for .Y files (yabba/unyabba from net posting)" echo $n "[`eval echo \\$$filter`] $c" ;; esac read tmp if test -n "$tmp" then if test "$tmp" = "missing" then found=true eval $filter="" elif test -f `echo $tmp | $awk '{print $1}'` then found=true eval $filter=\""$tmp"\" else found=false echo "" echo "`echo $tmp | $awk '{print $1}'` doesn't seem to exist! Try again or enter \`missing'" fi elif test `eval echo \\$$filter | $awk '{print $1}'` = "missing" then found=true eval $filter="" elif test -f `eval echo \\$$filter | $awk '{print $1}'` then found=true else found=false echo "" echo "`eval echo \\$$filter | $awk '{print $1}'` doesn't seem to exist! Try again or enter \`missing'" fi done done else echo "" echo "Assuming the following ways to invoke the various decompressors:" for filter in $UNCOMPRESSORS do echo "$filter command: `eval echo \\$$filter`" if test `eval echo \\$$filter | $awk '{print $1}'` = "missing" then eval $filter="" fi done fi # set $decompress to the program that decompresses things # with the $compress_ext extension. case $compress_ext in .xz) decompress=$unxz ;; .gz) decompress=$gunzip ;; .bz2) decompress=$bzip2 ;; .lzma) decompress=$unlzma ;; .z) decompress=$pcat ;; .Z) decompress=$zcat ;; .F) decompress=$fcat ;; .Y) decompress=$unyabba ;; *) decompress= ;; esac if test "$DO_COMPRESSION" = "true" then DEFS="$DEFS -DDO_COMPRESS" fi man=$bindir/man$EXEEXT apropos=$bindir/apropos whatis=$bindir/whatis man2dvi=$bindir/man2dvi makewhatis=$sbindir/makewhatis man_config_dir=$confdir man_config_file=$confdir/$conffilename if [ x$locale = x ]; then sed -e 's/%.*//' < Makefile.in > Makefile else sed -e 's/%//' < Makefile.in > Makefile fi # some definitions to avoid extensive quoting in the script below allargs='$@' infiles='$infiles' infile='$infile' shebang='`sed -n -e 1p $infile.in`' cb='$cb' cs='$cs' ce='$ce' mancomment='.\\\"' # Note: the script below only works when none of the variables # contains a comma. version=`cat version` cat > conf_script << EOS #!/bin/sh infiles=$allargs trap 'rm -f $infiles; exit 1' 1 3 15 # echo "" for infile in $infiles do case $infile in *.h) cb="/*"; cs=" *"; ce=" */";; *.1|*.5|*.8|*.man) cb=$mancomment; cs=$mancomment; ce=$mancomment;; *) case "$shebang" in '#!'*) cb="$shebang";; *) cb="#";; esac cs="#"; ce="#";; esac echo "$cb" > $infile echo "$cs Generated automatically from $infile.in by the" >> $infile echo "$cs configure script." >> $infile echo "$ce" >> $infile echo "Creating $infile from $infile.in" sed -e ' s,@version@,$version, s,@CC@,$CC, s,@EXEEXT@,$EXEEXT, s,@BUILD_CC@,$BUILD_CC, s,@INSTALL@,$INSTALL, s,@DEFS@,$DEFS, s,@LIBS@,$LIBS, s,@LIBOBJS@,$LIBOBJS, s,@troff@,$troff, s,@nroff@,$nroff, s,@jnroff@,$jnroff, s,@eqn@,$eqn, s,@neqn@,$neqn, s,@jneqn@,$jneqn, s,@tbl@,$tbl, s,@nocol@,$nocol, s,@pcol@,$pcol, s,@col@,$col, s,@vgrind@,$vgrind, s,@refer@,$refer, s,@grap@,$grap, s,@pic@,$pic, s,@fcat@,$fcat, s,@pcat@,$pcat, s,@zcat@,$zcat, s,@unxz@,$unxz, s,@gunzip@,$gunzip, s,@bzip2@,$bzip2, s,@unlzma@,$unlzma, s,@unyabba@,$unyabba, s,@compress@,$compress, s,@compress_ext@,$compress_ext, s,@decompress@,$decompress, s,@pager@,$pager, s,@browser@,$browser, s,@htmlpager@,$htmlpager, s,@cmp@,$cmp, s,@cat@,$cat, s,@awk@,$awk, s,@bindir@,$bindir, s,@sbindir@,$sbindir, s,@mandir@,$mandir, s,@locale@,$locale, s,@fhs@,$fhs, s,@fsstnd@,$fsstnd, s,@man1ext@,$man1ext,g s,@man5ext@,$man5ext,g s,@man8ext@,$man8ext,g s,@man_install_flags@,$man_install_flags, s,@man_user@,$man_user, s,@languages@,$languages, s,@man@,$man, s,@apropos@,$apropos, s,@whatis@,$whatis, s,@man2dvi@,$man2dvi, s,@makewhatis@,$makewhatis, s,@man_config_dir@,$man_config_dir, s,@man_config_file@,$man_config_file, s,@manpathoption@,$manpathoption, s/@sections@/$sections/ ' $infile.in >> $infile done EOS chmod +x conf_script echo "" echo 'Created Makefile and conf_script. Now do "make" and "make install".' echo "" man-1.6g/src/0000755000175000001440000000000011507437532012614 5ustar lucifredusersman-1.6g/src/manfile.h0000644000175000001440000000210510301736016014364 0ustar lucifredusersstruct manpage { struct manpage *next; char *filename; int type; }; #define TYPE_MAN 0x0001 #define TYPE_CAT 0x0002 #define TYPE_SCAT 0x0004 #define TYPE_HTML 0x0008 #define TYPE_XML 0x0010 /* not presently used */ #define ONLY_ONE_PERSEC 0x0020 /* do not return more pages from one section */ #define ONLY_ONE 0x0040 /* return only a single page */ /* various standards have various ideas about where the cat pages ought to live */ #define FSSTND 0x0080 #define FHS 0x0100 /* HP has a peculiar way to indicate that pages are compressed */ #define DO_HP 0x0200 /* compressed file in man1.Z/ls.1 */ /* IRIX has a peculiar cat page naming */ #define DO_IRIX 0x0400 /* cat page ls.z, not ls.1.z */ /* Sun uses both man and sman, where sman contains XML */ #define DO_SUN 0x0800 /* unused today */ /* NTFS cannot handle : in filenames */ #define DO_WIN32 0x1000 /* turn :: into ? */ extern struct manpage * manfile(const char *name, const char *section, int flags, char **sectionlist, char **manpath, const char *(*tocat)(const char *, const char *, int)); man-1.6g/src/manfile.c0000644000175000001440000002121210301736016014357 0ustar lucifredusers/* * manfile.c - aeb, 971231 * * Used both by man and man2html - be careful with printing! */ #include #include #include #include #include #include "glob.h" #include "util.h" #include "manfile.h" #include "gripes.h" #include "man.h" /* for debug */ static int standards; static const char *((*to_cat_filename)(const char *man_filename, const char *ext, int flags)); /* * Append the struct or chain A to the chain HEAD. */ static void append(struct manpage **head, struct manpage *a) { struct manpage *p; if (a) { if (*head) { p = *head; while(p->next) p = p->next; p->next = a; } else *head = a; } } static int my_lth(const char *s) { return s ? strlen(s) : 0; } /* * Find the files of the form DIR/manSEC/NAME.EXT etc. * Use "man" for TYPE_MAN, "cat" for TYPE_SCAT, and * apply convert_to_cat() to the man version for TYPE_CAT. * * Some HP systems use /usr/man/man1.Z/name.1, where name.1 is * compressed - yuk. We can handle this by using section 1.Z * instead of 1 and assuming that the man page is compressed * if the directory name ends in .Z. * * Some Sun systems use /usr/share/man/sman1/man.1 and * /usr/share/man/sman1m/mkfs.1m. * * We support HTML filenames of the following form: * /usr/share/man/sman1m/mkfs.1m.html, optionally followed * by a compression suffix. * * Returns an array with pathnames, or 0 if out-of-memory or error. */ static char ** glob_for_file_ext_glob (const char *dir, const char *sec, const char *name, const char *ext, char *hpx, int glob, int type) { char *pathname; const char *p; char **names; int len; #define MANFORM "%s/%s%s%s/%s.%s" #define GLOB "*" #define LENGTHOF(s) (sizeof(s)-1) /* This must be long enough to hold the format-directory name. * The basic type-directory names are 'cat' and 'man'; this needs to * allocate space for those or any others such as html or sman. */ #define TYPELEN 8 len = my_lth(dir) + my_lth(sec) + my_lth(hpx) + my_lth(name) + my_lth(ext) + TYPELEN + LENGTHOF(".html") + LENGTHOF(MANFORM) + LENGTHOF(GLOB); if (debug >= 2) gripe(CALLTRACE3, dir, sec, name, ext, hpx, glob, type); pathname = (char *) malloc(len); if (!pathname) return 0; sprintf (pathname, MANFORM, dir, (type==TYPE_HTML) ? "html" : (type==TYPE_XML) ? "sman" : (type==TYPE_SCAT) ? "cat" : "man", sec, hpx, name, ext); if (type == TYPE_HTML) strcat(pathname, ".html"); if (glob) strcat(pathname, GLOB); if (type == TYPE_CAT) { p = to_cat_filename(pathname, 0, standards); if (p) { free(pathname); } else { sprintf (pathname, "%s/cat%s%s/%s.%s%s", dir, sec, hpx, name, ext, glob ? GLOB : ""); p = pathname; } } else p = pathname; if (debug >=2) gripe(ABOUT_TO_GLOB, p); names = glob_filename (p); if (names == (char **) -1) /* file system error; print msg? */ names = 0; return names; } static char ** glob_for_file_ext (const char *dir, const char *sec, const char *name, const char *ext, int type) { char **names, **namesglob; char *hpx = ((standards & DO_HP) ? ".Z" : ""); namesglob = glob_for_file_ext_glob(dir,sec,name,ext,hpx,1,type); if (!namesglob && *hpx) { hpx = ""; namesglob = glob_for_file_ext_glob(dir,sec,name,ext,hpx,1,type); } if (!namesglob) return 0; if (*namesglob) { /* we found something - try to get a more precise match */ names = glob_for_file_ext_glob(dir,sec,name,ext,hpx,0,type); if (names && *names) namesglob = names; } return namesglob; } /* * Find the files of the form DIR/manSEC/NAME.SEC etc. */ static char ** glob_for_file (const char *dir, const char *sec, const char *name, int type) { char **names; if (debug >= 2) gripe(CALLTRACE2, dir, sec, name, type); if (standards & DO_IRIX) { /* try first without `sec' extension */ /* maybe this should be done only for cat pages? */ return glob_for_file_ext (dir, sec, name, "", type); } /* try /usr/X11R6/man/man3x/XSetFont.3x */ names = glob_for_file_ext (dir, sec, name, sec, type); if (!names) return 0; /* out-of-memory or error */ /* sometimes the extension is only a single digit */ if (!*names && isdigit(sec[0]) && sec[1] != 0) { char ext[2]; ext[0] = sec[0]; ext[1] = 0; names = glob_for_file_ext (dir, sec, name, ext, type); } if (!names) return 0; /* out-of-memory or error */ /* or the extension could be .man */ if (!*names) names = glob_for_file_ext (dir, sec, name, "man", type); if (debug >= 2) { if (!names[0]) gripe(NO_MATCH); else { char **np; for (np = names; *np; np++) gripe(GLOB_FOR_FILE, *np); } } return names; } /* * Find a man page of the given NAME under the directory DIR, * in section SEC. Only types (man, cat, scat, html) permitted in FLAGS * are allowed, and priorities are in this order. */ static struct manpage * manfile_from_sec_and_dir(const char *dir, const char *sec, const char *name, int flags) { struct manpage *res = 0; struct manpage *p; char **names, **np; int i, type; int types[] = {TYPE_HTML, TYPE_MAN, TYPE_CAT, TYPE_SCAT}; if (debug >= 2) gripe(CALLTRACE1, dir, sec, name, flags); for (i=0; i<(sizeof(types)/sizeof(types[0])); i++) { type = types[i]; /* If convert_to_cat() is trivial, TYPE_CAT and TYPE_SCAT are the same thing. */ if ((type == TYPE_CAT) && (flags & TYPE_SCAT) && !standards) continue; if (flags & type) { names = glob_for_file (dir, sec, name, type); if (names) { for (np = names; *np; np++) { #if 1 /* Keep looking if we encounter a file we can't access */ if (access(*np, R_OK)) continue; if (debug >= 2) gripe(FOUND_FILE, *np); /* disadvantage: no error message when permissions are wrong, the page just silently becomes invisible */ #endif p = (struct manpage *) malloc(sizeof(*p)); if (!p) break; /* %% perhaps print msg, free names */ p->filename = *np; p->type = type; p->next = 0; append(&res, p); if (res && (flags & ONLY_ONE_PERSEC)) break; } free(names); } } if (res) return res; } return res; } /* * Find a man page of the given NAME, searching in the specified SECTION. * Searching is done in all directories of MANPATH. */ static struct manpage * manfile_from_section(const char *name, const char *section, int flags, char **manpath) { char **mp; struct manpage *res = 0; for (mp = manpath; *mp; mp++) { append(&res, manfile_from_sec_and_dir(*mp, section, name, flags)); if (res && (flags & ONLY_ONE_PERSEC)) break; } #if 0 /* Someone wants section 1p - better not to give 1 */ if (res == NULL && isdigit(section[0]) && section[1]) { char sec[2]; sec[0] = section[0]; sec[1] = 0; for (mp = manpath; *mp; mp++) { append(&res, manfile_from_sec_and_dir(*mp, sec, name, flags)); if (res && (flags & ONLY_ONE_PERSEC)) break; } } #endif return res; } /* * Find a man page of the given NAME, searching in the specified * SECTION, or, if that is 0, in all sections in SECTIONLIST. * Searching is done in all directories of MANPATH. * If FLAGS contains the ONLY_ONE bits, only the first matching * page is returned; otherwise all matching pages are found. * Only types (man, cat, scat) permitted in FLAGS are allowed. */ struct manpage * manfile(const char *name, const char *section, int flags, char **sectionlist, char **manpath, const char *((*tocat)(const char *man_filename, const char *ext, int flags))) { char **sl; struct manpage *res; standards = (flags & (FHS | FSSTND | DO_HP | DO_IRIX)); to_cat_filename = tocat; if (name && (flags & DO_WIN32)) { /* Convert : sequences to a ? */ char *n = my_malloc(strlen(name) + 1); const char *p = name; char *q = n; while (*p) { if (*p == ':') { *q++ = '?'; while (*p == ':') p++; } else *q++ = *p++; } *q = 0; name = n; } if (!name || !manpath) /* error msg? */ res = 0; else if (section) res = manfile_from_section(name, section, flags, manpath); else if (sectionlist) { res = 0; for (sl = sectionlist; *sl; sl++) { append(&res, manfile_from_section(name, *sl, flags, manpath)); if (res && (flags & ONLY_ONE)) break; } } return res; } man-1.6g/src/to_cat.c0000644000175000001440000000771710301736016014233 0ustar lucifredusers#include #include #include extern char *rindex (const char *, int); /* not always in */ #include "defs.h" #include "manfile.h" #include "man-config.h" #include "to_cat.h" #include "util.h" /* * Given PATH/man1/name.1, return a pointer to the '/' following PATH. */ static char * mantail_of(char *name) { char *s0, *s1, *s; s0 = s1 = 0; for (s = name; *s; s++) { if (*s == '/') { s0 = s1; s1 = s; } } return s0; } /* * Given PATH/man1/name.1, return PATH, newly allocated. * The argument must be writable, not a constant string. */ const char * mandir_of(const char *name) { char *p, *q; q = my_strdup(name); p = mantail_of(q); if (p) { *p = 0; return q; } free(q); return NULL; } /* * Change a name of the form PATH/man1/name.1[.Z] * into PATH/cat1/name.1.EXT * or (FSSTND) change /usr/PA/man/PB/man1/name.1 * into /var/catman/PA/PB/cat1/name.1.EXT * or (FHS) change /usr/PATH/share/man/LOC/man1/name.1 * into /var/cache/man/PATH/LOC/cat1/name.1.EXT * (here the /LOC part is absent or a single [locale] dir). * * Returns 0 on failure. */ const char * convert_to_cat (const char *name0, const char *ext, int standards) { char *name, *freename, *cat_name = 0; char *t0, *t2, *t3, *t4; struct dirs *dlp; int len; freename = name = my_strdup (name0); t0 = rindex (name, '.'); if (t0 && get_expander(t0)) /* remove compressee extension */ *t0 = 0; t2 = mantail_of (name); if (t2 == NULL) return 0; *t2 = 0; /* remove man1/name.1 part */ if (strncmp(t2+1, "man", 3) != 0) return 0; t2[1] = 'c'; t2[3] = 't'; len = (ext ? strlen(ext) : 0); /* Explicitly given cat file? */ for (dlp = cfdirlist.nxt; dlp; dlp = dlp->nxt) { if (!strcmp (name, dlp->mandir)) { if (!dlp->catdir[0]) break; *t2 = '/'; len += strlen (dlp->catdir) + strlen (t2) + 1; cat_name = (char *) my_malloc (len); strcpy (cat_name, dlp->catdir); strcat (cat_name, t2); goto gotit; } } if (standards & FHS) { if (*name != '/') return 0; /* possibly strip locale part */ t3 = t2; if ((t4 = rindex(name,'/')) != NULL && strcmp(t4, "/man")) { *t3 = '/'; t3 = t4; *t3 = 0; } if(t3 - name >= 4 && !strcmp(t3 - 4, "/man")) { /* fhs is applicable; strip leading /usr and trailing share */ if(!strncmp(name, "/usr/", 5)) name += 4; t4 = t3 - 4; *t4 = 0; if(t4 - name >= 6 && !strcmp(t4 - 6, "/share")) t4[-6] = 0; *t3 = '/'; len += strlen("/var/cache/man") + strlen(name) + strlen(t3) + 1; cat_name = (char *) my_malloc (len); strcpy (cat_name, "/var/cache/man"); strcat (cat_name, name); strcat (cat_name, t3); goto gotit; } return 0; } if ((standards & FSSTND) && !strncmp(name, "/usr/", 5)) { /* search, starting at the end, for a part `man' to delete */ t3 = t2; while ((t4 = rindex(name, '/')) != NULL && strcmp(t4, "/man")) { *t3 = '/'; t3 = t4; *t3 = 0; } *t3 = '/'; if (t4) { *t4 = 0; len += strlen("/var/catman") + strlen (name+4) + strlen (t3) + 1; cat_name = (char *) my_malloc (len); strcpy (cat_name, "/var/catman"); strcat (cat_name, name+4); strcat (cat_name, t3); goto gotit; } } else *t2 = '/'; if (ext) { /* allocate room for extension */ len += strlen(name) + 1; cat_name = (char *) my_malloc (len); strcpy (cat_name, name); } else cat_name = name; gotit: if ((standards & DO_HP) && get_expander(cat_name)) { /* nothing - we have cat1.Z/file.1 */ } else if (ext) strcat (cat_name, ext); if (name != cat_name) free (freename); return cat_name; } man-1.6g/src/man.c0000644000175000001440000010277111317241424013533 0ustar lucifredusers/* * man.c * * Copyright (c) 1990, 1991, John W. Eaton. * * You may distribute under the terms of the GNU General Public * License as specified in the file COPYING that comes with the man * distribution. * * John W. Eaton * jwe@che.utexas.edu * Department of Chemical Engineering * The University of Texas at Austin * Austin, Texas 78712 * * Some manpath, compression and locale related changes - aeb - 940320 * Some suid related changes - aeb - 941008 * Some more fixes, Pauline Middelink & aeb, Oct 1994 * man -K: aeb, Jul 1995 * Split off of manfile for man2html, aeb, New Year's Eve 1997 */ #include #include #include #include #include #include /* for chmod */ #include #include #include #include #ifdef TERMIOS_HEADER #include #endif #ifndef R_OK #define R_OK 4 #endif extern char *index (const char *, int); /* not always in */ extern char *rindex (const char *, int); /* not always in */ #include "defs.h" #include "gripes.h" #include "man.h" #include "manfile.h" #include "manpath.h" #include "man-config.h" #include "man-getopt.h" #include "man-iconv.h" #include "to_cat.h" #include "util.h" #include "glob.h" #include "different.h" #include "man-iconv.h" #define SIZE(x) (sizeof(x)/sizeof((x)[0])) const char *progname; const char *pager, *browser, *htmlpager; char *colon_sep_section_list; char *roff_directive; char *dohp = 0; int do_irix; int do_win32; int apropos; int whatis; int nocats; /* set by -c option: do not use cat page */ /* this means that cat pages must not be used, perhaps because the user knows they are old or corrupt or so */ int can_use_cache; /* output device is a tty, width 80 */ /* this means that the result may be written in /var/cache, and may be read from there */ int findall; int print_where; int one_per_line; int do_troff; int preformat; int debug; int fhs; int fsstnd; int noautopath; int nocache; static int is_japanese; static char *language; static char **section_list; #ifdef DO_COMPRESS int do_compress = 1; #else int do_compress = 0; #endif #define BUFSIZE 8192 /* * Try to determine the line length to use. * Preferences: 1. MANWIDTH, 2. ioctl, 3. COLUMNS, 4. 80 * * joey, 950902 */ #include int line_length = 80; int ll = 0; static void get_line_length(void){ char *cp; int width; if (preformat) { line_length = 80; return; } if ((cp = getenv ("MANWIDTH")) != NULL && (width = atoi(cp)) > 0) { line_length = width; return; } #ifdef TIOCGWINSZ if (isatty(0) && isatty(1)) { /* Jon Tombs */ struct winsize wsz; if(ioctl(0, TIOCGWINSZ, &wsz)) perror("TIOCGWINSZ failed\n"); else if(wsz.ws_col) { line_length = wsz.ws_col; return; } } #endif if ((cp = getenv ("COLUMNS")) != NULL && (width = atoi(cp)) > 0) line_length = width; else line_length = 80; } static int setll(void) { return (!do_troff && (line_length < 66 || line_length > 80)) ? line_length*9/10 : 0; } /* People prefer no page headings in their man screen output; now ".pl 0" has a bad effect on .SH etc, so we need ".pl N" for some large number N, like 1100i (a hundred pages). */ #define VERY_LONG_PAGE "1100i" static char * setpl(void) { char *pl; if (do_troff) return NULL; if (preformat) pl = VERY_LONG_PAGE; else if ((pl = getenv("MANPL")) == 0) { if (isatty(0) && isatty(1)) pl = VERY_LONG_PAGE; else pl = "11i"; /* old troff default */ } return pl; } /* * Check to see if the argument is a valid section number. If the * first character of name is a numeral, or the name matches one of * the sections listed in section_list, we'll assume that it's a section. * The list of sections in config.h simply allows us to specify oddly * named directories like .../man3f. Yuk. */ static char * is_section (char *name) { char **vs; /* 3Xt may be a section, but 3DBorder is a man page */ if (isdigit (name[0]) && !isdigit (name[1]) && strlen(name) < 5) return my_strdup (name); for (vs = section_list; *vs != NULL; vs++) if (strcmp (*vs, name) == 0) return my_strdup (name); return NULL; } static void remove_file (char *file) { int i; i = unlink (file); if (debug) { if (i) perror(file); else gripe (UNLINKED, file); } } static void remove_other_catfiles (const char *catfile) { char *pathname; char *t; char **gf; int offset; pathname = my_strdup(catfile); t = rindex(pathname, '.'); if (t == NULL || strcmp(t, getval("COMPRESS_EXT"))) return; offset = t - pathname; strcpy(t, "*"); gf = glob_filename (pathname); if (gf != (char **) -1 && gf != NULL) { for ( ; *gf; gf++) { /* * Only remove files with a known extension, like .Z * (otherwise we might kill a lot when called with * catfile = ".gz" ...) */ if (strlen (*gf) <= offset) { if (strlen (*gf) == offset) /* uncompressed version */ remove_file (*gf); continue; } if (!strcmp (*gf + offset, getval("COMPRESS_EXT"))) continue; if (get_expander (*gf) != NULL) remove_file (*gf); } } } /* * Simply display the preformatted page. */ static int display_cat_file (const char *file) { int found; if (preformat) return 1; /* nothing to do - preformat only */ found = 0; if (access (file, R_OK) == 0 && different_cat_file(file)) { char *command = NULL; const char *expander = get_expander (file); if (expander != NULL && expander[0] != 0) { if (isatty(1)) command = my_xsprintf("%s %S | %s", expander, file, pager); else command = my_xsprintf("%s %S", expander, file); } else { if (isatty(1)) { command = my_xsprintf("%s %S", pager, file); } else { const char *cat = getval("CAT"); command = my_xsprintf("%s %S", cat[0] ? cat : "cat", file); } } found = !do_system_command (command, 0); } return found; } /* * Simply display the preformatted page. */ static int display_html_file (const char *file) { int found; found = 0; if (access (file, R_OK) == 0 && different_cat_file(file)) { char *command = NULL; if (isatty(1)) { command = my_xsprintf("%s %S", browser, file); } else { command = my_xsprintf("%s %S", htmlpager, file); } found = !do_system_command (command, 0); } return found; return 1; } /* * Try to find the ultimate source file. If the first line of the * current file is not of the form * * .so man3/printf.3s * * the input file name is returned. * * For /cd/usr/src/usr.bin/util-linux-1.5/mount/umount.8.gz * (which contains `.so man8/mount.8') * we return /cd/usr/src/usr.bin/util-linux-1.5/mount/mount.8.gz . * * For /usr/man/man3/TIFFScanlineSize.3t * (which contains `.so TIFFsize.3t') * we return /usr/man/man3/TIFFsize.3t . */ static const char * ultimate_source (const char *name0) { FILE *fp; char *name; const char *expander; int expfl = 0; char *fgr; char *beg; char *end; char *cp; char buf[BUFSIZE]; static char ultname[BUFSIZE]; if (strlen(name0) >= sizeof(ultname)) return name0; strcpy(ultname, name0); name = ultname; again: expander = get_expander (name); if (expander && *expander) { char *command; command = my_xsprintf ("%s %S", expander, name); fp = my_popen (command, "r"); if (fp == NULL) { perror("popen"); gripe (EXPANSION_FAILED, command); return (NULL); } fgr = fgets (buf, sizeof(buf), fp); #ifdef __APPLE__ /* Man 1.5x randomly freezes under Mac OS X 10.4.7 when the man page is compressed (with either gzip or bzip2), and only with large pages. The freeze occurs at the pclose function, and a ps shows that gunzip is still running. The problem is the specification of pclose(): The pclose() function waits for the associated process to terminate and returns the exit status of the command as returned by wait4(). So, if gunzip is started to look at the start of a file and the file is larger than the buffer used by stdio then the first read does not read everything, and the pclose hangs. */ /* Reading loop insures lockup cannot occur */ char dummy[BUFSIZE]; while (fgets (dummy,sizeof(dummy),fp) ); #endif // __APPLE__ pclose (fp); expfl = 1; } else { fp = fopen (name, "r"); if (fp == NULL && expfl) { char *extp = rindex (name0, '.'); if (extp && *extp && strlen(name)+strlen(extp) < BUFSIZE) { strcat(name, extp); fp = fopen (name, "r"); } } /* * Some people have compressed man pages, but uncompressed * .so files - we could glob for all possible extensions, * for now: only try .gz */ else if (fp == NULL && get_expander(".gz") && strlen(name)+strlen(".gz") < BUFSIZE) { strcat(name, ".gz"); fp = fopen (name, "r"); } if (fp == NULL) { perror("fopen"); gripe (OPEN_ERROR, name); return (NULL); } fgr = fgets (buf, sizeof(buf), fp); fclose (fp); } if (fgr == NULL) { perror("fgets"); gripe (READ_ERROR, name); return (NULL); } if (strncmp(buf, ".so", 3)) return (my_strdup(name)); beg = buf+3; while (*beg == ' ' || *beg == '\t') beg++; end = beg; while (*end != ' ' && *end != '\t' && *end != '\n' && *end != '\0') end++; /* note that buf is NUL-terminated */ *end = '\0'; /* If name ends in path/manx/foo.9x then use path, otherwise try same directory. */ if ((cp = rindex(name, '/')) == NULL) /* very strange ... */ return 0; *cp = 0; /* allow "man ./foo.3" where foo.3 contains ".so man2/bar.2" */ if ((cp = rindex(name, '/')) != NULL && !strcmp(cp+1, ".")) *cp = 0; /* In all cases, the new name will be something from name followed by something from beg. */ if (strlen(name) + strlen(beg) + 1 >= BUFSIZ) return 0; /* very long names, ignore */ if (!index(beg, '/')) { /* strange.. try same directory as the .so file */ strcat(name, "/"); strcat(name, beg); } else if((cp = rindex(name, '/')) != NULL && !strncmp(cp+1, "man", 3)) { strcpy(cp+1, beg); } else if((cp = rindex(beg, '/')) != NULL) { strcat(name, cp); } else { strcat(name, "/"); strcat(name, beg); } goto again; } static void add_directive (const char *d, const char *file, char *buf, int buflen) { if ((d = getval(d)) != 0 && *d) { if (*buf == 0) { if (strlen(d) + strlen(file) + 2 > buflen) return; strcpy (buf, d); strcat (buf, " "); strcat (buf, file); } else { if (strlen(d) + strlen(buf) + 4 > buflen) return; strcat (buf, " | "); strcat (buf, d); } } } static int is_lang_page (char *lang, const char *file) { char lang_path[16] = ""; snprintf(lang_path, sizeof(lang_path), "/%s/", lang); if (strstr(file, lang_path)) return 1; if (strlen(lang) > 2) { lang_path[3] = '/'; lang_path[4] = 0; if (strstr(file, lang_path)) return 1; } return 0; } static int parse_roff_directive (char *cp, const char *file, char *buf, int buflen) { char c; int tbl_found = 0; int use_jroff; use_jroff = (is_japanese && (strstr(file, "/jman/") || is_lang_page(language, file))); while ((c = *cp++) != '\0') { switch (c) { case 'e': if (debug) gripe (FOUND_EQN); add_directive((do_troff ? "EQN" : use_jroff ? "JNEQN": "NEQN"), file, buf, buflen); break; case 'g': if (debug) gripe (FOUND_GRAP); add_directive ("GRAP", file, buf, buflen); break; case 'p': if (debug) gripe (FOUND_PIC); add_directive ("PIC", file, buf, buflen); break; case 't': if (debug) gripe (FOUND_TBL); tbl_found++; add_directive ("TBL", file, buf, buflen); break; case 'v': if (debug) gripe (FOUND_VGRIND); add_directive ("VGRIND", file, buf, buflen); break; case 'r': if (debug) gripe (FOUND_REFER); add_directive ("REFER", file, buf, buflen); break; case ' ': case '\t': case '\n': goto done; default: return -1; } } done: if (*buf == 0) return 1; add_directive (do_troff ? "TROFF" : use_jroff ? "JNROFF" : "NROFF", "", buf, buflen); if (tbl_found && !do_troff && *getval("COL")) add_directive ("COL", "", buf, buflen); return 0; } static char * eos(char *s) { while(*s) s++; return s; } /* * Create command to format FILE, in the directory PATH/manX */ static char * make_roff_command (const char *path, const char *file) { FILE *fp; static char buf [BUFSIZE]; char line [BUFSIZE], bufh [BUFSIZE], buft [BUFSIZE]; int status, ll; char *cp, *fgr, *pl; char *command = ""; const char *expander; const char *converter; /* if window size differs much from 80, try to adapt */ /* (but write only standard formatted files to the cat directory, see can_use_cache) */ ll = setll(); pl = setpl(); if (ll && debug) gripe (NO_CAT_FOR_NONSTD_LL); expander = get_expander (file); converter = get_converter (path); /* head */ bufh[0] = 0; if (ll || pl) { /* some versions of echo do not accept the -e flag, so we just use two echo calls when needed */ strcat(bufh, "("); if (ll) { /* * We should set line length and title line length. * However, a .lt command here fails, only * .ev 1; .lt ...; .ev helps for my version of groff. * The LL assignment is needed by the mandoc macros. */ sprintf(eos(bufh), "echo \".ll %d.%di\"; ", ll/10, ll%10); sprintf(eos(bufh), "echo \".nr LL %d.%di\"; ", ll/10, ll%10); #if 0 sprintf(eos(bufh), "echo \".lt %d.%di\"; ", ll/10, ll%10); #endif } if (pl) sprintf(eos(bufh), "echo \".pl %.128s\"; ", pl); } /* tail */ buft[0] = 0; if (ll || pl) { if (pl && !strcmp(pl, VERY_LONG_PAGE)) /* At end of the nroff source, set the page length to the current position plus 10 lines. This plus setpl() gives us a single page that just contains the whole man page. (William Webber, wew@cs.rmit.edu.au) */ strcat(buft, "; echo \".\\\\\\\"\"; echo \".pl \\n(nlu+10\""); #if 0 /* In case this doesnt work for some reason, michaelkjohnson suggests: I've got a simple awk invocation that I throw into the pipeline: */ awk 'BEGIN {RS="\n\n\n\n*"} /.*/ {print}' #endif strcat(buft, ")"); } if (expander && *expander) { if (converter && *converter) command = my_xsprintf("%s%s '%S' | %s%s", bufh, expander, file, converter, buft); else command = my_xsprintf("%s%s '%S'%s", bufh, expander, file, buft); } else if (ll || pl) { const char *cat = getval("CAT"); if (!cat || !*cat) cat = "cat"; if (converter && *converter) command = my_xsprintf("%s%s '%S' | %s%s", bufh, cat, file, converter, buft); else command = my_xsprintf("%s%s '%S'%s", bufh, cat, file, buft); } if (strlen(command) >= sizeof(buf)) exit(1); strcpy(buf, command); if (roff_directive != NULL) { if (debug) gripe (ROFF_FROM_COMMAND_LINE); status = parse_roff_directive (roff_directive, file, buf, sizeof(buf)); if (status == 0) return buf; if (status == -1) gripe (ROFF_CMD_FROM_COMMANDLINE_ERROR); } if (expander && *expander) { char *cmd = my_xsprintf ("%s %S", expander, file); fp = my_popen (cmd, "r"); if (fp == NULL) { perror("popen"); gripe (EXPANSION_FAILED, cmd); return (NULL); } fgr = fgets (line, sizeof(line), fp); pclose (fp); } else { fp = fopen (file, "r"); if (fp == NULL) { perror("fopen"); gripe (OPEN_ERROR, file); return (NULL); } fgr = fgets (line, sizeof(line), fp); fclose (fp); } if (fgr == NULL) { perror("fgets"); gripe (READ_ERROR, file); return (NULL); } cp = &line[0]; if (*cp++ == '\'' && *cp++ == '\\' && *cp++ == '"' && *cp++ == ' ') { if (debug) gripe (ROFF_FROM_FILE, file); status = parse_roff_directive (cp, file, buf, sizeof(buf)); if (status == 0) return buf; if (status == -1) gripe (ROFF_CMD_FROM_FILE_ERROR, file); } if ((cp = getenv ("MANROFFSEQ")) != NULL) { if (debug) gripe (ROFF_FROM_ENV); status = parse_roff_directive (cp, file, buf, sizeof(buf)); if (status == 0) return buf; if (status == -1) gripe (MANROFFSEQ_ERROR); } if (debug) gripe (USING_DEFAULT); (void) parse_roff_directive ("t", file, buf, sizeof(buf)); return buf; } /* * Try to format the man page and create a new formatted file. Return * 1 for success and 0 for failure. */ static int make_cat_file (const char *path, const char *man_file, const char *cat_file) { int mode; FILE *fp; char *roff_command; char *command = NULL; struct stat statbuf; /* _Before_ first, make sure we will write to a regular file. */ if (stat(cat_file, &statbuf) == 0) { if(!S_ISREG(statbuf.st_mode)) { if (debug) gripe (CAT_OPEN_ERROR, cat_file); return 0; } } /* First make sure we can write the file; create an empty file. */ /* If we are suid it must get mode 0666. */ if ((fp = fopen (cat_file, "w")) == NULL) { if (errno == ENOENT) /* directory does not exist */ return 0; /* If we cannot write the file, maybe we can delete it */ if(unlink (cat_file) != 0 || (fp = fopen (cat_file, "w")) == NULL) { if (errno == EROFS) /* possibly a CDROM */ return 0; if (debug) gripe (CAT_OPEN_ERROR, cat_file); if (!suid) return 0; /* maybe the real user can write it */ /* note: just doing "> %s" gives the wrong exit status */ command = my_xsprintf("cp /dev/null %S 2>/dev/null", cat_file); if (do_system_command(command, 1)) { if (debug) gripe (USER_CANNOT_OPEN_CAT); return 0; } if (debug) gripe (USER_CAN_OPEN_CAT); } } else { /* we can write it - good */ fclose (fp); /* but maybe the real user cannot - let's allow everybody */ /* the mode is reset below */ if (suid) { if (chmod (cat_file, 0666)) { /* probably we are sgid but not owner; just delete the file and create it again */ if(unlink(cat_file) != 0) { command = my_xsprintf("rm %S", cat_file); (void) do_system_command (command, 1); } if ((fp = fopen (cat_file, "w")) != NULL) fclose (fp); } } } roff_command = make_roff_command (path, man_file); if (roff_command == NULL) return 0; if (do_compress) /* The cd is necessary, because of .so commands, like .so man1/bash.1 in bash_builtins.1. But it changes the meaning of man_file and cat_file, if these are not absolute. */ command = my_xsprintf("(cd %S && %s | %S > %S)", path, roff_command, getval("COMPRESS"), cat_file); else command = my_xsprintf ("(cd %S && %s > %S)", path, roff_command, cat_file); /* * Don't let the user interrupt the system () call and screw up * the formatted man page if we're not done yet. */ signal (SIGINT, SIG_IGN); gripe (PLEASE_WAIT); if (!do_system_command (command, 0)) { /* success */ mode = ((ruid != euid) ? 0644 : (rgid != egid) ? 0464 : 0444); if(chmod (cat_file, mode) != 0 && suid) { command = my_xsprintf ("chmod 0%o %S", mode, cat_file); (void) do_system_command (command, 1); } /* be silent about the success of chmod - it is not important */ if (debug) gripe (CHANGED_MODE, cat_file, mode); } else { /* something went wrong - remove garbage */ if(unlink(cat_file) != 0 && suid) { command = my_xsprintf ("rm %S", cat_file); (void) do_system_command (command, 1); } } signal (SIGINT, SIG_DFL); return 1; } static int display_man_file(const char *path, const char *man_file) { char *roff_command; char *command; if (!different_man_file (man_file)) return 0; roff_command = make_roff_command (path, man_file); if (roff_command == NULL) return 0; if (do_troff) command = my_xsprintf ("(cd \"%S\" && %s)", path, roff_command); else command = my_xsprintf ("(cd \"%S\" && %s | %s)", path, roff_command, pager); return !do_system_command (command, 0); } /* * make and display the cat file - return 0 if something went wrong */ static int make_and_display_cat_file (const char *path, const char *man_file) { const char *cat_file; const char *ext; int status; int standards; ext = (do_compress ? getval("COMPRESS_EXT") : 0); standards = (fhs ? FHS : 0) | (fsstnd ? FSSTND : 0) | (dohp ? DO_HP : 0); if ((cat_file = convert_to_cat(man_file, ext, standards)) == NULL) return 0; if (debug) gripe (PROPOSED_CATFILE, cat_file); /* * If cat_file exists, check whether it is more recent. * Otherwise, check for other cat files (maybe there are * old .Z files that should be removed). */ status = ((nocats | preformat) ? -2 : is_newer (man_file, cat_file)); if (debug) gripe (IS_NEWER_RESULT, status); if (status == -1 || status == -3) { /* what? man_file does not exist anymore? */ gripe (CANNOT_STAT, man_file); return(0); } if (status != 0 || access (cat_file, R_OK) != 0) { /* * Cat file is out of date (status = 1) or does not exist or is * empty or is to be rewritten (status = -2) or is unreadable. * Try to format and save it. */ if (print_where) { printf ("%s\n", man_file); return 1; } if (!make_cat_file (path, man_file, cat_file)) return 0; /* * If we just created this cat file, unlink any others. */ if (status == -2 && do_compress) remove_other_catfiles(cat_file); } else { /* * Formatting not necessary. Cat file is newer than source * file, or source file is not present but cat file is. */ if (print_where) { if (one_per_line) { /* addition by marty leisner - leisner@sdsp.mc.xerox.com */ printf("%s\n", cat_file); printf("%s\n", man_file); } else printf ("%s (<-- %s)\n", cat_file, man_file); return 1; } } (void) display_cat_file (cat_file); return 1; } /* * Try to format the man page source and save it, then display it. If * that's not possible, try to format the man page source and display * it directly. */ static int format_and_display (const char *man_file) { const char *path; if (access (man_file, R_OK) != 0) return 0; path = mandir_of(man_file); if (path == NULL) return 0; /* first test for contents .so man1/xyzzy.1 */ /* (in that case we do not want to make a cat file identical to cat1/xyzzy.1) */ man_file = ultimate_source (man_file); if (man_file == NULL) return 0; if (do_troff) { char *command; char *roff_command = make_roff_command (path, man_file); if (roff_command == NULL) return 0; command = my_xsprintf("(cd \"%S\" && %s)", path, roff_command); return !do_system_command (command, 0); } if (can_use_cache && make_and_display_cat_file (path, man_file)) return 1; /* line length was wrong or could not display cat_file */ if (print_where) { printf ("%s\n", man_file); return 1; } return display_man_file (path, man_file); } /* * Search for manual pages. * * If preformatted manual pages are supported, look for the formatted * file first, then the man page source file. If they both exist and * the man page source file is newer, or only the source file exists, * try to reformat it and write the results in the cat directory. If * it is not possible to write the cat file, simply format and display * the man file. * * If preformatted pages are not supported, or the troff option is * being used, only look for the man page source file. * * Note that globbing is necessary also if the section is given, * since a preformatted man page might be compressed. * */ static int man (const char *name, const char *section) { int found, type, flags; struct manpage *mp; found = 0; /* allow man ./manpage for formatting explicitly given man pages */ if (index(name, '/')) { char fullname[BUFSIZE]; char fullpath[BUFSIZE]; char *path; char *cp; FILE *fp = fopen(name, "r"); if (!fp) { perror(name); return 0; } fclose (fp); if (*name != '/' && getcwd(fullname, sizeof(fullname)) && strlen(fullname) + strlen(name) + 3 < sizeof(fullname)) { strcat (fullname, "/"); strcat (fullname, name); } else if (strlen(name) + 2 < sizeof(fullname)) { strcpy (fullname, name); } else { fprintf(stderr, "%s: name too long\n", name); return 0; } strcpy (fullpath, fullname); if ((cp = rindex(fullpath, '/')) != NULL && cp-fullpath+4 < sizeof(fullpath)) { strcpy(cp+1, ".."); path = fullpath; } else path = "."; name = ultimate_source (fullname); if (!name) return 0; if (print_where) { printf("%s\n", name); return 1; } return display_man_file (path, name); } fflush (stdout); init_manpath(); can_use_cache = nocache ? 0 : (preformat || print_where || (isatty(0) && isatty(1) && !setll())); if (do_troff) { const char *t = getval("TROFF"); if (!t || !*t) return 0; /* don't know how to format */ type = TYPE_MAN; } else { const char *n = getval("NROFF"); type = 0; if (can_use_cache) type |= TYPE_CAT; if (n && *n) type |= TYPE_MAN; if (fhs || fsstnd) type |= TYPE_SCAT; n = getval("BROWSER"); if (n && *n) type |= TYPE_HTML; } flags = type; if (!findall) flags |= ONLY_ONE; if (fsstnd) flags |= FSSTND; else if (fhs) flags |= FHS; if (dohp) flags |= DO_HP; if (do_irix) flags |= DO_IRIX; if (do_win32) flags |= DO_WIN32; mp = manfile(name, section, flags, section_list, mandirlist, convert_to_cat); found = 0; while (mp) { if (mp->type == TYPE_MAN) { found = format_and_display(mp->filename); } else if (mp->type == TYPE_CAT || mp->type == TYPE_SCAT) { if (print_where) { printf ("%s\n", mp->filename); found = 1; } else found = display_cat_file(mp->filename); } else if (mp->type == TYPE_HTML) { if (print_where) { printf ("%s\n", mp->filename); found = 1; } else found = display_html_file(mp->filename); } else /* internal error */ break; if (found && !findall) break; mp = mp->next; } return found; } static char ** get_section_list (void) { int i; const char *p; char *end; static char *tmp_section_list[100]; if (colon_sep_section_list == NULL) { if ((p = getenv ("MANSECT")) == NULL) p = getval ("MANSECT"); colon_sep_section_list = my_strdup (p); } i = 0; for (p = colon_sep_section_list; ; p = end+1) { if ((end = strchr (p, ':')) != NULL) *end = '\0'; tmp_section_list[i++] = my_strdup (p); if (end == NULL || i+1 == SIZE(tmp_section_list)) break; } tmp_section_list [i] = NULL; return tmp_section_list; } /* return 0 when all was OK */ static int do_global_apropos (char *name, char *section) { char **dp, **gf; char *pathname; char *command; int status, res; status = 0; init_manpath(); if (mandirlist) for (dp = mandirlist; *dp; dp++) { if (debug) gripe(SEARCHING, *dp); pathname = my_xsprintf("%s/man%s/*", *dp, section ? section : "*"); gf = glob_filename (pathname); free(pathname); if (gf != (char **) -1 && gf != NULL) { for( ; *gf; gf++) { const char *expander = get_expander (*gf); if (expander) command = my_xsprintf("%s %S | grep '%Q'" "> /dev/null 2> /dev/null", expander, *gf, name); else command = my_xsprintf("grep '%Q' %S" "> /dev/null 2> /dev/null", name, *gf); res = do_system_command (command, 1); status |= res; free (command); if (res == 0) { if (print_where) printf("%s\n", *gf); else { /* should read LOCALE, but libc 4.6.27 doesn't seem to handle LC_RESPONSE yet */ int answer, c; char path[BUFSIZE]; printf("%s? [ynq] ", *gf); fflush(stdout); answer = c = getchar(); while (c != '\n' && c != EOF) c = getchar(); if(index("QqXx", answer)) exit(0); if(index("YyJj", answer)) { char *ri; strcpy(path, *gf); ri = rindex(path, '/'); if (ri) *ri = 0; format_and_display(*gf); } } } } } } return status; } /* Special code for Japanese (to pick jnroff instead of nroff, etc.) */ static void setlang(void) { char *lang; /* We use getenv() instead of setlocale(), because of glibc 2.1.x security policy for SetUID/SetGID binary. */ if ((lang = getenv("LANG")) == NULL && (lang = getenv("LC_ALL")) == NULL && (lang = getenv("LC_CTYPE")) == NULL) /* nothing */; language = lang; is_japanese = (lang && strncmp(lang, "ja", 2) == 0); } /* * Handle the apropos option. Cheat by using another program. */ static int do_apropos (char *name) { char *command; command = my_xsprintf("'%s' '%Q'", getval("APROPOS"), name); return do_system_command (command, 0); } /* * Handle the whatis option. Cheat by using another program. */ static int do_whatis (char *name) { char *command; command = my_xsprintf("'%s' '%Q'", getval("WHATIS"), name); return do_system_command (command, 0); } int main (int argc, char **argv) { int status = 0; char *nextarg; char *tmp; char *section = 0; #ifdef __CYGWIN__ extern int optind; #endif #if 0 { /* There are no known cases of buffer overflow caused by excessively long environment variables. In case you find one, the simplistic way to fix is to enable this stopgap. */ char *s; #define CHECK(p,l) s=getenv(p); if(s && strlen(s)>(l)) { fprintf(stderr, "ERROR: Environment variable %s too long!\n", p); exit(1); } CHECK("LANG", 32); CHECK("LANGUAGE", 128); CHECK("LC_MESSAGES", 128); CHECK("MANPAGER", 128); CHECK("MANPL", 128); CHECK("MANROFFSEQ", 128); CHECK("MANSECT", 128); CHECK("MAN_HP_DIREXT", 128); CHECK("PAGER", 128); CHECK("SYSTEM", 64); CHECK("BROWSER", 64); CHECK("HTMLPAGER", 64); /* COLUMNS, LC_ALL, LC_CTYPE, MANPATH, MANWIDTH, MAN_IRIX_CATNAMES, MAN_ICONV_PATH, MAN_ICONV_OPT, MAN_ICONV_INPUT_CHARSET, MAN_ICONV_OUTPUT_CHARSET, NLSPATH, PATH */ } #endif #ifndef __FreeBSD__ /* Slaven Rezif: FreeBSD-2.2-SNAP does not recognize LC_MESSAGES. */ setlocale(LC_CTYPE, ""); /* used anywhere? maybe only isdigit()? */ setlocale(LC_MESSAGES, ""); #endif /* No doubt we'll need some generic language code here later. For the moment only Japanese support. */ setlang(); /* Handle /usr/man/man1.Z/name.1 nonsense from HP */ dohp = getenv("MAN_HP_DIREXT"); /* .Z */ /* Handle ls.z (instead of ls.1.z) cat page naming from IRIX */ if (getenv("MAN_IRIX_CATNAMES")) do_irix = 1; /* Handle lack of ':' in NTFS file names */ #if defined(_WIN32) || defined(__CYGWIN__) do_win32 = 1; #endif progname = mkprogname (argv[0]); get_permissions (); get_line_length(); /* * read command line options and man.conf */ man_getopt (argc, argv); /* * manpath or man --path or man -w will only print the manpath */ if (!strcmp (progname, "manpath") || (optind == argc && print_where)) { init_manpath(); prmanpath(); exit(0); } if (optind == argc) gripe(NO_NAME_NO_SECTION); section_list = get_section_list (); while (optind < argc) { nextarg = argv[optind++]; /* is_section correctly accepts 3Xt as section, but also 9wm, so we should not believe is_section() for the last arg. */ tmp = is_section (nextarg); if (tmp && optind < argc) { section = tmp; if (debug) gripe (SECTION, section); continue; } if (global_apropos) status = !do_global_apropos (nextarg, section); else if (apropos) status = !do_apropos (nextarg); else if (whatis) status = !do_whatis (nextarg); else { status = man (nextarg, section); if (status == 0) { if (section) gripe (NO_SUCH_ENTRY_IN_SECTION, nextarg, section); else gripe (NO_SUCH_ENTRY, nextarg); } } /* reset duplicate search - fixes Fedora#542852 "man cut cut throws an error" */ free_catman_filelists (); } return status ? EXIT_SUCCESS : EXIT_FAILURE; } man-1.6g/src/Makefile.in0000644000175000001440000000670611507436376014677 0ustar lucifredusers# # Master Makefile for man, apropos, whatis, and makewhatis # # Copyright (c) 1990, 1991, John W. Eaton. # Copyright (c) 1994-2001, Andries E. Brouwer # # You may distribute under the terms of the GNU General Public # License as specified in the README file that comes with the man 1.0 # distribution. # # various changes - aeb, March 1994 # use of catalogs - aeb, June 1994 CC = @CC@ BUILD_CC = @BUILD_CC@ INSTALL = @INSTALL@ EXEEXT = @EXEEXT@ pager = @pager@ DEFS = @DEFS@ CWARN = -Wall -Wstrict-prototypes -Wmissing-prototypes CWARNNP = -Wall .c.o: $(CC) -c $(CWARN) $(CFLAGS) -I. $(DEFS) $< # LDFLAGS = -g LDFLAGS ?= -s LIBOBJS = @LIBOBJS@ all: man$(EXEEXT) man.conf apropos whatis makewhatis MANOBJS = man.o manfile.o manpath.o man-config.o man-getopt.o \ man-iconv.o to_cat.o different.o gripes.o glob.o util.o msg.o man$(EXEEXT): $(MANOBJS) $(LIBOBJS) $(CC) $(LDFLAGS) -o man$(EXEEXT) $(MANOBJS) $(LIBOBJS) $(LIBS) # CC may be a cross compiler, but BUILD_CC must compile for # the present machine. makemsg: $(BUILD_CC) -o makemsg makemsg.c msg.c gripedefs.h: ../msgs/mess.en makemsg ./makemsg ../msgs/mess.en gripedefs.h msg.c # glob.c does not have prototypes glob.o: glob.c ndir.h $(CC) -c $(CWARNNP) $(CFLAGS) -I. $(DEFS) glob.c man-config.o man-getopt.o man.o manpath.o to_cat.o: defs.h different.o man.o: different.h man.o manfile.o: glob.h different.o gripes.o man-config.o man-getopt.o man.o manfile.o manpath.o util.o: gripes.h gripedefs.h different.o man-config.o man-getopt.o man.o manpath.o: man-config.h gripes.o man-config.o man-getopt.o man.o manpath.o util.o: man.h man-getopt.o man.o manpath.o: man-getopt.h man.o manfile.o to_cat.o: manfile.h man.o man-iconv.o: man-iconv.h man.o manpath.o: manpath.h man-config.o: paths.h different.o man-config.o man-getopt.o man.o manpath.o util.o: util.h man-getopt.o: version.h msg.o: msg.c gripes.o: ../catopen/catopen.c man.conf: man.conf.in ../conf_script ../conf_script man.conf paths.h: paths.h.in ../conf_script ../conf_script paths.h version.h: ../version Makefile vers=`sed -e s/man-// ../version`; \ echo "static char version[] = \"$$vers\";" > version.h apropos: apropos.sh Makefile rm -f apropos sed -e 's,%apropos_or_whatis%,apropos,' \ -e 's,%version%,@version@,' \ -e 's,%manpathoption%,@manpathoption@,' \ apropos.sh > apropos chmod +x apropos whatis: apropos.sh Makefile rm -f whatis sed -e 's,%apropos_or_whatis%,whatis,' \ -e 's,%version%,@version@,' \ -e 's,%manpathoption%,@manpathoption@,' \ apropos.sh > whatis chmod +x whatis makewhatis: makewhatis.sh Makefile rm -f makewhatis cp makewhatis.sh makewhatis.in ../conf_script makewhatis chmod +x makewhatis MANCONFIG=$(DESTDIR)$(PREFIX)@man_config_file@ install: all apropos whatis makewhatis mkdir -p $(DESTDIR)$(PREFIX)@bindir@ $(INSTALL) -c @man_install_flags@ man$(EXEEXT) $(DESTDIR)$(PREFIX)@man@ $(INSTALL) -c -m 755 apropos $(DESTDIR)$(PREFIX)@apropos@ $(INSTALL) -c -m 755 whatis $(DESTDIR)$(PREFIX)@whatis@ $(INSTALL) -c -m 755 man2dvi $(DESTDIR)$(PREFIX)@man2dvi@ mkdir -p $(DESTDIR)$(PREFIX)@sbindir@ $(INSTALL) -c -m 754 makewhatis $(DESTDIR)$(PREFIX)@makewhatis@ mkdir -p $(DESTDIR)$(PREFIX)@man_config_dir@ if [ -f $(MANCONFIG) ]; then mv $(MANCONFIG) $(MANCONFIG).orig; fi $(INSTALL) -c -m 644 man.conf $(MANCONFIG) clean: rm -f *.o *~ core man$(EXEEXT) apropos whatis makewhatis makemsg spotless: clean rm -f Makefile config.status paths.h version.h man.conf rm -f gripedefs.h msg.c mess.*.cat man-1.6g/src/defs.h0000644000175000001440000000070510301736016013676 0ustar lucifredusers/* defs.h */ #undef MAXPATHLEN /* make sure struct dirs has a well-defined size (thanks to Pierre.Humblet@eurecom.fr) */ #include #define MAN 0 #define CAT 1 #define SCAT 2 #ifndef MAXPATHLEN #define MAXPATHLEN 1024 #endif struct dir { struct dir *nxt; char *dir; }; struct dirs { struct dirs *nxt; char mandir[MAXPATHLEN]; char catdir[MAXPATHLEN]; char bindir[MAXPATHLEN]; int mandatory; }; man-1.6g/src/glob.c0000644000175000001440000003647510301736016013710 0ustar lucifredusers/* File-name wildcard pattern matching for GNU. Copyright (C) 1985, 1988, 1989, 1990, 1991 Free Software Foundation, Inc. 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 1, 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 this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* To whomever it may concern: I have never seen the code which most Unix programs use to perform this function. I wrote this from scratch based on specifications for the pattern matching. --RMS. */ #ifdef SHELL #include "config.h" #endif /* SHELL */ #include #if defined (USGr3) && !defined (DIRENT) #define DIRENT #endif /* USGr3 */ #if defined (Xenix) && !defined (SYSNDIR) #define SYSNDIR #endif /* Xenix */ #if defined (POSIX) || defined (DIRENT) || defined (__GNU_LIBRARY__) #include #define direct dirent #define D_NAMLEN(d) strlen((d)->d_name) #else /* not POSIX or DIRENT or __GNU_LIBRARY__ */ #define D_NAMLEN(d) ((d)->d_namlen) #ifdef USG #if defined (SYSNDIR) #include #else /* SYSNDIR */ #include "ndir.h" #endif /* not SYSNDIR */ #else /* not USG */ #include #endif /* USG */ #endif /* POSIX or DIRENT or __GNU_LIBRARY__ */ #ifdef __QNX__ #define REAL_DIR_ENTRY(dp) (dp->d_stat.st_ino != 0) #elif defined (_POSIX_SOURCE) /* Posix does not require that the d_ino field be present, and some systems do not provide it. */ #define REAL_DIR_ENTRY(dp) 1 #else #define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) #endif /* _POSIX_SOURCE */ #if defined (STDC_HEADERS) || defined (__GNU_LIBRARY__) #include #include #define STDC_STRINGS #else /* STDC_HEADERS or __GNU_LIBRARY__ */ #if defined (USG) #include #ifndef POSIX #include #endif /* POSIX */ #define STDC_STRINGS #else /* not USG */ #ifdef NeXT #include #else /* NeXT */ #include #endif /* NeXT */ /* Declaring bcopy causes errors on systems whose declarations are different. If the declaration is omitted, everything works fine. */ #endif /* not USG */ extern char *malloc (); extern char *realloc (); extern void free (); #ifndef NULL #define NULL 0 #endif #endif /* Not STDC_HEADERS or __GNU_LIBRARY__. */ #ifdef STDC_STRINGS #define bcopy(s, d, n) memcpy ((d), (s), (n)) #define index strchr #define rindex strrchr #endif /* STDC_STRINGS */ #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* Not GCC. */ #ifdef sparc #include #else /* Not sparc. */ extern char *alloca (); #endif /* sparc. */ #endif /* GCC. */ #endif /* Nonzero if '*' and '?' do not match an initial '.' for glob_filename. */ int noglob_dot_filenames = 1; static int glob_match_after_star (); /* Return nonzero if PATTERN has any special globbing chars in it. */ int glob_pattern_p (pattern) char *pattern; { register char *p = pattern; register char c; int open = 0; while ((c = *p++) != '\0') switch (c) { case '?': case '*': return 1; case '[': /* Only accept an open brace if there is a close */ open++; /* brace to match it. Bracket expressions must be */ continue; /* complete, according to Posix.2 */ case ']': if (open) return 1; continue; case '\\': if (*p++ == '\0') return 0; } return 0; } /* Match the pattern PATTERN against the string TEXT; return 1 if it matches, 0 otherwise. A match means the entire string TEXT is used up in matching. In the pattern string, `*' matches any sequence of characters, `?' matches any character, [SET] matches any character in the specified set, [!SET] matches any character not in the specified set. A set is composed of characters or ranges; a range looks like character hyphen character (as in 0-9 or A-Z). [0-9a-zA-Z_] is the set of characters allowed in C identifiers. Any other character in the pattern must be matched exactly. To suppress the special syntactic significance of any of `[]*?!-\', and match the character exactly, precede it with a `\'. If DOT_SPECIAL is nonzero, `*' and `?' do not match `.' at the beginning of TEXT. */ int glob_match (pattern, text, dot_special) char *pattern, *text; int dot_special; { register char *p = pattern, *t = text; register char c; while ((c = *p++) != '\0') switch (c) { case '?': if (*t == '\0' || (dot_special && t == text && *t == '.')) return 0; else ++t; break; case '\\': if (*p++ != *t++) return 0; break; case '*': if (dot_special && t == text && *t == '.') return 0; return glob_match_after_star (p, t); case '[': { register char c1 = *t++; int invert; if (c1 == '\0') return 0; invert = (*p == '!'); if (invert) p++; c = *p++; while (1) { register char cstart = c, cend = c; if (c == '\\') { cstart = *p++; cend = cstart; } if (cstart == '\0') return 0; /* Missing ']'. */ c = *p++; if (c == '-') { cend = *p++; if (cend == '\\') cend = *p++; if (cend == '\0') return 0; c = *p++; } if (c1 >= cstart && c1 <= cend) goto match; if (c == ']') break; } if (!invert) return 0; break; match: /* Skip the rest of the [...] construct that already matched. */ while (c != ']') { if (c == '\0') return 0; c = *p++; if (c == '\0') return 0; if (c == '\\') p++; } if (invert) return 0; break; } default: if (c != *t++) return 0; } return *t == '\0'; } /* Like glob_match, but match PATTERN against any final segment of TEXT. */ static int glob_match_after_star (pattern, text) char *pattern, *text; { register char *p = pattern, *t = text; register char c, c1; while ((c = *p++) == '?' || c == '*') if (c == '?' && *t++ == '\0') return 0; if (c == '\0') return 1; if (c == '\\') c1 = *p; else c1 = c; --p; while (1) { if ((c == '[' || *t == c1) && glob_match (p, t, 0)) return 1; if (*t++ == '\0') return 0; } } /* Return a vector of names of files in directory DIR whose names match glob pattern PAT. The names are not in any particular order. Wildcards at the beginning of PAT do not match an initial period if noglob_dot_filenames is nonzero. The vector is terminated by an element that is a null pointer. To free the space allocated, first free the vector's elements, then free the vector. Return NULL if cannot get enough memory to hold the pointer and the names. Return -1 if cannot access directory DIR. Look in errno for more information. */ char ** glob_vector (pat, dir) char *pat; char *dir; { struct globval { struct globval *next; char *name; }; DIR *d; register struct direct *dp; struct globval *lastlink; register struct globval *nextlink; register char *nextname; unsigned int count; int lose; register char **name_vector = 0; register unsigned int i; #ifdef ALLOCA_MISSING struct globval *templink; #endif d = opendir (dir); if (d == NULL) return (char **) -1; lastlink = NULL; count = 0; lose = 0; /* Scan the directory, finding all names that match. For each name that matches, allocate a struct globval on the stack and store the name in it. Chain those structs together; lastlink is the front of the chain. */ while (1) { #if defined (SHELL) /* Make globbing interruptible in the bash shell. */ extern int interrupt_state; if (interrupt_state) { closedir (d); lose = 1; goto lost; } #endif /* SHELL */ dp = readdir (d); if (dp == NULL) break; if (REAL_DIR_ENTRY (dp) && glob_match (pat, dp->d_name, noglob_dot_filenames)) { #ifdef ALLOCA_MISSING nextlink = (struct globval *) malloc (sizeof (struct globval)); #else nextlink = (struct globval *) alloca (sizeof (struct globval)); #endif nextlink->next = lastlink; i = D_NAMLEN (dp) + 1; nextname = (char *) malloc (i); if (nextname == NULL) { lose = 1; break; } lastlink = nextlink; nextlink->name = nextname; bcopy (dp->d_name, nextname, i); count++; } } closedir (d); if (!lose) { name_vector = (char **) malloc ((count + 1) * sizeof (char *)); lose |= name_vector == NULL; } /* Have we run out of memory? */ #ifdef SHELL lost: #endif if (lose) { /* Here free the strings we have got. */ while (lastlink) { free (lastlink->name); #ifdef ALLOCA_MISSING templink = lastlink->next; free ((char *) lastlink); lastlink = templink; #else lastlink = lastlink->next; #endif } return NULL; } /* Copy the name pointers from the linked list into the vector. */ for (i = 0; i < count; ++i) { name_vector[i] = lastlink->name; #ifdef ALLOCA_MISSING templink = lastlink->next; free ((char *) lastlink); lastlink = templink; #else lastlink = lastlink->next; #endif } name_vector[count] = NULL; return name_vector; } /* Return a new array, replacing ARRAY, which is the concatenation of each string in ARRAY to DIR. Return NULL if out of memory. */ static char ** glob_dir_to_array (dir, array) char *dir, **array; { register unsigned int i, l; int add_slash = 0; char **result; l = strlen (dir); if (l == 0) return array; if (dir[l - 1] != '/') add_slash++; for (i = 0; array[i] != NULL; i++) ; result = (char **) malloc ((i + 1) * sizeof (char *)); if (result == NULL) return NULL; for (i = 0; array[i] != NULL; i++) { result[i] = (char *) malloc (1 + l + add_slash + strlen (array[i])); if (result[i] == NULL) return NULL; strcpy (result[i], dir); if (add_slash) result[i][l] = '/'; strcpy (result[i] + l + add_slash, array[i]); } result[i] = NULL; /* Free the input array. */ for (i = 0; array[i] != NULL; i++) free (array[i]); free ((char *) array); return result; } /* Do globbing on PATHNAME. Return an array of pathnames that match, marking the end of the array with a null-pointer as an element. If no pathnames match, then the array is empty (first element is null). If there isn't enough memory, then return NULL. If a file system error occurs, return -1; `errno' has the error code. Wildcards at the beginning of PAT, or following a slash, do not match an initial period if noglob_dot_filenames is nonzero. */ char ** glob_filename (const char *pathname) { char **result; unsigned int result_size; char *directory_name; const char *filename; unsigned int directory_len; result = (char **) malloc (sizeof (char *)); result_size = 1; if (result == NULL) return NULL; result[0] = NULL; /* Find the filename. */ filename = rindex (pathname, '/'); if (filename == NULL) { filename = pathname; directory_name = ""; directory_len = 0; } else { directory_len = (filename - pathname) + 1; #ifdef ALLOCA_MISSING directory_name = (char *) malloc (directory_len + 1); #else directory_name = (char *) alloca (directory_len + 1); #endif bcopy (pathname, directory_name, directory_len); directory_name[directory_len] = '\0'; ++filename; } /* If directory_name contains globbing characters, then we have to expand the previous levels. Just recurse. */ if (glob_pattern_p (directory_name)) { char **directories; register unsigned int i; if (directory_name[directory_len - 1] == '/') directory_name[directory_len - 1] = '\0'; directories = glob_filename (directory_name); #ifdef ALLOCA_MISSING free ((char *) directory_name); #endif if (directories == NULL) goto memory_error; else if (directories == (char **) -1) return (char **) -1; else if (*directories == NULL) { free ((char *) directories); return (char **) -1; } /* We have successfully globbed the preceding directory name. For each name in DIRECTORIES, call glob_vector on it and FILENAME. Concatenate the results together. */ for (i = 0; directories[i] != NULL; i++) { char **temp_results = glob_vector (filename, directories[i]); if (temp_results == NULL) goto memory_error; else if (temp_results == (char **) -1) /* This filename is probably not a directory. Ignore it. */ ; else { char **array = glob_dir_to_array (directories[i], temp_results); register unsigned int l; l = 0; while (array[l] != NULL) ++l; result = (char **) realloc (result, (result_size + l) * sizeof (char *)); if (result == NULL) goto memory_error; for (l = 0; array[l] != NULL; ++l) result[result_size++ - 1] = array[l]; result[result_size - 1] = NULL; free ((char *) array); } } /* Free the directories. */ for (i = 0; directories[i] != NULL; i++) free (directories[i]); free ((char *) directories); return result; } /* If there is only a directory name, return it. */ if (*filename == '\0') { result = (char **) realloc ((char *) result, 2 * sizeof (char *)); if (result != NULL) { result[0] = (char *) malloc (directory_len + 1); if (result[0] == NULL) { #ifdef ALLOCA_MISSING free ((char *) directory_name); #endif goto memory_error; } bcopy (directory_name, result[0], directory_len + 1); result[1] = NULL; } #ifdef ALLOCA_MISSING free ((char *) directory_name); #endif return result; } else { /* Otherwise, just return what glob_vector returns appended to the directory name. */ char **temp_results = glob_vector (filename, (directory_len == 0 ? "." : directory_name)); if (temp_results == NULL || temp_results == (char **) -1) { #ifdef NO_ALLOCA free ((char *) directory_name); #endif return temp_results; } temp_results = glob_dir_to_array (directory_name, temp_results); #ifdef NO_ALLOCA free ((char *) directory_name); #endif return temp_results; } /* We get to memory error if the program has run out of memory, or if this is the shell, and we have been interrupted. */ memory_error: if (result != NULL) { register unsigned int i; for (i = 0; result[i] != NULL; ++i) free (result[i]); free ((char *) result); } #if defined (SHELL) { extern int interrupt_state; if (interrupt_state) throw_to_top_level (); } #endif /* SHELL */ return NULL; } #ifdef TEST main (argc, argv) int argc; char **argv; { char **value; int i, optind; for (optind = 1; optind < argc; optind++) { value = glob_filename (argv[optind]); if (value == NULL) puts ("virtual memory exhausted"); else if (value == (char **) -1) perror (argv[optind]); else for (i = 0; value[i] != NULL; i++) puts (value[i]); } exit (0); } #endif /* TEST */ man-1.6g/src/glob.h0000644000175000001440000000004510301736016013675 0ustar lucifreduserschar **glob_filename (const char *); man-1.6g/src/different.c0000644000175000001440000000253011317256542014725 0ustar lucifredusers#include #include #include #include "different.h" #include "gripes.h" #include "man-config.h" #include "util.h" static struct filelist { char *pathname; struct filelist *next; } cat_list, man_list; static int is_different(const char *file, struct filelist *p) { char *command; const char *cmp = getval("CMP"); int ret; if (cmp) { while (p->next) { command = my_xsprintf("%s %S %S\n", cmp, file, p->pathname); ret = do_system_command (command, 1); if (ret == 0) { gripe(IDENTICAL, file, p->pathname); return 0; } p = p->next; } p->next = (struct filelist *) my_malloc(sizeof(struct filelist)); p->pathname = my_strdup(file); p->next->next = 0; } return 1; } static int free_filelist (struct filelist *list){ struct filelist *current, *next; current = list; if (current != list) do { next = current->next; if (current != list) free(current); current = next; } while (current->next != NULL); list->next = NULL; return 0; } int different_cat_file (const char *file) { return is_different (file, &cat_list); } int different_man_file (const char *file) { return is_different (file, &man_list); } int free_catman_filelists (void){ free_filelist(&man_list); free_filelist(&cat_list); return 0; } man-1.6g/src/different.h0000644000175000001440000000017011317240137014721 0ustar lucifredusersint different_cat_file (const char *file); int different_man_file (const char *file); int free_catman_filelists (void); man-1.6g/src/mwi0000755000175000001440000000046710301736016013333 0ustar lucifredusers#!/bin/sh # test which words in all caps end a NAME section in a (compressed) cat page # # Found so far: # # SYNOPSIS # SYNOPOSIS # SYSTEM V SYNOPSIS # SYNTAX # DESCRIPTION # COMMAND # OVERVIEW # STRUCTURES # INTRODUCTION # for i in * do zcat $i | col -bx | sed '1,/^NAME/d; /^[A-Z][A-Z]/q' | tail -1 done man-1.6g/src/util.c0000644000175000001440000001407310572143066013737 0ustar lucifredusers/* * util.c * * Copyright (c) 1990, 1991, John W. Eaton. * * You may distribute under the terms of the GNU General Public * License as specified in the file COPYING that comes with the man * distribution. * * John W. Eaton * jwe@che.utexas.edu * Department of Chemical Engineering * The University of Texas at Austin * Austin, Texas 78712 */ #include #include #include #include #include #include #include #include #include #include "util.h" #include "gripes.h" #include "man.h" /* for debug */ /* * Extract last element of a name like /foo/bar/baz. */ const char * mkprogname (const char *s) { const char *t; t = strrchr (s, '/'); if (t == (char *)NULL) t = s; else t++; return my_strdup (t); } /* * Is file a nonempty and newer than file b? * * case: * * a newer than b returns 1 * a older than b returns 0 * stat on a fails or a empty returns -1 * stat on b fails or b empty returns -2 * both fail or empty returns -3 */ int is_newer (const char *fa, const char *fb) { struct stat fa_sb; struct stat fb_sb; register int fa_stat; register int fb_stat; register int status = 0; fa_stat = stat (fa, &fa_sb); if (fa_stat != 0 || fa_sb.st_size == 0) status = 1; fb_stat = stat (fb, &fb_sb); if (fb_stat != 0 || fb_sb.st_size == 0) status |= 2; if (status != 0) return -status; return (fa_sb.st_mtime > fb_sb.st_mtime); } int ruid, rgid, euid, egid, suid; void get_permissions (void) { ruid = getuid(); euid = geteuid(); rgid = getgid(); egid = getegid(); suid = (ruid != euid || rgid != egid); } void no_privileges (void) { if (suid) { #if !defined (__CYGWIN__) && !defined (__BEOS__) setreuid(ruid, ruid); setregid(rgid, rgid); #endif suid = 0; } } /* * What to do upon an interrupt? Experience shows that * if we exit immediately, sh notices that its child has * died and will try to fiddle with the tty. * Simultaneously, also less will fiddle with the tty, * resetting the mode before exiting. * This leads to undesirable races. So, we catch SIGINT here * and exit after the child has exited. */ static int interrupted = 0; static void catch_int(int a) { interrupted = 1; } static int system1 (const char *command) { void (*prev_handler)(int) = signal (SIGINT,catch_int); int ret = system(command); /* child terminated with signal? */ if (WIFSIGNALED(ret) && (WTERMSIG(ret) == SIGINT || WTERMSIG(ret) == SIGQUIT)) exit(1); /* or we caught an interrupt? */ if (interrupted) exit(1); signal(SIGINT,prev_handler); return ret; } static int my_system (const char *command) { int pid, pid2, status, stat; if (!suid) return system1 (command); #ifdef _POSIX_SAVED_IDS /* we need not fork */ setuid(ruid); setgid(rgid); status = system1(command); setuid(euid); setgid(egid); return (WIFEXITED(status) ? WEXITSTATUS(status) : 127); #endif fflush(stdout); fflush(stderr); pid = fork(); if (pid == -1) { perror(progname); fatal (CANNOT_FORK, command); } if (pid == 0) { setuid(ruid); setgid(rgid); status = system1 (command); exit(WIFEXITED(status) ? WEXITSTATUS(status) : 127); } pid2 = wait (&stat); if (pid2 == -1) { perror(progname); fatal (WAIT_FAILED, command); /* interrupted? */ } if (pid2 != pid) fatal (GOT_WRONG_PID); if (WIFEXITED(stat) && WEXITSTATUS(stat) != 127) return WEXITSTATUS(stat); fatal (CHILD_TERMINATED_ABNORMALLY, command); return -1; /* not reached */ } FILE * my_popen(const char *command, const char *type) { FILE *r; if (!suid) return popen(command, type); #ifdef _POSIX_SAVED_IDS setuid(ruid); setgid(rgid); r = popen(command, type); setuid(euid); setgid(egid); return r; #endif no_privileges(); return popen(command, type); } #define NOT_SAFE "/unsafe/" /* * Attempt a system () call. */ int do_system_command (const char *command, int silent) { int status = 0; /* * If we're debugging, don't really execute the command */ if ((debug & 1) || !strncmp(command, NOT_SAFE, strlen(NOT_SAFE))) fatal (NO_EXEC, command); else status = my_system (command); if (status && !silent) gripe (SYSTEM_FAILED, command, status); return status; } char * my_malloc (int n) { char *s = malloc(n); if (!s) fatal (OUT_OF_MEMORY, n); return s; } char * my_strdup (const char *s) { char *t = my_malloc(strlen(s) + 1); strcpy(t, s); return t; } /* * Call: my_xsprintf(format,s1,s2,...) where format only contains %s/%S/%Q * (or %d or %o) and all %s/%S/%Q parameters are strings. * Result: allocates a new string containing the sprintf result. * The %S parameters are checked for being shell safe. * The %Q parameters are checked for being shell safe inside single quotes. */ static int is_shell_safe(const char *ss, int quoted) { char *bad = " ;'\\\"<>|&"; char *p; if (quoted) bad++; /* allow a space inside quotes */ for (p = bad; *p; p++) if (strchr(ss, *p)) return 0; return 1; } static void nothing(int x) {} char * my_xsprintf (char *format, ...) { va_list p; char *s, *ss, *fm; int len; len = strlen(format) + 1; fm = my_strdup(format); va_start(p, format); for (s = fm; *s; s++) { if (*s == '%') { switch (s[1]) { case 'Q': case 'S': /* check and turn into 's' */ ss = va_arg(p, char *); if (!is_shell_safe(ss, (s[1] == 'Q'))) return NOT_SAFE; len += strlen(ss); s[1] = 's'; break; case 's': len += strlen(va_arg(p, char *)); break; case 'd': case 'o': case 'c': len += 20; nothing(va_arg(p, int)); /* advance */ break; default: fprintf(stderr, "my_xsprintf called with %s\n", format); exit(1); } } } va_end(p); s = my_malloc(len); va_start(p, format); vsprintf(s, fm, p); va_end(p); return s; } man-1.6g/src/gripes.c0000644000175000001440000000546410530654510014252 0ustar lucifredusers#include #include #include #include "gripes.h" #include "man.h" /* for progname */ extern char *msg[]; static char *mantexts = "man"; /* e.g. /usr/lib/locale/%L/man.cat */ #ifdef NONLS static char * getmsg (int n) { char *s; if (0 < n && n <= MAXMSG) s = msg[n]; else { fprintf (stderr, "man: internal error - cannot find message %d\n", n); exit (1); } return s; } #else /* NONLS */ #include #include #include "../catopen/catopen.c" nl_catd catfd = (nl_catd) -1; int cat_is_open = 0; static void catinit (void) { if (!cat_is_open) { #ifdef NL_CAT_LOCALE catfd = my_catopen(mantexts,NL_CAT_LOCALE); #else catfd = my_catopen(mantexts,0); #endif if (catfd == (nl_catd) -1) { /* * Only complain if LANG exists, and LANG != "en" * (or when debugging). Also accept en_ZA etc. * No messages for C locale. */ char *s, *lg; s = getenv("NLSPATH"); lg = getenv("LANG"); if (!lg) lg = getenv("LC_MESSAGES"); if (!lg) lg = getenv("LC_ALL"); if (lg && strncmp(lg, "en", 2) && strcmp(lg, "C") && strcmp(lg, "POSIX")) { fprintf(stderr, "Cannot open the message catalog \"%s\" for locale \"%s\"\n" "(NLSPATH=\"%s\")\n\n", mantexts, lg, s ? s : ""); } else if (debug) { fprintf(stderr, "Looked whether there exists a message catalog %s, but there is none\n" "(and for English messages none is needed)\n\n", mantexts); } } } cat_is_open = 1; } /* * This routine is unnecessary, but people ask for such things. * * Maybe man is suid or sgid to some user that owns the cat directories. * Maybe NLSPATH can be manipulated by the user - even though * modern glibc avoids using environment variables when the * program is suid or sgid. * So, maybe the string s that we are returning was user invented * and we have to avoid %n and the like. * * As a random hack, only allow %s,%d,%o, and only two %-signs. */ static int is_suspect (char *s) { int ct = 0; while (*s) { if (*s++ == '%') { ct++; if (*s != 's' && *s != 'd' && *s != 'o') return 1; } } return (ct > 2); } static char * getmsg (int n) { char *s = ""; catinit (); if (catfd != (nl_catd) -1) { s = catgets(catfd, 1, n, ""); if (*s && is_suspect(s)) s = ""; } if (*s == 0 && 0 < n && n <= MAXMSG) s = msg[n]; if (*s == 0) { fprintf(stderr, "man: internal error - cannot find message %d\n", n); exit (1); } return s; } #endif /* NONLS */ void gripe (int n, ...) { va_list p; va_start(p, n); vfprintf (stderr, getmsg(n), p); va_end(p); fflush (stderr); } void fatal (int n, ...) { va_list p; fprintf (stderr, "%s: ", progname); va_start(p, n); vfprintf (stderr, getmsg(n), p); va_end(p); exit (1); } man-1.6g/src/gripes.h0000644000175000001440000000011310301736016014237 0ustar lucifredusers#include "gripedefs.h" void gripe (int n, ...); void fatal (int n, ...); man-1.6g/src/makemsg.c0000644000175000001440000000751110464165340014404 0ustar lucifredusers/* makemsg.c - aeb - 940605 */ /* * Read a file input with lines * LABEL "text" * and either output two files: * a file msgout.c with content char *msg[] = { "text", ... }; * and a file msgout.h with content #define LABEL 1 * or output a single file: * a message catalog with lines 1 "text" * * The former two are used during compilation of the main program * and give default (English) messages. The latter output file is * input for gencat, and used in non-English locales. * * Call: * makemsg input msgout.h msgout.c * or * makemsg -c input message_catalog */ #include #include #include #ifdef __QNX__ #include #endif extern char *index(const char *, int); extern char *rindex(const char *, int); #define BUFSIZE 4096 #define whitespace(c) ((c) == ' ' || (c) == '\t' || (c) == '\n') static void usage(void){ fprintf (stderr, "call is: makemsg input msgout.h msgout.c\n"); fprintf (stderr, "or: makemsg -c input catalog\n"); exit (1); } int main(int argc, char **argv) { FILE *fin, *foh, *foc; char *s, *t; char *infile, *outcfile, *outhfile; char buf[BUFSIZE]; int defct = 0; int makecat = 0; #define getbuf if (fgets (buf, sizeof(buf), fin) == NULL) {\ fprintf (stderr, "makemsg: unexpected end of input\n");\ fprintf (stderr, "[output file(s) removed]\n");\ unlink (outcfile);\ if (!makecat) unlink (outhfile);\ exit (1);\ } if (argc != 4) usage (); outhfile = 0; foh = 0; /* just to keep gcc happy */ if (!strcmp(argv[1], "-c")) { makecat = 1; infile = argv[2]; outcfile = argv[3]; } else { infile = argv[1]; outhfile = argv[2]; outcfile = argv[3]; } fin = fopen (infile, "r"); if (!fin) { perror (infile); fprintf (stderr, "makemsg: cannot open input file %s\n", infile); usage (); } /* help people not to confuse the order of these args */ if (!makecat) { s = rindex(outhfile, '.'); if (!s || s[1] != 'h') { fprintf (stderr, "defines output file should have name ending in .h\n"); usage (); } s = rindex(outcfile, '.'); if (!s || s[1] != 'c') { fprintf (stderr, "string output file should have name ending in .c\n"); usage (); } } if (!makecat) { foh = fopen (outhfile, "w"); if (!foh) { perror (argv[1]); fprintf (stderr, "makemsg: cannot open output file %s\n", outhfile); usage (); } } foc = fopen (outcfile, "w"); if (!foc) { perror (argv[2]); fprintf (stderr, "makemsg: cannot open output file %s\n", outcfile); usage (); } if (makecat) fputs ("$quote \"\n$set 1\n", foc); else fputs ("char *msg[] = {\n \"\",\n", foc); while (fgets (buf, sizeof(buf), fin) != NULL) { char ss; /* skip leading blanks and blank lines */ s = buf; while (whitespace(*s)) s++; if (*s == 0) continue; /* extract label part */ t = s; while (*s && !whitespace(*s)) s++; ss = *s; *s = 0; if (makecat) { /* the format here used to be "%d ", but that breaks glibc-2.1.2 gencat */ fprintf (foc, "%d ", ++defct); /* gencat cannot handle %2d */ } else { fprintf (foh, "#define %s %d\n", t, ++defct); fprintf (foc, "/* %2d */ ", defct); } *s = ss; /* skip blanks and newlines until string found */ while (whitespace(*s) || *s == 0) { if (*s == 0) { getbuf; s = buf; } else s++; } /* output string - it may extend over several lines */ while ((t = index(s, '\n')) == NULL || (t > buf && t[-1] == '\\')) { fputs (s, foc); getbuf; s = buf; } *t = 0; fputs (s, foc); if (makecat) fputs ("\n", foc); else fputs (",\n", foc); } if (!makecat) { fputs ("};\n", foc); fprintf (foh, "\n#define MAXMSG %d\n", defct); } if (!makecat) { fclose (foh); } fclose (foc); fclose (fin); return 0; } man-1.6g/src/makewhatis.sh0000644000175000001440000003343310673544342015314 0ustar lucifredusers#!/bin/sh # makewhatis: create the whatis database # Created: Sun Jun 14 10:49:37 1992 # Revised: Sat Jan 8 14:12:37 1994 by faith@cs.unc.edu # Revised: Sat Mar 23 17:56:18 1996 by micheal@actrix.gen.nz # Copyright 1992, 1993, 1994 Rickard E. Faith (faith@cs.unc.edu) # May be freely distributed and modified as long as copyright is retained. # # Wed Dec 23 13:27:50 1992: Rik Faith (faith@cs.unc.edu) applied changes # based on Mitchum DSouza (mitchum.dsouza@mrc-apu.cam.ac.uk) cat patches. # Also, cleaned up code and make it work with NET-2 doc pages. # # makewhatis-1.4: aeb 940802, 941007, 950417 # Fixed so that the -c option works correctly for the cat pages # on my machine. Fix for -u by Nan Zou (nan@ksu.ksu.edu). # Many minor changes. # The -s option is undocumented, and may well disappear again. # # Sat Mar 23 1996: Michael Hamilton (michael@actrix.gen.nz). # I changed the script to invoke gawk only once for each directory tree. # This speeds things up considerably (from 30 minutes down to 1.5 minutes # on my 486DX66). # 960401 - aeb: slight adaptation to work correctly with cat pages. # 960510 - added fixes by brennan@raven.ca.boeing.com, author of mawk. # 971012 - replaced "test -z" - it doesnt work on SunOS 4.1.3_U1. # 980710 - be more careful with TMPFILE. # 000323 - do not change PATH, better treatment of catpages - Bryan Henderson. # 011117 - avoid suspicious filenames. # 030310 - find files only; fix LAPACK cruft; no /usr/man default; # use /dev/stderr instead of /dev/tty; handle files with strange names; # add support for chinese, hungarian, indonesian, japanese, korean, # polish, russian (Thierry Vignaud). # # makewhatis 1.6: Federico Lucifredi # 060608 - Corrected traps. # 060719 - section choosing behavior to match man's (Mike frysinger). # # Note for Slackware users: "makewhatis -v -w -c" will work. # # makewhatis flc 060719 (from @version@) program=`basename $0` # In case both /usr/man and /usr/share/man exist, the former is local # and should be first. # It is a bug to add /var/cache/man to DEFCATPATH. dm= for d in /usr/man /usr/share/man /usr/X11R6/man /usr/local/man do if [ -d $d ]; then if [ x$dm = x ]; then dm=$d; else dm=$dm:$d; fi fi done DEFMANPATH=$dm dc= for d in /usr/man/preformat /usr/man /usr/share/man/preformat /usr/share/man do if [ -d $d ]; then if [ x$dc = x ]; then dc=$d; else dc=$dc:$d; fi fi done DEFCATPATH=$dc # In case /usr is read-only, make /usr/foo/whatis (etc) a symlink to # something like /var/cache/man/foo-whatis. # Some distributions make a single big /var/cache/man/whatis file, # but that leads to problems and bugs. # AWK=/usr/bin/gawk AWK=@awk@ # Find a place for our temporary files. If security is not a concern, use # TMPFILE=/tmp/whatis$$; TMPFILEDIR=none # Of course makewhatis should only have the required permissions # (for reading and writing directories like /usr/man). # We try here to be careful (and avoid preconstructed symlinks) # in case makewhatis is run as root, by creating a subdirectory of /tmp. TMPFILEDIR=/tmp/whatis.tmp.dir.$$ rm -rf $TMPFILEDIR if ! mkdir -m 0700 $TMPFILEDIR; then echo Could not create $TMPFILEDIR exit 1; fi TMPFILE=$TMPFILEDIR/w # make sure TMPFILEDIR is deleted if program is killed or terminates # (just delete this line if your shell doesnt know about trap) trap "rm -rf $TMPFILEDIR" 0 trap "rm -rf $TMPFILEDIR; exit 255" 1 2 3 15 # default find arg: no directories, no empty files findarg0="-type f -size +0" topath=manpath defmanpath=$DEFMANPATH defcatpath= if [ -n "$MANSECT" ]; then sections=$MANSECT else sections=`$AWK '($1 == "MANSECT") { print $2 }' @man_config_file@` if [ x"$sections" = x ]; then sections="@sections@" fi fi sections=`echo $sections | sed -e 's/:/ /g'` for name in "$@" do if [ -n "$setsections" ]; then setsections= sections=$name continue fi case $name in --version|-V) echo "$program from @version@" exit 0;; -c) topath=catpath defmanpath= defcatpath=$DEFCATPATH continue;; -s) setsections=1 continue;; -u) findarg="-ctime 0" update=1 continue;; -v) verbose=1 continue;; -w) manpath=`man --path` catpath=$manpath continue;; -*) echo "Usage: makewhatis [-s sections] [-u] [-v] [-w] [manpath] [-c [catpath]]" echo " This will build the whatis database for the man pages" echo " found in manpath and the cat pages found in catpath." echo " -s: sections (default: $sections)" echo " -u: update database with new pages" echo " -v: verbose" echo " -w: use manpath obtained from \`man --path\`" echo " [manpath]: man directories (default: $DEFMANPATH)" echo " [catpath]: cat directories (default: the first existing" echo " directory in $DEFCATPATH)" exit;; *) if [ -d $name ] then eval $topath="\$$topath":$name else echo "No such directory $name" exit fi;; esac done manpath=`echo ${manpath-$defmanpath} | tr : ' '` if [ x"$catpath" = x ]; then for d in `echo $defcatpath | tr : ' '` do if [ -d $d ]; then catpath=$d; break; fi done fi catpath=`echo ${catpath} | tr : ' '` # first truncate all the whatis files that will be created new, # then only update - we might visit the same directory twice if [ x$update = x ]; then for pages in man cat do eval path="\$$pages"path for mandir in $path do cp /dev/null $mandir/whatis done done fi for pages in man cat do export pages eval path="\$$pages"path for mandir in $path do if [ x$verbose != x ]; then echo "about to enter $mandir" > /dev/stderr fi # kludge for Slackware's /usr/man/preformat if [ $mandir = /usr/man/preformat ] then mandir1=/usr/man else mandir1=$mandir fi # if $mandir is on a readonly partition, and the whatis file # is not a symlink, then let's skip trying to update it if [ ! -L ${mandir1}/whatis ] then if [ -e ${mandir1}/whatis ] && [ ! -w ${mandir1}/whatis ] then if [ x$verbose != x ]; then echo skipping $mandir - whatis file is readonly > /dev/stderr fi continue elif [ ! -e ${mandir1}/whatis ] && [ ! -w ${mandir1} ] then if [ x$verbose != x ]; then echo skipping $mandir - directory is readonly > /dev/stderr fi continue fi fi if [ -s ${mandir}/whatis -a $pages = man -a x$update = x ]; then if [ x$verbose != x ]; then echo skipping $mandir - we did it already > /dev/stderr fi else here=`pwd` cd $mandir for i in $sections do if [ -d ${pages}$i ] then cd ${pages}$i section=$i curdir=$mandir/${pages}$i export section verbose curdir find $mandir/${pages}$i/. -name '*' $findarg0 $findarg -print | $AWK ' function readline() { if (use_zcat || use_bzcat || use_lzcat) { result = (pipe_cmd | getline); if (result < 0) { print "Pipe error: " pipe_cmd " " ERRNO > "/dev/stderr"; } } else { result = (getline < filename); if (result < 0) { print "Read file error: " filename " " ERRNO > "/dev/stderr"; } } return result; } function closeline() { if (use_zcat || use_bzcat || use_lzcat) { return close(pipe_cmd); } else { return close(filename); } } function do_one() { insh = 0; thisjoin = 1; done = 0; entire_line = ""; if (verbose) { print "adding " filename > "/dev/stderr" } use_zcat = match(filename,"\\.Z$") || match(filename,"\\.z$") || match(filename,"\\.gz$"); if (!use_zcat) use_bzcat = match(filename,"\\.bz2"); if(!use_bzcat) use_lzcat = match(filename,"\\.lzma"); if (use_zcat || use_bzcat || use_lzcat ) { filename_no_gz = substr(filename, 0, RSTART - 1); } else { filename_no_gz = filename; } match(filename_no_gz, "/[^/]+$"); progname = substr(filename, RSTART + 1, RLENGTH - 1); if (match(progname, "\\." section "[A-Za-z]+")) { actual_section = substr(progname, RSTART + 1, RLENGTH - 1); } else { actual_section = section; } sub(/\..*/, "", progname); if (use_zcat || use_bzcat || use_lzcat) { if (use_zcat) { pipe_cmd = "zcat \"" filename "\""; } else if (use_bzcat) { pipe_cmd = "bzcat \"" filename "\""; } else { pipe_cmd = "lzcat \"" filename "\""; } # try to avoid suspicious stuff if (filename ~ /[;&|`$(]/) { print "ignored strange file name " filename " in " curdir > "/dev/stderr"; return; } } while (!done && readline() > 0) { gsub(/.\b/, ""); if (($1 ~ /^\.[Ss][Hh]/ && ($2 ~ /[Nn][Aa][Mm][Ee]/ || $2 ~ /^JMNO/ || $2 ~ /^NAVN/ || $2 ~ /^NUME/ || $2 ~ /^BEZEICHNUNG/ || $2 ~ /^NOMBRE/ || $2 ~ /^NIMI/ || $2 ~ /^NOM/ || $2 ~ /^IME/ || $2 ~ /^N[E]V/ || $2 ~ /^NAMA/ || $2 ~ /^̾/ || $2 ~ /^̾/ || $2 ~ /^̸/ || $2 ~ /^NAZWA/ || $2 ~ /^/ || $2 ~ /^/ || $2 ~ /^W/ || $2 ~ /^NOME/ || $2 ~ /^NAAM/ || $2 ~ /^/)) || (pages == "cat" && $1 ~ /^NAME/)) { if (!insh) { insh = 1; } else { done = 1; } } else if (insh) { if ($1 ~ /^\.[Ss][HhYS]/ || (pages == "cat" && ($1 ~ /^S[yYeE]/ || $1 ~ /^DESCRIPTION/ || $1 ~ /^COMMAND/ || $1 ~ /^OVERVIEW/ || $1 ~ /^STRUCTURES/ || $1 ~ /^INTRODUCTION/ || $0 ~ /^[^ ]/))) { # end insh for Synopsis, Syntax, but also for # DESCRIPTION (e.g., XFree86.1x), # COMMAND (e.g., xspread.1) # OVERVIEW (e.g., TclCommandWriting.3) # STRUCTURES (e.g., XEvent.3x) # INTRODUCTION (e.g., TclX.n) # and anything at all that begins in Column 1, so # is probably a section header. done = 1; } else { if ($0 ~ progname"-") { # Fix old cat pages sub(progname"-", progname" - "); } if ($0 ~ /[^ \\]-$/) { sub(/-$/, ""); # Handle Hyphenations nextjoin = 1; } else if ($0 ~ /\\c$/) { sub(/\\c$/, ""); # Handle Continuations nextjoin = 1; } else nextjoin = 0; sub(/^.[IB] /, ""); # Kill bold and italics sub(/^.BI /, ""); # sub(/^.SM /, ""); # Kill small sub(/^.Nm /, ""); # Kill bold sub(/^.Tn /, ""); # Kill normal sub(/^.Li /, ""); # Kill .Li sub(/^.Dq /, ""); # Kill .Dq sub(/^.Nd */, "- "); # Convert .Nd to dash sub(/\\\".*/, ""); # Trim pending comments sub(/ *$/, ""); # Trim pending spaces sub(/^\.$/, ""); # Kill blank comments sub(/^'"'"'.*/, ""); # Kill comment/troff lines sub(/^.in .*/, ""); # Kill various macros sub(/^.ti .*/, ""); sub(/^.ta .*/, ""); sub(/^.Vb .*/, ""); sub(/^.[PLTH]P$/, ""); # .PP/.LP/.TP/.HP sub(/^.Pp$/, ""); sub(/^.[iI]X .*$/, ""); sub(/^.nolinks$/, ""); sub(/^.B$/, ""); sub(/^.nf$/, ""); if (($1 ~ /^\.../ || $1 == "") && (entire_line ~ / - / || entire_line ~ / \\- /)) { # Assume that this ends the description of one line # Sometimes there are several descriptions in one page, # as in outb(2). handle_entire_line(); entire_line = ""; thisjoin = 1; } else { if (thisjoin) { entire_line = entire_line $0; } else { entire_line = entire_line " " $0; } thisjoin = nextjoin; } } } } handle_entire_line(); closeline(); } function handle_entire_line() { x = entire_line; # Keep it short gsub(/\015/, "", x); # Kill DOS remains gsub(/ /, " ", x); # Translate tabs to spaces gsub(/ +/, " ", x); # Collapse spaces gsub(/ *, */, ", ", x); # Fix comma spacings sub(/^ /, "", x); # Kill initial spaces sub(/ $/, "", x); # Kill trailing spaces sub(/__+/, "_", x); # Collapse underscores gsub(/\\f\(../, "", x); # Kill font changes gsub(/\\f[PRIB0123]/, "", x); # Kill font changes gsub(/\\s[-+0-9]*/, "", x); # Kill size changes gsub(/\\&/, "", x); # Kill \& gsub(/\\\|/, "", x); # Kill \| gsub(/\\\((ru|ul)/, "_", x); # Translate gsub(/\\\((mi|hy|em)/, "-", x); # Translate gsub(/\\\*\(../, "", x); # Kill troff strings gsub(/\\/, "", x); # Kill all backslashes gsub(/"/, "", x); # Kill quotes (from .Nd "foo bar") sub(/

/, "", x);# Yuk! HTML cruft gsub(/\000.*/, "X", x); # Binary cruft in LAPACK pages gsub(/ +/, " ", x); # Collapse spaces (again) sub(/^ /, "", x); # Kill initial spaces (again) sub(/ $/, "", x); # Kill trailing spaces (again) sub(/\.$/, "", x); # Kill trailing period if (!match(x, / - /)) return; after_dash = substr(x, RSTART); head = substr(x, 1, RSTART-1) ", "; while (match(head, /, /)) { prog = substr(head, 1, RSTART-1); head = substr(head, RSTART+2); if (prog != progname) prog = prog " [" progname "]"; printf "%-*s (%s) %s\n", 20, prog, actual_section, after_dash; } } { # Main action - process each filename read in. filename = $0; do_one(); } ' pages=$pages section=$section verbose=$verbose curdir=$curdir cd .. fi done > $TMPFILE cd "$here" if [ -f ${mandir1}/whatis ] then cat ${mandir1}/whatis >> $TMPFILE fi tr -s '\n' < $TMPFILE | sort -u > ${mandir1}/whatis chmod 644 ${mandir1}/whatis rm $TMPFILE fi done done # remove tempdir rm -rf $TMPFILEDIR man-1.6g/src/man-config.c0000644000175000001440000001475110301736016014774 0ustar lucifredusers/* * man-config.c * * Read the man.conf file * * Input line types: * MANBIN /usr/bin/man * MANPATH /usr/X386/man [/var/catman/X386] * MANPATH_MAP /usr/bin /usr/man * FHS * FSSTND * NOAUTOPATH * NROFF /usr/bin/groff -Tascii -mandoc * BROWSER /usr/bin/lynx * HTMLPAGER /usr/bin/lynx -dump * .gz /usr/bin/gunzip -c * # Comment * * Allow globbing in MANPATH elements. * This is useful e.g. for having MANPATH /opt/ * /man * (avoid comment within comment). */ #include #include #include #include "defs.h" #include "glob.h" #include "man-config.h" #include "man.h" #include "paths.h" #include "gripes.h" #include "util.h" #define BUFSIZE 4096 extern char *rindex (const char *, int); /* not always in */ #define whitespace(x) ((x) == ' ' || (x) == '\t') /* directories listed in config file */ struct dirs cfdirlist; /* linked list, 1st entry unused */ static void addval (char *buf) { int i, len; char *bp; for (i = 0; i < sizeof(paths)/sizeof(paths[0]); i++) { len = strlen (paths[i].name); bp = buf + len; if(!strncmp (buf, paths[i].name, len) && (!*bp || whitespace(*bp))) { while(whitespace(*bp)) bp++; paths[i].path = my_strdup(bp); return; } } gripe (UNRECOGNIZED_LINE, buf); } const char * getval (const char *cmd) { int i; for (i = 0; i < sizeof(paths)/sizeof(paths[0]); i++) if (!strcmp (cmd, paths[i].name)) return paths[i].path; /* never NULL */ gripe (GETVAL_ERROR, cmd); return ""; /* impossible */ } static void adddir (const char *bp, int mandatory) { int i; struct dirs *dlp; while (whitespace(*bp)) bp++; if (*bp == 0) gripe (PARSE_ERROR_IN_CONFIG); dlp = &cfdirlist; while (dlp->nxt) dlp = dlp->nxt; dlp->nxt = (struct dirs *) my_malloc (sizeof(struct dirs)); dlp = dlp->nxt; dlp->mandatory = mandatory; dlp->nxt = 0; if (!mandatory) { i = 0; while (*bp && !whitespace(*bp)) { if (i < MAXPATHLEN - 1) dlp->bindir[i++] = *bp; bp++; } dlp->bindir[i] = 0; while (whitespace(*bp)) bp++; } else { dlp->bindir[0] = 0; } i = 0; while (*bp && !whitespace(*bp)) { if (i < MAXPATHLEN - 1) dlp->mandir[i++] = *bp; bp++; } dlp->mandir[i] = 0; while (whitespace(*bp)) bp++; i = 0; while (*bp && !whitespace(*bp)) { if (i < MAXPATHLEN - 1) dlp->catdir[i++] = *bp; bp++; } dlp->catdir[i] = 0; if (debug) { if (dlp->mandatory) gripe (FOUND_MANDIR, dlp->mandir); else gripe (FOUND_MAP, dlp->bindir, dlp->mandir); if (dlp->catdir[0]) gripe (FOUND_CATDIR, dlp->catdir); } } static void addglobdir (const char *bp, int mandatory) { const char *dir; while (whitespace(*bp)) bp++; dir = bp; if (index(dir, '*') || index(dir, '?') || index(dir, '[')) { char **dp = glob_filename (dir); if (dp && dp != (char **) -1) { while (*dp) adddir(*dp++, mandatory); return; } } adddir(dir, mandatory); } static struct xp { char *extension; /* non-null, including initial . */ char *expander; struct xp *nxt; } uncompressors; /* linked list, 1st entry unused */ static void addext (char *bp) { char *p, csv; struct xp *xpp; xpp = &uncompressors; while (xpp->nxt) xpp = xpp->nxt; xpp->nxt = (struct xp *) my_malloc (sizeof(struct xp)); xpp = xpp->nxt; xpp->nxt = 0; p = bp; while(*p && !whitespace(*p)) p++; csv = *p; *p = 0; xpp->extension = my_strdup(bp); *p = csv; while(whitespace(*p)) p++; xpp->expander = my_strdup(p); } const char * get_expander (const char *file) { struct xp *xp; char *extp = NULL; if (dohp) { /* Some HP systems have both man1 and man1.Z */ /* For man1.Z/file.1 let extp=".Z" */ /* For .1 return NULL */ int len = strlen (dohp); char *dirname_end = rindex (file, '/'); if (dirname_end && !strncmp (dirname_end-len, dohp, len)) extp = dohp; } else extp = rindex (file, '.'); if (extp != NULL) { if (uncompressors.nxt) { for (xp = uncompressors.nxt; xp; xp = xp->nxt) if (!strcmp (extp, xp->extension)) return (xp->expander); } else if (!strcmp (extp, getval("COMPRESS_EXT"))) { return getval("DECOMPRESS"); } } return NULL; } const char *configuration_file = "[no configuration file]"; char *default_config_files[] = { CONFIG_FILE, /* compiled-in default */ "/etc/man.conf", "/etc/man.config", "/usr/lib/man.conf", "/usr/lib/man.config", "/usr/share/misc/man.conf", "/usr/share/misc/man.config" }; #define SIZE(x) (sizeof(x)/sizeof((x)[0])) void read_config_file (const char *cf) { char *bp; char *p; char buf[BUFSIZE]; FILE *config = NULL; if (cf) { /* User explicitly specified a config file */ if ((config = fopen (cf, "r")) == NULL) { perror (cf); gripe (CONFIG_OPEN_ERROR, cf); return; } } else { /* Try some things - unfortunately we cannot lookup the config file to use in the config file :-). */ int i; for(i=0; i < SIZE(default_config_files); i++) { cf = default_config_files[i]; if ((config = fopen (cf, "r")) != NULL) break; } if (config == NULL) { gripe (CONFIG_OPEN_ERROR, CONFIG_FILE); return; } } if (debug) fprintf(stderr, "Reading config file %s\n", cf); configuration_file = cf; while ((bp = fgets (buf, BUFSIZE, config)) != NULL) { while (whitespace(*bp)) bp++; for (p = bp; *p && *p != '#' && *p != '\n'; p++) ; if (!*p) { gripe (LINE_TOO_LONG); gripe (BAD_CONFIG_FILE, cf); return; } while (p > bp && whitespace(p[-1])) p--; *p = 0; if (*bp == 0) continue; if (!strncmp ("MANPATH_MAP", bp, 11)) adddir (bp+11, 0); else if (!strncmp ("MANPATH", bp, 7)) addglobdir (bp+7, 1); else if(!strncmp ("MANDATORY_MANPATH", bp, 17))/* backwards compatible */ adddir (bp+17, 1); else if (!strncmp ("FHS", bp, 3)) fhs = 1; else if (!strncmp ("FSSTND", bp, 6)) fsstnd = 1; else if (!strncmp ("NOAUTOPATH", bp, 10)) noautopath = 1; else if (!strncmp ("NOCACHE", bp, 7)) nocache = 1; else if (*bp == '.') addext (bp); else addval (bp); } } man-1.6g/src/man-config.h0000644000175000001440000000027210301736016014772 0ustar lucifredusersconst char *getval (const char *); const char *get_expander (const char *); void read_config_file (const char *cf); extern struct dirs cfdirlist; extern const char *configuration_file; man-1.6g/src/man-getopt.c0000644000175000001440000001601710601650316015027 0ustar lucifredusers#include #include #include #include #include "defs.h" #include "gripes.h" #include "man.h" #include "man-config.h" #include "man-getopt.h" #include "util.h" #include "version.h" int alt_system; char *alt_system_name; char *opt_manpath; int global_apropos = 0; static void print_version (void) { gripe (VERSION, progname, version); } static void usage (void) { print_version(); gripe (USAGE1, progname); gripe (USAGE2); /* only for alt_systems */ gripe (USAGE3); gripe (USAGE4); gripe (USAGE5); /* maybe only if troff found? */ gripe (USAGE6); gripe (USAGE7); /* only for alt_systems */ gripe (USAGE8); exit(1); } static char short_opts[] = "B:C:H:xM:P:S:acdDfFhkKm:p:s:tvVwW?"; #ifndef NOGETOPT #undef _GNU_SOURCE #define _GNU_SOURCE #include static const struct option long_opts[] = { { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, 'v' }, { "path", no_argument, NULL, 'w' }, { "preformat", no_argument, NULL, 'F' }, { NULL, 0, NULL, 0 } }; #endif /* * Read options, return count. */ static int get_options_from_argvec(int argc, char **argv, char **config_file, char **manpath) { char *s; int c; int optct = 0; #ifndef NOGETOPT while ((c = getopt_long (argc, argv, short_opts, long_opts, NULL)) != -1){ #else while ((c = getopt (argc, argv, short_opts)) != -1) { #endif switch (c) { case 'C': no_privileges (); if (config_file) *config_file = my_strdup (optarg); break; case'F': preformat = 1; break; case 'M': if (manpath) *manpath = my_strdup (optarg); break; case 'P': pager = my_strdup (optarg); break; case 'B': browser = my_strdup (optarg); break; case 'H': htmlpager = my_strdup (optarg); break; case 'S': colon_sep_section_list = my_strdup (optarg); break; case 's': /* undocumented; compatibility with Sun */ s = colon_sep_section_list = my_strdup (optarg); while (*s) { if (*s == ',') *s = ':'; s++; } break; case 'a': findall++; break; case 'c': nocats++; break; case 'D': debug++; case 'd': debug++; break; case 'f': if (do_troff) fatal (INCOMPAT, "-f", "-t"); if (apropos) fatal (INCOMPAT, "-f", "-k"); if (print_where) fatal (INCOMPAT, "-f", "-w"); whatis++; break; case 'k': if (do_troff) fatal (INCOMPAT, "-k", "-t"); if (whatis) fatal (INCOMPAT, "-k", "-f"); if (print_where) fatal (INCOMPAT, "-k", "-w"); apropos++; break; case 'K': global_apropos++; break; case 'm': alt_system++; alt_system_name = my_strdup (optarg); break; /* or: gripe (NO_ALTERNATE); exit(1); */ case 'p': roff_directive = my_strdup (optarg); break; case 't': if (apropos) fatal (INCOMPAT, "-t", "-k"); if (whatis) fatal (INCOMPAT, "-t", "-f"); if (print_where) fatal (INCOMPAT, "-t", "-w"); do_troff++; break; case 'v': case 'V': print_version(); exit(0); case 'W': one_per_line++; /* fall through */ case 'w': if (apropos) fatal (INCOMPAT, "-w", "-k"); if (whatis) fatal (INCOMPAT, "-w", "-f"); if (do_troff) fatal (INCOMPAT, "-w", "-t"); print_where++; break; case 'h': case '?': default: usage(); break; } optct++; } return optct; } static void get_options_from_string(const char *s) { char *s0, *ss; int argct; char **argvec; int optindsv; if (!s || *s == 0) return; /* In order to avoid having a list of options in two places, massage the string so that it can be fed to getopt() */ s0 = my_strdup(s); /* count arguments */ argct = 0; ss = s0; while (*ss) { while (*ss == ' ') ss++; if (*ss) { argct++; while (*ss && *ss != ' ') ss++; } } /* allocate argvec */ argvec = (char **) my_malloc((argct+2)*sizeof(char *)); argct = 0; argvec[argct++] = "dummy"; ss = s0; while (*ss) { while (*ss == ' ') *ss++ = 0; if (*ss) { argvec[argct++] = ss; while (*ss && *ss != ' ') ss++; } } argvec[argct] = 0; optindsv = optind; optind = 1; get_options_from_argvec(argct, argvec, NULL, NULL); optind = optindsv; } static void mysetenv(const char *name, const char *value) { #if defined(__sgi__) || defined(__sun__) || defined(sun) int len = strlen(value)+1+strlen(value)+1; char *str = my_malloc(len); sprintf(str, "%s=%s", name, value); putenv(str); #else setenv(name, value, 1); #endif } /* * Get options from the command line and user environment. * Also reads the configuration file. */ void man_getopt (int argc, char **argv) { char *config_file = NULL; char *manp = NULL; int optct = 0; optct = get_options_from_argvec(argc, argv, &config_file, &manp); read_config_file (config_file); /* If no options were given and MANDEFOPTIONS is set, use that */ if (optct == 0) { const char *defopts = getval ("MANDEFOPTIONS"); get_options_from_string(defopts); } /* In case an explicit -P option was given, put it in the environment for possible use with -k or -K. Ignore errors (out of memory?) */ if (pager && (global_apropos || apropos || whatis)) mysetenv("PAGER", pager); if (pager == NULL || *pager == '\0') if (((pager = getenv ("MANPAGER")) == NULL) || (*pager == '\0')) if (((pager = getenv ("PAGER")) == NULL) || (*pager == '\0')) pager = getval ("PAGER"); if (debug) gripe (PAGER_IS, pager); /* Ditto for BROWSER and -B */ if (browser && (global_apropos || apropos || whatis)) mysetenv("BROWSER", browser); if (browser == NULL || *browser == '\0') if ((browser = getenv ("BROWSER")) == NULL) browser = getval ("BROWSER"); if (debug) gripe (BROWSER_IS, browser); /* Ditto for HTMLHTMLPAGER and -H */ if (htmlpager && (global_apropos || apropos || whatis)) mysetenv("HTMLPAGER", htmlpager); if (htmlpager == NULL || *htmlpager == '\0') if ((htmlpager = getenv ("HTMLPAGER")) == NULL) htmlpager = getval ("HTMLPAGER"); if (debug) gripe (HTMLPAGER_IS, htmlpager); if (do_compress && !*getval ("COMPRESS")) { if (debug) gripe (NO_COMPRESS); do_compress = 0; } if (do_troff && !*getval ("TROFF")) { gripe (NO_TROFF, configuration_file); exit (1); } opt_manpath = manp; /* do not yet expand manpath - maybe it is not needed */ if (alt_system_name == NULL || *alt_system_name == '\0') if ((alt_system_name = getenv ("SYSTEM")) != NULL) alt_system_name = my_strdup (alt_system_name); } man-1.6g/src/man-getopt.h0000644000175000001440000000023310301736016015024 0ustar lucifredusersextern void man_getopt (int argc, char **argv); extern int global_apropos; extern int alt_system; extern char *alt_system_name; extern char *opt_manpath; man-1.6g/src/man.conf.in0000644000175000001440000001044311461417500014635 0ustar lucifredusers# man.conf from @version@ # # For more information about this file, see the man pages man(1) # and man.conf(5). # # This file is read by man to configure the default manpath (also used # when MANPATH contains an empty substring), to find out where the cat # pages corresponding to given man pages should be stored, # and to map each PATH element to a manpath element. # It may also record the pathname of the man binary. [This is unused.] # The format is: # # MANBIN pathname # MANPATH manpath_element [corresponding_catdir] # MANPATH_MAP path_element manpath_element # # If no catdir is given, it is assumed to be equal to the mandir # (so that this dir has both man1 etc. and cat1 etc. subdirs). # This is the traditional Unix setup. # Certain versions of the FSSTND recommend putting formatted versions # of /usr/.../man/manx/page.x into /var/catman/.../catx/page.x. # The keyword FSSTND will cause this behaviour. # Certain versions of the FHS recommend putting formatted versions of # /usr/.../share/man/[locale/]manx/page.x into # /var/cache/man/.../[locale/]catx/page.x. # The keyword FHS will cause this behaviour (and overrides FSSTND). # Explicitly given catdirs override. # @fsstnd@FSSTND @fhs@FHS # # This file is also read by man in order to find how to call nroff, less, etc., # and to determine the correspondence between extensions and decompressors. # # MANBIN /usr/local/bin/man # # Every automatically generated MANPATH includes these fields # MANPATH /usr/man MANPATH /usr/share/man MANPATH /usr/local/man MANPATH /usr/local/share/man MANPATH /usr/X11R6/man # # Uncomment if you want to include one of these by default # # MANPATH /opt/*/man # MANPATH /usr/lib/*/man # MANPATH /usr/share/*/man # MANPATH /usr/kerberos/man # # Set up PATH to MANPATH mapping # # If people ask for "man foo" and have "/dir/bin/foo" in their PATH # and the docs are found in "/dir/man", then no mapping is required. # # The below mappings are superfluous when the right hand side is # in the mandatory manpath already, but will keep man from statting # lots of other nearby files and directories. # MANPATH_MAP /bin /usr/share/man MANPATH_MAP /sbin /usr/share/man MANPATH_MAP /usr/bin /usr/share/man MANPATH_MAP /usr/sbin /usr/share/man MANPATH_MAP /usr/local/bin /usr/local/share/man MANPATH_MAP /usr/local/sbin /usr/local/share/man MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man MANPATH_MAP /usr/bin/X11 /usr/X11R6/man MANPATH_MAP /usr/bin/mh /usr/share/man # # NOAUTOPATH keeps man from automatically adding directories that look like # manual page directories to the path. # #NOAUTOPATH # # NOCACHE keeps man from creating cache pages ("cat pages") # (generally one enables/disable cat page creation by creating/deleting # the directory they would live in - man never does mkdir) # #NOCACHE # # Useful paths - note that COL should not be defined when # NROFF is defined as "groff -Tascii" or "groff -Tlatin1"; # not only is it superfluous, but it actually damages the output. # For use with utf-8, NROFF should be "nroff -mandoc" without -T option. # (Maybe - but today I need -Tlatin1 to prevent double conversion to utf8.) # # If you have a new troff (version 1.18.1?) and its colored output # causes problems, add the -c option to TROFF, NROFF, JNROFF. # TROFF @troff@ NROFF @nroff@ JNROFF @jnroff@ EQN @eqn@ NEQN @neqn@ JNEQN @jneqn@ TBL @tbl@ @nocol@COL @col@ REFER @refer@ PIC @pic@ VGRIND @vgrind@ GRAP @grap@ PAGER @pager@ BROWSER @browser@ HTMLPAGER @htmlpager@ CAT @cat@ # # The command "man -a xyzzy" will show all man pages for xyzzy. # When CMP is defined man will try to avoid showing the same # text twice. (But compressed pages compare unequal.) # CMP @cmp@ # # Compress cat pages # COMPRESS @compress@ COMPRESS_EXT @compress_ext@ # # Default manual sections (and order) to search if -S is not specified # and the MANSECT environment variable is not set. # MANSECT @sections@ # # Default options to use when man is invoked without options # This is mainly for the benefit of those that think -a should be the default # Note that some systems have /usr/man/allman, causing pages to be shown twice. # #MANDEFOPTIONS -a # # Decompress with given decompressor when input file has given extension # The command given must act as a filter. # .gz @gunzip@ .bz2 @bzip2@ .lzma @unlzma@ .z @pcat@ .Z @zcat@ .F @fcat@ .Y @unyabba@ .xz @unxz@ man-1.6g/src/man.h0000644000175000001440000000077410301736016013536 0ustar lucifredusersextern int debug; extern int do_compress; extern int fhs; extern int fsstnd; extern int noautopath; extern int nocache; extern int findall; extern int nocats; extern int preformat; extern int do_troff; extern int apropos; extern int whatis; extern int print_where; extern int one_per_line; extern int do_irix; extern char *dohp; extern const char *progname; extern const char *pager; extern const char *browser; extern const char *htmlpager; extern char *colon_sep_section_list; extern char *roff_directive; man-1.6g/src/manpath.c0000644000175000001440000002221210464464051014404 0ustar lucifredusers/* * manpath.c * * Copyright (c) 1990, 1991, John W. Eaton. * * You may distribute under the terms of the GNU General Public * License as specified in the file COPYING that comes with the man * distribution. * * John W. Eaton * jwe@che.utexas.edu * Department of Chemical Engineering * The University of Texas at Austin * Austin, Texas 78712 * * Changed PATH->manpath algorithm * Added: an empty string in MANPATH denotes the system path * Added: use LANG to search in /usr/man/ * Lots of other minor things, including spoiling the indentation. * aeb - 940315 */ #include #include #include #include #include #include /* not always in */ extern char *index(const char *, int); extern char *rindex(const char *, int); #include "defs.h" #include "gripes.h" #include "man.h" /* for debug */ #include "man-config.h" /* for cfdirlist */ #include "man-getopt.h" /* for alt_system, opt_manpath */ #include "manpath.h" #include "util.h" /* my_malloc, my_strdup */ char **mandirlist; static int mandirlistlth = 0; static int mandirlistmax = 0; /* * Input: a string, with : as separator * For each entry in the string, call fn. */ static void split (char *string, void (*fn)(char *, int), int perrs) { char *p, *q, *r; if (string) { p = my_strdup(string); for (q = p; ; ) { if ((r = index(q, ':'))==(char*)0) r=index(q,'\01'); if (r) { *r = 0; fn (q, perrs); q = r+1; } else { fn (q, perrs); break; } } free (p); } } static void split2 (char *s, char *string, void (*fn)(char *, char *, int), int perrs) { char *p, *q, *r; if (string) { p = my_strdup(string); for (q = p; ; ) { r = index(q, ':'); if (r) { *r = 0; fn (s, q, perrs); q = r+1; } else { fn (s, q, perrs); break; } } free (p); } } /* * Is path a directory? * -1: error, 0: no, 1: yes. */ static int is_directory (char *path) { struct stat sb; if (stat (path, &sb) != 0) return -1; return ((sb.st_mode & S_IFDIR) == S_IFDIR); } /* * Check to see if the current directory has man or MAN * or ../man or ../man1 or ../man8 subdirectories. */ static char * find_man_subdir (char *p) { int len; char *t, *sp; len = strlen (p); t = my_malloc ((unsigned) len + 20); memcpy (t, p, len); strcpy (t + len, "/man"); if (is_directory (t) == 1) return t; strcpy (t + len, "/MAN"); if (is_directory (t) == 1) return t; /* find parent directory */ t[len] = 0; if ((sp = rindex (t, '/')) != NULL) { *sp = 0; len = sp - t; } else { strcpy (t + len, "/.."); len += 3; } /* look for the situation with packagedir/bin and packagedir/man */ strcpy (t + len, "/man"); if (is_directory (t) == 1) return t; /* look for the situation with pkg/bin and pkg/man1 or pkg/man8 */ /* (looking for all man[1-9] would probably be a waste of stats) */ strcpy (t + len, "/man1"); if (is_directory (t) == 1) { t[len] = 0; return t; } strcpy (t + len, "/man8"); if (is_directory (t) == 1) { t[len] = 0; return t; } free (t); return NULL; } /* * Add a directory to the manpath list if it isn't already there. */ static void add_to_list (char *dir, char *lang, int perrs) { int status; char cwd[BUFSIZ]; char **dp; if (!lang) lang = ""; /* only add absolute paths */ if (*dir != '/') { if (!getcwd(cwd, sizeof(cwd))) return; /* cwd not readable, or pathname very long */ if (cwd[0] != '/') return; /* strange.. */ if (strlen(dir) + strlen(lang) + strlen(cwd) + 3 > sizeof(cwd)) return; if (!strncmp (dir, "./", 2)) dir += 2; while (!strncmp (dir, "../", 3)) { char *p = rindex (cwd, '/'); if (p > cwd) *p = 0; else cwd[1] = 0; dir += 3; } strcat (cwd, "/"); strcat (cwd, dir); if (*lang) { strcat (cwd, "/"); strcat (cwd, lang); } dir = cwd; } else if (*lang) { if (strlen(dir) + strlen(lang) + 2 > sizeof(cwd)) return; strcpy (cwd, dir); strcat (cwd, "/"); strcat (cwd, lang); dir = cwd; } if (mandirlist) { for (dp = mandirlist; *dp; dp++) { if (!strcmp (*dp, dir)) return; } } /* * Avoid trickery: no /../ in path. */ if (strstr(dir, "/../")) return; /* * Not found -- add it. */ status = is_directory(dir); if (status < 0 && perrs) { gripe (CANNOT_STAT, dir); } else if (status == 0 && perrs) { gripe (IS_NO_DIR, dir); } else if (status == 1) { if (debug) gripe (ADDING_TO_MANPATH, dir); if (!mandirlist || mandirlistlth+1 >= mandirlistmax) { int i, ct = mandirlistmax + 100; char **p = (char **) my_malloc(ct * sizeof(char *)); if (mandirlist) { for (i=0; i 5 && lang[5] == '.') { char lang2[6]; /* e.g. zh_CN from zh_CN.GB2312 */ strncpy(lang2,lang,5); lang2[5] = 0; add_to_list(dir, lang2, perrs); } if (lang && strlen(lang) > 2) { char lang2[3]; strncpy(lang2,lang,2); lang2[2] = 0; add_to_list(dir, lang2, perrs); } } static void add_to_mandirlist (char *dir, int perrs) { char *lang; if (alt_system) { add_to_list(dir, alt_system_name, perrs); } else { /* We cannot use "lang = setlocale(LC_MESSAGES, NULL)" or so: the return value of setlocale is an opaque string. */ /* POSIX prescribes the order: LC_ALL, LC_MESSAGES, LANG */ if((lang = getenv("LC_ALL")) != NULL) split2(dir, lang, add_to_mandirlist_x, perrs); if((lang = getenv("LC_MESSAGES")) != NULL) split2(dir, lang, add_to_mandirlist_x, perrs); if((lang = getenv("LANG")) != NULL) split2(dir, lang, add_to_mandirlist_x, perrs); if((lang = getenv("LANGUAGE")) != NULL) split2(dir, lang, add_to_mandirlist_x, perrs); add_to_mandirlist_x(dir, 0, perrs); } } /* * For each directory in the user's path, see if it is one of the * directories listed in the man.conf file. If so, and it is * not already in the manpath, add it. If the directory is not listed * in the man.conf file, see if there is a subdirectory `man' or * `MAN'. If so, and it is not already in the manpath, add it. * * Example: user has /bin in his path and the directory * /bin/man exists -- the directory /bin/man will be added * to the manpath. * Try also /man ?and ?, and, if LANG is set, /$LANG/man. * aeb - 940320 */ static void get_manpath_from_pathdir (char *dir, int perrs) { char *t; struct dirs *dlp; if (debug) gripe (PATH_DIR, dir); /* * The directory we're working on is in the config file. * If we haven't added it to the list yet, do. */ if (*dir) { for (dlp = cfdirlist.nxt; dlp; dlp = dlp->nxt) { if (!strcmp (dir, dlp->bindir)) { if (debug) gripe (IS_IN_CONFIG); add_to_mandirlist (dlp->mandir, perrs); return; } } } if (!noautopath) { /* * The directory we're working on isn't in the config file. * See if it has man or MAN subdirectories. If so, and this * subdirectory hasn't been added to the list, do. (Try also * a few other places nearby.) */ if (debug) gripe (IS_NOT_IN_CONFIG); t = find_man_subdir (dir); if (t != NULL) { if (debug) gripe (MAN_NEARBY); add_to_mandirlist (t, perrs); free (t); } else { if (debug) gripe (NO_MAN_NEARBY); } } } static void add_default_manpath (int perrs) { struct dirs *dlp; if (debug) gripe (ADDING_MANDIRS); for (dlp = cfdirlist.nxt; dlp; dlp = dlp->nxt) if (dlp->mandatory) add_to_mandirlist (dlp->mandir, perrs); } static void to_mandirlist(char *s, int perrs) { char *path; if (*s) { add_to_mandirlist (s, perrs); } else { /* empty substring: insert default path */ if((path = getenv ("PATH")) != NULL) split (path, get_manpath_from_pathdir, perrs); add_default_manpath (perrs); } } void init_manpath () { static int done = 0; if (!done) { char *manp; if ((manp = opt_manpath) == NULL && (manp = getenv ("manpath")) == NULL && (manp = getenv ("MANPATH")) == NULL) manp = ""; /* default path */ split (manp, to_mandirlist, 0); done = 1; } } void prmanpath () { char **dp, **dp0; if (mandirlist) { for (dp0 = dp = mandirlist; *dp; dp++) { if (dp != dp0) printf(":"); printf("%s", *dp); } } printf("\n"); } man-1.6g/src/manpath.h0000644000175000001440000000020110301736016014374 0ustar lucifredusers/* functions and variables exported by manpath.c */ void prmanpath (void); void init_manpath (void); extern char ** mandirlist; man-1.6g/src/ndir.h0000644000175000001440000000235610301736016013715 0ustar lucifredusers/* -- definitions for 4.2BSD-compatible directory access last edit: 09-Jul-1983 D A Gwyn */ #ifdef VMS #ifndef FAB$C_BID #include #endif #ifndef NAM$C_BID #include #endif #ifndef RMS$_SUC #include #endif #include "dir.h" #endif /* VMS */ #define DIRBLKSIZ 512 /* size of directory block */ #ifdef VMS #define MAXNAMLEN (DIR$S_NAME + 7) /* 80 plus room for version #. */ #define MAXFULLSPEC NAM$C_MAXRSS /* Maximum full spec */ #else #define MAXNAMLEN 15 /* maximum filename length */ #endif /* VMS */ /* NOTE: MAXNAMLEN must be one less than a multiple of 4 */ struct direct /* data from readdir() */ { long d_ino; /* inode number of entry */ unsigned short d_reclen; /* length of this record */ unsigned short d_namlen; /* length of string in d_name */ char d_name[MAXNAMLEN+1]; /* name of file */ }; typedef struct { int dd_fd; /* file descriptor */ int dd_loc; /* offset in block */ int dd_size; /* amount of valid data */ char dd_buf[DIRBLKSIZ]; /* directory block */ } DIR; /* stream data from opendir() */ extern DIR *opendir(); extern struct direct *readdir(); extern long telldir(); extern void seekdir(); extern void closedir(); #define rewinddir( dirp ) seekdir( dirp, 0L ) man-1.6g/src/paths.h.in0000644000175000001440000000227310301736016014503 0ustar lucifredusers/* paths.h - included in man-config.c */ /* * Define the absolute path to the configuration file and programs used. * (If no configuration file is found then the preset values are used.) */ #ifndef CONFIG_FILE #define CONFIG_FILE "@man_config_file@" #endif static struct paths { char *name; char *path; /* path plus command options - never NULL */ } paths[] = { { "MANBIN", "" }, /* value unused */ { "APROPOS", "@apropos@" }, { "WHATIS", "@whatis@" }, { "TROFF", "@troff@" }, { "NROFF", "@nroff@" }, { "JNROFF", "@jnroff@" }, { "EQN", "@eqn@" }, { "NEQN", "@neqn@" }, { "JNEQN", "@jneqn@" }, { "TBL", "@tbl@" }, { "COL", "@pcol@" }, { "REFER", "@refer@" }, { "PIC", "@pic@" }, { "VGRIND", "@vgrind@" }, { "GRAP", "@grap@" }, { "PAGER", "@pager@" }, { "BROWSER","@browser@" }, { "HTMLPAGER", "@htmlpager@" }, { "CMP", "@cmp@" }, { "CAT", "@cat@" }, { "COMPRESS", "@compress@" }, { "COMPRESS_EXT", "@compress_ext@" }, /* not a path, just a string variable */ { "DECOMPRESS", "@decompress@" }, { "MANSECT", "@sections@"}, /* idem */ { "MANDEFOPTIONS", ""} /* idem */ }; man-1.6g/src/util.h0000644000175000001440000000065710301736016013740 0ustar lucifredusers/* functions and variables exported from util.c */ void get_permissions (void); void no_privileges (void); char *my_malloc (int n); char *my_strdup (const char *s); const char *mkprogname (const char *s); int is_newer (const char *fa, const char *fb); int do_system_command (const char *cmd, int silent); FILE *my_popen(const char *cmd, const char *type); char *my_xsprintf(char *f,...); extern int ruid, rgid, euid, egid, suid; man-1.6g/src/join.c0000644000175000001440000000077110301736016013712 0ustar lucifredusers /* note: this routine frees its arguments! */ char ** my_join (char **np1, char **np2) { int lth1, lth2; char **p, **q, **np; if (np1 == NULL) return np2; if (np2 == NULL) return np1; lth1 = lth2 = 0; for (p = np1; *p; p++) lth1++; for (p = np2; *p; p++) lth2++; p = np = (char **) my_malloc((lth1+lth2+1)*sizeof(*np)); q = np1; while(*q) *p++ = *q++; q = np2; while(*q) *p++ = *q++; *p = 0; free(np1); free(np2); return np; } man-1.6g/src/to_cat.h0000644000175000001440000000021610301736016014223 0ustar lucifredusersextern const char *mandir_of (const char *name); extern const char *convert_to_cat (const char *name, const char *ext, int standards); man-1.6g/src/apropos.sh0000644000175000001440000000343310301736016014624 0ustar lucifredusers#!/bin/sh # # apropos -- search the whatis database for keywords. # whatis -- idem, but match only commands (as whole words). # # Copyright (c) 1990, 1991, John W. Eaton. # Copyright (c) 1994-1999, Andries E. Brouwer. # # You may distribute under the terms of the GNU General Public # License as specified in the README file that comes with the man # distribution. # # apropos/whatis-1.5m aeb 2003-08-01 (from %version%) # # keep old PATH - 000323 - Bryan Henderson # also look in /var/cache/man - 030801 - aeb program=`basename $0` # When man pages in your favorite locale look to grep like binary files # (and you use GNU grep) you may want to add the 'a' option to *grepopt1. aproposgrepopt1='i' aproposgrepopt2='' whatisgrepopt1='iw' whatisgrepopt2='^' grepopt1=$%apropos_or_whatis%grepopt1 grepopt2=$%apropos_or_whatis%grepopt2 if [ $# = 0 ] then echo "usage: $program keyword ..." exit 1 fi manpath=`man %manpathoption% | tr : '\040'` if [ "$manpath" = "" ] then echo "$program: manpath is null" exit 1 fi args= for arg in $*; do case $arg in --version|-V|-v) echo "$program from %version%" exit 0 ;; --help|-h) echo "usage: $program keyword ..." exit 0 ;; -*) echo "$program: $arg: unknown option" exit 1 ;; *) args="$args $arg" esac done while [ "$1" != "" ] do found=0 for d in /var/cache/man $manpath /usr/lib do if [ -f $d/whatis ] then if grep -"$grepopt1" "$grepopt2""$1" $d/whatis then found=1 # Some people are satisfied with a single occurrence # But it is better to give all # break fi fi done if [ $found = 0 ] then echo "$1: nothing appropriate" fi shift done exit man-1.6g/src/man-iconv.c0000644000175000001440000000712510301736016014642 0ustar lucifredusers/* * From andy@pylesos.asp-linux.com.ua Tue Dec 3 14:17:38 2002 * (polished, aeb) * * Manpages for a given language have a traditional character set. * E.g., for Russian this is koi8r. * If the user uses a different locale, throw in an invocation of iconv. * * Exports: * const char *get_converter (const char *path); * Conversion is to the users locale. Conversion is from the * manpage charset, found in environment variables, or in * PATH/.charset, where PATH is the directory (below that) containing * the man page. * * TODO: adapt this to man.conf way */ /* * By default iconv is not used - this is the wrong interface. * But if you want it, define USE_ICONV. */ #undef USE_ICONV #include /* NULL */ #if defined __GLIBC__ && __GLIBC__ >= 2 && defined USE_ICONV #include /* getenv */ #include /* access */ #include /* strcmp */ #include /* setlocale */ #include /* nl_langinfo */ #include /* iconv_open */ #include "man-iconv.h" /* get_converter */ #include "util.h" /* my_strdup */ #include "man.h" /* debug */ static char * find_iconv(void) { static char *iconv_path = NULL; static int inited = 0; if (!inited) { char *file = getenv("MAN_ICONV_PATH"); if (!file) file = "/usr/bin/iconv"; if (access(file, X_OK) == 0) iconv_path = my_strdup(file); inited = 1; } return iconv_path; } static char * iconv_extra_flags(void) { static char *iconv_flags = "-cs"; static int inited = 0; if (!inited) { char *opt = getenv("MAN_ICONV_OPT"); if (opt) iconv_flags = my_strdup(opt); inited = 1; } return iconv_flags; } static char * get_locale_charset (void) { char *old_lc_ctype, *charset; if ((charset = getenv("MAN_ICONV_OUTPUT_CHARSET")) == NULL) { old_lc_ctype = setlocale(LC_CTYPE, ""); charset = nl_langinfo(CODESET); setlocale(LC_CTYPE, old_lc_ctype); } return charset; } static char * get_man_charset (const char *path) { char *charset_env, *file, *path2, *p; FILE *f = NULL; charset_env = getenv("MAN_ICONV_INPUT_CHARSET"); if (charset_env) return charset_env; if (!path || !*path) return NULL; if (debug) fprintf(stderr, "get_man_charset: path=%s\n", path); /* strip trailing "/.." and try that directory first */ path2 = my_strdup(path); p = strrchr(path2, '/'); if (p && !strcmp(p, "/..")) { *p = 0; file = my_xsprintf("%s/.charset", path2); f = fopen(file, "r"); free(file); } free(path2); /* if that fails, try path itself */ if (f == NULL) { file = my_xsprintf("%s/.charset", path); f = fopen(file, "r"); free(file); } if (f) { char charset[100], *p; fgets(charset, sizeof(charset), f); fclose(f); fprintf(stderr, "read %s\n", charset); p = strchr(charset, '\n'); if (p) { *p = 0; return my_strdup(charset); } } return NULL; } static int is_conversion_supported (char *from, char *to) { iconv_t cd; if (!from || !*from || !to || !*to || !strcmp(from,to)) return 0; if ((cd = iconv_open(to, from)) != (iconv_t) -1) { iconv_close(cd); return 1; } return 0; } const char * get_converter (const char *path) { char *from, *to, *iconv_path; iconv_path = find_iconv(); from = get_man_charset(path); to = get_locale_charset(); if (debug) fprintf(stderr, "get_converter: iconv_path=%s from=%s to=%s\n", iconv_path, from, to); if (iconv_path && is_conversion_supported(from, to)) return my_xsprintf("%s %s -f %s -t %s", iconv_path, iconv_extra_flags(), from, to); return NULL; } #else #include "man-iconv.h" const char * get_converter (const char *path) { return NULL; } #endif /* __GLIBC__ && __GLIBC__ >= 2 */ man-1.6g/src/man2dvi0000755000175000001440000000077111507437532014107 0ustar lucifredusers#! /bin/sh # # Script to format manpages to dvi. # Copyright (c) 1997 Tobias Begalke (tb@lst.de) # # Part of release 1.6g of the man suite. # groff="groff -Tdvi -mandoc" if [ ! $# = 1 ]; then echo "$0: usage:" echo " $0 [topic] > topic.dvi" exit 1 fi location=`man -c -w $1` if [ "$location" = "" ]; then exit 1 fi case `file $location` in *gzip* ) zcat $location | $groff ;; *bzip2* ) bzcat $location | $groff ;; *troff* ) $groff $location ;; esac man-1.6g/src/man-iconv.h0000644000175000001440000000006510301736016014643 0ustar lucifredusersextern const char *get_converter (const char *path); man-1.6g/man2html/0000755000175000001440000000000010736257310013544 5ustar lucifredusersman-1.6g/man2html/hman.sh0000755000175000001440000000454610301736016015030 0ustar lucifredusers#!/bin/sh # # hman - interface to the man2html scripts # # Michael Hamilton , Apr 1996 # Andries Brouwer , Jan 1998. # # Usage examples: # hman - get start page # hman man2html - get man page for man2html # hman 7 locale - get section 7 man page for locale # hman 1 - section 1 index of names only # hman 3 index - section 3 index names+descriptions # hman -k editor - search all man pages for some string # hman -P arena ./twm.man - specify browser; specify man page # # hman from %version% # if [ x"$1" = x"-v" -o x"$1" = x"-V" ]; then echo "`basename $0` from %version%" exit 0 fi # The user has to set MANHTMLPAGER (or he will get httpd-free lynx). # Pick your favorite browser: lynx, xmosaic, netscape, arena, amaya, grail, ... BROWSER=${MANHTMLPAGER-lynxcgi} # # If the man pages are on a remote host, specify it in MANHTMLHOST. HOST=${MANHTMLHOST-localhost} # Perhaps the browser was specified on the command line? if [ $# -gt 1 -a "$1" = "-P" ]; then BROWSER="$2" shift; shift fi # Perhaps the host was specified on the command line? if [ $# -gt 1 -a "$1" = "-H" ]; then HOST="$2" shift; shift fi # Interface to a live (already running) netscape browser. function nsfunc () { if ( /bin/ps xc | grep -q 'netscape$' ) ; then if [ -x netscape-remote ] ; then exec netscape-remote -remote "openURL($1,new_window)" else exec netscape -remote "openURL($1,new_window)" fi else netscape $1 & fi } case $BROWSER in lynxcgi) BROWSER=lynx CG="lynxcgi:/home/httpd/cgi-bin/man" ;; netscape) BROWSER=nsfunc CG="http://$HOST/cgi-bin/man" ;; *) CG="http://$HOST/cgi-bin/man" ;; esac case $# in 0) $BROWSER $CG/man2html ;; 1) case "$1" in 1|2|3|4|5|6|7|8|l|n) $BROWSER "$CG/mansec?$CG+$1" ;; /*) $BROWSER "$CG/man2html?$1" ;; */*) $BROWSER "$CG/man2html?$PWD/$1" ;; *) $BROWSER "$CG/man2html?$1" ;; esac ;; 2) case "$1" in -k) $BROWSER "$CG/mansearch?$2" ;; *) if [ "$2" = index ]; then $BROWSER "$CG/manwhatis?$CG+$1" else $BROWSER "$CG/man2html?$1+$2" fi ;; esac ;; *) echo "bad number of args" ;; esac exit 0 man-1.6g/man2html/abbrev.c0000644000175000001440000000400310301736016015137 0ustar lucifredusers#include #include "defs.h" /* * lookup_abbrev() is used for TX macros - is that * something SUN-specific? */ char *abbrev_list[] = { "GSBG", "Getting Started ", "SUBG", "Customizing SunOS", "SHBG", "Basic Troubleshooting", "SVBG", "SunView User's Guide", "MMBG", "Mail and Messages", "DMBG", "Doing More with SunOS", "UNBG", "Using the Network", "GDBG", "Games, Demos & Other Pursuits", "CHANGE", "SunOS 4.1 Release Manual", "INSTALL", "Installing SunOS 4.1", "ADMIN", "System and Network Administration", "SECUR", "Security Features Guide", "PROM", "PROM User's Manual", "DIAG", "Sun System Diagnostics", "SUNDIAG", "Sundiag User's Guide", "MANPAGES", "SunOS Reference Manual", "REFMAN", "SunOS Reference Manual", "SSI", "Sun System Introduction", "SSO", "System Services Overview", "TEXT", "Editing Text Files", "DOCS", "Formatting Documents", "TROFF", "Using nroff and troff", "INDEX", "Global Index", "CPG", "C Programmer's Guide", "CREF", "C Reference Manual", "ASSY", "Assembly Language Reference", "PUL", "Programming Utilities and Libraries", "DEBUG", "Debugging Tools", "NETP", "Network Programming", "DRIVER", "Writing Device Drivers", "STREAMS", "STREAMS Programming", "SBDK", "SBus Developer's Kit", "WDDS", "Writing Device Drivers for the SBus", "FPOINT", "Floating-Point Programmer's Guide", "SVPG", "SunView 1 Programmer's Guide", "SVSPG", "SunView 1 System Programmer's Guide", "PIXRCT", "Pixrect Reference Manual", "CGI", "SunCGI Reference Manual", "CORE", "SunCore Reference Manual", "4ASSY", "Sun-4 Assembly Language Reference", "SARCH", "SPARC Architecture Manual", "KR", "The C Programming Language", 0, 0 }; char *lookup_abbrev (char *s) { int i=0; if (!s) return ""; while (abbrev_list[i] && strcmp(s, abbrev_list[i])) i = i+2; return abbrev_list[i] ? abbrev_list[i+1] : s; } man-1.6g/man2html/defs.h0000644000175000001440000000170610301736016014633 0ustar lucifredusersextern int nroff; extern int local_lynx; typedef struct STRDEF STRDEF; struct STRDEF { int nr,slen; char *st; STRDEF *next; }; typedef struct INTDEF INTDEF; struct INTDEF { int nr; int val; int incr; INTDEF *next; }; extern STRDEF *chardef, *strdef, *defdef; extern INTDEF *intdef; #define V(A,B) ((A)*256+(B)) #include extern void stdinit(void); extern void print_sig(void); extern char *lookup_abbrev(char *); extern void include_file_html(char *); extern void man_page_html(char*, char *); extern void ftp_html(char *); extern void www_html(char *); extern void mailto_html(char *); extern void url_html(char *); extern void set_separator(char); extern void set_lynxcgibase(char *); extern void set_cgibase(char *); extern void set_man2htmlpath(char *); extern void set_relative_html_links(void); extern void *xmalloc(size_t size); extern void *xrealloc(void *ptr, size_t size); extern char *xstrdup(const char *s); man-1.6g/man2html/cgibase.c0000644000175000001440000000626310301736016015305 0ustar lucifredusers/* * Here are the routines of man2html that output a HREF string. */ #include #include #include #include /* tolower() */ #include /* strlen() */ #include "defs.h" /* * The default is to use cgibase. With relative html style * we generate URLs of the form "../manX/page.html". */ static int relat_html_style = 0; /* * Either the user is non-local (or local, but using httpd), * in which case we use http:/cgi-bin, or the user is local * and uses lynx, and we use lynxcgi:/home/httpd/cgi-bin. */ static char *man2htmlpath = "/cgi-bin/man/man2html"; /* default */ static char *cgibase_format = "http://%s"; /* host.domain:port */ static char *cgibase_ll_format = "lynxcgi:%s"; /* directory */ static char *cgibase = "http://localhost"; /* default */ /* * Separator between URL and argument string. * * With http:/a/b?c+d+e the script is called * with PATH_INFO=/a/b and QUERY_STRING=c+d+e and args $1=c, $2=d, $3=e. * With lynxcgi:?c+d+e no PATH_INFO is possible. */ static char sep = '?'; /* or '/' */ void set_separator(char s) { sep = s; } void set_lynxcgibase(char *s) { int n = strlen(cgibase_ll_format) + strlen(s); char *t = (char *) xmalloc(n); sprintf(t, cgibase_ll_format, s); cgibase = t; } void set_cgibase(char *s) { int n = strlen(cgibase_format) + strlen(s); char *t = (char *) xmalloc(n); sprintf(t, cgibase_format, s); cgibase = t; } void set_man2htmlpath(char *s) { man2htmlpath = xstrdup(s); } void set_relative_html_links(void) { relat_html_style = 1; } /* What shall we say in case of relat_html_style? */ static char *signature = "
\n" "This document was created by\n" "man2html,\n" "using the manual pages.
\n" "%s\n"; #define TIMEFORMAT "%T GMT, %B %d, %Y" #define TIMEBUFSZ 500 void print_sig() { char timebuf[TIMEBUFSZ]; struct tm *timetm; time_t clock; timebuf[0] = 0; #ifdef TIMEFORMAT sprintf(timebuf, "Time: "); clock=time(NULL); timetm=gmtime(&clock); strftime(timebuf+6, TIMEBUFSZ-6, TIMEFORMAT, timetm); timebuf[TIMEBUFSZ-1] = 0; #endif printf(signature, cgibase, man2htmlpath, timebuf); } void include_file_html(char *g) { printf("%s>", g,g); } void man_page_html(char *sec, char *h) { if (relat_html_style) { if (!h) printf("" "Return to Main Contents"); else printf("%s", sec, h, sec, h); } else { if (!h) printf("Return to Main Contents", cgibase, man2htmlpath); else if (!sec) printf("%s", cgibase, man2htmlpath, sep, h, h); else printf("%s", cgibase, man2htmlpath, sep, sec, h, h); } } void ftp_html(char *f) { printf("%s", f, f); } void www_html(char *f) { printf("%s", f, f); } void mailto_html(char *g) { printf("%s", g, g); } void url_html(char *g) { printf("%s", g, g); } man-1.6g/man2html/man2html.c0000644000175000001440000022565410655420713015447 0ustar lucifredusers/* ** This program was written by Richard Verhoeven (NL:5482ZX35) ** at the Eindhoven University of Technology. Email: rcb5@win.tue.nl ** ** Permission is granted to distribute, modify and use this program ** as long as this comment is not removed or changed. */ /* BSD mandoc stuff added by Michael Hamilton. */ /* This program is rather buggy, but in spite of that it often works. Improved things a little - April 1997 & January 1998 & Dec 2001 - aeb@cwi.nl. */ #include #include #include #include #include #include #include #include "defs.h" #include "../src/version.h" /* BSD mandoc Bd/Ed example(?) blocks */ #define BD_LITERAL 1 #define BD_INDENT 2 #define SIZE(a) (sizeof(a)/sizeof(*a)) static char NEWLINE[2]="\n"; static char idxlabel[6] = "ixAAA"; #define INDEXFILE "/tmp/manindex.list" char *fname; char *directory; FILE *idxfile; char eqndelimopen=0, eqndelimclose=0; char escapesym='\\', nobreaksym='\'', controlsym='.', fieldsym=0, padsym=0; char *buffer=NULL; int buffpos=0, buffmax=0; int scaninbuff=0; int still_dd=0; int tabstops[20] = { 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96 }; int maxtstop=12; int curpos=0; static char *scan_troff(char *c, int san, char **result); static char *scan_troff_mandoc(char *c, int san, char **result); static char **argument=NULL; static char charb[3]; static char * expand_char(int nr) { STRDEF *h; if (!nr) return NULL; h = chardef; if (h->nr != V('*','*')) { printf("chardef corrupted\n"); exit(1); } for (h = chardef; h; h = h->next) if (h->nr == nr) { curpos += h->slen; return h->st; } charb[0] = nr/256; charb[1] = nr%256; charb[2] = 0; curpos += 2; return charb; } static char * expand_string(int nr) { STRDEF *h; if (!nr) return NULL; for (h = strdef; h; h = h->next) if (h->nr == nr) { curpos += h->slen; return h->st; } return NULL; } static char outbuffer[1024]; static int obp=0; static int no_newline_output=0; /* boolean, set by \c */ static int newline_for_fun=0; static int output_possible=0; static int out_length=0; static void add_links(char *c) { /* ** Add the links to the output. ** At the moment the following are recognized: ** ** name(*) -> ../man?/name.* ** method://string -> method://string ** www.host.name -> http://www.host.name ** ftp.host.name -> ftp://ftp.host.name ** name@host -> mailto:name@host ** -> file:/usr/include/name.h (guess) ** ** Other possible links to add in the future: ** ** /dir/dir/file -> file:/dir/dir/file */ int i,j,nr; char *f, *g, *h; char *idtest[6]; /* url, mailto, www, ftp, manpage, include file */ out_length+=strlen(c); nr=0; idtest[0]=strstr(c+1,"://"); idtest[1]=strchr(c+1,'@'); idtest[2]=strstr(c,"www."); idtest[3]=strstr(c,"ftp."); idtest[4]=strchr(c+1,'('); idtest[5]=strstr(c+1,".h>"); for (i=0; i<6; i++) nr += (idtest[i]!=NULL); while (nr) { j=-1; for (i=0; i<6; i++) if (idtest[i] && (j<0 || idtest[i] */ f=idtest[5]; h=f+2; g=f; while (g>c && g[-1]!=';') g--; if (g!=c) { char t; t=*g; *g=0; printf("%s",c); *g=t;*h=0; include_file_html(g); c=f+6; } else { f[5]=0; printf("%s",c); f[5]=';'; c=f+5; } break; case 4: /* manpage? */ f=idtest[j]; /* find section - accept (1), (3F), (3Xt), (n), (l) */ g=strchr(f,')'); if (g && g-f<7 /* section has length at most 5, like 3Xlib */ /* preceded by name or html markup */ && (isalnum(f[-1]) || f[-1]=='>') /* section is n or l or starts with a digit */ && strchr("123456789nl", f[1]) && (g-f == 2 || (g-f == 3 && isdigit(f[1]) && isalpha(f[2])) || (f[2] == 'X' && isdigit(f[1]))) ) { /* this might be a link */ h=f-1; /* skip html markup */ while (h>c && *h=='>') { while (h!=c && *h!='<') h--; if (h!=c) h--; } if (isalnum(*h)) { char t,te,tg,*e; e=h+1; while (h>c && (isalnum(h[-1]) || h[-1]=='_' || h[-1]=='-' || h[-1]=='.' || h[-1]==':')) h--; t=*h; *h=0; printf("%s", c); *h=t; tg=*g; *g=0; te=*e; *e=0; man_page_html(f+1, h); /* section, page */ *e=te; *g=tg; c=e; } } *f=0; printf("%s", c); *f='('; idtest[4]=f-1; c=f; break; /* manpage */ case 3: /* ftp */ case 2: /* www */ g=f=idtest[j]; while (*g && (isalnum(*g) || *g=='_' || *g=='-' || *g=='+' || *g=='.')) g++; if (g[-1]=='.') g--; if (g-f>4) { char t; t=*f; *f=0; printf("%s",c); *f=t; t=*g;*g=0; if (j==3) ftp_html(f); else www_html(f); *g=t; c=g; } else { f[3]=0; printf("%s",c); c=f+3; f[3]='.'; } break; case 1: /* mailto */ g=f=idtest[1]; while (g>c && (isalnum(g[-1]) || g[-1]=='_' || g[-1]=='-' || g[-1]=='+' || g[-1]=='.' || g[-1]=='%')) g--; h=f+1; while (*h && (isalnum(*h) || *h=='_' || *h=='-' || *h=='+' || *h=='.')) h++; if (h[-1]=='.') h--; if (h-f>4 && f-g>1) { char t; t=*g; *g=0; printf("%s",c); *g=t;t=*h;*h=0; mailto_html(g); *h=t; c=h; } else { *f=0; printf("%s",c); *f='@'; idtest[1]=c; c=f; } break; case 0: /* url */ g=f=idtest[0]; while (g>c && isalpha(g[-1]) && islower(g[-1])) g--; h=f+3; while (*h && !isspace(*h) && *h!='<' && *h!='>' && *h!='"' && *h!='&') h++; if (f-g>2 && f-g<7 && h-f>3) { char t; t=*g; *g=0; printf("%s", c); *g=t; t=*h; *h=0; url_html(g); *h=t; c=h; } else { f[1]=0; printf("%s", c); f[1]='/'; c=f+1; } break; default: break; } nr=0; if (idtest[0] && idtest[0]= buffmax) { buffer = xrealloc(buffer, buffmax*2); buffmax = buffmax*2; } if (*c != '\a') buffer[buffpos++] = *c; c++; } } else if (output_possible) { while (*c) { if (*c != '\a') outbuffer[obp++] = *c; if (*c == '\n' || obp > 1000) { outbuffer[obp] = 0; add_links(outbuffer); obp = 0; } c++; } } } /* --------------------------------------------------------------- */ /* All references to dl_set and itemdepth are here. */ /* --------------------------------------------------------------- */ static int itemdepth=0; static int dl_set[30]= { 0 }; #define noDL 0 #define DL 1 #define UL 2 #define OL 3 static char *dl_open[4] = { "", "
\n", "
    ", "
      " }; static char *dl_close[4] = { "", "
\n", "", "" }; static inline void dl_begin(void) { if (itemdepth < SIZE(dl_set) && dl_set[itemdepth] == noDL) { out_html(dl_open[DL]); dl_set[itemdepth]=DL; } out_html("
"); } static inline void dl_end(void) { if (itemdepth < SIZE(dl_set)) { int type = dl_set[itemdepth]; if (type == DL) { out_html(dl_close[type]); dl_set[itemdepth]=noDL; } } } static inline void dl_newlevel(void) { itemdepth++; if (itemdepth < SIZE(dl_set)) dl_set[itemdepth]=noDL; out_html("
"); } static inline void dl_endlevel(void) { if (itemdepth) { dl_end(); out_html("
\n"); itemdepth--; } } static inline void dl_down(void) { while (itemdepth) dl_endlevel(); dl_end(); } static inline int dl_type(int type) { return (itemdepth < SIZE(dl_set) && dl_set[itemdepth] == type); } static inline void dl_newlevel_type(int type) { itemdepth++; if (itemdepth < SIZE(dl_set)) { dl_set[itemdepth]=type; out_html(dl_open[type]); } } static inline void dl_endlevel_type(void) { if (itemdepth) { if (itemdepth < SIZE(dl_set)) out_html(dl_close[dl_set[itemdepth]]); itemdepth--; } } /* --------------------------------------------------------------- */ /* This stuff is broken. It generates
TIOCLINUX, subcode=0
Dump the screen. argp points to a from .IP "\fBTIOCLINUX, subcode=0" Dump the screen. \fIargp\fP points to a Bug 1: incorrect nesting: is needed before
. Bug 2: incorrect font: after the .IP things are roman again. */ #define FO0 "" #define FC0 "" #define FO1 "" #define FC1 "" #define FO2 "" #define FC2 "" #define FO3 "" #define FC3 "" char *switchfont[16] = { "" , FC0 FO1, FC0 FO2, FC0 FO3, FC1 FO0, "" , FC1 FO2, FC1 FO3, FC2 FO0, FC2 FO1, "" , FC2 FO3, FC3 FO0, FC3 FO1, FC3 FO2, "" }; static char * change_to_font(int nr) { int i; switch (nr) { case '0': nr++; case '1': case '2': case '3': case '4': nr = nr-'1'; break; case V('C','W'): nr=3; break; case 'L': nr=3; break; case 'B': nr=2; break; case 'I': nr=1; break; case 0: case 1: case 2: case 3: break; case 'P': case 'R': default: nr=0; break; } i= current_font*4+nr%4; current_font=nr%4; return switchfont[i]; } static char sizebuf[200]; static char * change_to_size(int nr) { int i; switch (nr) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': nr=nr-'0'; break; case '\0': break; default: nr=current_size+nr; if (nr>9) nr=9; if (nr< -9) nr=-9; break; } if (nr==current_size) return ""; i=current_font; sizebuf[0]=0; strcat(sizebuf, change_to_font(0)); if (current_size) strcat(sizebuf, ""); current_size=nr; if (nr) { int l; strcat(sizebuf, "0) sizebuf[l++]='+'; else sizebuf[l++]='-',nr=-nr; sizebuf[l++]=nr+'0'; sizebuf[l++]='"'; sizebuf[l++]='>'; sizebuf[l]=0; } strcat(sizebuf, change_to_font(i)); return sizebuf; } int asint=0; int intresult=0; #define SKIPEOL while (*c && *c++!='\n') static int skip_escape=0; static int single_escape=0; static char * scan_escape(char *c) { char *h=NULL; char b[5]; INTDEF *intd; int exoutputp,exskipescape; int i,j; intresult=0; switch (*c) { case 'e': h="\\"; curpos++;break; case '0': case ' ': h=" ";curpos++; break; case '|': h=""; break; case '"': SKIPEOL; c--; h=""; break; case '$': if (argument) { c++; i=(*c -'1'); if (!(h=argument[i])) h=""; } break; case 'z': c++; if (*c=='\\') { c=scan_escape(c+1); c--;h=""; } else { b[0]=*c; b[1]=0; h=""; } break; case 'k': c++; if (*c=='(') c+=2; case '^': case '!': case '%': case 'a': case 'd': case 'r': case 'u': case '\n': case '&': h=""; break; case '(': c++; i= c[0]*256+c[1]; c++; h = expand_char(i); break; case '*': c++; if (*c=='(') { c++; i= c[0]*256+c[1]; c++; } else i= *c *256+' '; h = expand_string(i); break; case 'f': c++; if (*c=='\\') { c++; c=scan_escape(c); c--; i=intresult; } else if (*c != '(') i=*c; else { c++; i=c[0]*256+c[1]; c++; } if (!skip_escape) h=change_to_font(i); else h=""; break; case 's': c++; j=0;i=0; if (*c=='-') {j= -1; c++;} else if (*c=='+') {j=1; c++;} if (*c=='0') c++; else if (*c=='\\') { c++; c=scan_escape(c); i=intresult; if (!j) j=1; } else while (isdigit(*c) && (!i || (!j && i<4))) i=i*10+(*c++)-'0'; if (!j) { j=1; if (i) i=i-10; } if (!skip_escape) h=change_to_size(i*j); else h=""; c--; break; case 'n': c++; j=0; switch (*c) { case '+': j=1; c++; break; case '-': j=-1; c++; break; default: break; } if (*c=='(') { c++; i=V(c[0],c[1]); c=c+1; } else { i=V(c[0],' '); } intd=intdef; while (intd && intd->nr!=i) intd=intd->next; if (intd) { intd->val=intd->val+j*intd->incr; intresult=intd->val; } else { switch (i) { case V('.','s'): intresult=current_size; break; case V('.','f'): intresult=current_font; break; default: intresult=0; break; } } h=""; break; case 'w': c++; i=*c; c++; exoutputp=output_possible; exskipescape=skip_escape; output_possible=0; skip_escape=1; j=0; while (*c!=i) { j++; if (*c==escapesym) c=scan_escape(c+1); else c++; } output_possible=exoutputp; skip_escape=exskipescape; intresult=j; break; case 'l': h="
"; curpos=0; case 'b': case 'v': case 'x': case 'o': case 'L': case 'h': c++; i=*c; c++; exoutputp=output_possible; exskipescape=skip_escape; output_possible=0; skip_escape=1; while (*c != i) if (*c==escapesym) c=scan_escape(c+1); else c++; output_possible=exoutputp; skip_escape=exskipescape; break; case 'c': no_newline_output=1; break; case '{': newline_for_fun++; h="";break; case '}': if (newline_for_fun) newline_for_fun--; h="";break; case 'p': h="
\n";curpos=0; break; case 't': h="\t";curpos=(curpos+8)&0xfff8; break; case '<': h="<";curpos++; break; case '>': h=">";curpos++; break; case '\\': if (single_escape) { c--; break;} default: b[0]=*c; b[1]=0; h=b; curpos++; break; } c++; if (!skip_escape) out_html(h); return c; } typedef struct TABLEITEM TABLEITEM; struct TABLEITEM { char *contents; int size,align,valign,colspan,rowspan,font,vleft,vright,space,width; TABLEITEM *next; }; static TABLEITEM emptyfield = {NULL,0,0,0,1,1,0,0,0,0,0,NULL}; typedef struct TABLEROW TABLEROW; struct TABLEROW { TABLEITEM *first; TABLEROW *prev, *next; }; static char *tableopt[]= { "center", "expand", "box", "allbox", "doublebox", "tab", "linesize", "delim", NULL }; static int tableoptl[] = { 6,6,3,6,9,3,8,5,0}; static void clear_table(TABLEROW *table) { TABLEROW *tr1,*tr2; TABLEITEM *ti1,*ti2; tr1=table; while (tr1->prev) tr1=tr1->prev; while (tr1) { ti1=tr1->first; while (ti1) { ti2=ti1->next; if (ti1->contents) free(ti1->contents); free(ti1); ti1=ti2; } tr2=tr1; tr1=tr1->next; free(tr2); } } char *scan_expression(char *c, int *result); static char *scan_format(char *c, TABLEROW **result, int *maxcol) { TABLEROW *layout, *currow; TABLEITEM *curfield; int i,j; if (*result) { clear_table(*result); } layout= currow=(TABLEROW*) xmalloc(sizeof(TABLEROW)); currow->next=currow->prev=NULL; currow->first=curfield=(TABLEITEM*) xmalloc(sizeof(TABLEITEM)); *curfield=emptyfield; while (*c && *c!='.') { switch (*c) { case 'C': case 'c': case 'N': case 'n': case 'R': case 'r': case 'A': case 'a': case 'L': case 'l': case 'S': case 's': case '^': case '_': if (curfield->align) { curfield->next=(TABLEITEM*)xmalloc(sizeof(TABLEITEM)); curfield=curfield->next; *curfield=emptyfield; } curfield->align=toupper(*c); c++; break; case 'i': case 'I': case 'B': case 'b': curfield->font = toupper(*c); c++; break; case 'f': case 'F': c++; curfield->font = toupper(*c); c++; if (!isspace(*c)) c++; break; case 't': case 'T': curfield->valign='t'; c++; break; case 'p': case 'P': c++; i=j=0; if (*c=='+') { j=1; c++; } if (*c=='-') { j=-1; c++; } while (isdigit(*c)) i=i*10+(*c++)-'0'; if (j) curfield->size= i*j; else curfield->size=j-10; break; case 'v': case 'V': case 'w': case 'W': // c=scan_expression(c+2,&curfield->width); c++; if (*c == '(') { c=scan_expression(c+1,&curfield->width); } else { i=0; while (isdigit(*c)) i=i*10+(*c++)-'0'; curfield->width=i; } break; case '|': if (curfield->align) curfield->vleft++; else curfield->vright++; c++; break; case 'e': case 'E': c++; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': i=0; while (isdigit(*c)) i=i*10+(*c++)-'0'; curfield->space=i; break; case ',': case '\n': currow->next=(TABLEROW*)xmalloc(sizeof(TABLEROW)); currow->next->prev=currow; currow=currow->next; currow->next=NULL; curfield=currow->first=(TABLEITEM*)xmalloc(sizeof(TABLEITEM)); *curfield=emptyfield; c++; break; default: c++; break; } } if (*c=='.') while (*c++!='\n'); *maxcol=0; currow=layout; while (currow) { curfield=layout->first; i=0; while (curfield) { i++; curfield=curfield->next; } if (i>*maxcol) *maxcol=i; currow=currow->next; } *result=layout; return c; } static TABLEROW * next_row(TABLEROW *tr) { if (tr->next) { tr=tr->next; if (!tr->next) next_row(tr); return tr; } else { TABLEITEM *ti, *ti2; tr->next=(TABLEROW*)xmalloc(sizeof(TABLEROW)); tr->next->prev=tr; ti=tr->first; tr=tr->next; tr->next=NULL; if (ti) tr->first=ti2=(TABLEITEM*) xmalloc(sizeof(TABLEITEM)); else tr->first=ti2=NULL; while (ti!=ti2) { *ti2=*ti; ti2->contents=NULL; if ((ti=ti->next)) { ti2->next=(TABLEITEM*) xmalloc(sizeof(TABLEITEM)); } ti2=ti2->next; } return tr; } } char itemreset[20]="\\fR\\s0"; static char * scan_table(char *c) { char *h; char *g; int center=0, expand=0, box=0, border=0, linesize=1; int i,j,maxcol=0, finished=0; int oldfont, oldsize,oldfillout; char itemsep='\t'; TABLEROW *layout=NULL, *currow; TABLEITEM *curfield; while (*c++!='\n'); /* skip TS */ h=c; if (*h=='.') return c-1; oldfont=current_font; oldsize=current_size; oldfillout=fillout; out_html(change_to_font(0)); out_html(change_to_size(0)); if (!fillout) { fillout=1; out_html(""); } while (*h && *h!='\n') h++; if (h[-1]==';') { /* scan table options */ while (cfirst; i=0; while (!finished && *c) { /* search item */ h=c; if ((*c=='_' || *c=='=') && (c[1]==itemsep || c[1]=='\n')) { if (c[-1]=='\n' && c[1]=='\n') { if (currow->prev) { currow->prev->next=(TABLEROW*) xmalloc(sizeof(TABLEROW)); currow->prev->next->next=currow; currow->prev->next->prev=currow->prev; currow->prev=currow->prev->next; } else { currow->prev=layout=(TABLEROW*) xmalloc(sizeof(TABLEROW)); currow->prev->prev=NULL; currow->prev->next=currow; } curfield=currow->prev->first= (TABLEITEM*) xmalloc(sizeof(TABLEITEM)); *curfield=emptyfield; curfield->align=*c; curfield->colspan=maxcol; curfield=currow->first; c=c+2; } else { if (curfield) { curfield->align=*c; do { curfield=curfield->next; } while (curfield && curfield->align=='S'); } if (c[1]=='\n') { currow=next_row(currow); curfield=currow->first; } c=c+2; } } else if (*c=='T' && c[1]=='{') { h=c+2; c=strstr(h,"\nT}"); c++; *c=0; g=NULL; scan_troff(h, 0, &g); scan_troff(itemreset, 0, &g); *c='T'; c+=3; if (curfield) { curfield->contents=g; do { curfield=curfield->next; } while (curfield && curfield->align=='S'); } else if (g) free(g); if (c[-1]=='\n') { currow=next_row(currow); curfield=currow->first; } } else if (*c=='.' && c[1]=='T' && c[2]=='&' && c[-1]=='\n') { TABLEROW *hr; while (*c++!='\n'); hr=currow; currow=currow->prev; hr->prev=NULL; c=scan_format(c,&hr, &i); hr->prev=currow; currow->next=hr; currow=hr; next_row(currow); curfield=currow->first; } else if (*c=='.' && c[1]=='T' && c[2]=='E' && c[-1]=='\n') { finished=1; while (*c++!='\n'); if (currow->prev) currow->prev->next=NULL; currow->prev=NULL; clear_table(currow); } else if (*c=='.' && c[-1]=='\n' && !isdigit(c[1])) { /* skip troff request inside table (usually only .sp ) */ while (*c++!='\n'); } else { h=c; while (*c && (*c!=itemsep || c[-1]=='\\') && (*c!='\n' || c[-1]=='\\')) c++; i=0; if (*c==itemsep) {i=1; *c='\n'; } if (h[0]=='\\' && h[2]=='\n' && (h[1]=='_' || h[1]=='^')) { if (curfield) { curfield->align=h[1]; do { curfield=curfield->next; } while (curfield && curfield->align=='S'); } h=h+3; } else { g=NULL; h=scan_troff(h,1,&g); scan_troff(itemreset,0,&g); if (curfield) { curfield->contents=g; do { curfield=curfield->next; } while (curfield && curfield->align=='S'); } else if (g) free(g); } if (i) *c=itemsep; c=h; if (c[-1]=='\n') { currow=next_row(currow); curfield=currow->first; } } } /* calculate colspan and rowspan */ currow=layout; while (currow->next) currow=currow->next; while (currow) { TABLEITEM *ti, *ti1=NULL, *ti2=NULL; ti=currow->first; if (currow->prev) ti1=currow->prev->first; while (ti) { switch (ti->align) { case 'S': if (ti2) { ti2->colspan++; if (ti2->rowspanrowspan) ti2->rowspan=ti->rowspan; } break; case '^': if (ti1) ti1->rowspan++; default: if (!ti2) ti2=ti; else { do { ti2=ti2->next; } while (ti2 && curfield->align=='S'); } break; } ti=ti->next; if (ti1) ti1=ti1->next; } currow=currow->prev; } /* produce html output */ if (center) out_html("
"); if (box==2) out_html(""); curfield=currow->first; while (curfield) { if (curfield->align!='S' && curfield->align!='^') { out_html("align) { case 'N': curfield->space+=4; case 'R': out_html(" ALIGN=right"); break; case 'C': out_html(" ALIGN=center"); default: break; } if (!curfield->valign && curfield->rowspan>1) out_html(" VALIGN=center"); if (curfield->colspan>1) { char buf[5]; out_html(" COLSPAN="); sprintf(buf, "%i", curfield->colspan); out_html(buf); } if (curfield->rowspan>1) { char buf[5]; out_html(" ROWSPAN="); sprintf(buf, "%i", curfield->rowspan); out_html(buf); } j=j+curfield->colspan; out_html(">"); if (curfield->size) out_html(change_to_size(curfield->size)); if (curfield->font) out_html(change_to_font(curfield->font)); switch (curfield->align) { case '=': out_html("

"); break; case '_': out_html("
"); break; default: if (curfield->contents) out_html(curfield->contents); break; } if (curfield->space) for (i=0; ispace;i++) out_html(" "); if (curfield->font) out_html(change_to_font(0)); if (curfield->size) out_html(change_to_size(0)); if (j>=maxcol && curfield->align>'@' && curfield->align!='_') out_html("
"); out_html(""); } curfield=curfield->next; } out_html("
\n"); currow=currow->next; } if (box && !border) out_html("
"); out_html("
\n"); currow=layout; while (currow) { j=0; out_html("
"); out_html(""); if (box==2) out_html(""); if (center) out_html("
\n"); else out_html("\n"); if (!oldfillout) out_html("
");
    fillout=oldfillout;
    out_html(change_to_size(oldsize));
    out_html(change_to_font(oldfont));
    return c;
}

char *scan_expression(char *c, int *result) {
    int value=0,value2,sign=1,opex=0;
    char oper='c';

    if (*c=='!') {
	c=scan_expression(c+1, &value);
	value= (!value);
    } else if (*c=='n') {
	c++;
	value=nroff;
    } else if (*c=='t') {
	c++;
	value=1-nroff;
    } else if (*c=='\'' || *c=='"' || *c<' ' || (*c=='\\' && c[1]=='(')) {
	/* ?string1?string2?
	** test if string1 equals string2.
	*/
	char *st1=NULL, *st2=NULL, *h;
	char *tcmp=NULL;
	char sep;
	sep=*c;
	if (sep=='\\') {
	    tcmp=c;
	    c=c+3;
	}
	c++;
	h=c;
	while (*c!= sep && (!tcmp || strncmp(c,tcmp,4))) c++;
	*c='\n';
	scan_troff(h, 1, &st1);
	*c=sep;
	if (tcmp) c=c+3;
	c++;
	h=c;
	while (*c!=sep && (!tcmp || strncmp(c,tcmp,4))) c++;
	*c='\n';
	scan_troff(h,1,&st2);
	*c=sep;
	if (!st1 && !st2) value=1;
	else if (!st1 || !st2) value=0;
	else value=(!strcmp(st1, st2));
	if (st1) free(st1);
	if (st2) free(st2);
	if (tcmp) c=c+3;
	c++;
    } else {
	while (*c && !isspace(*c) && *c!=')') {
	    opex=0;
	    switch (*c) {
	    case '(':
		c=scan_expression(c+1, &value2);
		value2=sign*value2;
		opex=1;
		break;
	    case '.':
	    case '0': case '1':
	    case '2': case '3':
	    case '4': case '5':
	    case '6': case '7':
	    case '8': case '9': {
		int num=0,denum=1;
		value2=0;
		while (isdigit(*c)) value2=value2*10+((*c++)-'0');
		if (*c=='.') {
		    c++;
		    while (isdigit(*c)) {
			num=num*10+((*c++)-'0');
			denum=denum*10;
		    }
		}
		if (isalpha(*c)) {
		    /* scale indicator */
		    switch (*c) {
		    case 'i': /* inch -> 10pt */
			value2=value2*10+(num*10+denum/2)/denum;
			num=0;
			break;
		    default:
			break;
		    }
		    c++;
		}
		value2=value2+(num+denum/2)/denum;
		value2=sign*value2;
		opex=1;
		break;
	    }
	    case '\\':
		c=scan_escape(c+1);
		value2=intresult*sign;
		if (isalpha(*c)) c++; /* scale indicator */
		opex=1;
		break;
	    case '-':
		if (oper) { sign=-1; c++; break; }
	    case '>':
	    case '<':
	    case '+':
	    case '/':
	    case '*':
	    case '%':
	    case '&':
	    case '=':
	    case ':':
		if (c[1]=='=') oper=(*c++) +16; else oper=*c;
		c++;
		break;
	    default: c++; break;
	    }
	    if (opex) {
		sign=1;
		switch (oper) {
		case 'c': value=value2; break;
		case '-': value=value-value2; break;
		case '+': value=value+value2; break;
		case '*': value=value*value2; break;
		case '/': if (value2) value=value/value2; break;
		case '%': if (value2) value=value%value2; break;
		case '<': value=(value': value=(value>value2); break;
		case '>'+16: value=(value>=value2); break;
		case '<'+16: value=(value<=value2); break;
		case '=': case '='+16: value=(value==value2); break;
		case '&': value = (value && value2); break;
		case ':': value = (value || value2); break;
		default: fprintf(stderr,
				 "man2html: Unknown operator %c.\n", oper);
		}
		oper=0;
	    }
	}
	if (*c==')') c++;
    }
    *result=value;
    return c;
}

static void
trans_char(char *c, char s, char t) {
	char *sl = c;
	int slash = 0;

	while (*sl && (*sl != '\n' || slash)) {
		if (!slash) {
			if (*sl == escapesym)
				slash = 1;
			else if (*sl == s)
				*sl = t;
		} else
			slash = 0;
		sl++;
	}
}

/*
 * Read STR until end-of-line (not preceded by \).
 * Find whitespace separated words, and store starts in WORDS of lth MAXN.
 * Return number of words in N.
 * Replace each end-of-word by the character EOW (usually \n or 0).
 * Return pointer to last char seen (either \n or 0).
 *
 * A part \"... is skipped.
 * Quotes not preceded by \ are replaced by \a.
 */
static char *
fill_words(char *str, char *words[], int maxn, int *n, char eow) {
	char *s = str;
	int backslash = 0;
	int skipspace = 0;	/* 1 if space is not end-of-word */

	*n = 0;
	words[*n] = s;
	while (*s && (*s != '\n' || backslash)) {
		if (!backslash) {
			if (*s == '"') {
				*s = '\a';
				skipspace = !skipspace;
			} else if (*s == escapesym) {
				backslash = 1;
			} else if ((*s == ' ' || *s == '\t') && !skipspace) {
				*s = eow;
				if (words[*n] != s && *n < maxn-1)
					(*n)++;
				words[*n] = s+1;
			}
		} else {
			if (*s == '"') {
				s--;
				*s = eow;
				if (words[*n] != s && *n < maxn-1)
					(*n)++;
				s++;
				while (*s && *s != '\n') s++;
				words[*n] = s;
				s--;
			}
			backslash = 0;
		}
		s++;
	}
	if (s != words[*n])
		(*n)++;
	return s;
}


char *section_list[] = {
    "1", "User Commands ",
    "1C", "User Commands",
    "1G", "User Commands",
    "1S", "User Commands",
    "1V", "User Commands ",
    "2", "System Calls",
    "2V", "System Calls",
    "3", "C Library Functions",
    "3C", "Compatibility Functions",
    "3F", "Fortran Library Routines",
    "3K", "Kernel VM Library Functions",
    "3L", "Lightweight Processes Library",
    "3M", "Mathematical Library",
    "3N", "Network Functions",
    "3R", "RPC Services Library",
    "3S", "Standard I/O Functions",
    "3V", "C Library Functions",
    "3X", "Miscellaneous Library Functions",
    "4", "Devices and Network Interfaces",
    "4F", "Protocol Families",
    "4I", "Devices and Network Interfaces",
    "4M", "Devices and Network Interfaces",
    "4N", "Devices and Network Interfaces",
    "4P", "Protocols",
    "4S", "Devices and Network Interfaces",
    "4V", "Devices and Network Interfaces",
    "5", "File Formats",
    "5V", "File Formats",
    "6", "Games and Demos",
    "7", "Environments, Tables, and Troff Macros",
    "7V", "Environments, Tables, and Troff Macros",
    "8", "Maintenance Commands",
    "8C", "Maintenance Commands",
    "8S", "Maintenance Commands",
    "8V", "Maintenance Commands",
    "L", "Local Commands",
/* for Solaris: 
    "1", "User Commands",
    "1B", "SunOS/BSD Compatibility Package Commands",
    "1b", "SunOS/BSD Compatibility Package Commands",
    "1C", "Communication Commands ",
    "1c", "Communication Commands",
    "1F", "FMLI Commands ",
    "1f", "FMLI Commands",
    "1G", "Graphics and CAD Commands ",
    "1g", "Graphics and CAD Commands ",
    "1M", "Maintenance Commands",
    "1m", "Maintenance Commands",
    "1S", "SunOS Specific Commands",
    "1s", "SunOS Specific Commands",
    "2", "System Calls",
    "3", "C Library Functions",
    "3B", "SunOS/BSD Compatibility Library Functions",
    "3b", "SunOS/BSD Compatibility Library Functions",
    "3C", "C Library Functions",
    "3c", "C Library Functions",
    "3E", "C Library Functions",
    "3e", "C Library Functions",
    "3F", "Fortran Library Routines",
    "3f", "Fortran Library Routines",
    "3G", "C Library Functions",
    "3g", "C Library Functions",
    "3I", "Wide Character Functions",
    "3i", "Wide Character Functions",
    "3K", "Kernel VM Library Functions",
    "3k", "Kernel VM Library Functions",
    "3L", "Lightweight Processes Library",
    "3l", "Lightweight Processes Library",
    "3M", "Mathematical Library",
    "3m", "Mathematical Library",
    "3N", "Network Functions",
    "3n", "Network Functions",
    "3R", "Realtime Library",
    "3r", "Realtime Library",
    "3S", "Standard I/O Functions",
    "3s", "Standard I/O Functions",
    "3T", "Threads Library",
    "3t", "Threads Library",
    "3W", "C Library Functions",
    "3w", "C Library Functions",
    "3X", "Miscellaneous Library Functions",
    "3x", "Miscellaneous Library Functions",
    "4", "File Formats",
    "4B", "SunOS/BSD Compatibility Package File Formats",
    "4b", "SunOS/BSD Compatibility Package File Formats",
    "5", "Headers, Tables, and Macros",
    "6", "Games and Demos",
    "7", "Special Files",
    "7B", "SunOS/BSD Compatibility Special Files",
    "7b", "SunOS/BSD Compatibility Special Files",
    "8", "Maintenance Procedures",
    "8C", "Maintenance Procedures",
    "8c", "Maintenance Procedures",
    "8S", "Maintenance Procedures",
    "8s", "Maintenance Procedures",
    "9", "DDI and DKI",
    "9E", "DDI and DKI Driver Entry Points",
    "9e", "DDI and DKI Driver Entry Points",
    "9F", "DDI and DKI Kernel Functions",
    "9f", "DDI and DKI Kernel Functions",
    "9S", "DDI and DKI Data Structures",
    "9s", "DDI and DKI Data Structures",
    "L", "Local Commands",
*/
    NULL, "Misc. Reference Manual Pages",
    NULL, NULL
};

static char *
section_name(char *c)
{
    int i=0;

    if (!c) return "";
    while (section_list[i] && strcmp(c,section_list[i])) i=i+2;
    if (section_list[i+1]) return section_list[i+1];
    else return c;
}

int manidxlen = 0;
char *manidx = NULL;
int subs = 0;
int mip = 0;	/* current offset in manidx[] */
char label[5]="lbAA";

static void
manidx_need(int m) {
	if (mip + m >= manidxlen) {
		manidxlen += 10000;
		manidx = xrealloc(manidx, manidxlen);
	}
}

static void
add_to_index(int level, char *item)
{
    char *c = NULL;

    label[3]++;
    if (label[3]>'Z') {
	label[3]='A';
	label[2]++;
    }

    if (level != subs) {
	manidx_need(6);
	if (subs) {
	    strcpy(manidx+mip, "\n");
	    mip += 6;
	} else {
	    strcpy(manidx+mip, "
\n"); mip += 5; } } subs = level; scan_troff(item, 1, &c); manidx_need(100 + strlen(c)); sprintf(manidx+mip, "
%s
\n", label, c); if (c) free(c); while (manidx[mip]) mip++; } static char * skip_till_newline(char *c) { int lvl=0; while (*c && (*c!='\n' || lvl>0)) { if (*c=='\\') { c++; if (*c=='}') lvl--; else if (*c=='{') lvl++; } c++; } c++; if (lvl<0 && newline_for_fun) { newline_for_fun = newline_for_fun+lvl; if (newline_for_fun<0) newline_for_fun=0; } return c; } int ifelseval=0; static char * scan_request(char *c) { /* BSD Mandoc stuff - by Michael Hamilton */ static int mandoc_synopsis=0; /* True if we are in the synopsis section */ static int mandoc_command=0; /* True if this is mandoc page */ static int mandoc_bd_options; /* Only copes with non-nested Bd's */ static int inXo=0; int i,j,mode = 0; char *h; char *wordlist[20]; int words; char *sl; STRDEF *owndef; while (*c == ' ' || *c == '\t') c++; if (c[0] == '\n') return c+1; if (c[1] == '\n') j = 1; else j = 2; while (c[j] == ' ' || c[j] == '\t') j++; if (c[0] == escapesym) { /* some pages use .\" .\$1 .\} */ /* .\$1 is too difficult/stupid */ if (c[1] == '$') c = skip_till_newline(c); else c = scan_escape(c+1); } else { i=V(c[0],c[1]); switch (i) { case V('a','b'): h=c+j; while (*h && *h !='\n') h++; *h=0; if (scaninbuff && buffpos) { buffer[buffpos]=0; printf("%s\n", buffer); } fprintf(stderr, "%s\n", c+2); /* XXX */ exit(0); break; case V('d','i'): { STRDEF *de; c=c+j; i=V(c[0],c[1]); if (*c == '\n') { c++;break; } while (*c && *c!='\n') c++; c++; h=c; while (*c && strncmp(c,".di",3)) while (*c && *c++!='\n'); *c=0; de=strdef; while (de && de->nr !=i) de=de->next; if (!de) { de=(STRDEF*) xmalloc(sizeof(STRDEF)); de->nr=i; de->slen=0; de->next=strdef; de->st=NULL; strdef=de; } else { if (de->st) free(de->st); de->slen=0; de->st=NULL; } scan_troff(h,0,&de->st); *c='.'; while (*c && *c++!='\n'); break; } case V('d','s'): mode=1; case V('a','s'): { STRDEF *de; int oldcurpos=curpos; c=c+j; while (*c == ' ') c++; i=V(c[0],c[1]); j=0; while (c[j] && c[j]!='\n') j++; if (j<3) { c=c+j; break; } if (c[1] == ' ') c=c+1; else c=c+2; while (isspace(*c)) c++; if (*c == '"') c++; de=strdef; while (de && de->nr != i) de=de->next; single_escape=1; curpos=0; if (!de) { char *h; de=(STRDEF*) xmalloc(sizeof(STRDEF)); de->nr=i; de->slen=0; de->next=strdef; de->st=NULL; strdef=de; h=NULL; c=scan_troff(c, 1, &h); de->st=h; de->slen=curpos; } else { if (mode) { /* .ds */ char *h=NULL; c=scan_troff(c, 1, &h); free(de->st); /* segfault XXX */ de->slen=curpos; de->st=h; } else { /* .as */ c=scan_troff(c,1,&de->st); /* XXX */ de->slen+=curpos; } } single_escape=0; curpos=oldcurpos; } break; case V('b','r'): if (still_dd) out_html("
"); else out_html("
\n"); curpos=0; c=c+j; if (c[0] == escapesym) { c=scan_escape(c+1); } c=skip_till_newline(c);break; case V('c','2'): c=c+j; if (*c!='\n') { nobreaksym=*c; } else nobreaksym='\''; c=skip_till_newline(c); break; case V('c','c'): c=c+j; if (*c!='\n') { controlsym=*c; } else controlsym='.'; c=skip_till_newline(c); break; case V('c','e'): c=c+j; if (*c == '\n') { i=1; } else { i=0; while ('0'<=*c && *c<='9') { i=i*10+*c-'0'; c++; } } c=skip_till_newline(c); /* center next i lines */ if (i>0) { out_html("
\n"); while (i && *c) { char *line=NULL; c=scan_troff(c,1, &line); if (line && strncmp(line, "
", 4)) { out_html(line); out_html("
\n"); i--; } } out_html("
\n"); curpos=0; } break; case V('e','c'): c=c+j; if (*c!='\n') { escapesym=*c; } else escapesym='\\'; break; c=skip_till_newline(c); case V('e','o'): escapesym=0; c=skip_till_newline(c); break; case V('e','x'): exit(0); break; case V('f','c'): c=c+j; if (*c == '\n') { fieldsym=padsym=0; } else { fieldsym=c[0]; padsym=c[1]; } c=skip_till_newline(c); break; case V('f','i'): if (!fillout) { out_html(change_to_font(0)); out_html(change_to_size('0')); out_html("
\n"); } curpos=0; fillout=1; c=skip_till_newline(c); break; case V('f','t'): c=c+j; if (*c == '\n') { out_html(change_to_font(0)); } else { if (*c == escapesym) { int fn; c=scan_expression(c, &fn); c--; out_html(change_to_font(fn)); } else { out_html(change_to_font(*c)); c++; } } c=skip_till_newline(c); break; case V('e','l'): /* .el anything : else part of if else */ if (ifelseval) { c=c+j; c[-1]='\n'; c=scan_troff(c,1,NULL); } else c=skip_till_newline(c+j); break; case V('i','e'): /* .ie c anything : then part of if else */ case V('i','f'): /* .if c anything * .if !c anything * .if N anything * .if !N anything * .if 'string1'string2' anything * .if !'string1'string2' anything */ c=c+j; c=scan_expression(c, &i); ifelseval=!i; if (i) { *c='\n'; c++; c=scan_troff(c,1,NULL); } else c=skip_till_newline(c); break; case V('i','g'): /* .ig: ignore until .. */ { char *endwith="..\n"; i=3; c=c+j; while (*c == ' ') c++; if (*c == escapesym && c[1] == '"') while (*c != '\n') c++; if (*c!='\n') { /* .ig yy: ignore until .yy, then call .yy */ endwith=c-1;i=1; c[-1]='.'; while (*c && *c!='\n') c++,i++; } c++; while (*c && strncmp(c,endwith,i)) while (*c && *c++!='\n'); while (*c && *c++!='\n'); break; } case V('n','f'): if (fillout) { out_html(change_to_font(0)); out_html(change_to_size('0')); out_html("
\n");
	    }
	    curpos=0;
	    fillout=0;
	    c=skip_till_newline(c);
	    break;
	case V('p','s'):
	    c=c+j;
	    if (*c == '\n') {
		out_html(change_to_size('0'));
	    } else {
		j=0;i=0;
		if (*c == '-') { j= -1;c++; } else if (*c == '+') { j=1;c++;}
		c=scan_expression(c, &i);
		if (!j) { j=1; if (i>5) i=i-10; }
		out_html(change_to_size(i*j));
	    }
	    c=skip_till_newline(c);
	    break;
	case V('s','p'):
	    c=c+j;
	    if (fillout) out_html("

"); else { out_html(NEWLINE); NEWLINE[0]='\n'; } curpos=0; c=skip_till_newline(c); break; case V('s','o'): { FILE *f; struct stat stbuf; int l; char *buf; char *name = NULL; curpos=0; c += j; /* skip .so part and whitespace */ if (*c == '/') { h = c; } else { /* .so man3/cpow.3 -> ../man3/cpow.3 */ h = c-3; h[0] = '.'; h[1] = '.'; h[2] = '/'; } while (*c != '\n') c++; while (c[-1] == ' ') c--; while (*c != '\n') *c++ = 0; *c = 0; scan_troff(h,1, &name); if (name[3] == '/') h=name+3; else h=name; l = 0; if (stat(h, &stbuf)!=-1) l=stbuf.st_size; buf = (char*) xmalloc((l+4)*sizeof(char)); #if NOCGI if (!out_length) { char *t,*s; t=strrchr(fname, '/'); if (!t) t=fname; fprintf(stderr, "ln -s %s.html %s.html\n", h, t); s=strrchr(t, '.');if (!s) s=t; printf(" Manpage of %s\n" "\n" "See the manpage for %s.\n" "\n", s, h, h); } else #endif { /* this works alright, except for section 3 */ if (!l || !(f = fopen(h,"r"))) { fprintf(stderr, "man2html: unable to open or read file %s\n", h); out_html("

" "man2html: unable to open or read file\n"); out_html(h); out_html("
\n"); } else { i=fread(buf+1,1,l,f); fclose(f); buf[0]=buf[l]='\n'; buf[l+1]=buf[l+2]=0; scan_troff(buf+1,0,NULL); } if (buf) free(buf); } *c++='\n'; break; } case V('t','a'): c=c+j; j=0; while (*c!='\n') { sl=scan_expression(c, &tabstops[j]); if (*c == '-' || *c == '+') tabstops[j]+=tabstops[j-1]; c=sl; while (*c == ' ' || *c == '\t') c++; if (j+1 < SIZE(tabstops)) j++; } maxtstop=j; curpos=0; break; case V('t','i'): #if 0 dl_down(); #endif out_html("
\n"); c=c+j; c=scan_expression(c, &j); for (i=0; ia b ] */ mode=1; c[0]='B'; c[1]='I'; out_html(change_to_font('R')); out_html("["); curpos++; case V('B','R'): case V('B','I'): case V('I','B'): case V('I','R'): case V('R','B'): case V('R','I'): { char font[2]; font[0] = c[0]; font[1] = c[1]; c = c+j; if (*c == '\n') c++; sl = fill_words(c, wordlist, SIZE(wordlist), &words, '\n'); c = sl+1; /* .BR name (section) ** indicates a link. It will be added in the output routine. */ for (i=0; i"); curpos = 0; break; case V('T','P'): dl_begin(); c=skip_till_newline(c); /* somewhere a definition ends with '.TP' */ if (!*c) still_dd=1; else { c=scan_troff(c,1,NULL); out_html("
"); } curpos=0; break; case V('I','X'): /* general index */ sl = fill_words(c+j, wordlist, SIZE(wordlist), &words, '\n'); c = sl+1; j = 4; while (idxlabel[j] == 'Z') idxlabel[j--]='A'; idxlabel[j]++; #ifdef MAKEINDEX if (idxfile) { fprintf(idxfile, "%s@%s@", fname, idxlabel); for (j=0; j' and '<' solves it, but creates ** some space. A normal space does not work. */ out_html("\">"); break; case V('L','P'): case V('P','P'): dl_end(); if (fillout) out_html("

\n"); else { out_html(NEWLINE); NEWLINE[0]='\n'; } curpos=0; c=skip_till_newline(c); break; case V('H','P'): dl_begin(); still_dd=1; c=skip_till_newline(c); curpos=0; break; case V('P','D'): c=skip_till_newline(c); break; case V('R','s'): /* BSD mandoc */ case V('R','S'): sl = fill_words(c+j, wordlist, SIZE(wordlist), &words, '\n'); j = 1; if (words>0) scan_expression(wordlist[0], &j); if (j>=0) { dl_newlevel(); c=skip_till_newline(c); curpos=0; break; } case V('R','e'): /* BSD mandoc */ case V('R','E'): dl_endlevel(); c=skip_till_newline(c); curpos=0; break; case V('S','B'): out_html(change_to_size(-1)); out_html(change_to_font('B')); c=scan_troff(c+j, 1, NULL); out_html(change_to_font('R')); out_html(change_to_size('0')); break; case V('S','M'): c=c+j; if (*c == '\n') c++; out_html(change_to_size(-1)); trans_char(c,'"','\a'); c=scan_troff(c,1,NULL); out_html(change_to_size('0')); break; case V('S','s'): /* BSD mandoc */ mandoc_command = 1; case V('S','S'): mode=1; goto sh_below; case V('S','h'): /* BSD mandoc */ mandoc_command = 1; case V('S','H'): sh_below: c=c+j; if (*c == '\n') c++; dl_down(); out_html(change_to_font(0)); out_html(change_to_size(0)); if (!fillout) { fillout=1; out_html("

"); } trans_char(c,'"', '\a'); add_to_index(mode, c); out_html(" \n

"); else out_html("\"> \n

"); mandoc_synopsis = (strncmp(c, "SYNOPSIS", 8) == 0); c = (mandoc_command ? scan_troff_mandoc : scan_troff)(c,1,NULL); if (mode) out_html("

\n"); else out_html("

\n"); curpos=0; break; case V('T','S'): c=scan_table(c); break; case V('D','t'): /* BSD mandoc */ mandoc_command = 1; case V('T','H'): if (!output_possible) { sl = fill_words(c+j, wordlist, SIZE(wordlist), &words, 0); *sl = 0; if (words > 1) { output_possible=1; out_html("Manpage of "); out_html(wordlist[0]); out_html("\n\n

"); out_html(wordlist[0]); out_html("

\nSection: "); if (words>4) out_html(wordlist[4]); else out_html(section_name(wordlist[1])); out_html(" ("); out_html(wordlist[1]); if (words>2) { out_html(")
Updated: "); scan_troff(wordlist[2], 1, NULL); } else out_html(")"); out_html("
Index\n"); man_page_html(0,0); /* Return to Main Contents */ *sl='\n'; out_html("
\n"); if (mandoc_command) out_html("
BSD mandoc
"); } c = sl+1; } else c = skip_till_newline(c); curpos=0; break; case V('T','X'): sl=fill_words(c+j, wordlist, SIZE(wordlist), &words, '\n'); *sl=0; out_html(change_to_font('I')); if (words>1) wordlist[1][-1]=0; c=lookup_abbrev(wordlist[0]); curpos+=strlen(c); out_html(c); out_html(change_to_font('R')); if (words>1) out_html(wordlist[1]); *sl='\n'; c=sl+1; break; case V('r','m'): /* .rm xx : Remove request, macro or string */ case V('r','n'): /* .rn xx yy : Rename request, macro or string xx to yy */ { STRDEF *de; c=c+j; i=V(c[0],c[1]); c=c+2; while (isspace(*c) && *c!='\n') c++; j=V(c[0],c[1]); while (*c && *c!='\n') c++; c++; de=strdef; while (de && de->nr!=j) de=de->next; if (de) { if (de->st) free(de->st); de->nr=0; } de=strdef; while (de && de->nr!=i) de=de->next; if (de) de->nr=j; break; } case V('n','x'): /* .nx filename : next file. */ case V('i','n'): /* .in +-N : Indent */ c=skip_till_newline(c); break; case V('n','r'): /* .nr R +-N M: define and set number register R by +-N; ** auto-increment by M */ { INTDEF *intd; c=c+j; i=V(c[0],c[1]); c=c+2; intd=intdef; while (intd && intd->nr!=i) intd=intd->next; if (!intd) { intd = (INTDEF*) xmalloc(sizeof(INTDEF)); intd->nr=i; intd->val=0; intd->incr=0; intd->next=intdef; intdef=intd; } while (*c == ' ' || *c == '\t') c++; c=scan_expression(c,&intd->val); if (*c!='\n') { while (*c == ' ' || *c == '\t') c++; c=scan_expression(c,&intd->incr); } c=skip_till_newline(c); break; } case V('a','m'): /* .am xx yy : append to a macro. */ /* define or handle as .ig yy */ mode=1; case V('d','e'): /* .de xx yy : define or redefine macro xx; end at .yy (..) */ /* define or handle as .ig yy */ { STRDEF *de; int olen=0; c=c+j; sl=fill_words(c, wordlist, SIZE(wordlist), &words, '\n'); i=V(c[0],c[1]);j=2; if (words == 1) wordlist[1]=".."; else { wordlist[1]--; wordlist[1][0]='.'; j=3; } c=sl+1; sl=c; while (*c && strncmp(c,wordlist[1],j)) c=skip_till_newline(c); de=defdef; while (de && de->nr!= i) de=de->next; if (mode && de) olen=strlen(de->st); j=olen+c-sl; h= (char*) xmalloc((j*2+4)*sizeof(char)); if (h) { for (j=0; jst[j]; if (!j || h[j-1]!='\n') h[j++]='\n'; while (sl!=c) { if (sl[0] == '\\' && sl[1] == '\\') { h[j++]='\\'; sl++; } else h[j++]=*sl; sl++; } h[j]=0; if (de) { if (de->st) free(de->st); de->st=h; } else { de = (STRDEF*) xmalloc(sizeof(STRDEF)); de->nr=i; de->next=defdef; de->st=h; defdef=de; } } } c=skip_till_newline(c); break; /* ----- BSD mandoc stuff below ----- */ case V('U','x'): /* BSD mandoc */ c=c+j; out_html("UNIX"); c=skip_till_newline(c); break; case V('A','t'): /* BSD mandoc - called with arg V */ c=c+j; out_html("AT&T System"); break; case V('B','l'): /* BSD mandoc */ { char *nl, t=0 /* just for gcc */; c=c+j; nl = strchr(c,'\n'); if (nl) { t = *nl; *nl = 0; } if (strstr(c, "-bullet")) /* HTML Unnumbered List */ dl_newlevel_type(UL); else if (strstr(c, "-enum")) /* HTML Ordered List */ dl_newlevel_type(OL); else /* HTML Descriptive List */ dl_newlevel_type(DL); if (nl) *nl = t; if (fillout) out_html("

\n"); else { out_html(NEWLINE); NEWLINE[0]='\n'; } curpos=0; c=skip_till_newline(c); break; } case V('E','l'): /* BSD mandoc */ c=c+j; dl_endlevel_type(); if (fillout) out_html("

\n"); else { out_html(NEWLINE); NEWLINE[0]='\n'; } curpos=0; c=skip_till_newline(c); break; case V('I','t'): /* BSD mandoc */ c=c+j; if (dl_type(DL)) { out_html("

"); out_html(change_to_font('B')); if (*c == '\n') { /* Don't allow embedded comms after a newline */ c++; c=scan_troff(c,1,NULL); } else { /* Do allow embedded comms on the same line. */ c=scan_troff_mandoc(c,1,NULL); } out_html(change_to_font('R')); out_html(NEWLINE); if (inXo) still_dd = 1; else out_html("
"); } else if (dl_type(UL) || dl_type(OL)) { out_html("
  • "); c=scan_troff_mandoc(c,1,NULL); out_html(NEWLINE); } if (fillout) curpos++; else curpos=0; break; case V('X','o'): /* BSD mandoc */ c=c+j; inXo = 1; break; case V('X','c'): /* BSD mandoc - Xc closes an Xo */ c=c+j; if (inXo) { if (still_dd) out_html("
    "); inXo = 0; } break; case V('S','m'): /* BSD mandoc - called with arg on/off */ c=skip_till_newline(c); break; case V('B','k'): /* BSD mandoc */ case V('E','k'): /* BSD mandoc */ case V('D','d'): /* BSD mandoc */ case V('O','s'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; c=scan_troff_mandoc(c, 1, NULL); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('B','t'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; out_html(" is currently in beta test."); if (fillout) curpos++; else curpos=0; break; case V('B','x'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; out_html("BSD "); c=scan_troff_mandoc(c, 1, NULL); if (fillout) curpos++; else curpos=0; break; case V('D','l'): /* BSD mandoc */ c=c+j; out_html(NEWLINE); out_html("
    "); out_html(change_to_font('L')); if (*c == '\n') c++; c=scan_troff_mandoc(c, 1, NULL); out_html(change_to_font('R')); out_html("
    "); if (fillout) curpos++; else curpos=0; break; case V('B','d'): /* BSD mandoc */ { /* Seems like a kind of example/literal mode */ char *nl, t=0 /* just for gcc */; c=c+j; nl = strchr(c,'\n'); if (nl) { t = *nl; *nl = 0; } out_html(NEWLINE); mandoc_bd_options = 0; /* Remember options for terminating Bl */ if (strstr(c, "-offset indent")) { mandoc_bd_options |= BD_INDENT; out_html("
    \n"); } if (strstr(c, "-literal") || strstr(c, "-unfilled")) { if (fillout) { mandoc_bd_options |= BD_LITERAL; out_html(change_to_font(0)); out_html(change_to_size('0')); out_html("
    \n");
    		  }
    		  curpos=0;
    		  fillout=0;
    	     }
    	     if (nl)
    		  *nl = t;
    	     c=skip_till_newline(c);
    	     break;
    	}
    	case V('E','d'):	/* BSD mandoc */
    	     if (mandoc_bd_options & BD_LITERAL) {
    		  if (!fillout) {
    		       out_html(change_to_font(0));
    		       out_html(change_to_size('0'));
    		       out_html("
    \n"); } } if (mandoc_bd_options & BD_INDENT) out_html("
    \n"); curpos=0; fillout=1; c=skip_till_newline(c); break; case V('B','e'): /* BSD mandoc */ c=c+j; if (fillout) out_html("

    "); else { out_html(NEWLINE); NEWLINE[0]='\n'; } curpos=0; c=skip_till_newline(c); break; case V('X','r'): /* BSD mandoc */ { /* Translate xyz 1 to xyz(1) * Allow for multiple spaces. Allow the section to be missing. */ char buff[100]; char *bufptr; trans_char(c,'"','\a'); bufptr = buff; c = c+j; if (*c == '\n') c++; /* Skip spaces */ while (isspace(*c) && *c != '\n') c++; while (isalnum(*c) && bufptr < buff + SIZE(buff)-4) { /* Copy the xyz part */ *bufptr++ = *c++; } while (isspace(*c) && *c != '\n') c++; /* Skip spaces */ if (isdigit(*c)) { /* Convert the number if there is one */ *bufptr++ = '('; while (isalnum(*c) && bufptr < buff + SIZE(buff)-3) { *bufptr++ = *c++; } *bufptr++ = ')'; } while (*c != '\n' && bufptr < buff + SIZE(buff)-2) { /* Copy the remainder */ if (!isspace(*c)) { *bufptr++ = *c; } c++; } *bufptr++ = '\n'; *bufptr = 0; scan_troff_mandoc(buff, 1, NULL); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; } break; case V('F','l'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; out_html("-"); if (*c!='\n') { out_html(change_to_font('B')); c=scan_troff_mandoc(c, 1, NULL); out_html(change_to_font('R')); } out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('P','a'): /* BSD mandoc */ case V('P','f'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; c=scan_troff_mandoc(c, 1, NULL); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('P','p'): /* BSD mandoc */ if (fillout) out_html("

    \n"); else { out_html(NEWLINE); NEWLINE[0]='\n'; } curpos=0; c=skip_till_newline(c); break; case V('D','q'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; out_html("``"); c=scan_troff_mandoc(c, 1, NULL); out_html("''"); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('O','p'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; out_html(change_to_font('R')); out_html("["); c=scan_troff_mandoc(c, 1, NULL); out_html(change_to_font('R')); out_html("]"); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('O','o'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; out_html(change_to_font('R')); out_html("["); c=scan_troff_mandoc(c, 1, NULL); if (fillout) curpos++; else curpos=0; break; case V('O','c'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; c=scan_troff_mandoc(c, 1, NULL); out_html(change_to_font('R')); out_html("]"); if (fillout) curpos++; else curpos=0; break; case V('P','q'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; out_html("("); c=scan_troff_mandoc(c, 1, NULL); out_html(")"); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('Q','l'): /* BSD mandoc */ { /* Single quote first word in the line */ char *sp; trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; sp = c; do { /* Find first whitespace after the * first word that isn't a mandoc macro */ while (*sp && isspace(*sp)) sp++; while (*sp && !isspace(*sp)) sp++; } while (*sp && isupper(*(sp-2)) && islower(*(sp-1))); /* Use a newline to mark the end of text to * be quoted */ if (*sp) *sp = '\n'; out_html("`"); /* Quote the text */ c=scan_troff_mandoc(c, 1, NULL); out_html("'"); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; } case V('S','q'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; out_html("`"); c=scan_troff_mandoc(c, 1, NULL); out_html("'"); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('A','r'): /* BSD mandoc */ /* parse one line in italics */ out_html(change_to_font('I')); trans_char(c,'"','\a'); c=c+j; if (*c == '\n') { /* An empty Ar means "file ..." */ out_html("file ..."); } else { c=scan_troff_mandoc(c, 1, NULL); } out_html(change_to_font('R')); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('A','d'): /* BSD mandoc */ case V('E','m'): /* BSD mandoc */ case V('V','a'): /* BSD mandoc */ /* parse one line in italics */ out_html(change_to_font('I')); trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; c=scan_troff_mandoc(c, 1, NULL); out_html(change_to_font('R')); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('N','d'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; out_html(" - "); c=scan_troff_mandoc(c, 1, NULL); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('N','m'): /* BSD mandoc */ { static char *mandoc_name = 0; trans_char(c,'"','\a'); c=c+j; if (mandoc_synopsis) { /* * Break lines only in the Synopsis. * The Synopsis section seems to be treated * as a special case - Bummer! */ static int count = 0; /* Don't break on the first Nm */ if (count) { out_html("
    "); } else { char *end, t=0 /* just for gcc */; end = strchr(c, '\n'); if (end) { t = *end; *end = 0; } if (mandoc_name) free(mandoc_name); mandoc_name = xstrdup(c); if (end) *end = t; } count++; } out_html(change_to_font('B')); while (*c == ' ' || *c == '\t') c++; if (*c == '\n') { /* * If Nm has no argument, use one from an earlier * Nm command that did have one. Hope there aren't * too many commands that do this. */ if (mandoc_name) out_html(mandoc_name); } else { c=scan_troff_mandoc(c, 1, NULL); } out_html(change_to_font('R')); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; } case V('C','d'): /* BSD mandoc */ case V('C','m'): /* BSD mandoc */ case V('I','c'): /* BSD mandoc */ case V('M','s'): /* BSD mandoc */ case V('O','r'): /* BSD mandoc */ case V('S','y'): /* BSD mandoc */ /* parse one line in bold */ out_html(change_to_font('B')); trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; c=scan_troff_mandoc(c, 1, NULL); out_html(change_to_font('R')); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('D','v'): /* BSD mandoc */ case V('E','v'): /* BSD mandoc */ case V('F','r'): /* BSD mandoc */ case V('L','i'): /* BSD mandoc */ case V('N','o'): /* BSD mandoc */ case V('N','s'): /* BSD mandoc */ case V('T','n'): /* BSD mandoc */ case V('n','N'): /* BSD mandoc */ trans_char(c,'"','\a'); c=c+j; if (*c == '\n') c++; out_html(change_to_font('B')); c=scan_troff_mandoc(c, 1, NULL); out_html(change_to_font('R')); out_html(NEWLINE); if (fillout) curpos++; else curpos=0; break; case V('%','A'): /* BSD mandoc biblio stuff */ case V('%','D'): case V('%','N'): case V('%','O'): case V('%','P'): case V('%','Q'): case V('%','V'): c=c+j; if (*c == '\n') c++; c=scan_troff(c, 1, NULL); /* Don't allow embedded mandoc coms */ if (fillout) curpos++; else curpos=0; break; case V('%','B'): case V('%','J'): case V('%','R'): case V('%','T'): c=c+j; out_html(change_to_font('I')); if (*c == '\n') c++; c=scan_troff(c, 1, NULL); /* Don't allow embedded mandoc coms */ out_html(change_to_font('R')); if (fillout) curpos++; else curpos=0; break; /* ----- end of BSD mandoc stuff ----- */ default: /* search macro database of self-defined macros */ owndef = defdef; while (owndef && owndef->nr!=i) owndef=owndef->next; if (owndef) { char **oldargument; int deflen; int onff; sl=fill_words(c+j, wordlist, SIZE(wordlist), &words, '\n'); c=sl+1; *sl=0; for (i=1; ist); owndef->st[deflen+1]='a'; for (i=0; (owndef->st[deflen+2+i] = owndef->st[i]); i++); oldargument=argument; argument=wordlist; onff=newline_for_fun; if (mandoc_command) scan_troff_mandoc(owndef->st+deflen+2, 0, NULL); else scan_troff(owndef->st+deflen+2, 0, NULL); newline_for_fun=onff; argument=oldargument; for (i=0; i"); curpos=0; still_dd=0; } switch (*h) { case '&': intbuff[ibp++]='&'; intbuff[ibp++]='a'; intbuff[ibp++]='m'; intbuff[ibp++]='p'; intbuff[ibp++]=';'; curpos++; break; case '<': intbuff[ibp++]='&'; intbuff[ibp++]='l'; intbuff[ibp++]='t'; intbuff[ibp++]=';'; curpos++; break; case '>': intbuff[ibp++]='&'; intbuff[ibp++]='g'; intbuff[ibp++]='t'; intbuff[ibp++]=';'; curpos++; break; case '"': intbuff[ibp++]='&'; intbuff[ibp++]='q'; intbuff[ibp++]='u'; intbuff[ibp++]='o'; intbuff[ibp++]='t'; intbuff[ibp++]=';'; curpos++; break; case '\n': if (h[-1] == '\n' && fillout) { intbuff[ibp++]='<'; intbuff[ibp++]='P'; intbuff[ibp++]='>'; } if (contained_tab && fillout) { intbuff[ibp++]='<'; intbuff[ibp++]='B'; intbuff[ibp++]='R'; intbuff[ibp++]='>'; } contained_tab=0; curpos=0; usenbsp=0; intbuff[ibp++]='\n'; break; case '\t': { int curtab=0; contained_tab=1; FLUSHIBP; /* like a typewriter, not like TeX */ tabstops[SIZE(tabstops)-1] = curpos+1; while (curtab < maxtstop && tabstops[curtab] <= curpos) curtab++; if (curtab < maxtstop) { if (!fillout) { while (curpos480) { FLUSHIBP; } curpos++; } } else { out_html(""); while (curpos < tabstops[curtab]) { out_html(" "); curpos++; } out_html(""); } } } break; default: if (*h == ' ' && (h[-1] == '\n' || usenbsp)) { FLUSHIBP; if (!usenbsp && fillout) { out_html("
    "); curpos=0; } usenbsp=fillout; if (usenbsp) out_html(" "); else intbuff[ibp++]=' '; } else if (*h > 31 && *h < 127) { intbuff[ibp++]=*h; } else if (((unsigned char)(*h)) > 127) { #ifdef NO_8BIT intbuff[ibp++]='&'; intbuff[ibp++]='#'; intbuff[ibp++]='0'+((unsigned char)(*h))/100; intbuff[ibp++]='0'+(((unsigned char)(*h))%100)/10; intbuff[ibp++]='0'+((unsigned char)(*h))%10; intbuff[ibp++]=';'; #else intbuff[ibp++]=*h; #endif } curpos++; break; } if (ibp>480) FLUSHIBP; h++; } } FLUSHIBP; if (buffer) buffer[buffpos]=0; if (san && *h) h++; newline_for_fun=exnewline_for_fun; if (result) { *result = buffer; buffer=exbuffer; buffpos=exbuffpos; buffmax=exbuffmax; scaninbuff=exscaninbuff; } return h; } static char *scan_troff_mandoc(char *c, int san, char **result) { char *ret, *end = c; int oldval = mandoc_line; mandoc_line = 1; while (*end && *end != '\n') { end++; } if (end > c + 2 && ispunct(*(end - 1)) && isspace(*(end - 2)) && *(end - 2) != '\n') { /* * Don't format lonely punctuation. E.g. in "xyz ," format * the xyz and then append the comma removing the space. */ *(end - 2) = '\n'; ret = scan_troff(c, san, result); *(end - 2) = *(end - 1); *(end - 1) = ' '; } else { ret = scan_troff(c, san, result); } mandoc_line = oldval; return ret; } STRDEF *foundpages=NULL; static void error_page(char *s, char *t, ...) { va_list p; printf("%s\n" "\n

    %s

    \n", s, s); va_start(p, t); vfprintf(stdout, t, p); va_end(p); printf("\n"); exit(0); } char * xstrdup(const char *s) { char *p = strdup(s); if (p == NULL) error_page("Out of memory", "Sorry, out of memory, aborting...\n"); return p; } void * xmalloc(size_t size) { void *p = malloc(size); if (p == NULL) error_page("Out of memory", "Sorry, out of memory, aborting...\n"); return p; } void * xrealloc(void *ptr, size_t size) { void *p = realloc(ptr,size); if (p == NULL) error_page("Out of memory", "Sorry, out of memory, aborting...\n"); return p; } static void usage(void) { error_page("man2html: bad invocation", "Call: man2html [-l|-h host.domain:port] [-p|-q] [filename]\n" "or: man2html -r [filename]\n"); } static void goto_dir(char *path, char **dir, char **name) { char *s, *t, *u; s = xstrdup(path); t = strrchr(s, '/'); if (t) { *t = 0; u = strrchr(s, '/'); *t = '/'; if (u) { *u = 0; if (chdir(s) == 0) { if (dir) *dir = s; if (name) *name = u+1; } #if 0 else /* complain or not - this need not be fatal */ error_page("Error", "man2html: could not chdir to %s", s); #endif } } } /* * Call: man2html [-l] [filename] * * The contents of FILENAME (or STDIN, in case FILENAME is "-" or absent) * are converted from man-style nroff to html, and printed on STDOUT. * * Possible errors are reflected in the output. The return status is 0. */ int main(int argc, char **argv) { FILE *f; struct stat stbuf; int l, c; char *buf, *filename, *fnam = NULL; #ifdef __CYGWIN__ int opterr; extern int optind; extern char *optarg; #endif printf("Content-type: text/html\n\n"); opterr = 0; /* no stderr error messages */ while ((c = getopt (argc, argv, "D:E:hH:lL:M:pqr?vVf")) != -1) { switch(c) { case 'D': goto_dir(optarg, 0, 0); break; case 'E': error_page("Error", "%s", optarg); break; case 'h': set_cgibase("localhost"); break; case 'H': set_cgibase(optarg); break; case 'l': set_lynxcgibase("/home/httpd"); break; case 'L': set_lynxcgibase(optarg); break; case 'M': set_man2htmlpath(optarg); break; case 'p': set_separator('/'); break; case 'q': set_separator('?'); break; case 'r': set_relative_html_links(); break; case 'v': case 'V': error_page("Version", "%s from man-%s", argv[0], version); exit(0); case '?': default: usage(); case 'f': /* It is rumoured that some other incarnation of man2html uses this flag; ignore when given for compatibility. */ /* case 'F': this will assign a format for man_page_html() */ break; } } /* Find filename */ if (argc == optind+1) fnam = argv[optind]; else if (argc != optind) usage(); filename = fnam; directory = 0; /* Open input file */ if (!fnam || !strcmp(fnam, "-")) { f = stdin; fname = "(stdin)"; } else { /* do a chdir() first, to get .so expansion right */ goto_dir(fnam, &directory, &fnam); f = fopen(fnam, "r"); if (f == NULL) error_page("File not found", "Could not open %s\n", filename); fname = fnam; } /* Read entire file into buf[1..l] */ #define XTRA 5 /* buf has 1 extra byte at the start, and XTRA extra bytes at the end */ if (f == stdin) { int sz = 1024; int ct = 1, tot = 0; char *p = NULL; clearerr(stdin); while (ct > 0) { tot += ct; if (feof(stdin)) break; sz = 2*sz+tot; p = xrealloc(p, sz); ct = fread(p+tot,1,sz-tot-XTRA,stdin); } buf = p; l = tot-1; } else { int ct; l = 0; if (fstat(fileno(f), &stbuf) != -1) l = stbuf.st_size; buf = (char *) xmalloc((l+1+XTRA)*sizeof(char)); ct = fread(buf+1,1,l,f); if (ct < l) l = ct; fclose(f); } buf[0] = '\n'; buf[l+1] = '\n'; buf[l+2] = buf[l+3] = 0; #ifdef MAKEINDEX idxfile = fopen(INDEXFILE, "a"); #endif stdinit(); scan_troff(buf+1,0,NULL); dl_down(); out_html(change_to_font(0)); out_html(change_to_size(0)); if (!fillout) { fillout=1; out_html(""); } out_html(NEWLINE); if (output_possible) { /*   for mosaic users */ printf("
    \n 

    Index

    \n
    \n"); manidx[mip]=0; printf("%s", manidx); if (subs) printf("
    \n"); printf("\n"); print_sig(); printf("\n\n"); } else { if (!filename) filename = fname; if (*filename == '/') error_page("Invalid Manpage", "The requested file %s is not a valid (unformatted) " "man page.\nIf the file is a formatted manpage, " "you could try to load the\n" "plain file.\n", filename, filename); else error_page("Invalid Manpage", "The requested file %s is not a valid (unformatted) " "man page.", filename); } if (idxfile) fclose(idxfile); if (buf) free(buf); return 0; } man-1.6g/man2html/strdefs.c0000644000175000001440000001275410301736016015364 0ustar lucifredusers#include "defs.h" #ifndef NULL #define NULL ((void *) 0) #endif int nroff = 1; #define NROFF (-666) #define TROFF (-667) STRDEF *chardef, *strdef, *defdef; INTDEF *intdef; static INTDEF standardint[] = { { V('n',' '), NROFF, 0, NULL }, { V('t',' '), TROFF, 0, NULL }, { V('o',' '), 1, 0, NULL }, { V('e',' '), 0, 0, NULL }, { V('.','l'), 70, 0, NULL }, { V('.','$'), 0, 0, NULL }, { V('.','A'), NROFF, 0, NULL }, { V('.','T'), TROFF, 0, NULL }, { V('.','V'), 1, 0, NULL }, /* the me package tests for this */ { 0, 0, 0, NULL } }; static STRDEF standardstring[] = { { V('R',' '), 1, "®", NULL }, { V('l','q'), 2, "``", NULL }, { V('r','q'), 2, "''", NULL }, { 0, 0, NULL, NULL} }; static STRDEF standardchar[] = { { V('*','*'), 1, "*", NULL }, /* math star */ { V('*','A'), 1, "A", NULL }, { V('*','B'), 1, "B", NULL }, { V('*','C'), 2, "Xi", NULL }, { V('*','D'), 5, "Delta", NULL }, { V('*','E'), 1, "E", NULL }, { V('*','F'), 3, "Phi", NULL }, { V('*','G'), 5, "Gamma", NULL }, { V('*','H'), 5, "Theta", NULL }, { V('*','I'), 1, "I", NULL }, { V('*','K'), 1, "K", NULL }, { V('*','L'), 6, "Lambda", NULL }, { V('*','M'), 1, "M", NULL }, { V('*','N'), 1, "N", NULL }, { V('*','O'), 1, "O", NULL }, { V('*','P'), 2, "Pi", NULL }, { V('*','Q'), 3, "Psi", NULL }, { V('*','R'), 1, "P", NULL }, { V('*','S'), 5, "Sigma", NULL }, { V('*','T'), 1, "T", NULL }, { V('*','U'), 1, "Y", NULL }, { V('*','W'), 5, "Omega", NULL }, { V('*','X'), 1, "X", NULL }, { V('*','Y'), 1, "H", NULL }, { V('*','Z'), 1, "Z", NULL }, { V('*','a'), 5, "alpha", NULL }, { V('*','b'), 4, "beta", NULL }, { V('*','c'), 2, "xi", NULL }, { V('*','d'), 5, "delta", NULL }, { V('*','e'), 7, "epsilon", NULL }, { V('*','f'), 3, "phi", NULL }, { V('*','g'), 5, "gamma", NULL }, { V('*','h'), 5, "theta", NULL }, { V('*','i'), 4, "iota", NULL }, { V('*','k'), 5, "kappa", NULL }, { V('*','l'), 6, "lambda", NULL }, { V('*','m'), 1, "µ", NULL }, { V('*','n'), 2, "nu", NULL }, { V('*','o'), 1, "o", NULL }, { V('*','p'), 2, "pi", NULL }, { V('*','q'), 3, "psi", NULL }, { V('*','r'), 3, "rho", NULL }, { V('*','s'), 5, "sigma", NULL }, { V('*','t'), 3, "tau", NULL }, { V('*','u'), 7, "upsilon", NULL }, { V('*','w'), 5, "omega", NULL }, { V('*','x'), 3, "chi", NULL }, { V('*','y'), 3, "eta", NULL }, { V('*','z'), 4, "zeta", NULL }, { V('+','-'), 1, "±", NULL }, { V('1','2'), 1, "½", NULL }, { V('1','4'), 1, "¼", NULL }, { V('3','4'), 1, "¾", NULL }, { V('F','i'), 3, "ffi", NULL }, { V('F','l'), 3, "ffl", NULL }, { V('a','a'), 1, "´", NULL }, { V('a','p'), 1, "~", NULL }, { V('b','r'), 1, "|", NULL }, { V('b','u'), 1, "*", NULL }, /* bullet */ { V('b','v'), 1, "|", NULL }, { V('c','i'), 1, "o", NULL }, /* circle */ { V('c','o'), 1, "©", NULL }, { V('c','t'), 1, "¢", NULL }, { V('d','e'), 1, "°", NULL }, { V('d','g'), 1, "+", NULL }, /* dagger */ { V('d','i'), 1, "÷", NULL }, { V('e','m'), 3, "---", NULL }, /* em dash */ { V('e','n'), 1, "-", NULL }, /* en dash */ { V('e','q'), 1, "=", NULL }, { V('e','s'), 1, "Ø", NULL }, { V('f','f'), 2, "ff", NULL }, { V('f','i'), 2, "fi", NULL }, { V('f','l'), 2, "fl", NULL }, { V('f','m'), 1, "´", NULL }, { V('g','a'), 1, "`", NULL }, { V('h','y'), 1, "-", NULL }, { V('l','c'), 2, "|¯", NULL }, { V('i','f'), 8, "Infinity", NULL }, /* infinity sign */ { V('i','s'), 8, "Integral", NULL }, /* integral sign */ { V('l','f'), 2, "|_", NULL }, { V('l','k'), 1, "{", NULL }, { V('m','i'), 1, "-", NULL }, { V('m','u'), 1, "×", NULL }, { V('n','o'), 1, "¬", NULL }, { V('o','r'), 1, "|", NULL }, { V('p','d'), 1, "d", NULL }, /* partial derivative */ { V('p','l'), 1, "+", NULL }, { V('r','c'), 2, "¯|", NULL }, { V('r','f'), 2, "_|", NULL }, { V('r','g'), 1, "®", NULL }, { V('r','k'), 1, "}", NULL }, { V('r','n'), 1, "¯", NULL }, { V('r','u'), 1, "_", NULL }, { V('s','c'), 1, "§", NULL }, { V('s','l'), 1, "/", NULL }, { V('s','q'), 2, "[]", NULL }, { V('t','s'), 1, "s", NULL }, /* should be terminal sigma */ { V('u','l'), 1, "_", NULL }, { V('>','='), 1, ">", NULL }, { V('<','='), 1, "<", NULL }, { 0, 0, NULL, NULL } }; void stdinit(void) { STRDEF *stdf; int i; stdf = &standardchar[0]; i = 0; while (stdf->nr) { if (stdf->st) stdf->st = xstrdup(stdf->st); stdf->next = &standardchar[i]; stdf = stdf->next; i++; } chardef=&standardchar[0]; stdf=&standardstring[0]; i=0; while (stdf->nr) { /* waste a little memory, and make a copy, to avoid the segfault when we free non-malloced memory */ if (stdf->st) stdf->st = xstrdup(stdf->st); stdf->next = &standardstring[i]; stdf = stdf->next; i++; } strdef=&standardstring[0]; intdef=&standardint[0]; i=0; while (intdef->nr) { if (intdef->nr == NROFF) intdef->nr = nroff; else if (intdef->nr == TROFF) intdef->nr = !nroff; intdef->next = &standardint[i]; intdef = intdef->next; i++; } intdef = &standardint[0]; defdef = NULL; } man-1.6g/man2html/TODO0000644000175000001440000000341610663134672014244 0ustar lucifredusersThere are still many problems with man2html. Partly these are caused by the imprecise definition of the man file format. (And the many buggy man pages.) Partly by the incomplete implementation of the man/doc macro packages. Partly by the imperfect emulation of troff. Partly by the variation between various browsers in the accepted html. Partly just because man2html is buggy. Of course in reality a man2html converter must contain large parts of the troff source, so that it can be fed with the defining macro packages and always do the right thing. On a RedHat 5.0 system: - /usr/man/mann/DirDlg.n is not formatted correctly. (It does not start with .TH) - bug_readline@prep.ai.mit.edu does not generate a mailto: link. It should generate hman install-hman: hman install -m 555 hman $(bindir)/hman install -m 644 hman.1 $(mandir)/man1/hman.@man1ext@ clean: rm -f core hman man2html$(EXEEXT) $(OBJECTS) *~ spotless: clean rm -f Makefile $(OBJECTS): defs.h man-1.6g/man2html/scripts/0000755000175000001440000000000010301736016015224 5ustar lucifredusersman-1.6g/man2html/scripts/cgi-bin/0000755000175000001440000000000010301736016016534 5ustar lucifredusersman-1.6g/man2html/scripts/cgi-bin/man/0000755000175000001440000000000010655421260017313 5ustar lucifredusersman-1.6g/man2html/scripts/cgi-bin/man/man2html0000755000175000001440000000415410655421260020767 0ustar lucifredusers#!/bin/sh # man2html cgi script - uses /usr/bin/man2html to format man pages # auxiliary text files in /home/httpd/cgi-aux/man # aeb@cwi.nl - 980109 MAN2HTML="/usr/bin/man2html" MANX="/home/httpd/cgi-aux/man/man.aux" # Do we need lynxcgi URLs? For the moment our criterion is # 1) HTTP_USER_AGENT=Lynx* and 2) HTTP_HOST is unset. AGENT="${HTTP_USER_AGENT-unknown}" case "$AGENT" in Lynx*|lynx*) HH="${HTTP_HOST-nohh}" SED="s/%lynx //" ;; *) HH=nolynx SED="/%lynx/d" ;; esac SERVER="${SERVER_NAME-localhost}" case "$HH" in nohh) LL="-l" CG="lynxcgi:/home/httpd/cgi-bin/man" ;; *) LL="-H$SERVER" CG="http://$SERVER/cgi-bin/man" ;; esac # Find the required page - expect to be called with "man2html [sec] page". # There may a prefixed "-M manpath" option. if [ $# -ge 2 -a x"$1" = x-M ]; then MANPATH="$2" export MANPATH shift; shift MP=" using the given MANPATH" else MP="" fi # If no arguments given, show a start page. if [ $# = 0 ]; then if [ -r $MANX ]; then cat $MANX | sed "s#%cg#$CG#g; $SED" else "$MAN2HTML" -E "man2html: cannot open $MANX" fi exit 0 fi if [ $# -gt 2 ]; then "$MAN2HTML" -E "man2html: bad invocation: too many arguments" exit 0 fi # A single argument may be an explicitly give path name # Otherwise, ask man where to find it if [ $# = 1 ]; then case "$1" in /*) PAGE="$1" ;; *) PAGE=`man -w -c "$@" 2>/dev/null` ;; esac else PAGE=`man -w -c "$@" 2>/dev/null` fi if [ x"$PAGE" = x ]; then complaint="man2html: cannot find a page" if [ $# = 1 ]; then "$MAN2HTML" -E "$complaint for $1$MP" else "$MAN2HTML" -E "$complaint for $2 in section $1$MP" fi exit 0 fi if [ -r "$PAGE" ] then case "$PAGE" in *.gz) zcat "$PAGE" | "$MAN2HTML" "$LL" -D "$PAGE" ;; *.bz2) bzcat "$PAGE" | "$MAN2HTML" "$LL" -D "$PAGE" ;; *) "$MAN2HTML" "$LL" "$PAGE" ;; esac elif [ -r "$PAGE".gz ] then zcat "$PAGE".gz | "$MAN2HTML" "$LL" -D "$PAGE" elif [ -r "$PAGE".bz2 ] then bzcat "$PAGE".bz2 | "$MAN2HTML" "$LL" -D "$PAGE" else "$MAN2HTML" -E "Strange... Cannot find (or read) $PAGE." fi exit 0 man-1.6g/man2html/scripts/cgi-bin/man/manwhatis0000755000175000001440000001467310301736016021243 0ustar lucifredusers#!/usr/bin/awk -f # # Generate a whatis index into the manual pages by using find to # locate all the whatis files. # Michael Hamilton # Small changes - aeb, 980109 # BEGIN { OFS=""; if (ARGC != 3) { print "Content-type: text/html\n\n"; print ""; print "manwhatis - bad call"; print "\n"; print "manwhatis: wrong number of arguments"; print ""; exit; } cgipath = ARGV[1]; section = ARGV[2]; if (section !~ /^[1-8ln]$/) { print "Content-type: text/html\n\n"; print ""; print "Manual - Illegal section"; print "\n"; print "Illegal section number '" section "'." ; print "Must be one of 1,2,3,4,5,6,7,8,l,n"; print ""; exit; } if (cgipath ~ /lynxcgi/) { cache_suffix = "l"; } else { cache_suffix = "h"; } cache_dir = "/var/man2html"; cache_file = "whatis" cache_suffix "-" section ".html"; cache = cache_dir "/" cache_file; # Find out the man path "man -w" | getline man_path gsub(":", " ", man_path); # See if anything is out of date. if (system("test -f " cache) == 0) { cmd = "find " man_path " -maxdepth 1 -name whatis -newer " cache; cmd | getline need_update; } else { need_update = 1; } if (need_update != "") { if (system("test -w " cache_dir "/.") != 0) { print "Content-type: text/html\n\n"; print ""; print "manwhatis - no cache"; print "\n"; print "Sorry - cannot create index."; print "No writable cache directory " cache_dir " exists."; print ""; exit; } "echo $PPID" | getline pid; cache_tmp = cache "_" pid; sort_tmp = cache_dir "/manwhatis_tmp_" pid ; buffer_tmp = cache_dir "/manwhatis_tmp2_" pid; sec_name[1] = "User Commands"; sec_name[2] = "System Calls"; sec_name[3] = "Library Functions"; sec_name[4] = "Special Files"; sec_name[5] = "File Formats"; sec_name[6] = "Games"; sec_name[7] = "Miscellany"; sec_name[8] = "Administration and Privileged Commands"; num_sections = 8; # Print heading print "Content-type: text/html\n\n" > cache_tmp; print "\n" > cache_tmp; print "Manual Pages - Names and Descriptions: " section ". " sec_name[section] "" > cache_tmp; print "\n" > cache_tmp; print "

    Manual Pages - Names and Descriptions

    " > cache_tmp; print "

    Section " section ": " sec_name[section] "

    " > cache_tmp; "hostname" | getline hostname; "date" | getline date; print hostname " (" date ")" > cache_tmp; # Find out the man path "man -w" | getline; $1 = $1 ":"; gsub(":", " ", $1); find_cmd = "find " man_path " -maxdepth 1 -name whatis -printf '%p '"; find_cmd | getline whatis_files; close(find_cmd); if (whatis_files == "") { print "Content-type: text/html\n\n"; print ""; print "Manwhatis - Error updating index"; print "\n"; print "Unable to find whatis files - Sorry." print ""; exit; } # Try to parse valid entries - those that contain ([0-9]) # Note that egrep is sometimes in /bin, sometimes in /usr/bin extract_cmd = "egrep -h '\\(" section "[A-Za-z]*\\)' " whatis_files ; print "
    Manual pages referenced in " whatis_files "

    " > cache_tmp; # Note that sort sometimes lives in /bin and sometimes in /usr/bin sort_cmd = "sort -f >> " sort_tmp; while ( (extract_cmd | getline) > 0 ) { if (bracket_pos = index($0, "(")) { sec_full_num = substr($0, bracket_pos + 1, index($0, ")") - bracket_pos - 1); names = substr($0, 1, bracket_pos - 2); # Get rid of blanks and commas. n = split(names, name_list, " *, *"); description = substr($0, bracket_pos + length(sec_full_num) + 2); # Get rid of AT&T gsub("&", "\&", description); # Generate a entry for each name for (i = 1; i <= n; i++) { print name_list[i] " " sec_full_num " " name_list[1] " / " description | sort_cmd; } } } close(extract_cmd); close(sort_cmd); while ((getline < sort_tmp) > 0) { letter = tolower(substr($1,1,1)); if (letter != last_letter) { if (last_letter) { print "

    " > buffer_tmp; } last_letter = letter; letter_index[++num_letters] = letter; # Terminate list, start a new one print "

    ", toupper(letter), "

    \n
    " > buffer_tmp ; } # Generate a
    for the name if ($3 != last_file || $1 != last_name) { # Don't repeat the same entry link. print "
    ", $1, "(", $2, ")", "" > buffer_tmp; last_file = $3; last_name = $1; } print "
    ", substr($0, match($0, "/") + 1) > buffer_tmp; } # Finish off last list print "\n

    " > buffer_tmp; close(buffer_tmp); system("/bin/rm " sort_tmp); # Print out alphabetic quick index and other links for (i = 1; i <= num_letters; i++) { print "" toupper(letter_index[i]) "" > cache_tmp; } print "


    " > cache_tmp; print "Return to Main Contents" > cache_tmp; print "

    Other sections:" > cache_tmp; for (i=1; i<=num_sections; i++) { if (i != section) { # Dont print an entry for the section we are in print "" i ". " sec_name[i] " " > cache_tmp; } } print "


    " > cache_tmp; # Print out the accumulated contents entries while ((getline < buffer_tmp) > 0) print > cache_tmp; print "


    " > cache_tmp; for (i = 1; i <= num_letters; i++) { print "" toupper(letter_index[i]) "" > cache_tmp; } print "


    " > cache_tmp; print "

    Return to Main Contents" > cache_tmp; print "

    Other sections:" > cache_tmp; for (i=1; i<=num_sections; i++) { if (i != section) { # Dont print an entry for the section we are in print "" i ". " sec_name[i] " " > cache_tmp; } } print "" > cache_tmp; print "" > cache_tmp; system("/bin/mv " cache_tmp " " cache); system("/bin/rm " buffer_tmp); } system("/bin/cat " cache); exit; } man-1.6g/man2html/scripts/cgi-bin/man/mansec0000755000175000001440000001332510301736016020507 0ustar lucifredusers#!/usr/bin/awk -f # # Generate an index into a manual section by using find. # Michael Hamilton # Small changes - aeb, 980109 # BEGIN { OFS=""; if (ARGC != 3) { print "Content-type: text/html\n\n"; print ""; print "manwhatis - bad call"; print "\n"; print "manwhatis: wrong number of arguments"; print ""; exit; } cgipath = ARGV[1]; section = ARGV[2]; if (section !~ /^[1-8ln]$/ && section != "all") { print "Content-type: text/html\n\n"; print ""; print "Manual - Illegal section"; print ""; print "Illegal section number '" section "'." ; print "Must be one of 1,2,3,4,5,6,7,8,l,n or all"; print ""; exit; } "echo $PPID" | getline pid; if (cgipath ~ /lynxcgi/) { cache_suffix = "l"; } else { cache_suffix = "h"; } cache_dir = "/var/man2html"; cache_file = "manindex" cache_suffix "-" section ".html"; cache = cache_dir "/" cache_file; cache_tmp = cache "_" pid; buffer_tmp = cache "_items_" pid; # Find out the man path "man -w" | getline man_path man_path = man_path ":"; gsub(":", " ", man_path); # See if anything is out of date. # Check all man[1-8] dir dates vs cache date if (section == "all") { if (system("test -f " cache) == 0) { cmd = "find " man_path " -maxdepth 1 -name 'man[1-8]' -newer " cache; cmd | getline need_update; } else { need_update = 1; } } else { if (system("test -f " cache) == 0) { cmd = "find " man_path " -maxdepth 1 -name man" section " -newer " cache; cmd | getline need_update; } else { need_update = 1; } } if (need_update != "") { if (system("test -w " cache_dir "/.") != 0) { print "Content-type: text/html\n\n"; print ""; print "mansec - no cache"; print "\n"; print "Sorry - cannot create index."; print "No writable cache directory " cache_dir " exists."; print ""; exit; } sec_name[1] = "User Commands"; sec_name[2] = "System Calls"; sec_name[3] = "Library Functions"; sec_name[4] = "Special Files"; sec_name[5] = "File Formats"; sec_name[6] = "Games"; sec_name[7] = "Miscellany"; sec_name[8] = "Administration and Privileged Commands"; sec_name["all"] = "All available manual pages"; num_sections = 8; # Print heading print "Content-type: text/html\n\n" > cache_tmp; print "\n" > cache_tmp; print "Manual Pages - Names: " section ". " sec_name[section] ""> cache_tmp; print "\n" > cache_tmp; print "

    Manual Pages - Page Names

    " > cache_tmp; print "

    Section " section ": " sec_name[section] "

    " > cache_tmp; "hostname" | getline hostname; "date" | getline date; print hostname " (" date ")" > cache_tmp; if (section != "all") { sec_sub_dir = "/man" section; } else { sec_sub_dir = "/man*"; } gsub(" ", sec_sub_dir " ", man_path); print "

    Manual pages found under " man_path "." > cache_tmp; # Find any man[1-8]/filenames while ((("find " man_path " -follow -type f -printf '%f\n' | sort -f ") | getline manpage) > 0) { # Check for new letter of alphabet letter = tolower(substr(manpage,1,1)); if (letter != last_letter) { last_letter = letter; letter_index[++num_letters] = letter; # Start a new alphabetic heading print "

    ", toupper(letter), "

    " > buffer_tmp; # Print out alphabetic quick index and other links } # Split page.n into "page" and "n" and generate an entry sub(/[.]([zZ]|(gz))$/, "", manpage); match(manpage, /[.][^.]+$/); title = substr(manpage, 1, RSTART - 1); if (section != "all") { print "", title, "(", substr(manpage, RSTART + 1), ")" > buffer_tmp; } else { sec = substr(manpage, RSTART + 1) print "", title, "(", sec, ")" > buffer_tmp; } } close(buffer_tmp); print "

    " > cache_tmp; # Print out alphabetic quick index and other links for (i = 1; i <= num_letters; i++) { print "" toupper(letter_index[i]) "" > cache_tmp; } print "


    " > cache_tmp; print "Return to Main Contents" > cache_tmp; print "

    Other sections:" > cache_tmp; for (i=1; i<=num_sections; i++) { if (i != section) { # Dont print an entry for the section we are in print "" i ". " sec_name[i] " " > cache_tmp; } } print "


    " > cache_tmp; # Print out the accumulated index entries while ((getline < buffer_tmp) > 0) print > cache_tmp; print "


    " > cache_tmp; # Print out alphabetic quick index and other links for (i = 1; i <= num_letters; i++) { print "" toupper(letter_index[i]) "" > cache_tmp; } print "


    " > cache_tmp; print "

    Return to Main Contents" > cache_tmp; print "

    Other sections:" > cache_tmp; for (i=1; i<=num_sections; i++) { if (i != section) { # Dont print an entry for the section we are in print "" i ". " sec_name[i] " " > cache_tmp; } } print "\n" > cache_tmp; system("/bin/mv " cache_tmp " " cache); system("/bin/rm -f " buffer_tmp); } system("/bin/cat " cache); exit; } man-1.6g/man2html/scripts/cgi-bin/man/mansearch0000755000175000001440000001123710301736016021202 0ustar lucifredusers#!/bin/sh # # Interface to a glimpse search of the man pages. # Michael Hamilton # Small changes - aeb, 980109 # # Do we need lynxcgi URLs? For the moment our criterion is # 1) HTTP_USER_AGENT=Lynx* and 2) HTTP_HOST is unset. AGENT="${HTTP_USER_AGENT-unknown}" case "$AGENT" in Lynx*|lynx*) HH="${HTTP_HOST-nohh}" SED="s/%lynx //" ;; *) HH=nolynx SED="/%lynx/d" ;; esac SERVER="${SERVER_NAME-localhost}" case "$HH" in nohh) CG="lynxcgi:/home/httpd/cgi-bin/man" ;; *) CG="http://$SERVER/cgi-bin/man" ;; esac QUOTE="'" export CG QUOTE SED exec awk ' function removeopts(string) { gsub(/^[ \t]/, "", string); # Remove leading spaces gsub(/[ \t]$/, "", string); # Remove trailing spaces gsub(/[ \t\\];/, ";", string); # Remove spaces before ; gsub(/[ \t];/, ",", string); # Remove spaces before , while (match(string, /^-[FLBwk1-8]/)) { if (match(string, /^-[FL]( |.)[^ \t]+[ \t]+/)) { # Option with arg options = options " " substr(string, RSTART, RLENGTH); string = substr(string, RSTART + RLENGTH); } else if (match(string, /^-[Bwk1-8][ \t]+/)) { # Option without arg options = options " " substr(string, RSTART, RLENGTH); string = substr(string, RSTART + RLENGTH); } else if (match(string, /^-[^ \t]/)) { # Remove it string = substr(string, RSTART + RLENGTH); } } return string; } BEGIN { searchdocument = "/home/httpd/cgi-aux/man/mansearch.aux"; quote = ENVIRON["QUOTE"]; cgipath = ENVIRON["CG"]; sedcmd = ENVIRON["SED"]; truncate_at = 11; # Single page display match limit. glimpse_cmd = "glimpse -z -H /var/man2html -y -W -i " for (i = 1; i < ARGC; i++) { string = string " " ARGV[i]; } # Have to be careful to single quote this # string later. gsub(/[^a-zA-Z0-9-_+ \t\/@%:;,$*|]/, " ", string); string = removeopts(string); gsub(/[^a-zA-Z0-9-_+ \t\/@%:,]/, " ", options); if (!string) { if (system("test -r " searchdocument ) != 0) { print "Content-type: text/html\n\n"; print ""; print "mansearch - file not found"; print "\n"; print "Sorry - cannot read " searchdocument "."; print ""; exit; } system("sed " quote "s#%cg#" cgipath "#g;" sedcmd quote " " searchdocument ); exit; } print "Content-type: text/html"; print ""; print ""; print ""; print "Manual Pages - Search Results: " string ""; print ""; print ""; print "

    Manual Pages - Search Results

    "; print "

    Target text: " options " " string "

    "; print ""; print "Perform another search"; print "
    "; print ""; print "Return to Main Contents"; print ""; print "
    "; print "
    "; # Unless you like being hacked, the single # forward quotes are most important. cmd = glimpse_cmd " " options " " quote string quote " 2>/dev/null" ; while ((cmd | getline matchline) > 0) { if (split(matchline, part, ": ") == 1) { continue; } else { fullname = part[1]; } if (fullname == "glimpse") { print "
    "fullname":"; } else if (fullname != last_fullname) { mcount++; tcount = 0; last_fullname = fullname ; last_text = ""; if (match(fullname, ".*/")) { dirname = substr(fullname, 1, RLENGTH); filename = substr(fullname, RLENGTH + 1); if (dirname != last_dirname) { last_dirname = dirname; print "
    "; print "

    Location: " dirname "

    "; print "
    "; } } else { filename = fullname; } if (match(filename, /\.[^.]+$/)) { ref = substr(filename, 1, RSTART - 1) "+" substr(filename, RSTART + 1); } else { ref = filename; } print "
    "; textname = filename; sub(/\.(gz)|Z|z$/, "", textname); sub(/\./, "(", textname); textname = textname ")"; print textname; print ""; } text = substr(matchline, length(fullname) + 2); tcount++; if (tcount < truncate_at) { sub(/^ *.[^ ]+ /, "", text); sub(/ +$/, "", text); gsub(/\\f./, "", text); gsub(/\\&/, "", text); gsub(/\\/, "", text); print "
    " text; } else if (tcount == truncate_at) { print "
    ...additional matches not shown."; } } print "
    "; if (mcount == 0) { print "No matches found."; } else if (mcount == 1) { print "
    \n

    1 match found." } else { print "


    \n

    " mcount " matches found." } print ""; print ""; exit; }' "$@" man-1.6g/man2html/scripts/cgi-bin/man/mansearchhelp0000755000175000001440000000110610301736016022045 0ustar lucifredusers#!/bin/sh MAN2HTML=/usr/bin/man2html MANSH=/home/httpd/cgi-aux/man/mansearchhelp.aux # Do we need lynxcgi URLs? For the moment our criterion is # 1) HTTP_USER_AGENT=Lynx* and 2) HTTP_HOST is unset. AGENT="${HTTP_USER_AGENT-unknown}" case "$AGENT" in Lynx*|lynx*) HH="${HTTP_HOST-nohh}" ;; *) HH=nolynx ;; esac SERVER="${SERVER_NAME-localhost}" case "$HH" in nohh) CG="lynxcgi:/home/httpd/cgi-bin/man" ;; *) CG="http://$SERVER/cgi-bin/man" ;; esac if [ -r $MANSH ]; then sed s#%cg#$CG#g $MANSH else $MAN2HTML -E "man2html: cannot open $MANSH" fi exit 0 man-1.6g/man2html/scripts/cgi-aux/0000755000175000001440000000000010301736016016561 5ustar lucifredusersman-1.6g/man2html/scripts/cgi-aux/man/0000755000175000001440000000000010741005731017335 5ustar lucifredusersman-1.6g/man2html/scripts/cgi-aux/man/man.aux0000644000175000001440000000444510741005731020636 0ustar lucifredusersContent-type: text/html Manual Pages - Main Contents

    Manual Pages - Main Contents


    Name and Section lookup

    %lynx Start a query by typing an s. You can enter a program name, possibly preceded by the section, the directories to search (with -M) or a full name. For example:
    • find
    • 1 find
    • -M /usr/man:/usr/X11R6/man:/usr/lib/perl5/man find
    • /local/gcc/man/man1/gperf.1

    Index of pages by name and description

    Sections: 1. User Commands; 2. System Calls; 3. Library Functions; 4. Special Files; 5. File Formats; 6. Games; 7. Miscellany; 8. Administration and Privileged Commands; l. Postgresql Commands; n. Tcl Commands.


    Index of pages by name only

    1. User Commands; 2. System Calls; 3. Library Functions; 4. Special Files; 5. File Formats; 6. Games; 7. Miscellany; 8. Administration and Privileged Commands; l. Postgresql Commands; n. Tcl Commands; All Sections.


    Manual Pages full text search

    Search the full text of the Manual Pages.


    The original man2html program and scripts are due to Richard Verhoeven and Michael Hamilton. This version is from man-1.6g maintained by Federico Lucifredi. man-1.6g/man2html/scripts/cgi-aux/man/mansearch.aux0000644000175000001440000000256010301736016022017 0ustar lucifredusersContent-type: text/html Manual Pages - Text Search

    Manual Pages - Text Search

    Return to Main Contents

    %lynx Start a query by typing an s. Examples:

    • pwd;directory - Find both in the same man page.
    • pwd,directory - Find either.
    • pwd directory - Find the exact phrase.
    • -F 1 pwd - Look in section 1 only.
    • -B glipmse - Find the best match (allow for misspelling).
    • -L 0:10 pwd - Only show the first 10 man pages matched.

    The index uses the Glimpse (glimpse(1)) text indexing system. Many of the glimpse options, regular expressions, and wildcards are valid: see the help page for a summary.


    Glimpse was developed by Udi Manber and Burra Gopal of the University of Arizona, and Sun Wu of the National Chung-Cheng University, Taiwan. You may contact the authors at glimpse@cs.arizona.edu

    The Manual Page text search interface was created for Linux by Michael Hamilton. man-1.6g/man2html/scripts/cgi-aux/man/mansearchhelp.aux0000644000175000001440000002441210301736016022670 0ustar lucifredusersContent-type: text/html Manual Pages - Search Help

    Manual Pages - Search Help

    Perform another search
    Return to Main Contents


    The full text index uses the Glimpse text indexing system. The glimpse(1) manual page documents glimpse in full. This summary documents those features of glimpse that are valid when searching through the manual pages.


    Search Options

    The following search options must be at the start of the search string.
    - #
    # is an integer between 1 and 8 specifying the maximum number of errors permitted in finding the approximate matches (the default is zero). Generally, each insertion, deletion, or substitution counts as one error. Since the index stores only lower case characters, errors of substituting upper case with lower case may be missed.
    -B
    Best match mode. (Warning: -B sometimes misses matches. It is safer to specify the number of errors explicitly.) When -B is specified and no exact matches are found, glimpse will continue to search until the closest matches (i.e., the ones with minimum number of errors) are found. In general, -B may be slower than -#, but not by very much. Since the index stores only lower case characters, errors of substituting upper case with lower case may be missed.
    -L x | x:y | x:y:z
    A non-zero value of x limits the number of matches that will be shown. A non-zero value of y limits the number of man pages that will be shown. A non-zero valye of z will only show pages that have less that z matches. For example, -L 0:10 will output all matches for the first 10 files that contain a match.
    -F pattern
    The -F option provides a pattern that restricts the search results to those filenames that match the pattern. or example, -F 8 effectively restricts matches to section 8.
    -w
    Search for the pattern as a word - i.e., surrounded by non-alphanumeric characters. For example, -w -1 car will match cars, but not characters and not car10. The non-alphanumeric must surround the match; they cannot be counted as errors. This option does not work with regular expressions.
    -W
    The default for Boolean AND queries is that they cover one record (the default for a record is one line) at a time. For example, glimpse 'good;bad' will output all lines containing both 'good' and 'bad'. The -W option changes the scope of Booleans to be the whole file. Within a file glimpse will output all matches to any of the patterns. So, glimpse -W 'good;bad' will output all lines containing 'good' or 'bad', but only in files that contain both patterns.
    -k
    No symbol in the pattern is treated as a meta character. For example, -k a(b|c)*d will find the occurrences of a(b|c)*d whereas a(b|c)*d will find substrings that match the regular expression 'a(b|c)*d'. (The only exception is ^ at the beginning of the pattern and $ at the end of the pattern, which are still interpreted in the usual way. Use \^ or \$ if you need them verbatim.)


    Patterns

    Glimpse supports a large variety of patterns, including simple strings, strings with classes of characters, sets of strings, wild cards, and regular expressions (see LIMITATIONS).
    Strings
    Strings are any sequence of characters, including the special symbols `^' for beginning of line and `$' for end of line. The following special characters ( `$', `^', `*', `[', `^', `|', `(', `)', `!', and `\' ) as well as the following meta characters special to glimpse (and agrep): `;', `,', `#', `<', `>', `-', and `.', should be preceded by `\' if they are to be matched as regular characters. For example, \^abc\\ corresponds to the string ^abc\, whereas ^abc corresponds to the string abc at the beginning of a line.
    Classes of characters
    a list of characters inside [] (in order) corresponds to any character from the list. For example, [a-ho-z] is any character between a and h or between o and z. The symbol `^' inside [] complements the list. For example, [^i-n] denote any character in the character set except character 'i' to 'n'. The symbol `^' thus has two meanings, but this is consistent with egrep. The symbol `.' (don't care) stands for any symbol (except for the newline symbol).
    Boolean operations
    Glimpse supports an `AND' operation denoted by the symbol `;' an `OR' operation denoted by the symbol `,', or any combination. For example, glimpse 'pizza;cheeseburger' will output all lines containing both patterns. glimpse -F 'gnu;\.c$' 'define;DEFAULT' will output all lines containing both 'define' and 'DEFAULT' (anywhere in the line, not necessarily in order) in files whose name contains 'gnu' and ends with .c. glimpse '{political,computer};science' will match 'political science' or 'science of computers'.
    Wild cards
    The symbol '#' is used to denote a sequence of any number (including 0) of arbitrary characters (see LIMITATIONS). The symbol # is equivalent to .* in egrep. In fact, .* will work too, because it is a valid regular expression (see below), but unless this is part of an actual regular expression, # will work faster. (Currently glimpse is experiencing some problems with #.)
    Combination of exact and approximate matching
    Any pattern inside angle brackets <> must match the text exactly even if the match is with errors. For example, <mathemat>ics matches mathematical with one error (replacing the last s with an a), but mathe<matics> does not match mathematical no matter how many errors are allowed. (This option is buggy at the moment.)
    Regular expressions
    Since the index is word based, a regular expression must match words that appear in the index for glimpse to find it. Glimpse first strips the regular expression from all non-alphabetic characters, and searches the index for all remaining words. It then applies the regular expression matching algorithm to the files found in the index. For example, glimpse 'abc.*xyz' will search the index for all files that contain both 'abc' and 'xyz', and then search directly for 'abc.*xyz' in those files. (If you use glimpse -w 'abc.*xyz', then 'abcxyz' will not be found, because glimpse will think that abc and xyz need to be matches to whole words.) The syntax of regular expressions in glimpse is in general the same as that for agrep. The union operation `|', Kleene closure `*', and parentheses () are all supported. Currently '+' is not supported. Regular expressions are currently limited to approximately 30 characters (generally excluding meta characters). Some options (-d, -w, -t, -x, -D, -I, -S) do not currently work with regular expressions. The maximal number of errors for regular expressions that use '*' or '|' is 4. (See LIMITATIONS.)

    Limitations

    The index of glimpse is word based. A pattern that contains more than one word cannot be found in the index. The way glimpse overcomes this weakness is by splitting any multi-word pattern into its set of words and looking for all of them in the index. For example, glimpse 'linear programming' will first consult the index to find all files containing both linear and programming, and then apply agrep to find the combined pattern. This is usually an effective solution, but it can be slow for cases where both words are very common, but their combination is not.

    As was mentioned in the section on PATTERNS above, some characters serve as meta characters for glimpse and need to be preceded by '\' to search for them. The most common examples are the characters '.' (which stands for a wild card), and '*' (the Kleene closure). So, "glimpse ab.de" will match abcde, but "glimpse ab\.de" will not, and "glimpse ab*de" will not match ab*de, but "glimpse ab\*de" will. The meta character - is translated automatically to a hyphen unless it appears between [] (in which case it denotes a range of characters).

    The index of glimpse stores all patterns in lower case. When glimpse searches the index it first converts all patterns to lower case, finds the appropriate files, and then searches the actual files using the original patterns. So, for example, glimpse ABCXYZ will first find all files containing abcxyz in any combination of lower and upper cases, and then searches these files directly, so only the right cases will be found. One problem with this approach is discovering misspellings that are caused by wrong cases. For example, glimpse -B abcXYZ will first search the index for the best match to abcxyz (because the pattern is converted to lower case); it will find that there are matches with no errors, and will go to those files to search them directly, this time with the original upper cases. If the closest match is, say AbcXYZ, glimpse may miss it, because it doesn't expect an error. Another problem is speed. If you search for "ATT", it will look at the index for "att". Unless you use -w to match the whole word, glimpse may have to search all files containing, for example, "Seattle" which has "att" in it.

    There is no size limit for simple patterns and simple patterns within Boolean expressions. More complicated patterns, such as regular expressions, are currently limited to approximately 30 characters. Lines are limited to 1024 characters. Records are limited to 48K, and may be truncated if they are larger than that. The limit of record length can be changed by modifying the parameter Max_record in agrep.h.

    Glimpseindex does not index words of size > 64.  


    man-1.6g/man2html/hman.10000644000175000001440000000315310736257310014553 0ustar lucifredusers.\" Copyright (c) 1998 Andries Brouwer .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .TH hman 1 "19 January 1998" .LO 1 .SH NAME hman \- browse the on-line manual pages .SH SYNOPSIS .B hman [ -P \fIbrowser\fP ] [ -H \fIhost\fP ] [ \fIsection\fP ] \fIname\fP .br .B hman [ -P \fIbrowser\fP ] [ -H \fIhost\fP ] [ \fIsection\fP ] [ index ] .SH DESCRIPTION The .B hman script is an interface to man2html(1) that allows you to enter man page requests at the command line and view the output in your favourite browser. The behaviour reminds of that of .BR man (1) so that many people will be able to alias .B hman to .BR man . If the browser used is netscape, and an incarnation of netscape is running already, .B hman will pass the request to the existing browser. .SH OPTIONS .TP .B \-\^P " browser" Specify which browser (like lynx, xmosaic, arena, chimera, netscape, amaya, ...) to use. This option overrides the .B MANHTMLPAGER environment variable. The default is the non-httpd version of .BR lynx . .TP .B \-\^H " host" Specify from what host to get the man pages. This option overrides the .B MANHTMLHOST environment variable. The default is .BR localhost . .SH ENVIRONMENT .TP MANHTMLPAGER The default browser to use is selected using this environment variable. .TP MANHTMLHOST The default host to use is selected using this environment variable. .SH "SEE ALSO" .BR man (1), .BR man2html (1), .BR arena (1), .BR lynx (1), .BR netscape (1), .BR xmosaic (1), .BR glimpse (1) http://www.mcom.com/newsref/std/x-remote.html man-1.6g/man2html/glimpse_filters0000644000175000001440000000004010301736016016642 0ustar lucifredusers*.gz gzip -d -c *.Z gzip -d -c man-1.6g/man2html/locales/0000755000175000001440000000000010663134460015165 5ustar lucifredusersman-1.6g/man2html/locales/it/0000755000175000001440000000000010464172025015577 5ustar lucifredusersman-1.6g/man2html/locales/it/man2html.10000644000175000001440000001145210464170005017402 0ustar lucifredusers'\" t .\" Man page for man2html .\" aeb, 980101 .\" .\" Traduzione da man-1.6d di Giulio Daprel .\" Revisione a cura di Vieri Giugni .\" giugno 2006 .\" .TH man2html 1 "1 gennaio 1998" .LO 1 .SH NOME man2html \- formatta una pagina di manuale in html .SH SINTASSI man2html [options] [file] .SH DESCRIZIONE .B man2html converte una pagina di manuale che si trova in .I file (o standard input (stdin); nel caso non venga fornito alcun file come argomento, o sia indicato "-", come argomento) dallo stile man nroff in html, e stampa il risultato in standard output (stdout). Supporta tbl, ma non conosce eqn. Lo stato di uscita 0. Se qualcosa va male viene stampata su stdout una pagina di errore. Pu essere usato come utilit stand-alone, ma pensato principalmente come ausilio per permettere agli utenti di navigare le proprie man page usando un browser html come .BR lynx (1), .BR xmosaic (1) o .BR netscape (1). ./" (See ./" .BR man (1) ./" for info on how to browse man pages via ./" .BR man2html . ./" Usually it would suffice to put "MANHTMLPAGER=/usr/bin/lynx" ./" in the environment.) La parte principale di .B man2html il motore da troff a html scritto da Richard Verhoeven (rcb5@win.tue.nl). Esso aggiunge dei collegamenti ipertestuali per i seguenti costrutti: .LP .TS l l. foo(3x) "http://localhost/cgi-bin/man/man2html?3x+foo" method://string "method://string" www.host.name "http://www.host.name" ftp.host.name "ftp://ftp.host.name" name@host "mailto:name@host" "file:/usr/include/string.h" .TE .LP (Il primo di questi pu essere controllato dalle opzioni - vedere sotto). Non viene fatto nessun controllo - i collegamenti generati non sono necessari o indispensabili. Inoltre viene generato un indice con collegamenti interni alle varie sezioni, in modo che sia pi facile effettuare ricerche personalizzate in pagine di manuale grandi come .BR bash (1). .SH OPZIONI Quando si legge da stdin non sempre chiaro come effettuare l'espansione .so . L'opzione \-D permette a uno script di definire la directory di lavoro. .LP .TP .B \-\^D pathname Estrae le ultime due parti dal percorso, ed esegue \fIchdir\fP(\fIdir\fP) prima di iniziare la conversione. .LP L'opzione \-E permette una facile generazione di messaggi di errore da uno script cgi. .LP .TP .B \-\^E string Genera una pagina di errore contenente il messaggio di errore che si verificato. .LP La forma generale di un collegamento ipertestuale creato per una man page di riferimento .IP .LP con un valore predefinito come mostrato sopra. Le parti di questo collegamento ipertestuale sono impostate usando le varie opzioni. .TP .B \-\^h Set method:cgipath to http://localhost. Questo il valore predefinito. .TP .BI \-\^H " host[.domain][:port]" Set method:cgipath to .RI http:// host.domain:port . .TP .B \-\^l Set method:cgipath to .RI lynxcgi: /home/httpd . .TP .BI \-\^L " dir" Set method:cgipath to .RI lynxcgi: dir . .TP .BI \-\^M " man2htmlpath" Imposta il man2htmlpath da usare. Il valore predefinito .IR /cgi-bin/man/man2html . .TP .B \-\^p Imposta '/' come separatore. .TP .B \-\^q Imposta '?' come separatore. Questo il valore predefinito. .TP .B \-\^r Usa percorsi html relativi, invece dei percorsi cgi-bin. .LP Su una macchina, senza eseguire .BR httpd , si pu usare .B lynx per navigare le man page, usando il metodo lynxcgi. Quando attivo qualche demone http, lynx, o qualunque altro browser, pu essere usato per navigare le man page, usando il metodo http. L'opzione \-l (per `lynxcgi') seleziona il comportamento precedente. Con esso, il valore predefinito di cgipath \fI/home/httpd\fP. In generale, uno script cgi pu essere chiamato da .IP /? .LP e le variabili d'ambiente PATH_INFO e QUERY_STRING verranno impostate rispettivamente in e . Poich lynxcgi non gestisce la parte PATH_INFO, vengono generati collegamenti ipertestualil con `?' come separatore predefinito. L'opzione \-p (per `path') seleziona '/' come separatore, mentre l'opzione \-q (per `query') seleziona '?' come separatore. L'opzione \-H \fIhost\fP specificher l'host da usare (invece di \fIlocalhost\fP). Uno script cgi pu usare .IP man2html -H $SERVER_NAME .LP se impostata la variabile SERVER_NAME . Questo permetter alla propria macchina di comportarsi come un server ed esportare man page. .SH BUG Ci sono molti fattori difficilmente prevedibili. L'output potrebbe non essere sempre perfetto. Il metodo lynxcgi non funzioner se lynx stato compilato senza selezionare il supporto per quest'ultimo. Ci potrebbero essere problemi di sicurezza. .SH "VEDERE ANCHE" .BR lynx (1), .BR man (1) man-1.6g/man2html/locales/it/hman.10000644000175000001440000000353710464172177016624 0ustar lucifredusers.\" Copyright (c) 1998 Andries Brouwer .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" Traduzione da man-1.6d di Giulio Daprel .\" Revisione a cura di Vieri Giugni .\" agosto 2006 .\" .TH hman 1 "19 Gennaio 1998" .LO 1 .SH NOME hman \- naviga le pagine di manuale on-line .SH SINTASSI .B hman [ -P \fIbrowser\fP ] [ -H \fIhost\fP ] [ \fIsection\fP ] \fIname\fP .br .B hman [ -P \fIbrowser\fP ] [ -H \fIhost\fP ] [ \fIsection\fP ] [ index ] .SH DESCRIZIONE Lo script .B hman un'interfaccia per man2html(1), che permette di inserire richieste di man page dalla linea di comando e vedere l'output nel browser preferito. Il comportamento ricorda quello di .BR man (1) perci molte persone potranno utilizzare un alias da .B hman a .BR man . Se il browser usato netscape, e una copia di netscape gi in esecuzione, .B hman passer la richiesta a quest'ultima .SH OPZIONI .TP .B \-\^P " browser" Specifica quale browser (lynx, xmosaic, arena, chimera, netscape, amaya, ...) usare. Questa opzione sovrascrive la variabile d'ambiente .B MANHTMLPAGER . Il valore predefinito la versione non-httpd di .BR lynx . .TP .B \-\^H " host" Specifica da quale host prendere le man page. Questa opzione sovrascrive la variabile d'ambiente .B MANHTMLHOST . Il valore predefinito .BR localhost . .SH AMBIENTE .TP MANHTMLPAGER Il browser predefinito in uso selezionato da questa variabile d'ambiente. .TP MANHTMLHOST L'host predefinito in uso selezionato da questa variabile d'ambiente. .SH "VEDERE ANCHE" .BR man (1), .BR man2html (1), .BR arena (1), .BR lynx (1), .BR netscape (1), .BR xmosaic (1), .BR glimpse (1) http://www.mcom.com/newsref/std/x-remote.html man-1.6g/man2html/locales/fr/0000755000175000001440000000000010464171715015577 5ustar lucifredusersman-1.6g/man2html/locales/fr/man2html.10000644000175000001440000001242110366003712017373 0ustar lucifredusers'\" t .\" Man page for man2html .\" aeb, 980101 .\" .TH man2html 1 "1er janvier 1998" "Manuel Linux" "Commandes utilisateur" .LO 1 .SH NOM man2html \- formate une page de manuel en html .SH SYNOPSIS man2html [options] [fichier] .SH DESCRIPTION .B man2html convertit une page de manuel telle que trouve dans .I fichier (ou l'entre standard stdin si aucun argument fichier n'est donn ou si l'argument \ -\ est donn) partir du format nroff (celui des pages de manuels) vers un format html et affiche le rsultat sur la sortie standard (stdout). .B man2html supporte .BR tbl (1) mais ne connat rien propos de .BR eqn (1). Le code de sortie est 0. Si quelque chose va mal, une page d'erreur est affiche sur la sortie standard stdout. Cette commande peut tre utilise seule mais a t principalement conue pour tre un auxiliaire afin que les utilisateurs puissent naviguer dans les pages de manuel avec un navigateur html comme .BR lynx (1), .BR xmosaic (1) ou .BR netscape (1). ./" (See ./" .BR man (1) ./" for info on how to browse man pages via ./" .BR man2html . ./" Usually it would suffice to put "MANHTMLPAGER=/usr/bin/lynx" ./" in the environment.) La plus grande partie de .B man2html est l'engin \ troff-vers-html\ crit par Richard Verhoeven (rcb5@win.tue.nl). Il ajoute des hyperliens aux constructions suivantes\ : .LP .TS l l. foo(3x) "http://localhost/cgi-bin/man/man2html?3x+foo" method://string "method://string" www.host.name "http://www.host.name" ftp.host.name "ftp://ftp.host.name" name@host "mailto:name@host" "file:/usr/include/string.h" .TE .LP (La premire de celles\-ci peut tre ajuste par des options - voir plus loin.) Aucune consultation n'est effectue - les liens gnrs n'ont pas besoin d'exister. Un index avec des hyperliens internes vers les diverses sections est galement cr rendant plus facile la navigation dans les grandes pages comme .BR bash (1). .SH OPTIONS Lorsqu'on lit partir de stdin, il n'est pas toujours vident de savoir comment se fait l'expansion .so. L'option \-D permet un script de dfinir le rpertoire de travail. .LP .TP .B \-\^D chemin Retire les deux derniers lments du chemin et effectue un changement de rpertoire courant \fIchdir\fP(\fIdir\fP) avant de dbuter la conversion. .LP L'option \-E option facilite la production de messages d'erreurs partir de scripts cgi. .LP .TP .B \-\^E chane Produire en sortie une page d'erreur contenant le message d'erreur donn. .LP La forme gnrale d'un hyperlien gnr pour rfrencer une page de manuel est .IP .LP qui est d'ailleurs la forme par dfaut. Les lments de cet hyperlien sont positionns en utilisant diverses options. .TP .B \-\^h Positionner method:cgipath http://localhost. C'est le comportement par dfaut. .TP .BI \-\^H " hte[.domaine][:port]" Positionner method:cgipath .RI http:// hte.domaine:port . .TP .B \-\^l Positionner method:cgipath .RI lynxcgi: /home/httpd . .TP .BI \-\^L " dir" Positionner method:cgipath .RI lynxcgi: dir . .TP .BI \-\^M " man2htmlpath" Positionner le chemin vers man2html utiliser. La valeur par dfaut est .IR /cgi-bin/man/man2html . .TP .B \-\^p Positionner le sparateur \ /\ . .TP .B \-\^q Positionner le sparateur \ ?\ . C'est la valeur par dfaut. .TP .B \-\^r Utiliser des chemins html relatifs plutt que les chemins cgi-bin. .LP Sur une machine sur laquelle .BR httpd ne tourne pas, vous pouvez utiliser .B lynx pour naviguer dans les pages de manuel en utilisant la mthode lynxcgi. Lorsqu'un dmon http est en service, vous pouvez utiliser lynx ou n'importe quel autre navigateur pour parcourir les pages de manuel en utilisant la mthode http. L'option \-l (pour \ lynxcgi\ ) slectionne ce fonctionnement. Avec elle, le chemin cgi par dfaut est \fI/home/httpd\fP. En gnral, un script cgi peut tre appel de la faon suivante .IP /? .LP et les variables d'environnement PATH_INFO et QUERY_STRING seront positionnes respectivement et . Puisque lynxcgi ne gre pas l'lment PATH_INFO, nous allons gnrer des hyperliens avec \ ?\ comme sparateur par dfaut. L'option \-p (pour \ path\ ) slectionne \ /\ comme sparateur, alors que l'option \-q (for \ query\ ) slectionne \ ?\ . L'option \-H \fIhost\fP spcifiera l'hte utiliser ( la place \fIlocalhost\fP). Un script cgi pourra utiliser .IP man2html -H $SERVER_NAME .LP si la variable SERVER_NAME est positionne. Cela permettra votre machine de fonctionner en tant que serveur et d'exporter les pages manuel. .SH BOGUES Il y a beaucoup d'heuristiques. La sortie produite ne sera pas toujours parfaite. La mthode lynxcgi ne fonctionnera pas si lynx a t compil sans le support de celle-ci. Il peut y avoir des problmes de scurit. .SH "VOIR AUSSI" .BR lynx (1), .BR man (1) .SH TRADUCTION .PP Ce document est une traduction ralise par Alain Portal le 1er juin 2005 et mise jour le 7 novembre 2005. .PP L'quipe de traduction a fait le maximum pour raliser une adaptation franaise de qualit. La version anglaise la plus jour de ce document est toujours consultable via la commande\ : \ \fBLANG=en\ man\ 1\ man2html\fR\ . N'hsitez pas signaler l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. man-1.6g/man2html/locales/en/0000755000175000001440000000000010663134511015564 5ustar lucifredusersman-1.6g/man2html/locales/en/man2html.10000644000175000001440000001026210464505126017374 0ustar lucifredusers'\" t .\" Man page for man2html .\" aeb, 980101 .\" .TH man2html 1 "1 January 1998" .LO 1 .SH NAME man2html \- format a manual page in html .SH SYNOPSIS man2html [options] [file] .SH DESCRIPTION .B man2html converts a manual page as found in .I file (or stdin, in case no file argument, or the argument "-", is given) from man-style nroff into html, and prints the result on stdout. It does support tbl but does not know about eqn. The exit status is 0. If something goes wrong, an error page is printed on stdout. This can be used as a stand-alone utility, but is mainly intended as an auxiliary, to enable users to browse their man pages using a html browser like .BR lynx (1), .BR xmosaic (1) or .BR netscape (1). ./" (See ./" .BR man (1) ./" for info on how to browse man pages via ./" .BR man2html . ./" Usually it would suffice to put "MANHTMLPAGER=/usr/bin/lynx" ./" in the environment.) The main part of .B man2html is the troff-to-html engine written by Richard Verhoeven (rcb5@win.tue.nl). It adds hyperlinks for the following constructs: .LP .TS l l. foo(3x) "http://localhost/cgi-bin/man/man2html?3x+foo" method://string "method://string" www.host.name "http://www.host.name" ftp.host.name "ftp://ftp.host.name" name@host "mailto:name@host" "file:/usr/include/string.h" .TE .LP (The first of these can be tuned by options - see below.) No lookup is done - the links generated need not exist. Also an index with internal hyperlinks to the various sections is generated, so that it is easier to find one's way in large man pages like .BR bash (1). .SH OPTIONS When reading from stdin, it is not always clear how to do .so expansion. The \-D option allows a script to define the working directory. .LP .TP .B \-\^D pathname Strip the last two parts from the pathname, and do a \fIchdir\fP(\fIdir\fP) before starting the conversion. .LP The \-E option allows the easy generation of error messages from a cgi script. .LP .TP .B \-\^E string Output an error page containing the given error message. .LP The general form of a hyperlink generated for a man page reference is .IP .LP with a default as shown above. The parts of this hyperlink are set using the various options. .TP .B \-\^h Set method:cgipath to http://localhost. This is the default. .TP .BI \-\^H " host[.domain][:port]" Set method:cgipath to .RI http:// host.domain:port . .TP .B \-\^l Set method:cgipath to .RI lynxcgi: /home/httpd . .TP .BI \-\^L " dir" Set method:cgipath to .RI lynxcgi: dir . .TP .BI \-\^M " man2htmlpath" Set the man2htmlpath to use. The default is .IR /cgi-bin/man/man2html . .TP .B \-\^p Set separator to '/'. .TP .B \-\^q Set separator to '?'. This is the default. .TP .B \-\^r Use relative html paths, instead of cgi-bin paths. .LP On a machine without running .BR httpd , one can use .B lynx to browse the man pages, using the lynxcgi method. When some http daemon is running, lynx, or any other browser, can be used to browse the man pages, using the http method. The option \-l (for `lynxcgi') selects the former behaviour. With it, the default cgipath is \fI/home/httpd\fP. In general, a cgi script can be called by .IP /? .LP and the environment variables PATH_INFO and QUERY_STRING will be set to and , respectively. Since lynxcgi does not handle the PATH_INFO part, we generate hyperlinks with `?' as a separator by default. The option \-p (for `path') selects '/' as a separator, while the option \-q (for `query') selects '?' as a separator. The option \-H \fIhost\fP will specify the host to use (instead of \fIlocalhost\fP). A cgi script could use .IP man2html -H $SERVER_NAME .LP if the variable SERVER_NAME is set. This would allow your machine to act as a server and export man pages. .SH BUGS There are many heuristics. The output will not always be perfect. The lynxcgi method will not work if lynx was compiled without selecting support for it. There may be problems with security. .SH AUTHOR Richard Verhoeven was the original author of .BR "man2html" . Michael Hamilton and Andries Brouwer subsequently improved on it. Federico Lucifredi is the current maintainer. .SH "SEE ALSO" .BR lynx (1), .BR man (1) man-1.6g/man2html/locales/en/hman.10000644000175000001440000000315310301736016016570 0ustar lucifredusers.\" Copyright (c) 1998 Andries Brouwer .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .TH hman 1 "19 January 1998" .LO 1 .SH NAME hman \- browse the on-line manual pages .SH SYNOPSIS .B hman [ -P \fIbrowser\fP ] [ -H \fIhost\fP ] [ \fIsection\fP ] \fIname\fP .br .B hman [ -P \fIbrowser\fP ] [ -H \fIhost\fP ] [ \fIsection\fP ] [ index ] .SH DESCRIPTION The .B hman script is an interface to man2html(1) that allows you to enter man page requests at the command line and view the output in your favourite browser. The behaviour reminds of that of .BR man (1) so that many people will be able to alias .B hman to .BR man . If the browser used is netscape, and an incarnation of netscape is running already, .B hman will pass the request to the existing browser. .SH OPTIONS .TP .B \-\^P " browser" Specify which browser (like lynx, xmosaic, arena, chimera, netscape, amaya, ...) to use. This option overrides the .B MANHTMLPAGER environment variable. The default is the non-httpd version of .BR lynx . .TP .B \-\^H " host" Specify from what host to get the man pages. This option overrides the .B MANHTMLHOST environment variable. The default is .BR localhost . .SH ENVIRONMENT .TP MANHTMLPAGER The default browser to use is selected using this environment variable. .TP MANHTMLHOST The default host to use is selected using this environment variable. .SH "SEE ALSO" .BR man (1), .BR man2html (1), .BR arena (1), .BR lynx (1), .BR netscape (1), .BR xmosaic (1), .BR glimpse (1) http://www.mcom.com/newsref/std/x-remote.html man-1.6g/man2html/man2html.10000644000175000001440000001026210736257310015351 0ustar lucifredusers'\" t .\" Man page for man2html .\" aeb, 980101 .\" .TH man2html 1 "1 January 1998" .LO 1 .SH NAME man2html \- format a manual page in html .SH SYNOPSIS man2html [options] [file] .SH DESCRIPTION .B man2html converts a manual page as found in .I file (or stdin, in case no file argument, or the argument "-", is given) from man-style nroff into html, and prints the result on stdout. It does support tbl but does not know about eqn. The exit status is 0. If something goes wrong, an error page is printed on stdout. This can be used as a stand-alone utility, but is mainly intended as an auxiliary, to enable users to browse their man pages using a html browser like .BR lynx (1), .BR xmosaic (1) or .BR netscape (1). ./" (See ./" .BR man (1) ./" for info on how to browse man pages via ./" .BR man2html . ./" Usually it would suffice to put "MANHTMLPAGER=/usr/bin/lynx" ./" in the environment.) The main part of .B man2html is the troff-to-html engine written by Richard Verhoeven (rcb5@win.tue.nl). It adds hyperlinks for the following constructs: .LP .TS l l. foo(3x) "http://localhost/cgi-bin/man/man2html?3x+foo" method://string "method://string" www.host.name "http://www.host.name" ftp.host.name "ftp://ftp.host.name" name@host "mailto:name@host" "file:/usr/include/string.h" .TE .LP (The first of these can be tuned by options - see below.) No lookup is done - the links generated need not exist. Also an index with internal hyperlinks to the various sections is generated, so that it is easier to find one's way in large man pages like .BR bash (1). .SH OPTIONS When reading from stdin, it is not always clear how to do .so expansion. The \-D option allows a script to define the working directory. .LP .TP .B \-\^D pathname Strip the last two parts from the pathname, and do a \fIchdir\fP(\fIdir\fP) before starting the conversion. .LP The \-E option allows the easy generation of error messages from a cgi script. .LP .TP .B \-\^E string Output an error page containing the given error message. .LP The general form of a hyperlink generated for a man page reference is .IP .LP with a default as shown above. The parts of this hyperlink are set using the various options. .TP .B \-\^h Set method:cgipath to http://localhost. This is the default. .TP .BI \-\^H " host[.domain][:port]" Set method:cgipath to .RI http:// host.domain:port . .TP .B \-\^l Set method:cgipath to .RI lynxcgi: /home/httpd . .TP .BI \-\^L " dir" Set method:cgipath to .RI lynxcgi: dir . .TP .BI \-\^M " man2htmlpath" Set the man2htmlpath to use. The default is .IR /cgi-bin/man/man2html . .TP .B \-\^p Set separator to '/'. .TP .B \-\^q Set separator to '?'. This is the default. .TP .B \-\^r Use relative html paths, instead of cgi-bin paths. .LP On a machine without running .BR httpd , one can use .B lynx to browse the man pages, using the lynxcgi method. When some http daemon is running, lynx, or any other browser, can be used to browse the man pages, using the http method. The option \-l (for `lynxcgi') selects the former behaviour. With it, the default cgipath is \fI/home/httpd\fP. In general, a cgi script can be called by .IP /? .LP and the environment variables PATH_INFO and QUERY_STRING will be set to and , respectively. Since lynxcgi does not handle the PATH_INFO part, we generate hyperlinks with `?' as a separator by default. The option \-p (for `path') selects '/' as a separator, while the option \-q (for `query') selects '?' as a separator. The option \-H \fIhost\fP will specify the host to use (instead of \fIlocalhost\fP). A cgi script could use .IP man2html -H $SERVER_NAME .LP if the variable SERVER_NAME is set. This would allow your machine to act as a server and export man pages. .SH BUGS There are many heuristics. The output will not always be perfect. The lynxcgi method will not work if lynx was compiled without selecting support for it. There may be problems with security. .SH AUTHOR Richard Verhoeven was the original author of .BR "man2html" . Michael Hamilton and Andries Brouwer subsequently improved on it. Federico Lucifredi is the current maintainer. .SH "SEE ALSO" .BR lynx (1), .BR man (1) man-1.6g/msgs/0000755000175000001440000000000011317204215012763 5ustar lucifredusersman-1.6g/msgs/mess.nl0000644000175000001440000001410610733420016014267 0ustar lucifredusersBAD_CONFIG_FILE "De inhoud van bestand %s is onbegrijpelijk.\n" CONFIG_OPEN_ERROR "Waarschuwing: kan configuratiebestand %s niet openen.\n" PARSE_ERROR_IN_CONFIG "Syntaxfout in configuratiebestand.\n" INCOMPAT "Opties %s en %s gaan niet samen.\n" NO_ALTERNATE "Sorry, ondersteuning voor andere systemen is niet meegecompileerd.\n" NO_COMPRESS "Deze 'man' is gecompileerd met automatische compressie van cat-pagina's,\n\ maar het configuratiebestand definieert COMPRESS niet.\n" NO_NAME_FROM_SECTION "Welke man-pagina wilt u zien uit sectie %s?\n" NO_NAME_NO_SECTION "Welke man-pagina wilt u zien?\n" NO_SUCH_ENTRY_IN_SECTION "Er is geen pagina over '%s' in sectie %s.\n" NO_SUCH_ENTRY "Er is geen pagina over '%s'.\n" PAGER_IS "\n'%s' wordt gebruikt als om de uitvoer te tonen\n" SYSTEM_FAILED "Fout tijdens opmaak- of uitvoeropdracht.\n\ De afsluitwaarde van '%s' was %d.\n" VERSION "Dit is '%s', versie %s.\n\n\ Toont de handleiding ('man-pagina') van de gegeven opdrachtnaam.\n\n" OUT_OF_MEMORY "Onvoldoende geheugen beschikbaar -- kan geen %d bytes reserveren\n" ROFF_CMD_FROM_FILE_ERROR "Fout tijdens ontleden van een '*roff'-opdracht uit bestand '%s'.\n" MANROFFSEQ_ERROR "Fout tijdens ontleden van MANROFFSEQ -- standaardvolgorde wordt gebruikt.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Fout tijdens ontleden van '*roff'-opdracht van de opdrachtregel.\n" UNRECOGNIZED_LINE "Onbegrepen regel in het configuratiebestand -- wordt genegeerd\n%s\n" GETVAL_ERROR "man-config.c: **interne fout**: kan tekenreeks '%s' niet vinden\n" FOUND_MANDIR "man-map %s gevonden\n" FOUND_MAP "man-pad-afbeelding %s --> %s gevonden\n" FOUND_CATDIR "de overeenkomstige cat-map is %s\n" LINE_TOO_LONG "Te lange regel in het configuratiebestand.\n" SECTION "\nsectie: %s\n" UNLINKED "%s is verwijderd\n" GLOBBING "globben van %s\n" EXPANSION_FAILED "Poging [%s] om de man-pagina te decomprimeren is mislukt.\n" OPEN_ERROR "Kan man-pagina %s niet openen.\n" READ_ERROR "Fout tijdens lezen van man-pagina %s.\n" FOUND_EQN "eqn(1)-aanwijzing gevonden\n" FOUND_GRAP "grap(1)-aanwijzing gevonden\n" FOUND_PIC "pic(1)-aanwijzing gevonden\n" FOUND_TBL "tbl(1)-aanwijzing gevonden\n" FOUND_VGRIND "vgrind(1)-aanwijzing gevonden\n" FOUND_REFER "refer(1)-aanwijzing gevonden\n" ROFF_FROM_COMMAND_LINE "ontleden van aanwijzingen van de opdrachtregel\n" ROFF_FROM_FILE "ontleden van aanwijzingen uit bestand %s\n" ROFF_FROM_ENV "ontleden van aanwijzingen uit de omgeving\n" USING_DEFAULT "de standaard preprocessor-volgorde wordt gebruikt\n" PLEASE_WAIT "Opmaken van de pagina...\n" CHANGED_MODE "De modus van %s is gewijzigd in %o.\n" CAT_OPEN_ERROR "Kan niet schrijven naar %s.\n" PROPOSED_CATFILE "indien nodig wordt bestand %s geschreven\n" IS_NEWER_RESULT "afsluitwaarde van is_newer() = %d\n" TRYING_SECTION "sectie %s wordt bekeken\n" SEARCHING "\nzoeken in %s\n" ALREADY_IN_MANPATH "maar %s zit al in het zoekpad\n" CANNOT_STAT "Waarschuwing: kan status van bestand '%s' niet opvragen!\n" IS_NO_DIR "Waarschuwing: '%s' is geen map!\n" ADDING_TO_MANPATH "%s is toegevoegd aan het zoekpad\n" PATH_DIR "\nzoekpad-map %s " IS_IN_CONFIG "staat in het configuratiebestand\n" IS_NOT_IN_CONFIG "staat niet in het configuratiebestand\n" MAN_NEARBY "maar er is een man-map in de buurt\n" NO_MAN_NEARBY "en er is geen man-map in de buurt\n" ADDING_MANDIRS "\nstandaard man-mappen worden toegevoegd\n\n" CATNAME_IS "cat_name in convert_to_cat() is: %s\n" NO_EXEC "\nNiet-uitgevoerde opdracht:\n %s\n" USAGE1 "Gebruik: %s [-adfhktwW] [-M zoekpad] [-P viewer] [-S secties]\n\t " USAGE2 " [-m systeem]" USAGE3 " [-p tekenreeks] [sectie] naam...\n\n" USAGE4 " -a alle overeenkomende pagina's tonen, niet slechts de eerste\n\ -c geen cat-bestanden gebruiken\n\ -d uitgebreide debug-informatie produceren\n\ -D als '-d', maar ook de pagina's tonen\n\ -f als 'whatis' fungeren\n\ -h deze hulptekst tonen\n\ -k als 'apropos' fungeren\n\ -K in alle man-pagina's naar een tekenreeks zoeken\n" USAGE5 " -t 'troff' gebruiken om pagina's op te maken (om ze af te drukken)\n" USAGE6 "\ -w het volledige pad weergeven van de pagina die getoond zou worden\n\ (als geen naam gegeven is, dan tonen welke mappen doorzocht worden)\n\ -W als '-w', maar alleen de bestandsnamen tonen, niet het volledige pad\n\n\ -C bestand te gebruiken configuratiebestand\n\ -M pad pad waarin naar man-pagina's gezocht moet worden\n\ -P viewer dit programma gebruiken om de uitvoer te tonen\n\ -S secties te doorzoeken secties (scheiden met dubbele punten)\n" USAGE7 " -m systeem naar man-pagina's van dit Unix-systeem zoeken\n" USAGE8 " -p letters uit te voeren voorverwerkingsprogramma's:\n\ e - [n]eqn p - pic t - tbl\n\ g - grap r - refer v - vgrind\n" USER_CANNOT_OPEN_CAT "en de werkelijke gebruiker kan het cat-bestand ook niet openen\n" USER_CAN_OPEN_CAT "maar de werkelijke gebruiker kan het cat-bestand wel openen\n" CANNOT_FORK "Kan geen nieuw proces starten voor opdracht '%s'\n" WAIT_FAILED "Fout tijdens wachten op dochterproces '%s'\n" GOT_WRONG_PID "Vreemd..., kreeg een verkeerd PID tijdens wachten op dochterproces\n" CHILD_TERMINATED_ABNORMALLY "Fatale fout: opdracht '%s' werd abnormaal beindigd\n" IDENTICAL "Man-pagina %s is identiek aan %s\n" MAN_FOUND "Gevonden man-pagina('s):\n" NO_TROFF "Fout: er is in %s geen TROFF-commando gegeven\n" NO_CAT_FOR_NONSTD_LL "Geen cat-pagina aangemaakt vanwege de afwijkende regellengte.\n" BROWSER_IS "\n'%s' wordt gebruikt als browser\n" HTMLPAGER_IS "\n'%s' wordt gebruikt voor het omzetten van HTML-pagina's naar tekst\n" FOUND_FILE "manfile_from_sec_and_dir() vond %s\n" CALLTRACE1 "manfile_from_sec_and_dir(map=%s, sectie=%s, naam=%s, vlaggen=0x%0x)\n" CALLTRACE2 "glob_for_file(map=%s, sectie=%s, naam=%s, type=0x%0x, ...)\n" NO_MATCH "glob_for_file() heeft geen overeenkomsten gevonden\n" GLOB_FOR_FILE "glob_for_file() geeft %s terug\n" CALLTRACE3 "glob_for_file_ext_glob(map=%s, sectie=%s, naam=%s, extensie=%s, hpx=%s, glob=%d, type=0x%0x)\n" ABOUT_TO_GLOB "glob_for_file_ext_glob() zal %s expanderen\n" man-1.6g/msgs/mess.en0000644000175000001440000001231210401001455014247 0ustar lucifredusersBAD_CONFIG_FILE "unable to make sense of the file %s\n" CONFIG_OPEN_ERROR "Warning: cannot open configuration file %s\n" PARSE_ERROR_IN_CONFIG "Error parsing config file\n" INCOMPAT "incompatible options %s and %s\n" NO_ALTERNATE "Sorry - no support for alternate systems compiled in\n" NO_COMPRESS "Man was compiled with automatic cat page compression,\n\ but the configuration file does not define COMPRESS.\n" NO_NAME_FROM_SECTION "What manual page do you want from section %s?\n" NO_NAME_NO_SECTION "What manual page do you want?\n" NO_SUCH_ENTRY_IN_SECTION "No entry for %s in section %s of the manual\n" NO_SUCH_ENTRY "No manual entry for %s\n" PAGER_IS "\nusing %s as pager\n" SYSTEM_FAILED "Error executing formatting or display command.\n\ System command %s exited with status %d.\n" VERSION "%s, version %s\n\n" OUT_OF_MEMORY "Out of memory - can't malloc %d bytes\n" ROFF_CMD_FROM_FILE_ERROR "Error parsing *roff command from file %s\n" MANROFFSEQ_ERROR "Error parsing MANROFFSEQ. Using system defaults.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Error parsing *roff command from command line.\n" UNRECOGNIZED_LINE "Unrecognized line in config file (ignored)\n%s\n" GETVAL_ERROR "man-config.c: internal error: string %s not found\n" FOUND_MANDIR "found man directory %s\n" FOUND_MAP "found manpath map %s --> %s\n" FOUND_CATDIR "corresponding catdir is %s\n" LINE_TOO_LONG "Line too long in config file\n" SECTION "\nsection: %s\n" UNLINKED "unlinked %s\n" GLOBBING "globbing %s\n" EXPANSION_FAILED "Attempt [%s] to expand man page failed\n" OPEN_ERROR "Cannot open man page %s\n" READ_ERROR "Error reading man page %s\n" FOUND_EQN "found eqn(1) directive\n" FOUND_GRAP "found grap(1) directive\n" FOUND_PIC "found pic(1) directive\n" FOUND_TBL "found tbl(1) directive\n" FOUND_VGRIND "found vgrind(1) directive\n" FOUND_REFER "found refer(1) directive\n" ROFF_FROM_COMMAND_LINE "parsing directive from command line\n" ROFF_FROM_FILE "parsing directive from file %s\n" ROFF_FROM_ENV "parsing directive from environment\n" USING_DEFAULT "using default preprocessor sequence\n" PLEASE_WAIT "Formatting page, please wait...\n" CHANGED_MODE "changed mode of %s to %o\n" CAT_OPEN_ERROR "Couldn't open %s for writing.\n" PROPOSED_CATFILE "will try to write %s if needed\n" IS_NEWER_RESULT "status from is_newer() = %d\n" TRYING_SECTION "trying section %s\n" SEARCHING "\nsearching in %s\n" ALREADY_IN_MANPATH "but %s is already in the manpath\n" CANNOT_STAT "Warning: cannot stat file %s!\n" IS_NO_DIR "Warning: %s isn't a directory!\n" ADDING_TO_MANPATH "adding %s to manpath\n" PATH_DIR "\npath directory %s " IS_IN_CONFIG "is in the config file\n" IS_NOT_IN_CONFIG "is not in the config file\n" MAN_NEARBY "but there is a man directory nearby\n" NO_MAN_NEARBY "and we found no man directory nearby\n" ADDING_MANDIRS "\nadding mandatory man directories\n\n" CATNAME_IS "cat_name in convert_to_cat () is: %s\n" NO_EXEC "\nnot executing command:\n %s\n" USAGE1 "usage: %s [-adfhktwW] [section] [-M path] [-P pager] [-S list]\n\t" USAGE2 "[-m system] " USAGE3 "[-p string] name ...\n\n" USAGE4 " a : find all matching entries\n\ c : do not use cat file\n\ d : print gobs of debugging information\n\ D : as for -d, but also display the pages\n\ f : same as whatis(1)\n\ h : print this help message\n\ k : same as apropos(1)\n\ K : search for a string in all pages\n" USAGE5 " t : use troff to format pages for printing\n" USAGE6 "\ w : print location of man page(s) that would be displayed\n\ (if no name given: print directories that would be searched)\n\ W : as for -w, but display filenames only\n\n\ C file : use `file' as configuration file\n\ M path : set search path for manual pages to `path'\n\ P pager : use program `pager' to display pages\n\ S list : colon separated section list\n" USAGE7 " m system : search for alternate system's man pages\n" USAGE8 " p string : string tells which preprocessors to run\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "and the real user cannot open the cat file either\n" USER_CAN_OPEN_CAT "but the real user can open the cat file\n" CANNOT_FORK "failed to fork off the command _%s_\n" WAIT_FAILED "error while waiting for child _%s_\n" GOT_WRONG_PID "very strange ..., got wrong pid while waiting for my child\n" CHILD_TERMINATED_ABNORMALLY "fatal error: the command _%s_ terminated abnormally\n" IDENTICAL "Man page %s is identical to %s\n" MAN_FOUND "Found the man page(s):\n" NO_TROFF "error: no TROFF command specified in %s\n" NO_CAT_FOR_NONSTD_LL "no cat page stored because of nonstandard line length\n" BROWSER_IS "\nusing %s as browser\n" HTMLPAGER_IS "\nusing %s to dump HTML pages as text\n" FOUND_FILE "manfile_from_sec_and_dir() found %s\n" CALLTRACE1 "manfile_from_sec_and_dir(dir=%s, sec=%s, name=%s, flags=0x%0x)\n" CALLTRACE2 "glob_for_file(dir=%s, sec=%s, name=%s, type=0x%0x, ...)\n" NO_MATCH "glob_for_file found no matches.\n" GLOB_FOR_FILE "glob_for_file returns %s.\n" CALLTRACE3 "glob_for_file_ext_glob(dir=%s, sec=%s, name=%s, ext=%s, hpx=%s, glob=%d, type=0x%0x);\n" ABOUT_TO_GLOB "glob_for_file_ext_glob will expand %s\n" man-1.6g/msgs/README0000644000175000001440000000175710307556321013663 0ustar lucifredusersThe English messages are compiled into man, and are used when it cannot find a message catalog. Before printing a message, man does a catopen("man_messages", 0); which means that it tries to open the file obtained from the environment variable NLSPATH by substituting "man_messages" for %N, and $LC_MESSAGES for %L (older implementations use $LANG instead) When NLSPATH is not set, the value "/usr/lib/locale/%L/%N.cat:/usr/lib/locale/%N/%L" is used. If no information about the language is available, "C" is used. Because the catalog routines are not generally available, I have enclosed a copy of the gencat source. If you add a new message catalog, say for language da, then verify that the labels are used correctly by doing ../src/makemsg mess.en x.en.h x.en.c ../src/makemsg mess.da x.da.h x.da.c diff x.en.h x.da.h rm x* The files x.en.h and x.da.h should be identical. Recent gencat wants to know what codeset the messages are in. Please report incorrect codesets to flucifredi@acm.org. man-1.6g/msgs/Makefile.in0000644000175000001440000000163210442367074015045 0ustar lucifredusers all: ../src/makemsg gencat @for i in mess.??; do ../src/makemsg -c $$i $$i.catin; \ cat $$i.codeset $$i.catin > $$i.catin2; \ echo "==== Making $$i.cat ====" ;\ LC_ALL=en_US.UTF-8 ./gencat $$i.cat $$i.catin2; done; \ rm -f core *.catin *.catin2 install: sh ./inst.sh "@languages@" "$(DESTDIR)@locale@" clean: rm -f gencat gencat.out core *~ *.cat *.catin *.catin2 spotless: rm -f Makefile # Various versions of libc use different format message catalog files # So we have to use the installed /usr/bin/gencat if possible. # On the other hand, /usr/bin/gencat doesnt work in glibc 2.0.7 # The source in ../gencat is OK for libc4 and libc5, not for glibc. gencat: if [ -f /usr/bin/gencat ]; then \ if gencat gencat.out gencat.in 2>/dev/null; then \ ln -s /usr/bin/gencat gencat; \ else \ cp gencat207fix.sh gencat; \ fi \ else \ ln -s ../gencat/gencat gencat; \ cd ../gencat; \ make; \ fi man-1.6g/msgs/inst.sh0000755000175000001440000000121710301736016014301 0ustar lucifredusers#!/bin/sh # install message catalogs - very primitive lgs=$1 locdir=$2 M= # if no locale then do nothing if [ "$locdir" = "" ]; then exit 0 fi if [ "$lgs" = "??" ]; then M=mess.*.cat else for i in $lgs do if [ -f mess.$i.cat ]; then M="$M mess.$i.cat" else echo "==== No mess.$i.cat found. ====" fi done fi for j in $M; do if [ -f $j ]; then i=`echo $j | sed -e 's/mess.//; s/.cat//'` dest=`echo $locdir | sed -e "s/%N/man/; s/%L/$i/"` dest=${PREFIX}$dest echo "mkdir -p `dirname $dest`" mkdir -p `dirname $dest`; echo "install -c -m 644 $j $dest" install -c -m 644 $j $dest fi done man-1.6g/msgs/mess.de0000644000175000001440000001364610572145071014264 0ustar lucifredusersBAD_CONFIG_FILE "Die Konfigurationsdatei %s ist fehlerhaft\n" CONFIG_OPEN_ERROR "Warnung: Die Konfigurationsdatei %s kann nicht geöffnet werden\n" PARSE_ERROR_IN_CONFIG "Fehler beim Parsen der Konfigurationsdatei\n" INCOMPAT "Unverträgliche Optionen %s und %s\n" NO_ALTERNATE "Sorry - Kein Support für alternative Systeme möglich\n" NO_COMPRESS "Das man-Programm ist mit automatischer Kompression der cat-Seiten\n\ übersetzt worden, aber in der Konfigurationsdatei fehlt die Definition\n\ von COMPRESS.\n" NO_NAME_FROM_SECTION "Welche Handbuchseite aus der Sektion %s soll angezeigt werden?\n" NO_NAME_NO_SECTION "Welche Handbuchseite soll angezeigt werden?\n" NO_SUCH_ENTRY_IN_SECTION "Keine Handbuchseite %s in der Sektion %s\n" NO_SUCH_ENTRY "Keine Handbuchseite für %s\n" PAGER_IS "\nAls Anzeigeprogramm wird %s benutzt\n" SYSTEM_FAILED "Fehler bei der Ausführung des Formatierungs- oder Anzeigeprogramms.\n\ Das Programm %s lieferte den Rückgabe-Wert %d.\n" VERSION "%s, Version %s\n\n" OUT_OF_MEMORY "Nicht genügend Speicher verfügbar - %d Bytes können nicht bereitgestellt werden\n" ROFF_CMD_FROM_FILE_ERROR "Fehler beim Parsen des *roff Kommandos der Datei %s\n" MANROFFSEQ_ERROR "Fehler beim Parsen von MANROFFSEQ. Die System-Vorgabewerte werden benutzt.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Fehler beim Parsen des *roff Kommandos aus der Kommando-Zeile.\n" UNRECOGNIZED_LINE "Unbekannte Zeile in der Konfigurationsdatei (ignoriert)\n%s\n" GETVAL_ERROR "man-config.c: Interner Fehler: String %s nicht gefunden\n" FOUND_MANDIR "man Verzeichnis %s gefunden\n" FOUND_MAP "manpath Zuordnung %s --> %s gefunden\n" FOUND_CATDIR "Zugehöriges cat-Verzeichnis ist %s\n" LINE_TOO_LONG "Zeile zu lang in der Konfigurationsdatei\n" SECTION "\nSektion: %s\n" UNLINKED "unlinked %s\n" GLOBBING "globbing %s\n" EXPANSION_FAILED "Versuch [%s] die Handbuchseite zu expandieren schlug fehl.\n" OPEN_ERROR "Die Handbuchseite %s kann nicht gelesen werden\n" READ_ERROR "Fehler beim Lesen der Handbuchseite %s\n" FOUND_EQN "eqn(1) Anweisung gefunden\n" FOUND_GRAP "grap(1) Anweisung gefunden\n" FOUND_PIC "pic(1) Anweisung gefunden\n" FOUND_TBL "tbl(1) Anweisung gefunden\n" FOUND_VGRIND "vgrind(1) Anweisung gefunden\n" FOUND_REFER "refer(1) Anweisung gefunden\n" ROFF_FROM_COMMAND_LINE "Parsen der Anweisungen aus der Kommandozeile\n" ROFF_FROM_FILE "Parsen der Anweisungen aus der Datei %s\n" ROFF_FROM_ENV "Parsen der Anweisung aus den Umgebungsvariablen\n" USING_DEFAULT "Es wird die Standard-Abfolge der Präprozessoren benutzt\n" PLEASE_WAIT "Die Handbuchseite wird formatiert, bitte warten Sie...\n" CHANGED_MODE "Zugriffsschutz der Datei %s geändert zu %o\n" CAT_OPEN_ERROR "Die Datei %s kann nicht für Ausgaben geöffnet werden.\n" PROPOSED_CATFILE "Wenn nötig wird die Datei %s geschrieben\n" IS_NEWER_RESULT "Status der Funktion is_newer() = %d\n" TRYING_SECTION "Versuche Sektion %s\n" SEARCHING "\nSuche in %s\n" ALREADY_IN_MANPATH "%s ist bereits im man-Suchpfad\n" CANNOT_STAT "Warnung: stat() der Datei %s fehlgeschlagen!\n" IS_NO_DIR "Warnung: %s ist kein Verzeichnis!\n" ADDING_TO_MANPATH "Aufnehmen von %s in den man-Suchpfad\n" PATH_DIR "\nPfad-Verzeichnis %s " IS_IN_CONFIG "ist in der Konfigurationsdatei\n" IS_NOT_IN_CONFIG "ist nicht in der Konfigurationsdatei\n" MAN_NEARBY "Aber da ist ein man-Verzeichnis ganz in der Nähe\n" NO_MAN_NEARBY "und kein man-Verzeichnis in der Nähe gefunden\n" ADDING_MANDIRS "\nHinzufügen von notwendigen man-Verzeichnissen\n\n" CATNAME_IS "cat_name in convert_to_cat () ist: %s\n" NO_EXEC "\nFolgendes Kommando wird nicht ausgeführt:\n %s\n" USAGE1 "Aufruf: %s [-adfhktwW] [Sektion] [-M Pfad] [-P Pager] [-S Liste]\n\t" USAGE2 "[-m System] " USAGE3 "[-p String] Name ...\n\n" USAGE4 " a : findet alle passenden Handbucheinträge\n\ d : Ausgabe von Meldungen zur Fehlersuche\n\ f : Ersatz für whatis(1)\n\ h : Ausgabe dieser Hilfe\n\ k : Ersatz für apropos(1)\n" USAGE5 " t : Verwende troff zum Formatieren der Seiten vor der Ausgabe\n" USAGE6 "\ w : Ausgabe der Fundorte der Handbuchseite(n), die angezeigt würde(n)\n\ (Wenn kein Name angegeben wurde: die Verzeichnisse ausgeben, die\n\ durchsucht würden)\n\n\ M Pfad : Verwende `Pfad' als Suchpfad nach Handbuchseiten\n\ P Pager : Verwende das Programm `Pager' um Handbuchseiten anzuzeigen\n\ S List : Durch Doppelpunkte getrennte Liste von Sektionen\n" USAGE7 " m System : Suche nach alternativen Handbuchseiten\n" USAGE8 " p String : Zeichenkette, die angibt welche Präprozessoren\n\ verwendet werden sollen\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "und auch der reale User kann das cat File nicht öffnen\n" USER_CAN_OPEN_CAT "aber der reale User kann das cat File öffnen\n" CANNOT_FORK "Kann das Kommando _%s_ nicht starten\n" WAIT_FAILED "Fehler während des Wartens auf Kindprozeß _%s_\n" GOT_WRONG_PID "Sehr seltsam ..., habe während des Wartens auf meinen Kindprozeß die falsche pid bekommen\n" CHILD_TERMINATED_ABNORMALLY "Fataler Fehler: Das Kommando _%s_ terminierte abnormal\n" IDENTICAL "man Seite %s ist identisch zu %s\n" MAN_FOUND "man Seite(n) gefunden:\n" NO_TROFF "Fehler: Kein TROFF Kommando in %s spezifiziert\n" NO_CAT_FOR_NONSTD_LL "Wegen nicht Standardzeilenlänge keine cat Seite gespeichert\n" BROWSER_IS "\Benutze %s als Browser\n" HTMLPAGER_IS "\Benutze %s um HTML-Seiten als Text auszugeben" FOUND_FILE "manfile_from_sec_and_dir() gefunden %s\n" CALLTRACE1 "manfile_from_sec_and_dir(dir=%s, sec=%s, name=%s, flags=0x%0x)\n" CALLTRACE2 "glob_for_file(dir=%s, sec=%s, name=%s, type=0x%0x, ...)\n" NO_MATCH "glob_for_file fand keine Übereinstimmungen.\n" GLOB_FOR_FILE "glob_for_file gibt %s zurück.\n" CALLTRACE3 "glob_for_file_ext_glob(dir=%s, sec=%s, name=%s, ext=%s, hpx=%s, glob=%d, type=0x%0x);\n" ABOUT_TO_GLOB "glob_for_file_ext_glob will %s expandieren\n" man-1.6g/msgs/mess.pt0000644000175000001440000001042310301736016014300 0ustar lucifredusersBAD_CONFIG_FILE "no compreendi o ficheiro %s\n" CONFIG_OPEN_ERROR "Aviso: no consigo usar o ficheiro de configurao %s\n" PARSE_ERROR_IN_CONFIG "Erro no ficheiro de configurao\n" INCOMPAT "opes %s e %s incompatveis\n" NO_ALTERNATE "Desculpe - no dispe de suporte para sistemas alternativos\n" NO_COMPRESS "Man compilado com compresso automtica mas\n\ o ficheiro de configurao no define COMPRESS.\n" NO_NAME_FROM_SECTION "Que manual pretende da seco %s?\n" NO_NAME_NO_SECTION "Que manual pretende?\n" NO_SUCH_ENTRY_IN_SECTION "No existe a entrada %s na seco %s\n" NO_SUCH_ENTRY "No existe a entrada %s\n" PAGER_IS "\nusando %s como paginador\n" SYSTEM_FAILED "Erro num comando de processamento do manual.\n\ O comando %s terminou com o erro %d.\n" VERSION "%s, verso %s\n\n" OUT_OF_MEMORY "Memria esgotada - no obtive %d bytes\n" ROFF_CMD_FROM_FILE_ERROR "Erro no processamento de um comando *roff no ficheiro %s\n" MANROFFSEQ_ERROR "Erro no processamento de MANROFFSEQ. Usando defaults.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Erro no processamento de um comando *roff na linha de comando.\n" UNRECOGNIZED_LINE "Linha desconhecida no ficheiro de configurao (ignorada)\n%s\n" GETVAL_ERROR "man-config.c: erro interno: no se encontra a string %s\n" FOUND_MANDIR "directoria de man %s encontrada\n" FOUND_MAP "encontrado o manpath para %s --> %s\n" FOUND_CATDIR "catdir correspondente %s\n" LINE_TOO_LONG "Linha demasiado longa no ficheiro de configurao\n" SECTION "\nseco: %s\n" UNLINKED "%s removido\n" GLOBBING "expandindo %s\n" EXPANSION_FAILED "Tentativa [%s] para descomprimir o manual falhada\n" OPEN_ERROR "No posso ler o manual %s\n" READ_ERROR "Erro na leitura do manual %s\n" FOUND_EQN "directiva eqn(1) encontrada\n" FOUND_GRAP "directiva grap(1) encontrada\n" FOUND_PIC "directiva pic(1) encontrada\n" FOUND_TBL "directiva tbl(1) encontrada\n" FOUND_VGRIND "directiva vgrind(1) encontrada\n" FOUND_REFER "directiva refer(1) encontrada\n" ROFF_FROM_COMMAND_LINE "processando directiva da linha de comando\n" ROFF_FROM_FILE "processando directiva do ficheiro %s\n" ROFF_FROM_ENV "processando directiva do environment\n" USING_DEFAULT "usando o preprocessamento por omisso\n" PLEASE_WAIT "Formatando manual, aguarde por favor ...\n" CHANGED_MODE "altere as proteces de %s para %o\n" CAT_OPEN_ERROR "No consegui escrever em %s.\n" PROPOSED_CATFILE "tentarei escrever %s se necessrio\n" IS_NEWER_RESULT "estado de is_newer() = %d\n" TRYING_SECTION "tentando a seco %s\n" SEARCHING "\nprocurando em %s\n" ALREADY_IN_MANPATH "mas %s j est no manpath\n" CANNOT_STAT "Aviso: no consigo o ficheiro %s!\n" IS_NO_DIR "Aviso: %s no uma directoria!\n" ADDING_TO_MANPATH "acrescentando %s ao manpath\n" PATH_DIR "\ndirectoria %s " IS_IN_CONFIG "est no ficheiro de configurao\n" IS_NOT_IN_CONFIG "no est no ficheiro de configurao\n" MAN_NEARBY "mas existe uma directoria de man perto\n" NO_MAN_NEARBY "e no foi encontrada directoria de man perto\n" ADDING_MANDIRS "\nacrescentando directorias de man obrigatrias\n\n" CATNAME_IS "cat_name de convert_to_cat () : %s\n" NO_EXEC "\nno executando o comando:\n %s\n" USAGE1 "uso: %s [-adfhktwW] [seco] [-M path] [-P paginador] [-S lista]\n\t" USAGE2 "[-m sistema] " USAGE3 "[-p string] nome ...\n\n" USAGE4 " a : encontrar todas as entradas\n\ d : imprimir informao de debug\n\ f : o mesmo que whatis(1)\n\ h : imprimir esta ajuda\n\ k : o mesmo que apropos(1)\n" USAGE5 " t : usar troff para formatar o manual para imprimir\n" USAGE6 "\ w : imprimir a localizao do manual a vr\n\ (se no indicar o nome: imprime as directorias dos manuais)\n\n\ M path : indica `path' como as directorias dos manuais\n\ P paginador : use o programa `paginador' para vr os manuais\n\ S lista : indicar lista de seces (separadas por ,)\n" USAGE7 " m sistema : procura manual para o sistema indicado\n" USAGE8 " p string : string indica o preprocessamento a efectuar\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "" USER_CAN_OPEN_CAT "" CANNOT_FORK "" WAIT_FAILED "" GOT_WRONG_PID "" CHILD_TERMINATED_ABNORMALLY "" IDENTICAL "" MAN_FOUND "" NO_TROFF "" NO_CAT_FOR_NONSTD_LL "" man-1.6g/msgs/mess.pl0000644000175000001440000001363010432436150014274 0ustar lucifredusersBAD_CONFIG_FILE "nie mona zrozumie zawartoci pliku %s\n" CONFIG_OPEN_ERROR "Ostrzeenie: nie mona otworzy pliku konfiguracyjnego %s\n" PARSE_ERROR_IN_CONFIG "Bd podczas interpretacji pliku konfiguracyjnego\n" INCOMPAT "niepasujce wzajemnie opcje %s i %s\n" NO_ALTERNATE "Niestety - brak wkompilowanej obsugi alternatywnych systemw\n" NO_COMPRESS "Man zosta skompilowany z automatyczn kompresj stron cat,\n\ ale plik konfiguracyjny nie definiuje COMPRESS.\n" NO_NAME_FROM_SECTION "Ktr stron podrcznika z sekcji %s chcesz przeczyta?\n" NO_NAME_NO_SECTION "Ktr stron podrcznika chcesz przeczyta?\n" NO_SUCH_ENTRY_IN_SECTION "Nie ma strony %s w sekcji %s podrcznika\n" NO_SUCH_ENTRY "Nie ma strony podrcznika dla %s\n" PAGER_IS "\nuywanie %s jako pagera\n" SYSTEM_FAILED "Bd podczas wykonywania polecenia formatowania lub wywietlania.\n\ Polecenie systemowe %s zwrcio status %d.\n" VERSION "%s, wersja %s\n\n" OUT_OF_MEMORY "Brak pamici - nie mona przydzieli %d bajtw pamici\n" ROFF_CMD_FROM_FILE_ERROR "Bd podczas przetwarzania polecenia *roff z pliku %s\n" MANROFFSEQ_ERROR "Bd podczas przetwarzania MANROFFSEQ. Uywanie ustawie domylnych systemu.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Bd podczas przetwarzania polecenia *roff podanego w linii polece.\n" UNRECOGNIZED_LINE "Nierozpoznana linia w pliku konfiguracyjnym (zignorowana)\n%s\n" GETVAL_ERROR "man-config.c: bd wewntrzny: nie znaleziono acucha znakw %s\n" FOUND_MANDIR "znaleziono katalog man %s\n" FOUND_MAP "znaleziono map manpath %s --> %s\n" FOUND_CATDIR "odpowiadajcy katalog cat to %s\n" LINE_TOO_LONG "Za duga linia w pliku konfiguracyjnym\n" SECTION "\nsekcja: %s\n" UNLINKED "skasowany %s\n" GLOBBING "globbing %s\n" EXPANSION_FAILED "Prba [%s] rozwinicia strony podrcznika nie powioda si\n" OPEN_ERROR "Nie mona otworzy strony podrcznika %s\n" READ_ERROR "Bd podczas odczytu strony podrcznika %s\n" FOUND_EQN "znaleziono dyrektyw eqn(1)\n" FOUND_GRAP "znaleziono dyrektyw grap(1)\n" FOUND_PIC "znaleziono dyrektyw pic(1)\n" FOUND_TBL "znaleziono dyrektyw tbl(1)\n" FOUND_VGRIND "znaleziono dyrektyw vgrind(1)\n" FOUND_REFER "znaleziono dyrektyw refer(1)\n" ROFF_FROM_COMMAND_LINE "przetwarzanie dyrektywy podanej w linii polece\n" ROFF_FROM_FILE "przetwarzanie dyrektywy z pliku %s\n" ROFF_FROM_ENV "przetwarzanie dyrektywy ze zmiennej rodowiskowej\n" USING_DEFAULT "uywanie domylnej sekwencji preprocesora\n" PLEASE_WAIT "Formatowanie strony, prosz czeka...\n" CHANGED_MODE "zmieniono uprawnienia %s na %o\n" CAT_OPEN_ERROR "Nie mona otworzy %s do zapisu.\n" PROPOSED_CATFILE "w razie potrzeby man bdzie prbowa zapisa %s\n" IS_NEWER_RESULT "status z is_newer() = %d\n" TRYING_SECTION "prbowanie sekcji %s\n" SEARCHING "\nwyszukiwanie w %s\n" ALREADY_IN_MANPATH "ale %s jest ju w manpath\n" CANNOT_STAT "Ostrzeenie: nie mona uy stat na pliku %s!\n" IS_NO_DIR "Ostrzeenie: %s nie jest katalogiem!\n" ADDING_TO_MANPATH "dodawanie %s do manpath\n" PATH_DIR "\ncieka katalogu %s " IS_IN_CONFIG "jest w pliku konfiguracyjnym\n" IS_NOT_IN_CONFIG "nie jest obecna w pliku konfiguracyjnym\n" MAN_NEARBY "ale jest katalog man niedaleko\n" NO_MAN_NEARBY "i nie ma katalogu man niedaleko\n" ADDING_MANDIRS "\ndodawanie obowizkowych katalogw man\n\n" CATNAME_IS "cat_name w convert_to_cat () jest: %s\n" NO_EXEC "\nniewykonywanie polecenia:\n %s\n" USAGE1 "uycie: %s [-adfhktwW] [sekcja] [-M cieka] [-P pager] [-S lista]\n\t" USAGE2 "[-m system] " USAGE3 "[-p acuch_znakw] nazwa ...\n\n" USAGE4 " a : znajduje wszystkie pasujce strony\n\ c : nie uywa pliku cat\n\ d : wywietla mnstwo informacji debugowania\n\ D : jak -d, ale wywietla te strony\n\ f : to samo co whatis(1)\n\ h : wywietla ten komunikat pomocy\n\ k : to samo co apropos(1)\n\ K : wyszukuje acuch znakw na wszystkich stronach\n" USAGE5 " t : uywa troff do formatowania stron do wydrukowania\n" USAGE6 "\ w : wywietla pooenie stron(y) podrcznika, ktra byaby wywietlona\n\ (jeeli nie podano adnej nazwy: wywietla przeszukiwane katalogi)\n\ W : tak jak -w, ale wywietla tylko nazwy plikw\n\n\ C plik : uywa `plik' jako plik konfiguracyjny\n\ M cieka: ustawia ciek wyszukiwania stron podrcznika jako `cieka'\n\ P pager : uywa programu `pager' do wywietlania stron\n\ S lista : lista sekcji oddzielona dwukropkami\n" USAGE7 " m system : wyszukuje strony podrcznika dla alternatywnego systemu\n" USAGE8 " p acuch znakw: acuch znakw okrelajcy, ktre preprocesory uy\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "a rzeczywisty uytkownik te nie moe otworzy pliku\n" USER_CAN_OPEN_CAT "ale rzeczywisty uytkownik moe otworzy plik\n" CANNOT_FORK "nieudana prba fork polecenia _%s_\n" WAIT_FAILED "bd podczas oczekiwania na proces potomny _%s_\n" GOT_WRONG_PID "bardzo dziwne..., otrzymano zy pid podczas oczekiwania na proces potomny\n" CHILD_TERMINATED_ABNORMALLY "bd krytyczny: polecenie _%s_ zakoczone nieprawidowo\n" IDENTICAL "Strona podrcznika %s jest identyczna jak %s\n" MAN_FOUND "Znaleziono stron(y) podrcznika:\n" NO_TROFF "bd: nie podano polecenia TROFF w %s\n" NO_CAT_FOR_NONSTD_LL "strona cat nie zostaa zapisana z powodu niestandardowej dugoci linii\n" BROWSER_IS "\nuywanie %s jako przegldarki\n" HTMLPAGER_IS "\nuywanie %s do zrzucania stron HTML jako tekst" FOUND_FILE "manfile_from_sec_and_dir() znalaza %s\n" CALLTRACE1 "manfile_from_sec_and_dir(dir=%s, sec=%s, name=%s, flags=0x%0x)\n" CALLTRACE2 "glob_for_file(dir=%s, sec=%s, name=%s, type=0x%0x, ...)\n" NO_MATCH "glob_for_file nie znalaza adnych dopasowa.\n" GLOB_FOR_FILE "glob_for_file zwrcia %s.\n" CALLTRACE3 "glob_for_file_ext_glob(dir=%s, sec=%s, name=%s, ext=%s, hpx=%s, glob=%d, type=0x%0x);\n" ABOUT_TO_GLOB "glob_for_file_ext_glob rozwinie %s\n" man-1.6g/msgs/mess.fr0000644000175000001440000001441010401001514014251 0ustar lucifredusersBAD_CONFIG_FILE "impossible d'interprter le fichier %s\n" CONFIG_OPEN_ERROR "Attention: impossible d'ouvrir le fichier de configuration %s\n" PARSE_ERROR_IN_CONFIG "Erreur pendant l'analyse du fichier de configuration\n" INCOMPAT "options %s et %s incompatibles\n" NO_ALTERNATE "Dsol - pas de support pour d'autre systmes de pages\n" NO_COMPRESS "Man a t compil de sorte qu'il ralise la compression automatique\n\ des pages formates, mais le fichier de configuration ne contient pas\n\ la dfinition du compacteur (COMPRESS).\n" NO_NAME_FROM_SECTION "Quelle page de manuel de la section %s dsirez-vous consulter ?\n" NO_NAME_NO_SECTION "Quelle page de manuel dsirez-vous consulter ?\n" NO_SUCH_ENTRY_IN_SECTION "Il n'y a pas d'entre %s dans la section %s du manuel.\n" NO_SUCH_ENTRY "Il n'y a pas de page de manuel pour %s.\n" PAGER_IS "\nutilisation de %s pour la consultation\n" SYSTEM_FAILED "Erreur pendant l'excution du formatage ou de l'affichage.\n\ Le systme retourne pour %s l'erreur %d.\n" VERSION "%s, version %s\n\n" OUT_OF_MEMORY "Plus assez de mmoire - impossible d'allouer %d octets\n" ROFF_CMD_FROM_FILE_ERROR "Erreur pendant l'interprtation *roff du fichier %s\n" MANROFFSEQ_ERROR "Erreur dans MANROFFSEQ. Utilisation du choix par dfaut.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Erreur pendant l'interprtation *roff sur la ligne de commandes.\n" UNRECOGNIZED_LINE "Ligne %s non reconnue dans le fichier de configuration (ignore).\n" GETVAL_ERROR "man-config.c : erreur interne : chane %s non trouve\n" FOUND_MANDIR "trouv le rpertoire man %s\n" FOUND_MAP "trouv la correspondance %s --> %s\n" FOUND_CATDIR "le rpertoire cat correspondant est %s\n" LINE_TOO_LONG "Ligne trop longue dans le fichier de configuration\n" SECTION "\nsection: %s\n" UNLINKED "supprim %s\n" GLOBBING "expansion de %s\n" EXPANSION_FAILED "Tentative [%s] d'expansion de la page de manuel infructueuse" OPEN_ERROR "Impossible d'ouvrir la page de manuel %s\n" READ_ERROR "Erreur de lecture de la page de manuel %s\n" FOUND_EQN "directive eqn(1) rencontre\n" FOUND_GRAP "directive grap(1) rencontre\n" FOUND_PIC "directive pic(1) rencontre\n" FOUND_TBL "directive tbl(1) rencontre\n" FOUND_VGRIND "directive vgrind(1) rencontre\n" FOUND_REFER "directive refer(1) rencontre\n" ROFF_FROM_COMMAND_LINE "analyse des directives depuis la ligne de commandes\n" ROFF_FROM_FILE "analyse des directives depuis le fichier %s\n" ROFF_FROM_ENV "analyse des directives depuis l'environnement\n" USING_DEFAULT "utilisation squence prprocesseur par dfaut\n" PLEASE_WAIT "Formatage de la page en cours, patientez...\n" CHANGED_MODE "changement du mode %s %o\n" CAT_OPEN_ERROR "Impossible d'ouvrir %s en criture.\n" PROPOSED_CATFILE "nous tenterons d'crire %s si besoin est\n" IS_NEWER_RESULT "statut de is_newer() = %d\n" TRYING_SECTION "essai section %s\n" SEARCHING "\nrecherche dans %s\n" ALREADY_IN_MANPATH "mais %s est dj dans le chemin de recherche\n" CANNOT_STAT "Attention: impossible de tester le fichier %s !\n" IS_NO_DIR "Attention: %s n'est pas un rpertoire !\n" ADDING_TO_MANPATH "ajout de %s au chemin de recherche\n" PATH_DIR "\npath directory %s " IS_IN_CONFIG "est dans le fichier de configuration\n" IS_NOT_IN_CONFIG "n'est pas dans le fichier de configuration\n" MAN_NEARBY "mais il y a un rpertoire de manuel pas loin\n" NO_MAN_NEARBY "et nous ne trouvons pas de rpertoire de manuel dans le coin\n" ADDING_MANDIRS "\najout des rpertoires de manuel obligatoires\n\n" CATNAME_IS "dans convert_to_cat (), cat_name vaut: %s\n" NO_EXEC "\nn'excute pas la commande:\n %s\n" USAGE1 "syntaxe: %s [-adfhktwW] [section] [-M chemin] [-P visu] [-S liste]\n\t" USAGE2 " [-m systme] " USAGE3 "[-p chane] nom ...\n\n" USAGE4 " a : rechercher toutes les entres correspondantes\n\ c : ne pas utiliser de fichier cat\n\ d : afficher une floppe d'informations de dbogage\n\ D : comme -d, mais afficher aussi les pages\n\ f : quivalent whatis(1)\n\ h : afficher ce message d'aide\n\ k : quivalent apropos(1)\n" K : rechercher une chane dans toutes les pages\n" USAGE5 " t : utilise troff pour le formatage des pages\n" USAGE6 "\ w : indiquer l'emplacement des pages de manuel qui seraient affiches\n\ (si aucun nom n'est donn, afficher les rpertoires qui seraient scruts)\n\ W : comme -w, mais n'afficher que les noms de fichiers\n\n\ C fichier : prendre fichier comme fichier de configuration\n\ M chemin : positionner le chemin de recherche des pages chemin \n\ P visu : utiliser le programme visu pour afficher les pages\n\ S liste : liste de sections spares par des deux points\n" USAGE7 " m systme : rechercher d'autres systmes de pages de manuel\n" USAGE8 " p chane : la chane dtermine les prprocesseurs employer\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "et l'utilisateur rel ne peut pas non plus ouvrir le fichier format\n" USER_CAN_OPEN_CAT "mais l'utilisateur rel peut ouvrir le fichier format\n" CANNOT_FORK "erreur lors du fork() de la commande _%s_\n" WAIT_FAILED "erreur lors de l'attente du fils _%s_\n" GOT_WRONG_PID "trs bizarre... rcupr le mauvais pid lors de l'attente de mon fils\n" CHILD_TERMINATED_ABNORMALLY "erreur fatale: la commande _%s_ s'est termine anormalement\n" IDENTICAL "La page de manuel %s est identique %s\n" MAN_FOUND "Trouv la (les) page(s):\n" NO_TROFF "erreur: aucune commande TROFF spcifie dans %s\n" NO_CAT_FOR_NONSTD_LL "pas de page cat enregistre en raison d'une taille de ligne non standard\n" BROWSER_IS "\nutilisation de %s comme navigateur\n" HTMLPAGER_IS "\nutilisation de %s pour transformer les pages HTML en texte\n" FOUND_FILE "manfile_from_sec_and_dir() a trouv %s\n" CALLTRACE1 "manfile_from_sec_and_dir(rp=%s, sec=%s, nom=%s, flags=0x%0x)\n" CALLTRACE2 "glob_for_file(rp=%s, sec=%s, nom=%s, type=0x%0x, ...)\n" NO_MATCH "glob_for_file n'a pas trouv de correspondance.\n" GLOB_FOR_FILE "glob_for_file renvoie %s.\n" CALLTRACE3 "glob_for_file_ext_glob(rp=%s, sec=%s, nom=%s, ext=%s, hpx=%s, glob=%d, type=0x%0x);\n" ABOUT_TO_GLOB "glob_for_file_ext_glob dveloppera %s\n" man-1.6g/msgs/mess.es0000644000175000001440000001245510301736016014273 0ustar lucifredusersBAD_CONFIG_FILE "imposible entender el fichero %s\n" CONFIG_OPEN_ERROR "Aviso: imposible abrir el fichero de configuracin %s\n" PARSE_ERROR_IN_CONFIG "Error en el fichero de configuracin\n" INCOMPAT "opciones %s y %s incompatibles\n" NO_ALTERNATE "Perdn - el programa no soporta sistemas alternativos\n" NO_COMPRESS "Man automticamente trata de comprimir las pginas, pero\n\ en el fichero de configuracin no se define COMPRESS.\n" NO_NAME_FROM_SECTION "Qu pgina de manual de la seccin %s desea?\n" NO_NAME_NO_SECTION "Qu pgina de manual desea?\n" NO_SUCH_ENTRY_IN_SECTION "No hay ninguna pgina sobre %s en la seccin %s\n" NO_SUCH_ENTRY "No hay ninguna pgina sobre %s\n" PAGER_IS "\nusando %s como paginador\n" SYSTEM_FAILED "Error de preparacin o visualizacin del manual.\n\ El comando %s termin con el error %d.\n" VERSION "%s, versin %s\n\n" OUT_OF_MEMORY "Memoria agotada - imposible obtener %d bytes\n" ROFF_CMD_FROM_FILE_ERROR "Error en el procesamiento *roff del fichero %s\n" MANROFFSEQ_ERROR "Error procesano MANROFFSEQ. Usando opciones por omisin.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Error en el procesamiento *roff de la lnea de comandos.\n" UNRECOGNIZED_LINE "Lnea desconocida en el fichero de configuracin (ignorada)\n%s\n" GETVAL_ERROR "man-config.c: error interno: no se encuentra la cadena %s\n" FOUND_MANDIR "encontrado el directorio del manual %s\n" FOUND_MAP "encontrada la correspondencia %s --> %s\n" FOUND_CATDIR "el catdir correspondiente es %s\n" LINE_TOO_LONG "Lnea demasiado larga en el fichero de configuracin\n" SECTION "\nseccin: %s\n" UNLINKED "%s eliminado\n" GLOBBING "expandiendo %s\n" EXPANSION_FAILED "Tentativa [%s] de descomprimir el manual fallida\n" OPEN_ERROR "Imposible abrir la pgina sobre %s\n" READ_ERROR "Error durante la lectura de la pgina sobre %s\n" FOUND_EQN "encontrada la directiva eqn(1)\n" FOUND_GRAP "encontrada la directiva grap(1)\n" FOUND_PIC "encontrada la directiva pic(1)\n" FOUND_TBL "encontrada la directiva tbl(1)\n" FOUND_VGRIND "encontrada la directiva vgrind(1)\n" FOUND_REFER "encontrada la directiva refer(1)\n" ROFF_FROM_COMMAND_LINE "procesando directiva en la lnea de comandos\n" ROFF_FROM_FILE "procesando directiva en el fichero %s\n" ROFF_FROM_ENV "procesando directiva en el entorno\n" USING_DEFAULT "usando la secuencia de preprocesadores por omisin\n" PLEASE_WAIT "Dando formato a la pgina, espere por favor...\n" CHANGED_MODE "cambio del modo %s a %o\n" CAT_OPEN_ERROR "Imposible escribir en %s.\n" PROPOSED_CATFILE "si es necesario se intentar escribir en %s\n" IS_NEWER_RESULT "resultado de is_newer() = %d\n" TRYING_SECTION "probando en la seccin %s\n" SEARCHING "\nbuscando en %s\n" ALREADY_IN_MANPATH "pero %s ya est en la ruta de bsqueda del manual\n" CANNOT_STAT "Aviso: no vale el fichero %s!\n" IS_NO_DIR "Aviso: %s no es un directorio!\n" ADDING_TO_MANPATH "aadiendo %s a la ruta de bsqueda del manual\n" PATH_DIR "\ndirectorio %s de la ruta" IS_IN_CONFIG "est en el fichero de configuracin\n" IS_NOT_IN_CONFIG "no est en el fichero de configuracin\n" MAN_NEARBY "pero existe un directorio del manual cercano\n" NO_MAN_NEARBY "y no se encontr cerca ningn directorio del manual\n" ADDING_MANDIRS "\naadiendo los directorios de man obligatorios\n\n" CATNAME_IS "cat_name de convert_to_cat () vale: %s\n" NO_EXEC "\nomitiendo el comando:\n %s\n" USAGE1 "uso: %s [-adfhktwW] [seccin] [-M ruta] [-P paginador] [-S lista]\n\t" USAGE2 "[-m sistema] " USAGE3 "[-p cadena] nombre ...\n\n" USAGE4 " a : buscar todas las entradas coincidentes\n\ c : no usar las pginas preprocesadas\n\ d : mostrar informacin adicional para depuracin de fallos\n\ D : igual que -d, pero mostrando tambin las pginas\n\ f : iqual que whatis(1)\n\ h : mostrar estos mensajes de ayuda\n\ k : igual que apropos(1)\n\ K : buscar una cadena en todas las pginas del manual\n" USAGE5 " t : usar troff para preparar las pginas solicitadas\n" USAGE6 "\ w : mostrar la ubicacin de las pginas solicitadas\n\ (sin argumento: mostar todos los directorios utilizados)\n\ W : igual que -w, pero mostrando slo nombres de ficheros\n\n\ C fichero : usar fichero de configuracin alternativo\n\ M ruta : establecer la ruta de busqueda de pginas\n\ P paginador : usar paginador para ver las pginas\n\ S lista : lista de secciones (separadas por dos puntos)\n" USAGE7 " m sistema : buscar manuales para el sistema indicado\n" USAGE8 " p cadena : preprocesamiento a efectuar\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "y el usuario real tampoco puede abrir el fichero preprocesado\n" USER_CAN_OPEN_CAT "pero el usuario real s puede abrir el fichero preprocesado\n" CANNOT_FORK "error al lanzar el comando _%s_\n" WAIT_FAILED "error durante la espera del proceso hijo _%s_\n" GOT_WRONG_PID "extrao... pid incorrecto mientras esperaba un proceso hijo\n" CHILD_TERMINATED_ABNORMALLY "error fatal: _%s_ termin anormalmente\n" IDENTICAL "La pgina de manual sobre %s es idntica a la de %s\n" MAN_FOUND "Encontrada la(s) pgina(s):\n" NO_TROFF "error: no se especifica ningn comando TROFF en %s\n" NO_CAT_FOR_NONSTD_LL "eliminada pgina preformateada con lneas de dimensin no estndar\n" man-1.6g/msgs/mess.it0000644000175000001440000001371510401001534014267 0ustar lucifredusersBAD_CONFIG_FILE "incapace di comprendere il file %s\n" CONFIG_OPEN_ERROR "Attenzione: impossibile aprire il file di configurazione %s\n" PARSE_ERROR_IN_CONFIG "Errore nell'analisi del file di configurazione\n" INCOMPAT "opzioni incompatibili %s e %s\n" NO_ALTERNATE "Spiacente - supporto per sistemi alternativi compilato mancante\n" NO_COMPRESS "Man stato compilato con la compressione automatica delle pagine \ cat,\nma il file di configurazione non definisce COMPRESS.\n" NO_NAME_FROM_SECTION "Quale pagina di guida vuoi dalla sezione %s?\n" NO_NAME_NO_SECTION "Quale pagina di guida vuoi?\n" NO_SUCH_ENTRY_IN_SECTION "Non c' la voce %s nella sezione %s del manuale\n" NO_SUCH_ENTRY "Non c' una voce per %s\n" PAGER_IS "\nuso %s come visualizzatore\n" SYSTEM_FAILED "Errore nell'esecuzione del comando di formattazione o visualizzazione.\n\ Il comando &s uscito con lo stato %d.\n" VERSION "%s, versione %s\n\n" OUT_OF_MEMORY "Memoria insufficiente - impossibile allocare %d byte\n" ROFF_CMD_FROM_FILE_ERROR "Errore analizzando comandi *roff dal file %s\n" MANROFFSEQ_ERROR "Errore analizzando MANROFFSEQ. Uso le impostazioni di default del sistema.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Errore analizzando comandi *roff dalla linea di comando.\n" UNRECOGNIZED_LINE "Linea non riconosciuta nel file di configurazione (ignorata)\n%s\n" GETVAL_ERROR "man-config.c: errore interno: stringa %s non trovata\n" FOUND_MANDIR "trovata la directory man %s\n" FOUND_MAP "trovata la mappa manpath %s --> %s\n" FOUND_CATDIR "la catdir corrispondente %s\n" LINE_TOO_LONG "Linea troppo lunga nel file di configurazione\n" SECTION "\nsezione: %s\n" UNLINKED "%s non collegata\n" GLOBBING "espandendo %s\n" EXPANSION_FAILED "Tentativo [%s] di espansione della pagina di guida fallito\n" OPEN_ERROR "Impossibile aprire la pagina di guida %s\n" READ_ERROR "Errore leggendo la pagina di guida %s\n" FOUND_EQN "trovata la direttiva eqn(1)\n" FOUND_GRAP "trovata la direttiva grap(1)\n" FOUND_PIC "trovata la direttiva pic(1)\n" FOUND_TBL "trovata la direttiva tbl(1)\n" FOUND_VGRIND "trovata la direttiva vgrind(1)\n" FOUND_REFER "trovata la direttiva refer(1)\n" ROFF_FROM_COMMAND_LINE "analisi della direttiva da linea di comando\n" ROFF_FROM_FILE "analisi della direttiva dal file %s\n" ROFF_FROM_ENV "analisi della direttiva dall'ambiente\n" USING_DEFAULT "uso della sequenza di default dei preprocessori\n" PLEASE_WAIT "Formattazione pagina, attendere prego...\n" CHANGED_MODE "impostazioni dei permessi di %s a %o\n" CAT_OPEN_ERROR "Impossibile aprire %s in scrittura.\n" PROPOSED_CATFILE "tenter di scrivere %s se necessario\n" IS_NEWER_RESULT "situazione da is_newer() = %d\n" TRYING_SECTION "provando la sezione %s\n" SEARCHING "\nricerca in %s\n" ALREADY_IN_MANPATH "ma %s gi in manpath\n" CANNOT_STAT "Attenzione: impossibile controllare il file %s!\n" IS_NO_DIR "Attenzione: %s non una directory!\n" ADDING_TO_MANPATH "aggiunto %s a manpath\n" PATH_DIR "\npercorso directory %s " IS_IN_CONFIG " nel file di configurazione\n" IS_NOT_IN_CONFIG "non nel file di configurazione\n" MAN_NEARBY "ma c' una directory man vicina\n" NO_MAN_NEARBY "e non sono state trovate directory man vicine\n" ADDING_MANDIRS "\naggiunte directory man\n\n" CATNAME_IS "cat_name in convert_to_cat () : %s\n" NO_EXEC "\ncomando non in esecuzione:\n %s\n" USAGE1 "uso: %s [-adfhktwW] [sezione] [-M percorso] [-P paginatore] [-S list]\n\t" USAGE2 "[-m sistema] " USAGE3 "[-p stringa] nome ...\n\n" USAGE4 " a : trova tutte le voci corrispondenti\n\ c : non usa il file cat (formattato)\n\ d : stampa informazioni di debug\n\ D : come -d, ma mostra anche la pagina\n\ f : come whatis(1)\n\ h : stampa questo messaggio di aiuto\n\ k : come apropos(1)\n\ K : cerca una stringa in tutte le pagine di guida\n" USAGE5 " t : usa troff per formattare le pagine per la stampa\n" USAGE6 "\ w : stampa la posizione delle pagine di guida che saranno mostrate\n\ (se non dato nessun nome: stampa le directory di ricerca)\n\ W : come -w, ma mostra solo i filename\n\n\ C file : usa `file' come file di configurazione\n\ M percorso : imposta il percorso di ricerca per le pagine a `percorso'\n\ P paginatore : usa il programma `paginatore' per mostrare le pagine\n\ S lista : lista di sezioni separate dal carattere due punti\n" USAGE7 " m sistema : cerca pagine di guida per sistemi alternativi\n" USAGE8 " p stringa : la stringa comunica quale preprocessore eseguire\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "e l'utente reale non pu aprire neanche il file formattato\n" USER_CAN_OPEN_CAT "ma l'utente reale pu aprire il file formattato\n" CANNOT_FORK "fallito il fork del comando _%s_\n" WAIT_FAILED "errore nell'attesa del processo figlio _%s_\n" GOT_WRONG_PID "molto strano..., ottenuto un pid errato nell'attesa di un mio\n\ processo figlio\n" CHILD_TERMINATED_ABNORMALLY "errore fatale: il comando _%s_ terminato in modo non normale\n" IDENTICAL "La pagina di guida %s identica a %s\n" MAN_FOUND "Trovate la(le) pagina(e) di guida:\n" NO_TROFF "errore: nessun comando TROFF specificato in %s\n" NO_CAT_FOR_NONSTD_LL "nessuna pagina formattata registrata a causa di una lunghezza di\n\ linea non standard\n" BROWSER_IS "\nutilizzando %s come browser\n" HTMLPAGER_IS "\nimpiegando %s per convertire pagine HTML in puro testo\n" FOUND_FILE "manfile_from_sec_and_dir() ha trovato %s\n" CALLTRACE1 "manfile_from_sec_and_dir(dir=%s, sec=%s, name=%s, flags=0x%0x)\n" CALLTRACE2 "glob_for_file(dir=%s, sec=%s, name=%s, type=0x%0x, ...)\n" NO_MATCH "glob_for_file non ha trovato alcuna corrispondenza.\n" GLOB_FOR_FILE "glob_for_file ha restituito %s.\n" CALLTRACE3 "glob_for_file_ext_glob(dir=%s, sec=%s, name=%s, ext=%s, hpx=%s, glob=%d, type=0x%0x);\n" ABOUT_TO_GLOB "glob_for_file_ext_glob espander %s\n" man-1.6g/msgs/mess.fi0000644000175000001440000001166010301736016014257 0ustar lucifredusersBAD_CONFIG_FILE "en ymmrr tiedoston %s formaattia\n" CONFIG_OPEN_ERROR "Varoitus: en voi avata konfigurointitiedostoa %s\n" PARSE_ERROR_IN_CONFIG "Virhe tulkittaessa konfigurointitiedostoa\n" INCOMPAT "epyhteensopivat optiot %s ja %s\n" NO_ALTERNATE "Valitan - vaihtoehtoisille jrjestelmille ei ole knnetty tukea\n" NO_COMPRESS "Man on knnetty automaattisella cat-sivujen pakkauksella,\n\ mutta konfigurointitiedostossa ei ole COMPRESS-mrittely.\n" NO_NAME_FROM_SECTION "Mink man-sivun haluat sektiosta %s?\n" NO_NAME_NO_SECTION "Mink man-sivun haluat?\n" NO_SUCH_ENTRY_IN_SECTION "Ei sivua %s sektiossa %s\n" NO_SUCH_ENTRY "Man-sivua %s ei lydy\n" PAGER_IS "\nkytn ohjelmaa %s selaajana\n" SYSTEM_FAILED "Virhe muotoilu- tai nyttkomentoa suorittaessa.\n\ Jrjestelmn komento %s antoi paluuarvon %d.\n" VERSION "%s, versio %s\n\n" OUT_OF_MEMORY "Muisti loppu - malloc %d tavua eponnistui\n" ROFF_CMD_FROM_FILE_ERROR "Virhe tulkitessa *roff-komentoa tiedostossa %s\n" MANROFFSEQ_ERROR "Virhe tulkittaessa MANROFFSEQ:a. Kytn jrjestelmn oletuksia.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Virhe tulkitessa *roff-komentoa komentorivilt.\n" UNRECOGNIZED_LINE "Tunetematon rivi konfigurointitiedostossa (ohitan)\n%s\n" GETVAL_ERROR "man-config.c: sisinen virhe: merkkijonoa %s ei lydy\n" FOUND_MANDIR "lysin man-hakemiston %s\n" FOUND_MAP "lysin manpath linkin %s --> %s\n" FOUND_CATDIR "vastaava catdir on %s\n" LINE_TOO_LONG "Rivi liian pitk konfigurointitiedostossa\n" SECTION "\nsektio: %s\n" UNLINKED "linkittmtn %s\n" GLOBBING "globbing %s\n" EXPANSION_FAILED "Yritys [%s] purkaa man-sivua eponnistui\n" OPEN_ERROR "En voi avata man-sivua %s\n" READ_ERROR "Virhe luettaessa man-sivua %s\n" FOUND_EQN "lysin eqn(1) direktiivin\n" FOUND_GRAP "lysin grap(1) direktiivin\n" FOUND_PIC "lysin pic(1) direktiivin\n" FOUND_TBL "lysin tbl(1) direktiivin\n" FOUND_VGRIND "lysin vgrind(1) direktiivin\n" FOUND_REFER "lysin refer(1) direktiivin\n" ROFF_FROM_COMMAND_LINE "tulkitessa direktiivi komentorivilt\n" ROFF_FROM_FILE "tulkitessa direktiivi tiedostosta %s\n" ROFF_FROM_ENV "tulkitessa direktiivi ympristmuuttujasta\n" USING_DEFAULT "kytn oletusesiksittelijn vaihetta\n" PLEASE_WAIT "Muotoilen sivua, odota...\n" CHANGED_MODE "muutin %s:n moodia %o:ksi\n" CAT_OPEN_ERROR "En voinut avata %s:a kirjoitusta varten.\n" PROPOSED_CATFILE "yritn kirjoittaa %s tarvittaessa\n" IS_NEWER_RESULT "tila funktiosta is_newer() = %d\n" TRYING_SECTION "yritn sektiota %s\n" SEARCHING "\nhaen %s:sta\n" ALREADY_IN_MANPATH "mutta %s on jo manpath:ssa\n" CANNOT_STAT "Varoitus: cannot stat file %s!\n" IS_NO_DIR "Varoitus: %s ei ole hakemisto!\n" ADDING_TO_MANPATH "lisn %s:n manpath:iin\n" PATH_DIR "\npolku hakemisto %s " IS_IN_CONFIG "on konfigurointitiedostossa\n" IS_NOT_IN_CONFIG "ei ole konfigurointitiedostossa\n" MAN_NEARBY "mutta man-hakemisto on lhell\n" NO_MAN_NEARBY "ja man-hakemistoa ei lytynut lhelt\n" ADDING_MANDIRS "\nlisn pakolliset man-hakemistot\n\n" CATNAME_IS "cat_name funktiossa convert_to_cat () on: %s\n" NO_EXEC "\nen suorita komentoa:\n %s\n" USAGE1 "kytt: %s [-adfhktwW] [sektio] [-M polku] [-P selaaja] [-S lista]\n\t" USAGE2 "[-m jrjestelm] " USAGE3 "[-p merkkijono] nimi ...\n\n" USAGE4 " a : etsi kaikki soveltuvat kohdat\n\ c : l kyt cat-tiedostoa\n\ d : tulosta paljon virheenetsinttietoja\n\ D : sama kuin -d, mutta nyt mys sivut\n\ f : sama kuin whatis(1)\n\ h : tulosta tm ohjeteksti\n\ k : sama kuin apropos(1)\n\ K : etsi merkkijonoa kaikilta sivuilta\n" USAGE5 " t : kyt troff-ohjelmaa paperitulostuksen muotoiluun\n" USAGE6 "\ w : tulosta man-sivujen sijainto, jotka nytettisiin\n\ (jos ei anneta nime: tulosta hakemistot, joista etsittisiin)\n\ W : sama kuin -w, mutta tulosta vain tiedostonimet\n\n\ C tiedosto : kyt `tiedosto' konfigurointitiedostona\n\ M polku : kyt man-sivujen hakupolkuna `polku'\n\ P selaaja : kyt ohjelmaa `selaaja' sivujen nyttn\n\ S lista : puolipistein erotettu sektioiden lista\n" USAGE7 " m jrjestelm : etsi vaihtoehtoisen jrjestelmn man-sivuja\n" USAGE8 " p merkkijono : merkkijono kertoo, mit esiksittelij kytetn\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "ja oikea kyttjkn ei voi avata cat-tiedostoa\n" USER_CAN_OPEN_CAT "mutta oikea kyttj voi avata cat-tiedoston\n" CANNOT_FORK "komennon _%s_ kynnistys fork-kutsulla eponnistui\n" WAIT_FAILED "virhe odottaessa lapsiprosessia _%s_\n" GOT_WRONG_PID "hyvin outoa ..., sain vrn pid:n odottaessa lapsiprosessia\n" CHILD_TERMINATED_ABNORMALLY "vakava virhe: komento _%s_ pttyi virheeseen\n" IDENTICAL "man-sivu %s on sama kuin %s\n" MAN_FOUND "Lysin man-sivuja:\n" NO_TROFF "virhe: TROFF-komentoa ei mritelty %s:ssa\n" NO_CAT_FOR_NONSTD_LL "cat-sivua ei talletettu eptavallisen rivipituuden takia\n" man-1.6g/msgs/mess.sl0000644000175000001440000001201010301736016014265 0ustar lucifredusersBAD_CONFIG_FILE "Napake v nastavitveni datoteki %s\n" CONFIG_OPEN_ERROR "Pozor: nastavitveni datoteke %s ni mo odpreti\n" PARSE_ERROR_IN_CONFIG "Napake pri razlembi nastavitvene datoteke\n" INCOMPAT "Izbiri %s in %s sta nezdruljivi\n" NO_ALTERNATE "Sorry - Podpora za alternativne sisteme ni vgrajena\n" NO_COMPRESS "Man je bil preveden z izbiro za avtomatino stiskanje oblikovanih\n\ strani prironika, nastavitvena datoteka pa ne definira\n\ spremenljivke COMPRESS.\n" NO_NAME_FROM_SECTION "Katero stran prironika iz poglavja %s elite?\n" NO_NAME_NO_SECTION "Katero stran prironika elite?\n" NO_SUCH_ENTRY_IN_SECTION "Strani za %s ni v poglavju %s\n" NO_SUCH_ENTRY "Strani za %s ni\n" PAGER_IS "\nuporabljano %s za prikaz\n" SYSTEM_FAILED "Napaka pri izvajanju ukaza za oblikovanje ali prikaz.\n\ Ukaz %s se je konal s statusom %d.\n" VERSION "%s, verzija %s\n\n" OUT_OF_MEMORY "Zmanjkalo pomnilnika - ni mogoe alocirati %d bytov\n" ROFF_CMD_FROM_FILE_ERROR "Napaka pri razlembi ukazov *roff iz datoteke %s\n" MANROFFSEQ_ERROR "Napaka pri razlembi MANROFFSEQ. Uporabili bomo privzete vrednosti.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Napaka pri razlembi ukazov *roff iz ukazne vrstice.\n" UNRECOGNIZED_LINE "Neprepoznana vrstica v nastavitveni datoteki (ignorirano)\n%s\n" GETVAL_ERROR "man-config.c: interna napaka: niza %s ni\n" FOUND_MANDIR "najden imenik s prironiki %s\n" FOUND_MAP "najdena pot do imenika s prironiki %s --> %s\n" FOUND_CATDIR "pripadajoi imenik z oblikovanimi dokumenti je %s\n" LINE_TOO_LONG "Predolga vrstica v nastavitveni datoteki\n" SECTION "\npoglavje : %s\n" UNLINKED "unlinked %s\n" GLOBBING "globbing %s\n" EXPANSION_FAILED "Poskus [%s] ekspandiranja strani prironika ni uspel\n" OPEN_ERROR "Ni mono odpreti strani %s\n" READ_ERROR "Napaka pri branju strani %s\n" FOUND_EQN "Najdena eqn(1) direktiva\n" FOUND_GRAP "Najdena grap(1) direktiva\n" FOUND_PIC "Najdena pic(1) direktiva\n" FOUND_TBL "Najdena tbl(1) direktiva\n" FOUND_VGRIND "Najdena vgrind(1) direktiva\n" FOUND_REFER "Najdena refer(1) direktiva\n" ROFF_FROM_COMMAND_LINE "Razlenjujemo direktive iz ukazne vrstice\n" ROFF_FROM_FILE "Razlenjujemo direktive iz datoteke %s\n" ROFF_FROM_ENV "Razlenjujemo direktive iz okolja\n" USING_DEFAULT "Uporabljamo privzeto zaporedje predprocesiranja\n" PLEASE_WAIT "Oblikujem stran, prosim poakajte...\n" CHANGED_MODE "Zaita %s spremenjena na %o\n" CAT_OPEN_ERROR "Ni mono odpreti %s za pisanje.\n" PROPOSED_CATFILE "poskusili bomo pisati na %s, e bo potrebno\n" IS_NEWER_RESULT "status iz is_newer() = %d\n" TRYING_SECTION "Poskuamo poglavje %s\n" SEARCHING "\niemo v %s\n" ALREADY_IN_MANPATH "%s je e v MANPATH\n" CANNOT_STAT "Pozor: stat() na datoteki %s ni moen!\n" IS_NO_DIR "Pozor: %s ni imenik!\n" ADDING_TO_MANPATH "%s dodan v manpath\n" PATH_DIR "\npot(-i) do imenika %s " IS_IN_CONFIG "je v nastavitveni datoteki\n" IS_NOT_IN_CONFIG "ni v nastavitveni datoteki,\n" MAN_NEARBY "pa pa je blizu imenik s prironiki\n" NO_MAN_NEARBY "niti ni blizu imenika s prironiki\n" ADDING_MANDIRS "\ndodamo obvezne imenike s prironiki\n\n" CATNAME_IS "cat_name v convert_to_cat () je: %s\n" NO_EXEC "\nneizvedeni ukaz:\n %s\n" USAGE1 "uporaba: %s [-adfhktwW] [poglavje] [-M pot] [-P paginator] [-S seznam_poglavij]\n\t" USAGE2 "[-m sistem] " USAGE3 "[-p niz] ime ...\n\n" USAGE4 " a : strani s tem imenom v vseh poglavjih\n\ c : ponovno oblikovanje strani\n\ d : \"debugging\" informacije\n\ D : kot -d, zraven prikai e oblikovane strani\n\ f : isto kot whatis(1)\n\ h : ta navodila\n\ k : isto kot apropos(1)\n\ K : ii niz po vseh straneh\n" USAGE5 " t : s troff pripravi stran za tisk\n" USAGE6 "\ w : pot do strani prironika, ki bi bila prikazana\n\ (brez podanega imena: imeniki, v katerih se iejo strani prironika)\n\ W : kot -w, a samo izpis imen datotek\n\n\ C datoteka : uporabi ,datoteko' kot nastavitveno datoteko\n\ M pot : strani prironika naj se iejo v ,poti'\n\ P paginator : uporabi program ,paginator' za prikaz oblikovanih strani\n\ S seznam_poglavij : seznam poglavij, kjer se iejo strani, loen z dvopiji\n" USAGE7 " m sistem : ii strani prironika na drugem sistemu\n" USAGE8 " p niz : niz, ki doloa predprocesorje\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "in dejanski uporabnik tudi ne more odpreti oblikovane datoteke\n" USER_CAN_OPEN_CAT "toda dejanski uporabnik lahko odpre oblikovano datoteko\n" CANNOT_FORK "neuspela vejitev ukaza _%s_\n" WAIT_FAILED "napaka pri akanju na proces potomec _%s_\n" GOT_WRONG_PID "zelo nenavadno..., napaen PID med akanjem na potomca\n" CHILD_TERMINATED_ABNORMALLY "kritina napaka: ukaz _%s_ se ze nenormalno zakljuil\n" IDENTICAL "Stran %s je enaka strani %s\n" MAN_FOUND "Najdene stran(i):\n" NO_TROFF "napaka: ukaz TROFF ni doloen v %s\n" NO_CAT_FOR_NONSTD_LL "oblikovana ni shranjena zaradi nestandardne irine vrstice\n" man-1.6g/msgs/mess.da0000644000175000001440000001216210301736016014243 0ustar lucifredusersBAD_CONFIG_FILE "Konfigurationsfilen er uforstelig\n" CONFIG_OPEN_ERROR "Advarsel: kan ikke bne konfigurationsfilen %s\n" PARSE_ERROR_IN_CONFIG "Fejl ved analyse af konfigurationsfilen\n" INCOMPAT "Inkompatible parametre %s og %s\n" NO_ALTERNATE "Desvrre er der ingen understttelse af alternative systemer\n" NO_COMPRESS "Man var oversat med automatisk komprimering af preformaterede sider,\n\ men konfigurationsfilen definerer ikke COMPRESS.\n" NO_NAME_FROM_SECTION "Hvilken manualside nskes fra kapitel %s?\n" NO_NAME_NO_SECTION "Hvilken manualside nskes?\n" NO_SUCH_ENTRY_IN_SECTION "Intet opslag for %s i kapitel %s af manualen\n" NO_SUCH_ENTRY "Intet opslag for %s\n" PAGER_IS "\nbruger %s til visning af sider\n" SYSTEM_FAILED "Fejl ved udfrsel af formaterings- eller udskriftskommando.\n\ System kommandoen %s returnerede med status %d.\n" VERSION "%s, version %s\n\n" OUT_OF_MEMORY "Ingen ledig hukommelse - kan ikke allokere %d bytes\n" ROFF_CMD_FROM_FILE_ERROR "Fejl ved analyse af *roff kommando fra filen %s\n" MANROFFSEQ_ERROR "Fejl ved analyse af MANROFFSEQ. Bruger derfor systemets normalvrdier.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Fejl ved analyse af *roff kommando fra kommandolinien.\n" UNRECOGNIZED_LINE "Uforstelig linie i konfigurationsfilen (ignoreret)\n%s\n" GETVAL_ERROR "man-config.c: intern fejl: strengen %s er ikke fundet\n" FOUND_MANDIR "har fundet manual katalog %s\n" FOUND_MAP "har fundet mansti map %s --> %s\n" FOUND_CATDIR "korresponderende katalog til preformaterede sider er %s\n" LINE_TOO_LONG "Linien i konfigurationsfilen er for lang\n" SECTION "\nkapitel: %s\n" UNLINKED "unlinked %s\n" GLOBBING "globbing %s\n" EXPANSION_FAILED "Forsg [%s] p at udpakke manualsiden fejlede\n" OPEN_ERROR "Kan ikke bne manualsiden %s\n" READ_ERROR "Fejl ved lsning af manualsiden %s\n" FOUND_EQN "eqn(1) direktiv fundet\n" FOUND_GRAP "grap(1) direktiv fundet\n" FOUND_PIC "pic(1) direktiv fundet\n" FOUND_TBL "tbl(1) direktiv fundet\n" FOUND_VGRIND "vgrind(1) direktiv fundet\n" FOUND_REFER "refer(1) direktiv fundet\n" ROFF_FROM_COMMAND_LINE "analyserer direktiv fra kommandolinien\n" ROFF_FROM_FILE "analyserer direktiv fra filen %s\n" ROFF_FROM_ENV "analyserer direktiv fra parameterblokken\n" USING_DEFAULT "anvender standard preprocessor sekvens\n" PLEASE_WAIT "et jeblik, siden formateres...\n" CHANGED_MODE "fil status for %s ndret til %o\n" CAT_OPEN_ERROR "filen %s kan ikke bnes for skrivning.\n" PROPOSED_CATFILE "vil om ndvendigt skrive filen %s\n" IS_NEWER_RESULT "status fra is_newer() = %d\n" TRYING_SECTION "prver kapitel %s\n" SEARCHING "\nsger i %s\n" ALREADY_IN_MANPATH "men %s er allerede i manualstien\n" CANNOT_STAT "Advarsel: stat() af fil %s er slet fejl!\n" IS_NO_DIR "Advarsel: %s er ikke et katalog!\n" ADDING_TO_MANPATH "tilfjer %s til manualstien\n" PATH_DIR "\nsti katalog %s " IS_IN_CONFIG "findes i konfigurationsfilen\n" IS_NOT_IN_CONFIG "findes ikke i konfigurationsfilen\n" MAN_NEARBY "men der findes et manual katalog i nrheden\n" NO_MAN_NEARBY "intet manual katalog fundet i nrheden\n" ADDING_MANDIRS "\ntilfjer obligatoriske manual kataloger\n\n" CATNAME_IS "cat_name i convert_to_cat () er: %s\n" NO_EXEC "\nudfrer ikke kommando:\n %s\n" USAGE1 "syntaks: %s [-adfhktwW] [kapitel] [-M sti] [-P pager] [-S liste]\n\t" USAGE2 "[-m system] " USAGE3 "[-p streng] opslagsord ...\n\n" USAGE4 " a : find alle matchende opslag\n\ c : brug ikke preformateret side\n\ d : udskriver fejlsgningsinformation\n\ D : som -d, men udskriver ogs siden\n\ f : kvivalent med whatis(1)\n\ h : udskriv denne hjlpetekst\n\ k : kvivalent med apropos(1)\n\ K : sg efter en tekststreng i alle siderne\n" USAGE5 " t : brug troff til formatering af siderne for printer udskrift\n" USAGE6 "\ w : udskriv lokaliteten p manualsiden eller siderne som ville blive vist\n\ (hvis intet navn er givet: udskriv katalogerne der ville blive gennemsgt)\n\ W : som -w, men kun filnavn vises\n\ C fil : anvend `fil' som konfigurationsfil\n\ M sti : set sgestien for manualsiderne til `sti'\n\ P pager : brug programmet `pager' til at vise siderne med\n\ S liste : kolon separeret kapitel liste\n" USAGE7 " m system : gennemsg et alternativt manualside system\n" USAGE8 " p streng : streng angiver hvilken preprocessore som skal udfres\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "og den rigtige bruger kan heller ikke bne den preformaterede side\n" USER_CAN_OPEN_CAT "men den rigtige bruger kan bne den preformaterede side\n" CANNOT_FORK "Afgrening af kommandoen _%s_ er slet fejl\n" WAIT_FAILED "Fejl mens der afventes afslutning af barneproces _%s_\n" GOT_WRONG_PID "Forkert pid returneret mens der afventes afslutning af barneproces\n" CHILD_TERMINATED_ABNORMALLY "fatal fejl: kommandoen _%s_ er afsluttet unormalt\n" IDENTICAL "Manualside %s er identisk med %s\n" MAN_FOUND "Har fundet manualsiden:\n" NO_TROFF "Fejl: ingen TROFF kommando specificeret i %s\n" NO_CAT_FOR_NONSTD_LL "ingen preformateret side er gemt p grund af unormal linielngde\n" man-1.6g/msgs/mess.cs0000644000175000001440000001214310301736016014263 0ustar lucifredusersBAD_CONFIG_FILE "nemohu pochopit obsah souboru %s\n" CONFIG_OPEN_ERROR "Varovn: nemohu otevt konfiguran soubor %s\n" PARSE_ERROR_IN_CONFIG "Chyba v analze konfiguranho souboru\n" INCOMPAT "nekompatibiln volby %s a %s\n" NO_ALTERNATE "Promite, ale podpora pro jin systmy nebyla zkompilovna\n" NO_COMPRESS "Man byl konfigurovn pro automatickou kompresi formtovanch strnek,\n\ ale konfiguran soubor nedefinuje COMPRESS.\n" NO_NAME_FROM_SECTION "Kterou manulovou strnku ze sekce %s chcete?\n" NO_NAME_NO_SECTION "Kterou manulovou strnku chcete?\n" NO_SUCH_ENTRY_IN_SECTION "dn zznam o strnce %s v sekci %s manulu\n" NO_SUCH_ENTRY "dn zznam pro %s\n" PAGER_IS "\npouvm %s jako strnkova\n" SYSTEM_FAILED "Nastala chyba pi sputn formtovacho nebo zobrazovacho pkazu.\n\ Pkaz %s skonil a vrtil chybovou hodnotu %d.\n" VERSION "%s, verze %s\n\n" OUT_OF_MEMORY "Nedostatek pamti - nemohu alokovat %d byt\n" ROFF_CMD_FROM_FILE_ERROR "Chyba pi analze *roff pkazu v souboru %s\n" MANROFFSEQ_ERROR "Chybn analza MANROFFSEQ. Pouiji systmov standard.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Chyba pi analze *roff pkazu z pkazov dky.\n" UNRECOGNIZED_LINE "Nerozpoznal jsem dek v konfiguranm souboru (ignoruji jej)\n%s\n" GETVAL_ERROR "man-config.c: vnitn chyba: etzec %s nebyl nalezen\n" FOUND_MANDIR "nael jsem manulov adres %s\n" FOUND_MAP "nalezen manulov cesta je mapovna jako %s --> %s\n" FOUND_CATDIR "odpovdajc adres zformtovanch strnek je %s\n" LINE_TOO_LONG "Pli dlouh dek v konfiguranm souboru\n" SECTION "\nsekce: %s\n" UNLINKED "nespojeno %s\n" GLOBBING "provdm nahrazovn %s\n" EXPANSION_FAILED "Pokus [%s] o formtovn manulov strnky selhal\n" OPEN_ERROR "Nemohu otevt manulovou strnku %s\n" READ_ERROR "Chyba pi ten manulov strnky %s\n" FOUND_EQN "nalezen pkaz pro eqn(1)\n" FOUND_GRAP "nalezen pkaz pro grap(1)\n" FOUND_PIC "nalezen pkaz pro pic(1)\n" FOUND_TBL "nalezen pkaz pro tbl(1)\n" FOUND_VGRIND "nalezen pkaz pro vgrind(1)\n" FOUND_REFER "nalezen pkaz pro refer(1)\n" ROFF_FROM_COMMAND_LINE "analyzuji pkazy z pkazov dky\n" ROFF_FROM_FILE "analyzuji pkazy ze souboru %s\n" ROFF_FROM_ENV "analyzuji pkazy z prosted\n" USING_DEFAULT "pouvm standardn voln preprocesoru\n" PLEASE_WAIT "Formtuji strnku, prosm pokejte...\n" CHANGED_MODE "zmnn md z %s na %o\n" CAT_OPEN_ERROR "Nemohu otevt %s pro zpis.\n" PROPOSED_CATFILE "bude-li teba zkusm zapisovat do %s\n" IS_NEWER_RESULT "nvratov hodnota z is_newer() = %d\n" TRYING_SECTION "zkoum sekci %s\n" SEARCHING "\nhledm v %s\n" ALREADY_IN_MANPATH "ale %s u je v manulov cest\n" CANNOT_STAT "Varovn: nemohu nalzt soubor %s!\n" IS_NO_DIR "Varovn: %s nen adres!\n" ADDING_TO_MANPATH "pidvm %s do manulov cesty\n" PATH_DIR "\nadres cesty %s " IS_IN_CONFIG "je v konfiguranm souboru\n" IS_NOT_IN_CONFIG "nen v konfiguranm souboru\n" MAN_NEARBY "ale pobl je manulov adres\n" NO_MAN_NEARBY "a pobl jsem nenalezl dn manulov adres\n" ADDING_MANDIRS "\npidvm povinn manulov adres\n\n" CATNAME_IS "cat_name v convert_to_cat () je: %s\n" NO_EXEC "\nnespoutm pkaz:\n %s\n" USAGE1 "pouit: %s [-adfhktwW] [sekce] [-M cesta] [-P strnkova] [-S seznam]\n\t" USAGE2 "[-m systm] " USAGE3 "[-p etzec] jmno ...\n\n" USAGE4 " a : najdi vechny odpovdajc strnky\n\ c : nepouvej ji zformtovanou strnku\n\ d : tiskni ladc informace\n\ D : jako -d, ale zobraz tak manulovou strnku\n\ f : tot jako whatis(1)\n\ h : vytiskni tuto pomocnou zprvu\n\ k : tot jako apropos(1)\n\ K : hledej etzec ve vech strnkch\n" USAGE5 " t : ke zformtovn pouij program troff\n" USAGE6 "\ w : vytiskni umstn manulovch strnek, kter by byly zobrazeny\n\ (nen-li uvedeno dn jmno, zobraz prohledvan adrese)\n\ W : jako -w, ale zobraz pouze jmna soubor;\n\n\ C soubor : pouij `soubor' jako konfiguran soubor\n\ M cesta : nastav manulov cesty na `cesta'\n\ P strnkova : pouij program `strnkova' k zobrazen strnek\n\ S seznam : rkou oddlen seznam manulovch sekc\n" USAGE7 " m systm : hledej manulov strnky jinho systmu\n" USAGE8 " p etzec : etzec uruje preprocesor, kter bude sputn\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "a skuten uivatel tak neme otevt ji zformtovanou strnku\n" USER_CAN_OPEN_CAT "ale skuten uivatel me otevt ji zformtovanou strnku\n" CANNOT_FORK "nemohu vytvoit dal proces pro _%s_\n" WAIT_FAILED "chyba pi ekn na potomka _%s_\n" GOT_WRONG_PID "velmi podivn ..., dostal jsem patn PID pi ekn na potomka\n" CHILD_TERMINATED_ABNORMALLY "fatl chyba: pkaz _%s_ byl abnormln ukonen\n" IDENTICAL "Manulov strnka %s je shodn s %s\n" MAN_FOUND "Nalezen() manulov() strnky:\n" NO_TROFF "chyba: pkaz TROFF nebyl specifikovn v %s\n" NO_CAT_FOR_NONSTD_LL "dn zformtovan strnka nebyla uloena (nestandardn dlka dku)\n" man-1.6g/msgs/gencat.in0000644000175000001440000000004710301736016014556 0ustar lucifredusers$quote " $set 1 1 "test for gencat\n" man-1.6g/msgs/gencat207fix.sh0000755000175000001440000000004610301736016015524 0ustar lucifredusers#!/bin/sh /usr/bin/gencat --new $1 $2 man-1.6g/msgs/mess.hr0000644000175000001440000001177710301736016014303 0ustar lucifredusersBAD_CONFIG_FILE "datoteka %s nema smisla\n" CONFIG_OPEN_ERROR "Upozorenje: konfiguracijska datoteka %s se ne moe otvoriti\n" PARSE_ERROR_IN_CONFIG "Greka pri obradi konfiguracijske datoteke\n" INCOMPAT "opcije %s i %s nekompatibilne\n" NO_ALTERNATE "Naalost, podrka za druge sustave nije ugraena\n" NO_COMPRESS "Man je kompajliran za automatsko saimanje cat stranica,\n\ no konfiguracijska datoteka ne navodi COMPRESS.\n" NO_NAME_FROM_SECTION "Koju man stranicu iz dijela %s elite?\n" NO_NAME_NO_SECTION "Koju man stranicu elite?\n" NO_SUCH_ENTRY_IN_SECTION "Stranice %s nema u dijelu %s\n" NO_SUCH_ENTRY "Stranice %s nema\n" PAGER_IS "\nkao preglednik se koristi %s\n" SYSTEM_FAILED "Greka pri izvravanju naredbe za formatiranje ili prikaz.\n\ Naredba sustava %s zavrila uz stanje %d.\n" VERSION "%s, verzija %s\n\n" OUT_OF_MEMORY "Bez memorije -- malloc %d bajtova nije mogu\n" ROFF_CMD_FROM_FILE_ERROR "Greka pri obradi *roff naredbe iz datoteke %s\n" MANROFFSEQ_ERROR "Greka pri obradi MANROFFSEQ. Koriste se predodreene vrijednosti sustava.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Greka pri obradi *roff naredbe s naredbenog reda.\n" UNRECOGNIZED_LINE "Neprepoznat red u konfiguracijskoj datoteci (zanemaren)\n%s\n" GETVAL_ERROR "man-config.c: interna greka: niz %s nije naen\n" FOUND_MANDIR "naen man direktorij %s\n" FOUND_MAP "naeno mapiranje man staze %s u %s\n" FOUND_CATDIR "odgovarajui catdir je %s\n" LINE_TOO_LONG "Red predug u konfiguracijskoj datoteci\n" SECTION "\ndio: %s\n" UNLINKED "%s je obrisan\n" GLOBBING "%s se proiruje\n" EXPANSION_FAILED "Pokuaj [%s] proirivanja man stranice nije uspio\n" OPEN_ERROR "Man stranica %s se ne moe otvoriti\n" READ_ERROR "Greka pri itanju man stranice %s\n" FOUND_EQN "naena eqn(1) odrednica\n" FOUND_GRAP "naena grap(1) odrednica\n" FOUND_PIC "naena pic(1) odrednica\n" FOUND_TBL "naena tbl(1) odrednica\n" FOUND_VGRIND "naena vgrind(1) odrednica\n" FOUND_REFER "naena refer(1) odrednica\n" ROFF_FROM_COMMAND_LINE "obrauje se odrednica s naredbenog reda\n" ROFF_FROM_FILE "obrauje se odrednica iz datoteke %s\n" ROFF_FROM_ENV "obrauje se odrednica iz okruja\n" USING_DEFAULT "koristi se predodreeni niz preprocesora\n" PLEASE_WAIT "Stranica se formatira, molim priekajte...\n" CHANGED_MODE "dozvole %s promijenjene u %o\n" CAT_OPEN_ERROR "%s se nije mogla otvoriti za pisanje.\n" PROPOSED_CATFILE "ako bude potrebno, pokuat e se pisati u %s\n" IS_NEWER_RESULT "stanje is_newer() = %d\n" TRYING_SECTION "pokuava se u dijelu %s\n" SEARCHING "\npretraga u %s\n" ALREADY_IN_MANPATH "no %s se ve nalazi u man stazi\n" CANNOT_STAT "Upozorenje: stat datoteke %s nije mogu!\n" IS_NO_DIR "Upozorenje: %s nije direktorij!\n" ADDING_TO_MANPATH "%s se dodaje man stazi\n" PATH_DIR "\ndirektorij staze %s " IS_IN_CONFIG "je u konfiguracijskoj datoteci\n" IS_NOT_IN_CONFIG "nije u konfiguracijskoj datoteci\n" MAN_NEARBY "ali u blizini postoji man direktorij\n" NO_MAN_NEARBY "a u blizini nije pronaen nijedan man direktorij\n" ADDING_MANDIRS "\ndodaju se obvezni man direktoriji\n\n" CATNAME_IS "cat_name u convert_to_cat () je: %s\n" NO_EXEC "\nnaredba se ne izvrava:\n %s\n" USAGE1 "koritenje: %s [-adfhktwW] [dio] [-M staza] [-P preglednik] [-S popis]\n\t" USAGE2 "[-m sustav] " USAGE3 "[-p niz] ime ...\n\n" USAGE4 " a: pronalazi sve odgovarajue man stranice\n\ c: ne koristi cat datoteku\n\ d: ispisuje gomilu informacija za otklanjanje greaka\n\ D: kao i za -d, ali takoer prikazuje stranice\n\ f: isto to i whatis(1)\n\ h: ispisuje ovu poruku o koritenju\n\ k: isto to i apropos(1)\n\ K: trai niz u svim stranicama\n" USAGE5 " t: koristi troff za formatiranje stranica za tiskanje\n" USAGE6 "\ w: ispisuje lokacije man stranica koje bi se prikazale\n\ (ako ime nije dano, ispisuje direktorije koji bi se pretraili)\n\ W: kao i za -w, no prikazuje samo imena datoteka\n\n\ C datoteka: kao konfiguracijsku datoteku koristi `datoteka'\n\ M staza: stazu traenja man stranica postavlja na `staza'\n\ P preglednik: za prikaz stranica koristi program `preglednik'\n\ S popis: popis dvotokama razdvojenih dijelova\n" USAGE7 " m sustav: pretrauje man stranice drugog sustava\n" USAGE8 " p niz: niz govori koje preprocesore treba pokrenuti\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "a ni pravi korisnik ne moe otvoriti cat datoteku\n" USER_CAN_OPEN_CAT "no pravi korisnik moe otvoriti cat datoteku\n" CANNOT_FORK "fork naredbom _%s_ nije uspio\n" WAIT_FAILED "greka pri ekanju na dijete _%s_\n" GOT_WRONG_PID "vrlo udno...; pri ekanju na moje dijete dobijen krivi PID\n" CHILD_TERMINATED_ABNORMALLY "kobna greka: naredba _%s_ zavrila abnormalno\n" IDENTICAL "Man stranica %s je istovjetna stranici %s\n" MAN_FOUND "Naene man stranice:\n" NO_TROFF "greka: u %s nema TROFF naredbi\n" NO_CAT_FOR_NONSTD_LL "zbog nestandardne duljine reda cat stranica nije pohranjena\n" man-1.6g/msgs/mess.ro0000644000175000001440000001233710301736016014303 0ustar lucifredusersBAD_CONFIG_FILE "imposibil de neles fiierul %s\n" CONFIG_OPEN_ERROR "Atenie: nu pot deschide fiierul de configurare %s\n" PARSE_ERROR_IN_CONFIG "Eroare parcurgnd fiierul de configurare\n" INCOMPAT "opiuni incompatibile %s i %s\n" NO_ALTERNATE "mi pare ru - nu exist suport inclus pentru sisteme alternative\n" NO_COMPRESS "Man a fost compilat cu comprimare automat a paginilor cat,\n\ dar fiierul de configurare nu definete COMPRESS.\n" NO_NAME_FROM_SECTION "Ce pagin de manual vrei din seciunea %s?\n" NO_NAME_NO_SECTION "Ce pagin de manual dorii?\n" NO_SUCH_ENTRY_IN_SECTION "Nici o intrare pentru %s n seciunea %s a manualului\n" NO_SUCH_ENTRY "Nici o intrare n manual pentru %s\n" PAGER_IS "\nfolosesc %s ca paginator\n" SYSTEM_FAILED "Eroare la execuia comenzii de formatare sau afiare.\n\ Comanda sistem %s s-a terminat cu codul de ieire %d.\n" VERSION "%s, versiunea %s\n\n" OUT_OF_MEMORY "Lips de memorie - nu pot aloca %d bytes\n" ROFF_CMD_FROM_FILE_ERROR "Eroare la parcurgerea comenzii *roff din fiierul %s\n" MANROFFSEQ_ERROR "Eroare la parcurgerea MANROFFSEQ. Folosesc valorile implicite ale sistemului.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "Eroare la parcurgerea comenzii *roff din linia de comand.\n" UNRECOGNIZED_LINE "Linie nerecunoscut n fiierul de configurare (ignorat)\n%s\n" GETVAL_ERROR "man-config.c: eroare intern: irul %s nu a fost gsit\n" FOUND_MANDIR "am gsit directorul man %s\n" FOUND_MAP "am gsit harta manpath %s --> %s\n" FOUND_CATDIR "directorul cat corespunztor este %s\n" LINE_TOO_LONG "Linie prea lung n fiierul de configurare\n" SECTION "\nseciune: %s\n" UNLINKED "nelegat %s\n" GLOBBING "se expandeaz %s\n" EXPANSION_FAILED "ncercarea [%s] de a decomprima pagina man a euat\n" OPEN_ERROR "Nu pot deschide pagina man %s\n" READ_ERROR "Eroare la citirea paginii man %s\n" FOUND_EQN "am gsit o directiv eqn(1)\n" FOUND_GRAP "am gsit o directiv grap(1)\n" FOUND_PIC "am gsit o directiv pic(1)\n" FOUND_TBL "am gsit o directiv tbl(1)\n" FOUND_VGRIND "am gsit o directiv vgrind(1)\n" FOUND_REFER "am gsit o directiv refer(1)\n" ROFF_FROM_COMMAND_LINE "parcurg directiva din linia de comand\n" ROFF_FROM_FILE "parcurg directiva din fiierul %s\n" ROFF_FROM_ENV "parcurg directiva din variabilele de mediu\n" USING_DEFAULT "folosesc secvena de preprocesare implicit\n" PLEASE_WAIT "Formatez pagina, v rog ateptai...\n" CHANGED_MODE "am schimbat modul lui %s n %o\n" CAT_OPEN_ERROR "Nu am putut deschide %s pentru scriere.\n" PROPOSED_CATFILE "voi ncerca s scriu %s dac este necesar\n" IS_NEWER_RESULT "rezultatul de la is_newer() = %d\n" TRYING_SECTION "ncerc seciunea %s\n" SEARCHING "\ncaut n %s\n" ALREADY_IN_MANPATH "dar %s este deja n manpath\n" CANNOT_STAT "Atenie: nu pot verifica fiierul %s!\n" IS_NO_DIR "Atenie: %s nu este un director!\n" ADDING_TO_MANPATH "adaug %s la manpath\n" PATH_DIR "\ncalea la directorul %s " IS_IN_CONFIG "este n fiierul de configurare\n" IS_NOT_IN_CONFIG "nu este n fiierul de configurare\n" MAN_NEARBY "dar este un director man aproape\n" NO_MAN_NEARBY "dar nu am gsit nici un director man aproape\n" ADDING_MANDIRS "\nadaug directoarele man obligatorii\n\n" CATNAME_IS "cat_name n convert_to_cat () este: %s\n" NO_EXEC "\nnu execut comanda:\n %s\n" USAGE1 "folosire: %s [-adfhktwW] [seciune] [-M cale] [-P paginator] [-S list]\n\t" USAGE2 "[-m sistem] " USAGE3 "[-p ir] nume ...\n\n" USAGE4 " a : caut toate intrrile care se potrivesc\n\ c : nu folosete fiierele cat\n\ d : afieaz multe informaii de depanare\n\ D : ca i -d, dar afieaz i paginile\n\ f : ca i whatis(1)\n\ h : afieaz acest mesaj de ajutor\n\ k : ca i apropos(1)\n\ K : caut un ir n toate paginile\n" USAGE5 " t : folosete troff pentru a formata paginile pentru tiprire\n" USAGE6 "\ w : afieaz locaia(ile) paginii(lor) man care ar fi afiate\n\ (dac nu este dat nici un nume: afieaz directoarele care ar fi cutate)\n\ W : ca i -w, dar afieaz doar numele de fiiere\n\n\ C fiier : folosete `fiier' ca fiier de configurare\n\ M cale : seteaz calea de cutare pentru paginile de manual ca `cale'\n\ P paginator : folosete programul `paginator' pentru a afia paginile\n\ S list : list de seciuni separate prin dou puncte (:)\n" USAGE7 " m sistem : caut paginile de man pentru un sistem alternativ\n" USAGE8 " p ir : irul specific ce preprocesoare se ruleaz\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "i nici utilizatorul real nu poate deschide fiierul cat\n" USER_CAN_OPEN_CAT "dar utilizatorul real poate deschide fiierul cat\n" CANNOT_FORK "crearea procesului fiu pentru comanda _%s_ a euat\n" WAIT_FAILED "eroare ateptnd procesul fiu _%s_\n" GOT_WRONG_PID "foarte straniu ..., am primit pid eronat ateptnd procesul fiu\n" CHILD_TERMINATED_ABNORMALLY "eroare fatal: comanda _%s_ s-a terminat anormal\n" IDENTICAL "Pagina man %s este identic cu %s\n" MAN_FOUND "Am gsit pagina(ile) man:\n" NO_TROFF "eroare: nici o comand TROFF specificat n %s\n" NO_CAT_FOR_NONSTD_LL "nici o pagin cat salvat din cauza lungimii nestandard a liniilor\n" man-1.6g/msgs/mess.ja0000644000175000001440000001260310301736016014251 0ustar lucifredusersBAD_CONFIG_FILE "ե %s ˸꤬ޤ\n" CONFIG_OPEN_ERROR "ٹ: ե %s Υץ󤬤ǤޤǤ\n" PARSE_ERROR_IN_CONFIG "եβ˥顼Ĥޤ\n" INCOMPAT "%s ץ %s ץƱ˻ѤǤޤ\n" NO_ALTERNATE "¾Υƥǥѥ뤵줿ΤϥݡȤƤޤ\n" NO_COMPRESS "man ޥɤϥեޥåȤ cat ڡưŪ˰̤褦\n\ ѥ뤵Ƥޤե COMPRESS ޤ\n" NO_NAME_FROM_SECTION " %s ΤɤΥޥ˥奢ɽޤ?\n" NO_NAME_NO_SECTION "ɤΥޥ˥奢ɽޤ?\n" NO_SUCH_ENTRY_IN_SECTION " %2$s ˤ %1$s Υޥ˥奢Ϥޤ\n" NO_SUCH_ENTRY "%s Υޥ˥奢Ϥޤ\n" PAGER_IS "\n%s ڡ㡼ȤƻѤޤ\n" SYSTEM_FAILED "եޥåȡޥɤɽޥɤμ¹ԥ顼ޤ\n\ ޥ %s λơ %d ǽλޤ\n" VERSION "%s, С %s\n\n" OUT_OF_MEMORY "꤬­ޤ- %d ХȤݤǤޤ\n" ROFF_CMD_FROM_FILE_ERROR "ե %s Υץץȥåؼβ˥顼ȯޤ\n" MANROFFSEQ_ERROR "MANROFFSEQ Υץץåؼβ˥顼ȯޤ\n\ ˥ƥࡦǥեȤѤޤ\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "ޥɥ饤Υץץåؼβ˥顼ȯޤ\n" UNRECOGNIZED_LINE "եǤʤԤޤ(̵뤷ޤ)\n%s\n" GETVAL_ERROR "man-config.c: 顼: ʸ %s Ĥޤ\n" FOUND_MANDIR "man ǥ쥯ȥ %s 򸫤Ĥޤ\n" FOUND_MAP "manpath map %s --> %s 򸫤Ĥޤ\n" FOUND_CATDIR "б catdir %s Ǥ\n" LINE_TOO_LONG "եιԤĹ᤮ޤ\n" SECTION "\n: %s\n" UNLINKED "%s ޤ\n" GLOBBING "%s Ÿޤ\n" EXPANSION_FAILED "[%s] ޥ˥奢롦ڡŸǤޤǤ\n" OPEN_ERROR "ޥ˥奢롦ڡ %s ץǤޤǤ\n" READ_ERROR "ޥ˥奢롦ڡ %s ɤޤǤ\n" FOUND_EQN "eqn(1) ̿򸫤Ĥޤ\n" FOUND_GRAP "grap(1) ̿򸫤Ĥޤ\n" FOUND_PIC "pic(1) ̿򸫤Ĥޤ\n" FOUND_TBL "tbl(1) ̿򸫤Ĥޤ\n" FOUND_VGRIND "vgrind(1) ̿򸫤Ĥޤ\n" FOUND_REFER "refer(1) ̿򸫤Ĥޤ\n" ROFF_FROM_COMMAND_LINE "ޥɡ饤󤫤̿Ǥ\n" ROFF_FROM_FILE "ե %s ̿βǤ\n" ROFF_FROM_ENV "Ķѿ̿βǤ\n" USING_DEFAULT "ǥեȤ󥹤Ѥޤ\n" PLEASE_WAIT "ڡΥեޥåǤԤ...\n" CHANGED_MODE "⡼ɤ %s %o ѹޤ\n" CAT_OPEN_ERROR "%s 񤭹ߤΤ˥ץǤޤǤ\n" PROPOSED_CATFILE "ɬפʤС%s ˽񤭹ߤߤޤ\n" IS_NEWER_RESULT "is_newer() = %d\n" TRYING_SECTION " %s ߤޤ\n" SEARCHING "\n%s 򸡺Ǥ\n" ALREADY_IN_MANPATH "%s ϤǤ manpath ˴ޤޤƤޤ\n" CANNOT_STAT "ٹ: ե %s ξ(stat)Ǥޤ\n" IS_NO_DIR "ٹ: %s ϥǥ쥯ȥǤϤޤ\n" ADDING_TO_MANPATH "%s manpath ˲äޤ\n" PATH_DIR "\nѥΥǥ쥯ȥ %s " IS_IN_CONFIG "եˤޤ\n" IS_NOT_IN_CONFIG "եˤޤ\n" MAN_NEARBY "᤯˥ޥ˥奢롦ǥ쥯ȥ꤬ޤ\n" NO_MAN_NEARBY "ˡ᤯ˤޥ˥奢롦ǥ쥯ȥ꤬ޤ\n" ADDING_MANDIRS "\nޥ˥奢롦ǥ쥯ȥŪɲäޤ\n\n" CATNAME_IS "convert_to_cat() ˤ cat_name %s Ǥ\n" NO_EXEC "\nޥɤ¹Ԥޤ:\n %s\n" USAGE1 "usage: %s [-adfhktwW] [section] [-M path] [-P pager] [-S list]\n\t" USAGE2 "[-m system] " USAGE3 "[-p string] name ...\n\n" USAGE4 " a : Ƥΰפ򸫤Ĥ\n\ c : cat եѤʤ\n\ d : ǥХå󥰾ɽ\n\ D : -d ˲äޥ˥奢롦ڡɽ\n\ f : whatis(1) Ʊ\n\ h : Υإסåɽ\n\ k : apropos(1) Ʊ\n\ K : ƤΥڡʸ򸡺\n" USAGE5 " t : ڡΥեޥå troff Ѥ\n" USAGE6 "\ w : ޥ˥奢롦ڡΰ֤ɽ\n\ (̾ꤷʤä: ǥ쥯ȥɽ)\n\ W : -w Ʊ, ե̾ɽʤ\n\n\ C file : եȤ `file' Ѥ\n\ M path : `path' ޥ˥奢롦ڡθѥꤹ\n\ P pager : `pager' ڡɽץȤƻѤ\n\ S list : ̾Υꥹ(Ƕڤ)\n" USAGE7 " m system : ¾ΥƥѤΥޥ˥奢롦ڡ򸡺\n" USAGE8 " p string : ɤ¹Ԥꤹʸ\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "ơμ¥桼Ǥ cat ե򥪡ץǤޤ\n" USER_CAN_OPEN_CAT "μ¥桼 cat ե뤬ץǤޤ\n" CANNOT_FORK "ޥ _%s_ Τ fork ǤޤǤ\n" WAIT_FAILED "ҥץ _%s_ wait Ƥ֤˥顼ȯޤ\n" GOT_WRONG_PID "۾Ǥ???, wait ƤҥץȤϰ㤦 PID ޤ\n" CHILD_TERMINATED_ABNORMALLY "̿Ū顼: ޥ _%s_ ۾ェλޤ\n" IDENTICAL "ޥ˥奢롦ڡ %s %s ƱǤ\n" MAN_FOUND "ޥ˥奢롦ڡ򸫤Ĥޤ:\n" NO_TROFF "顼: %s ˻ꤵƤ TROFF ޥɤĤޤ\n" NO_CAT_FOR_NONSTD_LL "ԤĹɸŪǤʤ cat ڡ¸ޤǤ\n" man-1.6g/msgs/mess.bg0000644000175000001440000001464010401001624014241 0ustar lucifredusersBAD_CONFIG_FILE " %s .\n" CONFIG_OPEN_ERROR ": %s .\n" PARSE_ERROR_IN_CONFIG " .\n" INCOMPAT " - %s %s\n" NO_ALTERNATE " .\n" NO_COMPRESS "Man , \n\ COMPRESS.\n" NO_NAME_FROM_SECTION " %s ?\n" NO_NAME_NO_SECTION " ?\n" NO_SUCH_ENTRY_IN_SECTION " %s %s\n" NO_SUCH_ENTRY " %s\n" PAGER_IS "\n %s\n" SYSTEM_FAILED " .\n\ %s %d.\n" VERSION "%s, %s\n\n" OUT_OF_MEMORY " - %d \n" ROFF_CMD_FROM_FILE_ERROR " *roff %s\n" MANROFFSEQ_ERROR " MANROFFSEQ.\n\ .\n" ROFF_CMD_FROM_COMMANDLINE_ERROR " *roff .\n" UNRECOGNIZED_LINE " ( ) \n%s\n" GETVAL_ERROR " man-config.c: %s \n" FOUND_MANDIR " %s\n" FOUND_MAP " %s --> %s\n" FOUND_CATDIR " %s\n" LINE_TOO_LONG " \n" SECTION "\n %s\n" UNLINKED " %s \n" GLOBBING " %s\n" EXPANSION_FAILED " [%s] \n" OPEN_ERROR " %s \n" READ_ERROR " %s \n" FOUND_EQN " eqn(1)\n" FOUND_GRAP " grap(1)\n" FOUND_PIC " pic(1)\n" FOUND_TBL " tbl(1)\n" FOUND_VGRIND " vgrind(1)\n" FOUND_REFER " refer(1)\n" ROFF_FROM_COMMAND_LINE " \n" ROFF_FROM_FILE " %s\n" ROFF_FROM_ENV " \n" USING_DEFAULT " \n" PLEASE_WAIT " , ...\n" CHANGED_MODE " %s %o\n" CAT_OPEN_ERROR " %s .\n" PROPOSED_CATFILE " , %s\n" IS_NEWER_RESULT " is_newer() = %d\n" TRYING_SECTION " %s\n" SEARCHING "\n %s\n" ALREADY_IN_MANPATH " %s \n" CANNOT_STAT ": stat() %s!\n" IS_NO_DIR ": %s !\n" ADDING_TO_MANPATH "%s \n" PATH_DIR "\n %s " IS_IN_CONFIG " \n" IS_NOT_IN_CONFIG " \n" MAN_NEARBY " \n" NO_MAN_NEARBY " \n" ADDING_MANDIRS "\n \n\n" CATNAME_IS "cat_name convert_to_cat () : %s\n" NO_EXEC "\n :\n %s\n" USAGE1 ": %s [-adfhktwW] [] [-M ] [-P ] [-S ]\n\t" USAGE2 "[-m ] " USAGE3 "[-p ] ...\n\n" USAGE4 " a : \n\ c : \n\ d : \n\ D : -d, \n\ f : whatis(1)\n\ h : \n\ k : apropos(1)\n\ K : \n" USAGE5 " t : troff \n" USAGE6 "\ w : \n\ , ( -\n\ , )\n\ W : -w, \n\n\ C : \n\ M : \n\ P : \n\ S : , , \n" USAGE7 " m : \n" USAGE8 " p : \n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT " \n" USER_CAN_OPEN_CAT " \n" CANNOT_FORK " _%s_\n" WAIT_FAILED " _%s_\n" GOT_WRONG_PID " ..., \n\ \n" CHILD_TERMINATED_ABNORMALLY " : _%s_ \n" IDENTICAL " %s %s\n" MAN_FOUND " () :\n" NO_TROFF ": %s TROFF\n" NO_CAT_FOR_NONSTD_LL " \n" BROWSER_IS "\n HTML %s\n" HTMLPAGER_IS "\n HTML %s\n" FOUND_FILE "manfile_from_sec_and_dir() %s\n" CALLTRACE1 "manfile_from_sec_and_dir(.=%s, =%s, =%s, =0x%0x)\n" CALLTRACE2 "glob_for_file(.=%s, =%s, =%s, =0x%0x, ...)\n" NO_MATCH "glob_for_file .\n" GLOB_FOR_FILE "glob_for_file %s.\n" CALLTRACE3 "glob_for_file_ext_glob(.=%s, =%s, =%s, ext=%s, hpx=%s, =%d, =0x%0x);\n" ABOUT_TO_GLOB "glob_for_file_ext_glob %s\n" man-1.6g/msgs/mess.ko0000644000175000001440000001225510301736016014273 0ustar lucifredusersBAD_CONFIG_FILE " %s ߸ ֽϴ.\n" CONFIG_OPEN_ERROR ": %s ϴ.\n" PARSE_ERROR_IN_CONFIG " ؼ߿ ߰ߵǾϴ.\n" INCOMPAT "%s ɼǰ %s ɼ ÿ ϴ.\n" NO_ALTERNATE "ٸ ý ʽϴ.\n" NO_COMPRESS "man ɴ cat ڵ ϵ \n\ Ǿ , Ͽ COMPRESS ǰ ϴ.\n" NO_NAME_FROM_SECTION " %s ޴ ǥմϱ?\n" NO_NAME_NO_SECTION " ޴ ǥմϱ?\n" NO_SUCH_ENTRY_IN_SECTION " %2$s %1$s ޴ ϴ.\n" NO_SUCH_ENTRY "%s ޴ ϴ.\n" PAGER_IS "\n%s pagerμ մϴ.\n" SYSTEM_FAILED "ˡ̳ ǥ ߻߽ϴ.\n\ Ŀ %s ͽ %d ߽ϴ.\n" VERSION "%s, %s\n\n" OUT_OF_MEMORY "޸𸮰 ʽϴ.- %d Ʈ Ȯ ϴ.\n" ROFF_CMD_FROM_FILE_ERROR " %s μ ؼ߿ ߻߽ϴ.\n" MANROFFSEQ_ERROR "MANROFFSEQ μ ؼ߿ ߻߽ϴ.\n\ ſ ýۡƮ մϴ.\n" ROFF_CMD_FROM_COMMANDLINE_ERROR " μ ؼ߿ ߻߽ϴ.\n" UNRECOGNIZED_LINE " Ͽ ֽϴ.\n%s\n" GETVAL_ERROR "man-config.c: : %s ߰ߵ ʽϴ.\n" FOUND_MANDIR "man 丮 %s ãƳ½ϴ.\n" FOUND_MAP "manpath map %s --> %s ãƳ½ϴ.\n" FOUND_CATDIR "ϴ catdir %sԴϴ.\n" LINE_TOO_LONG " ʹ ϴ.\n" SECTION "\n: %s\n" UNLINKED "%s մϴ.\n" GLOBBING "%s ϴ.\n" EXPANSION_FAILED "[%s] ޴ ϴ.\n" OPEN_ERROR "޴ %s ϴ.\n" READ_ERROR "޴ %s ϴ.\n" FOUND_EQN "eqn(1) ãƳ½ϴ.\n" FOUND_GRAP "grap(1) ãƳ½ϴ.\n" FOUND_PIC "pic(1) ãƳ½ϴ.\n" FOUND_TBL "tbl(1) ãƳ½ϴ.\n" FOUND_VGRIND "vgrind(1) ãƳ½ϴ.\n" FOUND_REFER "refer(1) ãƳ½ϴ.\n" ROFF_FROM_COMMAND_LINE "ɡκ ؼԴϴ.\n" ROFF_FROM_FILE " %s κ ؼԴϴ.\n" ROFF_FROM_ENV "ȯ κ ؼԴϴ.\n" USING_DEFAULT "Ʈ ó մϴ.\n" PLEASE_WAIT " Դϴ. ٷ ּ...\n" CHANGED_MODE "带 %s κ %o մϴ.\n" CAT_OPEN_ERROR "%s ؼ ϴ.\n" PROPOSED_CATFILE "ʿϸ, %s õմϴ.\n" IS_NEWER_RESULT "is_newer() = %d\n" TRYING_SECTION " %s õմϴ.\n" SEARCHING "\n%s ˻Դϴ.\n" ALREADY_IN_MANPATH "׷, %s ̹ manpath ԵǾ ֽϴ.\n" CANNOT_STAT ": %s (stat) ϴ.\n" IS_NO_DIR ": %s 丮 ƴմϴ.\n" ADDING_TO_MANPATH "%s manpath մϴ.\n" PATH_DIR "\nн 丮 %s " IS_IN_CONFIG "() Ͽ ֽϴ.\n" IS_NOT_IN_CONFIG "() Ͽ ϴ.\n" MAN_NEARBY "׷, ó ޴󡤵丮 ֽϴ.\n" NO_MAN_NEARBY " ޴󡤵丮 ϴ.\n" ADDING_MANDIRS "\n޴󡤵丮 ߰մϴ.\n\n" CATNAME_IS "convert_to_cat() ־ cat_name %s Դϴ.\n" NO_EXEC "\nĿ带 ʽϴ :\n %s\n" USAGE1 "usage: %s [-adfhktwW] [section] [-M path] [-P pager] [-S list]\n\t" USAGE2 "[-m system] " USAGE3 "[-p string] name ...\n\n" USAGE4 " a : ġϴ ãƳ \n\ c : cat ʴ \n\ d : ǥϴ \n\ D : -d ޴ ǥϴ \n\ f : whatis(1) \n\ h : ޼ ǥϴ \n\ k : apropos(1) \n\ K : ij ˻ϴ \n" USAGE5 " t : troff ϴ \n" USAGE6 "\ w : ޴ ġ ǥϴ \n\ (̸ ʾҴ : ˻ϴ 丮 ǥѴ) \n\ W : -w , ׷ ϸ ۿ ǥ ʴ \n\n\ C file : Ϸμ `file' ϴ \n\ M path : `path' ޴ ˻ н ϴ \n\ P pager : `pager' ǥ α׷μ ϴ \n\ S list : Ǹ Ʈ(ڷ ܶ´) \n" USAGE7 " m system : ٸ ýۿ ޴ ˻ϴ \n" USAGE8 " p string : ó ϴ ij \n\ e - [n]eqn(1) p - pic(1) t - tbl(1) \n\ g - grap(1) r - refer(1) v - vgrind(1) \n" USER_CANNOT_OPEN_CAT "׸, cat ϴ.\n" USER_CAN_OPEN_CAT "׷, cat ֽϴ.\n" CANNOT_FORK "Ŀ _%s_ fork ϴ.\n" WAIT_FAILED "child process _%s_ wait ϰ ִ ȿ ߻߽ϴ.\n" GOT_WRONG_PID "Դϴ???, wait ϰ ִ child processʹ ٸ PID ޾ҽϴ.\n" CHILD_TERMINATED_ABNORMALLY "ġ : Ŀ _%s_ ̻(ABEND) ߽ϴ.\n" IDENTICAL "޴ %s %s ϴ.\n" MAN_FOUND "޴ ãҽϴ :\n" NO_TROFF ": %s Ǿ ִ TROFF ߰ߵ ʽϴ.\n" NO_CAT_FOR_NONSTD_LL " ̰ ǥ ƴϱ cat ʾҽϴ.\n" man-1.6g/msgs/mess.el0000644000175000001440000001316310301736016014261 0ustar lucifredusersBAD_CONFIG_FILE " %s\n" CONFIG_OPEN_ERROR ": ' %s\n" PARSE_ERROR_IN_CONFIG " \n" INCOMPAT " %s %s \n" NO_ALTERNATE " - \n" NO_COMPRESS " man ,\n\ \n\ COMPRESS.\n" NO_NAME_FROM_SECTION " %s;\n" NO_NAME_NO_SECTION " ;\n" NO_SUCH_ENTRY_IN_SECTION " %s %s \n" NO_SUCH_ENTRY " %s\n" PAGER_IS "\n %s \n" SYSTEM_FAILED " .\n\ %s %d.\n" VERSION "%s, %s\n\n" OUT_OF_MEMORY " - %d \n" ROFF_CMD_FROM_FILE_ERROR " *roff %s\n" MANROFFSEQ_ERROR " MANROFFSEQ. .\n" ROFF_CMD_FROM_COMMANDLINE_ERROR " *roff .\n" UNRECOGNIZED_LINE " %s ().\n" GETVAL_ERROR "man-config.c: : %s \n" FOUND_MANDIR " man %s\n" FOUND_MAP " %s --> %s\n" FOUND_CATDIR " cat %s\n" LINE_TOO_LONG " \n" SECTION "\n: %s\n" UNLINKED " %s\n" GLOBBING " %s\n" EXPANSION_FAILED " [%s] \n" OPEN_ERROR " ' %s\n" READ_ERROR " %s\n" FOUND_EQN " eqn(1)\n" FOUND_GRAP " grap(1)\n" FOUND_PIC " pic(1)\n" FOUND_TBL " tbl(1)\n" FOUND_VGRIND " vgrind(1)\n" FOUND_REFER " refer(1)\n" ROFF_FROM_COMMAND_LINE " \n" ROFF_FROM_FILE " %s\n" ROFF_FROM_ENV " \n" USING_DEFAULT " \n" PLEASE_WAIT " , ...\n" CHANGED_MODE " %s %o\n" CAT_OPEN_ERROR " %s .\n" PROPOSED_CATFILE " %s \n" IS_NEWER_RESULT " is_newer() = %d\n" TRYING_SECTION " %s\n" SEARCHING "\n %s\n" ALREADY_IN_MANPATH " %s \n" CANNOT_STAT ": %s!\n" IS_NO_DIR ": %s !\n" ADDING_TO_MANPATH " %s \n" PATH_DIR "\n %s " IS_IN_CONFIG " \n" IS_NOT_IN_CONFIG " \n" MAN_NEARBY " man \n" NO_MAN_NEARBY " man \n" ADDING_MANDIRS "\n man\n\n" CATNAME_IS " convert_to_cat (), cat_name : %s\n" NO_EXEC "\n :\n %s\n" USAGE1 ": %s [-adfhktwW] [] [-M ] [-P ] [-S ]\n\t" USAGE2 "[-m ] " USAGE3 "[-p ] ...\n\n" USAGE4 " a : \n\ c : cat\n\ d : \n\ D : -d, \n\ f : whatis(1)\n\ h : \n\ k : apropos(1)\n\ K : ' \n" USAGE5 " t : troff \n" USAGE6 "\ w : \n\ ( : )\n\ W : -w, \n\n\ C : \n\ M : ޻\n\ P : \n\ S : \n" USAGE7 " m : \n" USAGE8 " p : \n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT " ' cat\n" USER_CAN_OPEN_CAT " ' cat\n" CANNOT_FORK " _%s_\n" WAIT_FAILED " _%s_\n" GOT_WRONG_PID " ..., pid \n" CHILD_TERMINATED_ABNORMALLY " : _%s_ \n" IDENTICAL " %s %s\n" MAN_FOUND " () ():\n" NO_TROFF ": TROFF %s\n" NO_CAT_FOR_NONSTD_LL " cat \n" man-1.6g/msgs/mess.de.codeset0000644000175000001440000000002510301736016015667 0ustar lucifredusers$ codeset=iso-8859-1 man-1.6g/msgs/mess.el.codeset0000644000175000001440000000002510301736016015677 0ustar lucifredusers$ codeset=iso-8859-7 man-1.6g/msgs/mess.en.codeset0000644000175000001440000000002510301736016015701 0ustar lucifredusers$ codeset=iso-8859-1 man-1.6g/msgs/mess.fi.codeset0000644000175000001440000000002510301736016015675 0ustar lucifredusers$ codeset=iso-8859-1 man-1.6g/msgs/mess.fr.codeset0000644000175000001440000000002510301736016015706 0ustar lucifredusers$ codeset=iso-8859-1 man-1.6g/msgs/mess.hr.codeset0000644000175000001440000000002510301736016015710 0ustar lucifredusers$ codeset=iso-8859-2 man-1.6g/msgs/mess.ja.codeset0000644000175000001440000000002110301736016015665 0ustar lucifredusers$ codeset=euc-jp man-1.6g/msgs/mess.ko.codeset0000644000175000001440000000002110301736016015704 0ustar lucifredusers$ codeset=euc-kr man-1.6g/msgs/mess.nl.codeset0000644000175000001440000000002510301736016015710 0ustar lucifredusers$ codeset=iso-8859-1 man-1.6g/msgs/mess.pl.codeset0000644000175000001440000000002510301736016015712 0ustar lucifredusers$ codeset=iso-8859-2 man-1.6g/msgs/mess.pt.codeset0000644000175000001440000000002510301736016015722 0ustar lucifredusers$ codeset=iso-8859-1 man-1.6g/msgs/mess.ro.codeset0000644000175000001440000000002510301736016015717 0ustar lucifredusers$ codeset=iso-8859-2 man-1.6g/msgs/mess.bg.codeset0000644000175000001440000000002110301736016015663 0ustar lucifredusers$ codeset=cp1251 man-1.6g/msgs/mess.cs.codeset0000644000175000001440000000002510301736016015704 0ustar lucifredusers$ codeset=iso-8859-2 man-1.6g/msgs/mess.sl.codeset0000644000175000001440000000002510301736016015715 0ustar lucifredusers$ codeset=iso-8859-2 man-1.6g/msgs/mess.ru0000644000175000001440000001257510301736016014315 0ustar lucifredusersBAD_CONFIG_FILE " %s\n" CONFIG_OPEN_ERROR ": %s\n" PARSE_ERROR_IN_CONFIG " \n" INCOMPAT " %s %s \n" NO_ALTERNATE " \n" NO_COMPRESS " man cat-,\n\ COMPRESS .\n" NO_NAME_FROM_SECTION " %s?\n" NO_NAME_NO_SECTION " ?\n" NO_SUCH_ENTRY_IN_SECTION " %s %s \n" NO_SUCH_ENTRY " %s \n" PAGER_IS "\n %s \n" SYSTEM_FAILED " .\n\ %s %d.\n" VERSION "%s, %s\n" OUT_OF_MEMORY " - %d \n" ROFF_CMD_FROM_FILE_ERROR " *roff %s\n" MANROFFSEQ_ERROR " MANROFFSEQ. .\n" ROFF_CMD_FROM_COMMANDLINE_ERROR " *roff .\n" UNRECOGNIZED_LINE " ()\n%s\n" GETVAL_ERROR "man-config.c: : %s \n" FOUND_MANDIR " %s\n" FOUND_MAP " manpath %s --> %s\n" FOUND_CATDIR " catdir %s\n" LINE_TOO_LONG " \n" SECTION "\n: %s\n" UNLINKED "unlinked %s\n" GLOBBING "globbing %s\n" EXPANSION_FAILED " [%s] \n" OPEN_ERROR " %s \n" READ_ERROR " %s \n" FOUND_EQN " eqn(1)\n" FOUND_GRAP " grap(1)\n" FOUND_PIC " pic(1)\n" FOUND_TBL " tbl(1)\n" FOUND_VGRIND " vgrind(1)\n" FOUND_REFER " refer(1)\n" ROFF_FROM_COMMAND_LINE " \n" ROFF_FROM_FILE " %s\n" ROFF_FROM_ENV " \n" USING_DEFAULT " \n" PLEASE_WAIT " , ...\n" CHANGED_MODE " %s %o\n" CAT_OPEN_ERROR " %s .\n" PROPOSED_CATFILE " %s, \n" IS_NEWER_RESULT " is_newer() = %d\n" TRYING_SECTION " %s\n" SEARCHING "\n %s\n" ALREADY_IN_MANPATH "%s \n" CANNOT_STAT ": %s!\n" IS_NO_DIR ": %s !\n" ADDING_TO_MANPATH " %s \n" PATH_DIR "\n %s " IS_IN_CONFIG " \n" IS_NOT_IN_CONFIG " \n" MAN_NEARBY " \n" NO_MAN_NEARBY " \n" ADDING_MANDIRS "\n \n\n" CATNAME_IS "cat_name convert_to_cat(): %s\n" NO_EXEC "\ :\n %s\n" USAGE1 ": %s [-adfhktwW] [] [-M ] [-P ] [-S ]\n\t" USAGE2 "[-m ] " USAGE3 "[-p ] ...\n\n" USAGE4 " a : \n\ c : cat-\n\ d : \n\ D : , -d, \n\ f : , whatis(1)\n\ h : \n\ k : , apropos(1)\n\ K : \n" USAGE5 " t : troff, \n" USAGE6 "\ w : , \n\ ( , )\n\ W : -w, \n\n\ C : `' \n\ M : `'\n\ P : `' \n\ S : \n" USAGE7 " m : \n" USAGE8 " p : , \n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT " cat-\n" USER_CAN_OPEN_CAT " cat-\n" CANNOT_FORK " _%s_\n" WAIT_FAILED " _%s_\n" GOT_WRONG_PID " ..., pid \n" CHILD_TERMINATED_ABNORMALLY " : _%s_ \n" IDENTICAL " %s %s\n" MAN_FOUND " :\n" NO_TROFF ": TROFF %s\n" NO_CAT_FOR_NONSTD_LL "cat- - \n" man-1.6g/msgs/mess.da.codeset0000644000175000001440000000002510301736016015663 0ustar lucifredusers$ codeset=iso-8859-1 man-1.6g/msgs/mess.ru.codeset0000644000175000001440000000002110301736016015721 0ustar lucifredusers$ codeset=koi8-r man-1.6g/msgs/mess.es.codeset0000644000175000001440000000002510301736016015706 0ustar lucifredusers$ codeset=iso-8859-1 man-1.6g/msgs/mess.it.codeset0000644000175000001440000000002510301736016015713 0ustar lucifredusers$ codeset=iso-8859-1 man-1.6g/msgs/mess.zh_TW.UTF-80000644000175000001440000001130510301736016015512 0ustar lucifredusersBAD_CONFIG_FILE "無法讀出檔案 %s 的意義\n" CONFIG_OPEN_ERROR "警告:無法開啟設定檔 %s\n" PARSE_ERROR_IN_CONFIG "解析設定檔時發生錯誤\n" INCOMPAT "選項 %s 與 %s 不相容\n" NO_ALTERNATE "抱歉 - 不支援在其他系統中編譯者\n" NO_COMPRESS "Man 於編譯時已加入 cat page 壓縮功能,\n\ 但是設定檔中未定義 COMPRESS。\n" NO_NAME_FROM_SECTION "你要從區段 %s 中讀取什麼使用手冊?\n" NO_NAME_NO_SECTION "\你要讀取什麼使用手冊?\n" NO_SUCH_ENTRY_IN_SECTION "%s 的使用手冊並不在區段 %s 之中\n" NO_SUCH_ENTRY "不存在 %s 的使用手冊\n" PAGER_IS "\n使用 %s 做為分頁程式\n" SYSTEM_FAILED "執行排列或顯示命令時發生錯誤。\n\ 系統命令 %s 以 %d 狀態結束。\n" VERSION "%s,版本 %s\n\n" OUT_OF_MEMORY "記憶體耗盡 - 無法取得 %d 位元組\n" ROFF_CMD_FROM_FILE_ERROR "從檔案 %s 解析 *roff 命令時發生錯誤\n" MANROFFSEQ_ERROR "解析 MANROFFSEQ 時發生錯誤。使用系統預設值。\n" ROFF_CMD_FROM_COMMANDLINE_ERROR "從命令列解析 *roff 命令時發生錯誤\n" UNRECOGNIZED_LINE "設定檔中無法辨識此列 (忽略)\n%s\n" GETVAL_ERROR "man-config.c:內部錯誤:字串 %s 找不到\n" FOUND_MANDIR "找到 man 目錄 %s\n" FOUND_MAP "找到 manpath 的對應 %s --> %s\n" FOUND_CATDIR "相對應的 catdir 是 %s\n" LINE_TOO_LONG "設定檔中單列過長\n" SECTION "\n區段:%s\n" UNLINKED "未連結的 %s\n" GLOBBING "展開萬用字元 %s\n" EXPANSION_FAILED "嘗試以 [%s] 擴展使用手冊失敗\n" OPEN_ERROR "無法開啟使用手冊 %s\n" READ_ERROR "讀取使用手冊 %s 時發生錯誤\n" FOUND_EQN "找到 eqn(1) 指令\n" FOUND_GRAP "找到 grap(1) 指令\n" FOUND_PIC "找到 pic(1) 指令\n" FOUND_TBL "找到 tbl(1) 指令\n" FOUND_VGRIND "找到 vgrind(1) 指令\n" FOUND_REFER "找到 refer(1) 指令\n" ROFF_FROM_COMMAND_LINE "從命令列解析指令\n" ROFF_FROM_FILE "從檔案 %s 解析指令\n" ROFF_FROM_ENV "從執行環境解析指令\n" USING_DEFAULT "使用預設的前置處理序列\n" PLEASE_WAIT "排列頁面中,請稍待...\n" CHANGED_MODE "將 %s 模式改為 %o\n" CAT_OPEN_ERROR "寫入時無法開啟 %s\n" PROPOSED_CATFILE "需要時將會寫入 %s\n" IS_NEWER_RESULT "is_newer() 的狀態是 %d\n" TRYING_SECTION "嘗試讀取區段 %s\n" SEARCHING "\n在區段 %s 中搜尋\n" ALREADY_IN_MANPATH "在 manpath 中已含有 %s\n" CANNOT_STAT "警告:無法取得檔案 %s 的狀態!\n" IS_NO_DIR "警告:%s 不是一個目錄!\n" ADDING_TO_MANPATH "將 %s 加入 manpath\n" PATH_DIR "\n目錄 %s 的路徑" IS_IN_CONFIG "存在於設定檔之中\n" IS_NOT_IN_CONFIG "不存在於設定檔之中\n" MAN_NEARBY "但是附近有使用手冊的目錄\n" NO_MAN_NEARBY "而附近找不到使用手冊的目錄\n" ADDING_MANDIRS "\n正在加入指定的使用手冊目錄\n\n" CATNAME_IS "在 convert_to_cat() 中的 cat_name 是:%s\n" NO_EXEC "\n並未執行命令:\n %s\n" USAGE1 "用法:%s [-adfhktwW] [區段] [-M 路徑] [-P 分頁程式] [-S 清單]\n\t" USAGE2 "[-m 系統] " USAGE3 "[-p 字串] 名稱 ...\n\n" USAGE4 " a:找出所有符合的項目\n\ c:不要使用 cat 檔案\n\ d:列出除錯資訊\n\ D:與 -d 類似,但是也列出各頁\n\ f:與 whatis(1) 相同\n\ h:列出本輔助訊息\n\ k:與 apropos(1) 相同\n\ K:在所有頁中搜尋字串\n" USAGE5 " t:列印時使用 troff 來排列頁面\n" USAGE6 "\ w:列出將要顯示的使用手冊位置\n\ (如果未提供名稱,就列出將要搜尋的目錄\n\ W:與 -w 類似,但是只顯示檔名\n\ C file :以 `file' 做為設定檔\n\ M path :設定使用手冊的搜尋路徑為 `path'\n\ P pager :使用程式 `pager' 來顯示各頁\n\ S list :`list' 表示以冒號分隔的區段串列\n" USAGE7 " m system:搜尋其他系統的使用手冊\n" USAGE8 " p string:`string' 指示要執行何種前置處理程式\n\ e - [n]eqn(1) p - pic(1) t - tbl(1)\n\ g - grap(1) r - refer(1) v - vgrind(1)\n" USER_CANNOT_OPEN_CAT "而真實使用者也無法開啟 cat 檔案\n" USER_CAN_OPEN_CAT "而真實使用者可以開啟 cat 檔案\n" CANNOT_FORK "分叉執行命令 _%s_ 時失敗\n" WAIT_FAILED "等待子命令 _%s_ 時發生錯誤\n" GOT_WRONG_PID "非常奇怪...,在等待自己的子命令時得到錯誤的 pid\n" CHILD_TERMINATED_ABNORMALLY "嚴重錯誤:命令 _%s_ 不正常結束\n" IDENTICAL "使用手冊 %s 與 %s 完全相同\n" MAN_FOUND "找到使用手冊:\n" NO_TROFF "錯誤:在 %s 中未指定 TROFF 命令\n" NO_CAT_FOR_NONSTD_LL "由於非標準列寬使得 cat 頁面未儲存\n" man-1.6g/man/0000755000175000001440000000000010433445363012576 5ustar lucifredusersman-1.6g/man/nl/0000755000175000001440000000000010301736016013177 5ustar lucifredusersman-1.6g/man/nl/apropos.man0000644000175000001440000000136210301736016015361 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH apropos 1 "Jan 15, 1991" .LO 1 .SH NAAM apropos \- zoek een gegeven string in de whatis database .SH SYNTAX .BI apropos string ... .SH BESCHRIJVING .B apropos zoekt naar de opgegeven strings in een aantal database bestanden die korte beschrijvingen van systeem\%commando's bevatten en stuurt het resultaat naar standaard uitvoer. .SH "ZIE OOK" whatis(1), man(1). man-1.6g/man/nl/man.man0000644000175000001440000001743110301736016014455 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .TH man 1 "2 September 1995" .LO 1 .SH NAAM man \- formatteer en vertoon documentatie bladzijden .br manpath \- geef het zoekpad voor documentatie bladzijden van de gebruiker weer .SH SYNTAX man [\-acdfhktwW] [\-m systeem] [\-p preprocessoren] [\-C configuratiebestand] [\-M pad] [\-P pagineerprogramma] [\-S lijst_van_hoofdstukken] [hoofdstuk] naam ... .SH BESCHRIJVING .B man formatteert en vertoont bladzijden van de programma documentatie. Deze versie kent de .B MANPATH en .B (MAN)PAGER omgevings\%variabelen, zodat je je eigen collectie documentatiebladzijden en je eigen pagineerprogramma kunt gebruiken. Als het .I hoofdstuk is opgegeven, dan kijkt .B man alleen in dat hoofdstuk. Je kunt ook met omgevings\%variabelen of met programmaopties opgeven in welke volgorde de hoofdstukken moeten worden afgezocht, en welke preprocessoren de tekst moeten voorbewerken. Als .I naam een / bevat, dan wordt hij eerst geprobeerd als bestandsnaam, zodat opdrachten als .B "man ./foo.5" of .B "man /cd/foo/bar.1.gz" mogelijk zijn. .SH OPTIES .TP .B \-\^C " configuratiebestand" Geef aan welk configuratiebestand gebruikt moet worden. Als deze optie niet is opgegeven, dan wordt @man_config_file@ gebruikt. (Voor een beschrijving van dit bestand, zie man.conf(5).) .TP .B \-\^M " pad" Geef de lijst van directories waarin gezocht moet worden. Als deze optie niet is opgegeven, dan wordt de omgevings\%variabele .B MANPATH gebruikt. En als er niet zo'n omgevings\%variabele is, dan wordt de standaardlijst gevonden door @man_config_file@ te raadplegen. Een lege deelstring in MANPATH wordt vervangen door de standaardlijst. .TP .B \-\^P " pagineerprogramma" Geef aan welk pagineerprogramma gebruikt moet worden. Als deze optie niet is opgegeven, dan wordt het programma vermeld in de omgevings\%variabele .B MANPAGER of, als deze niet bestaat, .B PAGER gebruikt. Is er ook niet zo'n omgevings\%variabele, dan wordt .B @pager@ gebruikt. .TP .B \-\^S " lijst_van_hoofdstukken" Deze lijst is een lijst van hoofdstukken, door dubbele punten van elkaar gescheiden, waarin gezocht wordt. Als deze optie niet is opgegeven, dan wordt de omgevings\%variabele .B MANSECT gebruikt. .TP .B \-\^a Normaal zal .B man termineren na het vertonen van de eerste documentatie bladzijde die hij vindt. Deze optie zegt dat alle bladzijden over .B naam vertoond moeten worden. .TP .B \-\^c Formatteer de bron bladzijde, zelfs als er een recente voorgeformatteerde bladzijde bestaat. Dit kan nuttig zijn als die bladzijde geformatteerd was voor een scherm met een andere breedte, of als de voorgeformatteerde bladzijde niet deugt. .TP .B \-\^d Vertoon de bladzijden niet echt, maar vertel gedetailleerd wat gedaan wordt - deze optie is alleen nuttig om fouten op te sporen. .TP .B \-\^D Als by -d, maar vertoon de bladzijden ook. .TP .B \-\^f Voer het programma .B whatis uit. .TP .B \-\^h Druk een hulptekst af. .TP .B \-\^k Voer het programma .B apropos uit. .TP .B \-\^K Zoek de opgegeven tekst in *alle* handboekbladzijden. Pas op: dit kan lang duren! (Op mijn machine kost dit bijvoorbeeld een minuut voor elke 500 pagina's.) Het helpt om een sectie op te geven. .TP .B \-\^m " systeem" Gebruik een andere collectie documentatie\%bladzijden, afhankelijk van de opgegeven systeem\%naam. .TP .B \-\^p " preprocessoren" Geef aan welke preprocessoren de tekst moeten voorbewerken voordat deze aan nroff of troff gevoerd wordt. Enige preprocessoren, en de letters waarmee ze aangeduid worden, zijn: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Niet elke installatie zal al deze programma's hebben. Als deze optie niet is opgegeven, dan wordt de omgevings\%variabele .B MANROFFSEQ gebruikt. .TP .B \-\^t Gebruik .B @troff@ om de bladzijde te formatteren, en stuur het resultaat naar .B stdout. De uitvoer van .B @troff@ moet mogelijk nog door een of ander filter gestuurd worden voordat hij afgedrukt kan worden. .TP .B \-\^w \fRor\fP \-\-path Vertoon geen documentatie, maar druk de padnamen af van de bestanden waarin documentatie gevonden werd. Als geen .I naam opgegeven is, dan: druk het zoekpad af. Als .B manpath een link is naar man, dan is "manpath" equivalent met "man --path". .TP .B \-\^W Als \-\^w, maar druk alleen de padnamen af, zonder additionele informatie. Dit komt van pas in opdrachten zoals .ft CW man -aW man | xargs ls -l .ft .SH "VOORGEFORMATTEERDE BLADZIJDEN" Man probeert om geformatteerde bladzijden te bewaren, om de volgende keer dat ze nodig zijn tijd te sparen. Gewoonlijk worden de geformatteerde versies van de bladzijden uit DIR/manX bewaard in DIR/catX, maar andere afbeeldingen van man directories naar cat directories kunnen in @man_config_file@ worden aangegeven. Geformatteerde bladzijden worden niet bewaard als het bijbehorende cat directory niet bestaat. .LP Het is mogelijk om man suid te maken, met eigenaar man. Als dan een cat directory eigenaar man heeft, en mode 0755 (alleen door man beschrijfbaar), en de geformatteerde bladzijden hebben eigenaar man en mode 0644 of 0444 (alleen beschrijfbaar door man, of helemaal niet beschrijfbaar), dan kan geen gewone gebruiker de geformatteerde bladzijden wijzigen of andere bestanden opslaan in dat directory. Als man niet suid is, dan moet een cat directory waar voor alle gebruikers geformatteerde bladzijden geschreven moeten kunnen worden mode 0777 hebben. .LP De optie -c laat man een pagina opnieuw formatteren, zelfs als een recente geformatteerde pagina bestaat. .SH OMGEVINGSVARIABELEN .TP .B MANPATH Als .B MANPATH een waarde heeft, dan wordt deze waarde als zoekpad gebruikt. .TP .B MANROFFSEQ Als .B MANROFFSEQ een waarde heeft, dan wordt deze waarde gebruikt om te bepalen door welke preprocessoren de tekst bewerkt moet worden. Standaard wordt tbl gebruikt. .TP .B MANSECT Als .B MANSECT een waarde heeft, dan wordt deze waarde gebruikt om te bepalen in welke hoofdstukken gezocht wordt. .TP .B MANWIDTH Als .B MANWIDTH een waarde heeft, dan geeft deze waarde aan hoeveel kolommen de uitvoer breed moet zijn. Vooral bij heel brede schermen geven veel mensen er de voorkeur aan het aantal kolommen tot 80 of 100 te beperken. .TP .B MANPAGER Als .B MANPAGER een waarde heeft, dan wordt deze waarde gebruikt als naam van het te gebruiken pagineerprogramma. Zo niet, dan wordt de waarde van .B PAGER gebruikt. Bestaat deze ook niet, dan wordt .B @pager@ gebruikt. .TP .B LANG Als .B LANG een waarde heeft, dan bepaalt deze de naam van een onderdirectory waar man eerst in zoekt. Bijvoorbeeld, na `LANG=nl man 1 iets' zal man eerst in .../nl/man1/iets.1 zoeken, en als dat niet bestaat, dan in .../man1/iets.1. Hierbij is ... een directory uit het zoekpad. .TP .B "NLSPATH, LC_MESSAGES, LANG" De omgevingsvariabelen .B NLSPATH en .B LC_MESSAGES (of, als deze niet bestaat, .B LANG\c ) spelen een rol bij het vinden van de versie in de opgegeven taal van de mededelingen (voornamelijk foutmeldingen) die man produceert. (Maar de Engelse teksten zijn meegecompileerd, en hoeven niet uit een bestand gehaald te worden.) Programma's als col(1) die door man aangeroepen worden, gebruiken ook LC_CTYPE. .TP .B PATH .B PATH wordt gebruikt bij het construeren van het standaard zoekpad van man. .TP .B SYSTEM .B SYSTEM wordt gebruikt als standaard naam bij de optie .B \-m. .SH "ZIE OOK" apropos(1), whatis(1), less(1), groff(1). .SH FOUTEN De .B \-t optie werkt alleen als een troff-achtig programma geinstalleerd is. .br Als je \e255 of ziet knipperen waar afbreekstreepjes hadden moeten staan, zet dan `LESSCHARSET=latin1' in je omgeving. man-1.6g/man/nl/whatis.man0000644000175000001440000000160610301736016015176 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH whatis 1 "Jan 5, 1991" .LO 1 .SH NAAM whatis \- zoek gegeven woorden in de whatis database .SH SYNTAX .BI whatis woord ... .SH BESCHRIJVING .B whatis zoekt naar de opgegeven woorden in een aantal database bestanden die korte beschrijvingen van systeem\%commando's bevatten en stuurt het resultaat naar standaard uitvoer. De opgegeven woorden moeten als volledige woorden gevonden worden. De whatis database bestanden wordem aangemaakt met behulp van het commando @makewhatis@. .SH "ZIE OOK" apropos(1), man(1). man-1.6g/man/nl/man.conf.man0000644000175000001440000000204010301736016015367 0ustar lucifredusers.\" @(#)man.conf .TH MAN.CONF 5 "30 Mar 1994" .SH NAAM man.conf \- configuratie bestand voor man .SH BESCHRIJVING .LP Dit bestand wordt door .BR man (1) gelezen, en bevat (a) informatie over hoe het zoekpad voor man gemaakt moet worden, (b) volledige padnamen voor de benodigde programma's, zoals nroff, eqn, tbl enz., en (c) een lijst van decomprimeerprogramma's voor bestanden met een gegeven extensie. Een prive versie van dit bestand kan gebruikt worden door man de -C optie mee te geven: .LP .RS man -C prive_man.conf ... .RE .LP Aan de programmanamen kunnen opties worden meegegeven. Nuttige opties om bij nroff te gebruiken kunnen in grotty(1) gevonden worden. Bijvoorbeeld, in plaats van het gebruikelijke .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP kan men .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP schrijven, teneinde onderstrepingen en overprintingen weg te halen. .SH "ZIE OOK" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) en compress(1), gzip(1). man-1.6g/man/de/0000755000175000001440000000000011317273252013164 5ustar lucifredusersman-1.6g/man/de/README0000644000175000001440000000033510301736016014037 0ustar lucifredusersThese german man pages were contributed by Jochen Hein. #From hein@centeotl.in.tu-clausthal.de Tue May 31 08:52:20 1994 #To: Andries.Brouwer@cwi.nl #Subject: Re: man-1.3 #From: Hein@student.tu-clausthal.de (Jochen Hein) man-1.6g/man/de/man.man0000644000175000001440000001504611317273251014441 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .\" Translated into german by Jochen Hein ( Hein@Student.TU-Clausthal.de ) .\" and Ralf W. Stephan ( ralf@franken.de ). .\" .TH man 1 "2. September 1995" .LO 1 .SH NAME man \- Formatieren und Anzeigen von Seiten des Online-Handbuches (man pages) .br manpath \- Anzeigen des Benutzer-eigenen Suchpfades fr Seiten des Online-Handbuches (man pages) .SH SYNTAX man [\-acdfhktw] [\-m system] [\-p string] [\-C config_file] [\-M path] [\-P pager] [\-S section_list] [section] name ... .SH BESCHREIBUNG .B man formatiert Seiten aus dem Online-Handbuch und zeigt diese an. Diese Version untersttzt die .B MANPATH und .B (MAN)PAGER Umgebungsvariablen, so da Sie ihre eigenen man pages verwenden knnen und selbst whlen knnen, welches Programm die formatierten Seiten anzeigen soll. Wenn der Parameter .I section angegeben wird, so sucht .B man nur in dieser Sektion des Handbuchs. Sie knnen auch mit Hilfe von Kommando-Zeilen-Optionen oder Umgebungsvariablen die Reihenfolge angeben, in der die Sektionen nach Eintrgen durchsucht werden und welche zustzlichen Programme die Quelltexte bearbeiten sollen. Wenn der Parameter .I name das Zeichen / enthlt, dann wird zunchst versucht, diese Datei zu bearbeiten. Damit knnen Sie z.B. .B "man ./foo.5" oder auch .B "man /cd/foo/bar.1.gz" eingeben. .SH OPTIONEN .TP .B \-\^C " config_file" bestimmt welche man.conf-Datei als Steuerdatei verwendet wird. .TP .B \-\^M " path" bestimmt eine Liste von Verzeichnissen, die nach Handbuch-Seiten durchsucht werden. Wenn diese Option nicht angegeben ist, so wird die Umgebungsvariable .B MANPATH benutzt. Ist diese Variable nicht gesetzt, so wird diese Liste aus der Datei man.conf erstellt. .TP .B \-\^P " pager" bestimmt welches Programm zur Anzeige der Handbuch-Seiten benutzt wird. Als default benutzt man .B @pager@ Diese Option berschreibt die Umgebungsvariable .B PAGER .TP .B \-\^S " section_list" ist eine durch Doppelpunkte getrennte Liste von Handbuch-Sektionen, die nach Handbuch-Seiten durchsucht werden soll. Diese Option berschreibt die Umgebungsvariable .B MANSECT .TP .B \-\^a Als Default wird .B man beendet, nachdem es die erste Handbuchseite angezeigt hat, die gefunden wurde. Diese Option weist .B man an, alle Handbuch-Seiten anzuzeigen, die zu .B name, passen, nicht nur die erste. .TP .B \-\^d zeigt nicht die Handbuch-Seiten an, sondern gibt etliche Informationen zur Fehlersuche aus. .TP .B \-\^f ist quivalent zu .BR whatis . .TP .B \-\^h gibt eine (einzeilige) Hilfe aus und beendet .BR man . .TP .B \-\^k ist quivalent zu .BR apropos . .TP .B \-\^K Suche in *allen* Manualseiten nach dem angegebenen Schlsselwort. Achtung: Die Suche dauert mglicherweise sehr lange! Die Angabe der Sektion beschleunigt die Suche. (Als groben Richtwert fr die Suche kann man ca. eine Minute fr 500 Manualseiten ansetzen.) .TP .B \-\^m " system" bestimmt eine andere Menge von Handbuch-Seiten, die aufgrund des angegebenen System-Namen durchsucht werden sollen. .TP .B \-\^p " string" bestimmt die Abfolge von Prprozessoren, die vor nroff oder troff gestartet werden sollen. Nicht alle Installationen verfgen ber alle Prprozessoren. Einige der Prprozessoren und die dafr verwendeten Buchstaben sind: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Diese Option berschreibt die Umgebungsvariable .B MANROFFSEQ .TP .B \-\^t benutzt .B @troff@ um die Handbuch-Seite zu formatieren und leitet die Ausgabe weiter nach .B stdout. Die Ausgabe von .B @troff@ mu mglicherweise durch einen Filter weiterbearbeitet werden, bevor sie gedruckt werden kann. .TP .B \-\^w \fRor\fP \-\-path die Handbuchseiten werden nicht angezeigt, sondern die Fundorte der Seiten, die formatiert oder angezeigt wrden. Wenn kein Argument angegeben wurde, wird die Liste der Verzeichnisse ausgegeben, die von .B man nach Handbuch-Seiten durchsucht werden. Wenn .B manpath ein Link zu man ist, dann ist "manpath" quivalent zu "man --path". .SH ENVIRONMENT .TP .B MANPATH Wenn die Umgebungsvariable .B MANPATH gesetzt ist, dann wird dieser Wert als Suchpfad fr Handbuch-Seiten verwendet. .TP .B MANROFFSEQ Wenn die Umgebungsvariable .B MANROFFSEQ gesetzt ist, dann wird dieser Wert benutzt um die Prprozessoren zu bestimmen, die aufgerufen werden sollen, bevor die Handbuch-Seite mit nroff oder troff bearbeitet wird. Standardmig werden Handbuch-Seiten durch den Tabellen Prprozessor bearbeitet bevor nroff gestartet wird. .TP .B MANSECT Wenn die Umgebungsvariable .B MANSECT gesetzt ist, dann bestimmt dieser Wert welche Handbuch-Sektionen durchsucht werden sollen. .TP .B MANWIDTH Wenn die Umgebungsvariable .B MANWIDTH gesetzt ist, dann beschreibt deren Wert die Breite auf der die Handbuch-Seite angezeigt werden soll. Ansonsten wird die Seite u.U. ber die gesamte Breite des Bildschirmes gezogen. .TP .B PAGER Wenn die Umgebungsvariable .B PAGER gesetzt ist, so wird dieser Wert als Name des Programms benutzt, mit dem die Handbuch-Seiten angezeigt werden sollen. Standardmig wird .B @pager@ verwendet. .TP .B LANG Wenn die Umgebungsvariable .B LANG gesetzt ist, gibt ihr Inhalt den Namen des Unterverzeichnisses an, wo zuerst nach der Handbuch-Seite gesucht werden soll. So zB bewirkt der Shell-Befehl `LANG=dk man 1 foo', da .B man zuerst in ...dk/man1/foo.1 nach der Handbuchseite fr 'foo' sucht, und wenn es dort nicht fndig wird, dann in ...man1/foo.1, wobei '...' ein Verzeichnis aus dem Suchpfad bedeutet. .TP .B "NLSPATH, LC_MESSAGES, LANG" Die Umgebungsvariablen .B NLSPATH und .B LC_MESSAGES (oder .B LANG falls erstere nicht existiert) spielen bei der Suche nach dem Message Katalog eine Rolle (englische Messages sind fest einkompiliert, daher ist auch kein Katalog fr sie notwendig). Beachten Sie, da auch Programme wie .B col(1), das von .B man aufgerufen wird, noch zustzliche Variablen wie LC_CTYPE benutzen. .TP .B PATH .B PATH wird bei der Konstruktion des vorgegebenen Suchpfades fr Handbuchseiten verwendet. .TP .B SYSTEM .B SYSTEM wird verwendet, um einen alternativen Systemnamen herauszufinden (sinnvoll zusammen mit der .B \-m Option). .SH "SIEHE AUCH" apropos(1), whatis(1), less(1), groff(1). .SH BUGS Die .B \-t Option kann nur auf System verwendet werden, auf denen ein troff-Programm installiert ist. man-1.6g/man/de/apropos.man0000644000175000001440000000147610301736016015346 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" bersetzt von Jochen Hein ( Hein@Student.tu-clausthal.de ) .\" .TH apropos 1 "Jan 15, 1991" .LO 1 .SH NAME apropos \- durchsucht die whatis Datenbank nach Zeichenketten .SH SYNTAX .BI apropos keyword ... .SH BESCHREIBUNG apropos durchsucht eine Reihe von Datenbank-Dateien, die kurze Beschreibungen von System-Kommandos enthalten, nach Schlsselworten und zeigt das Ergebnis auf der Standard-Ausgabe an. .SH "SIEHE AUCH" whatis(1), man(1). man-1.6g/man/de/whatis.man0000644000175000001440000000165110301736016015155 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" bersetzt von Jochen Hein ( Hein@Student.TU-Clausthal.de ) .\" .TH whatis 1 "Jan 5, 1991" .LO 1 .SH NAME whatis \- durchsucht die whatis Datenbank nach vollstndigen Worten. .SH SYNTAX .BI whatis keyword ... .SH BESCHREIBUNG whatis durchsucht eine Reihe von Datenbank-Dateien, die kurze Beschreibungen von System-Kommandos enthalten, nach Schlsselworten und zeigt das Ergebnis auf der Standard-Ausgabe an. Nur genaue Treffer werden angezeigt. Die whatis Datenbank wird mit dem Kommando @makewhatis@ erstellt. .SH "SIEHE AUCH" apropos(1), man(1). man-1.6g/man/de/man.conf.man0000644000175000001440000000204610301736016015354 0ustar lucifredusers.\" @(#)man.conf .TH MAN.CONF 5 "30 Mar 1994" .SH NAME man.conf \- Konfigurationsdatei fr man .SH BESCHREIBUNG .LP Diese Datei wird von .BR man (1) gelesen und enthlt (a) Informationen darber, wie der Such-Pfad fr man aufgebaut wird, (b) den vollstndigen Namen (inclusive Pfad) von diversen Programmen wie nroff, eqn, tbl etc, die von man aufgerufen werden und (c) eine Liste mit Auspack-Programmen fr Dateien mit speziellen Erweiterungen. Eine alternative Version dieser Datei benutzt werden mit .LP .RS man -C private_man.conf ... .RE .LP Die Programm-Namen knnen mit Optionen angegeben werden. Ntzliche Optionen fr roff sind in grotty(1) beschrieben. Zum Beispiel knnte man statt des Default-Kommandos .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tascii .fi .RE .LP den Befehl .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tascii -P-u -P-b .fi .RE .LP verwenden, um Unterstreichungen und berschreiben zu verhindern. .SH "SIEHE AUCH" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) and compress(1), gzip(1). man-1.6g/man/en/0000755000175000001440000000000010733173622013177 5ustar lucifredusersman-1.6g/man/en/man.man0000644000175000001440000003040610733173521014450 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" More changes - flc .\" .TH man 1 "September 19, 2005" .LO 1 .SH NAME man \- format and display the on-line manual pages .SH SYNOPSIS .B man .RB [ \-acdfFhkKtwW ] .RB [ --path ] .RB [ \-m .IR system ] .RB [ \-p .IR string ] .RB [ \-C .IR config_file ] .RB [ \-M .IR pathlist ] .RB [ \-P .IR pager ] .RB [ \-B .IR browser ] .RB [ \-H .IR htmlpager ] .RB [ \-S .IR section_list ] .RI [ section ] .I "name ..." .SH DESCRIPTION .B man formats and displays the on-line manual pages. If you specify .IR section , .B man only looks in that section of the manual. .I name is normally the name of the manual page, which is typically the name of a command, function, or file. However, if .I name contains a slash .RB ( / ) then .B man interprets it as a file specification, so that you can do .B "man ./foo.5" or even .B "man /cd/foo/bar.1.gz\fR.\fP" .PP See below for a description of where .B man looks for the manual page files. .SH MANUAL SECTIONS The standard sections of the manual include: .TP .B 1 User Commands .TP .B 2 System Calls .TP .B 3 C Library Functions .TP .B 4 Devices and Special Files .TP .B 5 File Formats and Conventions .TP .B 6 Games et. Al. .TP .B 7 Miscellanea .TP .B 8 System Administration tools and Deamons .TP Distributions customize the manual section to their specifics, which often include additional sections. .SH OPTIONS .TP .B \-\^C " config_file" Specify the configuration file to use; the default is .BR @man_config_file@ . (See .BR man.conf (5).) .TP .B \-\^M " path" Specify the list of directories to search for man pages. Separate the directories with colons. An empty list is the same as not specifying .B \-M at all. See .BR "SEARCH PATH FOR MANUAL PAGES" . .TP .B \-\^P " pager" Specify which pager to use. This option overrides the .B MANPAGER environment variable, which in turn overrides the .B PAGER variable. By default, .B man uses .BR "@pager@" . .TP .B \-\^B Specify which browser to use on HTML files. This option overrides the .B BROWSER environment variable. By default, .B man uses .BR @browser@ , .TP .B \-\^H Specify a command that renders HTML files as text. This option overrides the .B HTMLPAGER environment variable. By default, .B man uses .BR @htmlpager@ , .TP .B \-\^S " section_list" List is a colon separated list of manual sections to search. This option overrides the .B MANSECT environment variable. .TP .B \-\^a By default, .B man will exit after displaying the first manual page it finds. Using this option forces .B man to display all the manual pages that match .B name, not just the first. .TP .B \-\^c Reformat the source man page, even when an up-to-date cat page exists. This can be meaningful if the cat page was formatted for a screen with a different number of columns, or if the preformatted page is corrupted. .TP .B \-\^d Don't actually display the man pages, but do print gobs of debugging information. .TP .B \-\^D Both display and print debugging info. .TP .B \-\^f Equivalent to .BR whatis . .TP .BR \-\^F " or " \-\-preformat Format only - do not display. .TP .B \-\^h Print a help message and exit. .TP .B \-\^k Equivalent to .BR apropos . .TP .B \-\^K Search for the specified string in *all* man pages. Warning: this is probably very slow! It helps to specify a section. (Just to give a rough idea, on my machine this takes about a minute per 500 man pages.) .TP .B \-\^m " system" Specify an alternate set of man pages to search based on the system name given. .TP .B \-\^p " string" Specify the sequence of preprocessors to run before .B nroff or .BR troff . Not all installations will have a full set of preprocessors. Some of the preprocessors and the letters used to designate them are: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). This option overrides the .B MANROFFSEQ environment variable. .TP .B \-\^t Use .B @troff@ to format the manual page, passing the output to .B stdout. The default output format of .B @troff@ is Postscript, refer to the manual page of .B @troff@ for ways to pick an alternate format. .PP Depending on the selected format and the availability of printing devices, the output may need to be passed through some filter or another before being printed. .TP .B \-\^w \fRor\fP \-\-path Don't actually display the man pages, but do print the location(s) of the files that would be formatted or displayed. If no argument is given: display (on stdout) the list of directories that is searched by .B man for man pages. If .B manpath is a link to man, then "manpath" is equivalent to "man --path". .TP .B \-\^W Like \-\^w, but print file names one per line, without additional information. This is useful in shell commands like .ft CW .B "man -aW man | xargs ls -l" .ft .SH "CAT PAGES" Man will try to save the formatted man pages, in order to save formatting time the next time these pages are needed. Traditionally, formatted versions of pages in DIR/manX are saved in DIR/catX, but other mappings from man dir to cat dir can be specified in .BR @man_config_file@ . No cat pages are saved when the required cat directory does not exist. No cat pages are saved when they are formatted for a line length different from 80. No cat pages are saved when man.conf contains the line NOCACHE. .PP It is possible to make .B man suid to a user man. Then, if a cat directory has owner man and mode 0755 (only writable by man), and the cat files have owner man and mode 0644 or 0444 (only writable by man, or not writable at all), no ordinary user can change the cat pages or put other files in the cat directory. If .B man is not made suid, then a cat directory should have mode 0777 if all users should be able to leave cat pages there. .PP The option .B \-c forces reformatting a page, even if a recent cat page exists. .SH "HTML PAGES" Man will find HTML pages if they live in directories named as 'html' followed by a section extension. The last file extension is expected to be ".html", thus a valid name for an HTML version of the .BR ls (1) man page would be .IR /usr/share/man/htmlman1/ls.1.html . .SH "SEARCH PATH FOR MANUAL PAGES" .B man uses a sophisticated method of finding manual page files, based on the invocation options and environment variables, the .B @man_config_file@ configuration file, and some built in conventions and heuristics. .PP First of all, when the .I name argument to .B man contains a slash .RB ( / ), .B man assumes it is a file specification itself, and there is no searching involved. .PP But in the normal case where .I name doesn't contain a slash, .B man searches a variety of directories for a file that could be a manual page for the topic named. .PP If you specify the .BI "-M " pathlist option, .I pathlist is a colon-separated list of the directories that .B man searches. .PP If you don't specify .B -M but set the .B MANPATH environment variable, the value of that variable is the list of the directories that .B man searches. .PP If you don't specify an explicit path list with .B -M or .BR MANPATH , .B man develops its own path list based on the contents of the configuration file .BR @man_config_file@ . The .B MANPATH statements in the configuration file identify particular directories to include in the search path. .PP Furthermore, the .B MANPATH_MAP statements add to the search path depending on your command search path (i.e. your .B PATH environment variable). For each directory that may be in the command search path, a .B MANPATH_MAP statement specifies a directory that should be added to the search path for manual page files. .B man looks at the .B PATH variable and adds the corresponding directories to the manual page file search path. Thus, with the proper use of .BR MANPATH_MAP , when you issue the command .BR "man xyz" , you get a manual page for the program that would run if you issued the command .BR xyz . .PP In addition, for each directory in the command search path (we'll call it a "command directory") for which you do .I not have a .B MANPATH_MAP statement, .B man automatically looks for a manual page directory "nearby" namely as a subdirectory in the command directory itself or in the parent directory of the command directory. .PP You can disable the automatic "nearby" searches by including a .B NOAUTOPATH statement in .BR @man_config_file@ . .PP In each directory in the search path as described above, .B man searches for a file named .IB topic . section\fR, with an optional suffix on the section number and possibly a compression suffix. If it doesn't find such a file, it then looks in any subdirectories named .BI man N or .BI cat N where .I N is the manual section number. If the file is in a .BI cat N subdirectory, .B man assumes it is a formatted manual page file (cat page). Otherwise, .B man assumes it is unformatted. In either case, if the filename has a known compression suffix (like .BR .gz ), .B man assumes it is gzipped. .PP If you want to see where (or if) .B man would find the manual page for a particular topic, use the .BR "--path " ( -w ) option. .SH ENVIRONMENT .TP .B MANPATH If .B MANPATH is set, .B man uses it as the path to search for manual page files. It overrides the configuration file and the automatic search path, but is overridden by the .B -M invocation option. See .BR "SEARCH PATH FOR MANUAL PAGES" . .TP .B MANPL If .B MANPL is set, its value is used as the display page length. Otherwise, the entire man page will occupy one (long) page. .TP .B MANROFFSEQ If .B MANROFFSEQ is set, its value is used to determine the set of preprocessors run before running .B nroff or .BR troff . By default, pages are passed through the tbl preprocessor before .BR nroff . .TP .B MANSECT If .B MANSECT is set, its value is used to determine which manual sections to search. .TP .B MANWIDTH If .B MANWIDTH is set, its value is used as the width manpages should be displayed. Otherwise the pages may be displayed over the whole width of your screen. .TP .B MANPAGER If .B MANPAGER is set, its value is used as the name of the program to use to display the man page. If not, then .B PAGER is used. If that has no value either, .B @pager@ is used. .TP .B BROWSER The name of a browser to use for displaying HTML manual pages. If it is not set, @browser@ is used. .TP .B HTMLPAGER The command to use for rendering HTML manual pages as text. If it is not set, @htmlpager@ is used. .TP .B LANG If .B LANG is set, its value defines the name of the subdirectory where man first looks for man pages. Thus, the command `LANG=dk man 1 foo' will cause man to look for the foo man page in .../dk/man1/foo.1, and if it cannot find such a file, then in .../man1/foo.1, where ... is a directory on the search path. .TP .B "NLSPATH, LC_MESSAGES, LANG" The environment variables .B NLSPATH and .B LC_MESSAGES (or .B LANG when the latter does not exist) play a role in locating the message catalog. (But the English messages are compiled in, and for English no catalog is required.) Note that programs like .BR col(1) called by man also use e.g. LC_CTYPE. .TP .B PATH .B PATH helps determine the search path for manual page files. See .BR "SEARCH PATH FOR MANUAL PAGES" . .TP .B SYSTEM .B SYSTEM is used to get the default alternate system name (for use with the .B \-m option). .SH BUGS The .B \-t option only works if a troff-like program is installed. .br If you see blinking \e255 or instead of hyphens, put `LESSCHARSET=latin1' in your environment. .SH TIPS If you add the line (global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word)))) to your .IR .emacs file, then hitting F1 will give you the man page for the library call at the current cursor position. .LP To get a plain text version of a man page, without backspaces and underscores, try # man foo | col -b > foo.mantxt .SH AUTHOR John W. Eaton was the original author of .BR "man" . Zeyd M. Ben-Halim released man 1.2, and Andries Brouwer followed up with versions 1.3 thru 1.5p. Federico Lucifredi is the current maintainer. .SH "SEE ALSO" apropos(1), whatis(1), less(1), groff(1), man.conf(5). man-1.6g/man/en/whatis.man0000644000175000001440000000204710313455521015171 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH whatis 1 "September 19, 2005" .LO 1 .SH NAME whatis \- search the whatis database for complete words. .SH SYNOPSIS .BI whatis keyword ... .SH DESCRIPTION whatis searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output. Only complete word matches are displayed. The whatis database is created using the command @makewhatis@. .SH AUTHOR John W. Eaton was the original author of .BR "man" . Zeyd M. Ben-Halim released man 1.2, and Andries Brouwer followed up with versions 1.3 thru 1.5p. Federico Lucifredi is the current maintainer. .SH "SEE ALSO" apropos(1), man(1). man-1.6g/man/en/apropos.man0000644000175000001440000000167410313455246015366 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH apropos 1 "September 19, 2005" .LO 1 .SH NAME apropos \- search the whatis database for strings .SH SYNOPSIS .BI apropos keyword ... .SH DESCRIPTION apropos searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output. .SH AUTHOR John W. Eaton was the original author of .BR "man" . Zeyd M. Ben-Halim released man 1.2, and Andries Brouwer followed up with versions 1.3 thru 1.5p. Federico Lucifredi is the current maintainer. .SH "SEE ALSO" whatis(1), man(1). man-1.6g/man/en/man.conf.man0000644000175000001440000000227410313455422015373 0ustar lucifredusers.\" @(#)man.conf .TH MAN.CONF 5 "September 19, 2005" .SH NAME man.conf \- configuration data for man .SH DESCRIPTION .LP This file is read by .BR man (1) and contains (a) information on how to construct the search path for man, (b) full path names for various programs like nroff, eqn, tbl etc. used by man, and (c) a list with uncompressors for files with a given extension. An alternative version of this file can be specified with .LP .RS man -C private_man.conf ... .RE .LP The command names may be provided with options. Useful options to nroff can be found in grotty(1). For example, instead of the default line .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP one may write .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP in order to suppress underlining and overstriking. .SH FILES .I "@man_config_file@" .SH AUTHOR John W. Eaton was the original author of .BR "man" . Zeyd M. Ben-Halim released man 1.2, and Andries Brouwer followed up with versions 1.3 thru 1.5p. Federico Lucifredi is the current maintainer. .SH "SEE ALSO" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) and compress(1), gzip(1). man-1.6g/man/en/makewhatis.man0000644000175000001440000000613210457332377016042 0ustar lucifredusers.\" Copyright (c) 1999 Ottavio G. Rizzo .\" .\" This is free documentation; 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 .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual 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 this manual; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, .\" USA. .\" .TH MAKEWHATIS 8 "September 19, 2005" .SH NAME makewhatis \- Create the whatis database .SH SYNOPSIS .BI "makewhatis [-u] [-v] [-w] [-s " sections " ] [-c [" catpath "]] [" manpath "]" .SH DESCRIPTION .B makewhatis reads all the manual pages contained in the given .IR sections " of " manpath or the preformatted pages contained in the given .IR sections " of " catpath . For each page, it writes a line in the whatis database; each line consists of the name of the page and a short description, separated by a dash. The description is extracted using the content of the NAME section of the manual page. .LP Since other languages use a different term for the NAME section, .B makewhatis recognizes the equivalent terms in Czech, Italian, Finnish, French, German and Spanish. .LP If no .I manpath argument is given, .I /usr/man is assumed by default. .SH OPTIONS .TP .B -u Update database with new pages. .TP .B -v Verbose output .TP .B -w Use manpath obtained from `man --path` .TP .BI -s " sections" Looks in the .I sections of .IR manpath " or " catpath . If the option is absent, the MANSECT env var will be used. If it too is absent, the MANSECT setting in man.conf will be used. .TP .BI -c " catpath" The preformatted manual pages located in .I catpath are scanned. If the argument is not provided, it is assumed to be the first existing directory between .IR /usr/man/preformat " and " /usr/man . .SH EXAMPLES .PP To rebuild only .IR /usr/X11R6/man/whatis " and " /usr/local/man/whatis .IP makewhatis /usr/X11R6/man /usr/local/man .PP To rebuild all the databases, including those of the Finnish, French and Italian translations .IP LANGUAGE=fi:fr:it makewhatis -w .SH BUGS .B makewhatis may not handle too well manual pages written with non-standard troff macros, such as the Tcl/Tk pages. .PP .B makewhatis does not work on preformatted translations. .SH AUTHOR John W. Eaton was the original author of .BR "man" . Zeyd M. Ben-Halim released man 1.2, and Andries Brouwer followed up with versions 1.3 thru 1.5p. Federico Lucifredi is the current maintainer. .SH SEE ALSO .BR apropos (1), .BR man (1), .BR whatis (1) man-1.6g/man/de.txt0000644000175000001440000000000710301736016013714 0ustar lucifredusersgerman man-1.6g/man/nl.txt0000644000175000001440000000000610301736016013734 0ustar lucifredusersdutch man-1.6g/man/en.txt0000644000175000001440000000001010301736016013720 0ustar lucifredusersenglish man-1.6g/man/Makefile.in0000644000175000001440000000323510301736016014636 0ustar lucifredusers# only executed from a subdir MAN1 = man whatis apropos MAN5 = man.conf MAN8 = makewhatis ALL = man.1 whatis.1 apropos.1 man.conf.5 MAYBE8 = makewhatis .SUFFIXES: .man .1 .5 .8 .man.1: @cp $< $@.in; ../../conf_script $@; rm $@.in .man.5: @cp $< $@.in; ../../conf_script $@; rm $@.in .man.8: @cp $< $@.in; ../../conf_script $@; rm $@.in INSTALL = @INSTALL@ -c -m 644 # Where to put the manual pages. mandir = $(DESTDIR)$(PREFIX)@mandir@$(SLANG) all: $(ALL) for i in $(MAYBE8); \ do if test -f $$i.man; then make -f ../Makefile $$i.8; fi; done install: $(ALL) mkdir -p $(mandir)/man1 $(mandir)/man5 $(mandir)/man8 for i in $(MAN1); \ do $(INSTALL) $$i.1 $(mandir)/man1/$$i.@man1ext@; done for i in $(MAN5); \ do $(INSTALL) $$i.5 $(mandir)/man5/$$i.@man5ext@; done for i in $(MAN8); \ do if test -f $$i.8; then $(INSTALL) $$i.8 $(mandir)/man8/$$i.@man8ext@; fi; done clean: rm -f core *.in *.@man1ext@ *.@man5ext@ *.@man8ext@ *~ spotless: subdirs: @for i in @languages@; do if test -d $$i; then echo; \ echo "==== Making the `cat $$i.txt` man pages. ===="; \ cd $$i; make -f ../Makefile; cd ..; \ else echo "==== No $$i man pages found. ===="; fi; done installsubdirs: @for i in @languages@; do if test -d $$i; then echo; \ echo "==== Installing the `cat $$i.txt` man pages. ===="; \ cd $$i; SLANG=/$$i; if test $$SLANG = /en; then SLANG= ; fi; \ export SLANG; make -f ../Makefile install; cd ..; \ else echo "==== No $$i man pages found. ===="; fi; done cleansubdirs: @for i in ??; do cd $$i; make -f ../Makefile clean; cd ..; done rm -f core *~ spotlesssubdirs: for i in ??; do cd $$i; make -f ../Makefile spotless; cd ..; done rm -f Makefile man-1.6g/man/pt.txt0000644000175000001440000000001310301736016013744 0ustar lucifredusersportuguese man-1.6g/man/pt/0000755000175000001440000000000010301736016013211 5ustar lucifredusersman-1.6g/man/pt/apropos.man0000644000175000001440000000133510301736016015373 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH apropos 1 "15/1/1991" .LO 1 .SH NOME apropos \- procura `strings' na base de dados "whatis" .SH SINOPSE .BI apropos palavra_chave ... .SH DESCRIO apropos procura a .B palavra_chave, numa base de dados contendo breves descries dos comandos, mostrando todas as descries onde encontre a referida chave. .SH "VEJA TAMBM" whatis(1), man(1). man-1.6g/man/pt/man.man0000644000175000001440000001011310301736016014455 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .TH man 1 "15/3/1994" .LO 1 .SH NOME man \- formatar e mostrar as pginas do manual on-line .br manpath \- determinar o manpath inicial para o utilizador .SH SINOPSE man [\-acdfhktw] [\-m sistema] [\-p string] [\-C fich_config] [\-M path] [\-P paginador] [\-S lista_sec] [seco] nome ... .SH DESCRIO .B man formata e mostra as pginas do manual `on-line'. Esta verso reconhece as variveis de ambiente (environment) .B MANPATH e .B (MAN)PAGER (vr a seguir). Se a .I seco for indicada, .B man apenas procura nessa seco de manuais. Pode tambm indicar por que ordem das seces deve procurar e que preprocessamento efectuar nos manuais, por meio de opes na linha de comando ou variveis de ambiente. Se .I nome contiver uma / tentar primeiro o ficheiro com esse nome, permitindo fazer .B "man ./foo.5" ou mesmo .B "man /cd/foo/bar.1.gz" para formatar e vr um ficheiro em particular. .SH OPES .TP .B \-\^C " fich_config" Indica o ficheiro de configurao a usar; por omisso ser usado @man_config_file@. (Veja man.conf(5).) .TP .B \-\^M " path" Indica a lista de directrios onde procurar manuais. Sem esta opo, ser consultada a varivel .B MANPATH. Se tambm esta varivel estiver definida, uma lista ser obtida por consulta de @man_config_file@. Um directrio vazio em MANPATH representa a lista anterior. .TP .B \-\^P " paginador" Indica qual o paginador/visualisador a usar. Sem esta opo tentar consultar a varivel .B PAGER. Normalmente, man usar .B @pager@. .TP .B \-\^S " lista_sec" Fornece a lista de seces (separadas por ,) onde procurar e por que ordem. Esta opo substitui o que indicado pela varivel .B MANSECT quando esta est definida. .TP .B \-\^a Normalmente man mostra o primeiro manual que encontrar. Esta opo faz com que mostre todas as pginas de manuais encontradas para a entrada .B nome. .TP .B \-\^d No mostra o manual, imprimindo vria informao para `debug'. .TP .B \-\^f Equivalente a .B whatis. .TP .B \-\^h Imprime apenas uma mensagem de ajuda. .TP .B \-\^k Equivalente a .B apropos. .TP .B \-\^m " sistema" Indica um conjunto de manuais diferente aplicveis ao sistema indicado. .TP .B \-\^p " string" Especifica uma sequncia de preprocessadores a usar antes de nroff ou troff (os formatadores). Algumas instalaes podem no ter todos os preprocessadores. Alguns preprocessadores e as letras a usar para os indicar so: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Esta opo sobrepe-se varivel .B MANROFFSEQ. .TP .B \-\^t Usar .B @troff@ para formatar as pginas do manual. A sada deste comando pode ter ainda de ser processada por outro antes de a poder imprimir. .TP .B \-\^w \fRor\fP \-\-path No imprime as pginas do manual, mas mostra a(s) localizao(es) dos ficheiros a formatar e mostrar, para a entrada de .B nome indicado. Se no fornecer mais nenhuma opo mostra a lista de directrios que sero percorridos por .B man nas suas buscas. Se .B manpath um `link' para man, ento "manpath" equivalente a "man --path". .SH AMBIENTE .TP \w'MANROFFSEQ\ \ 'u .B MANPATH Se .B MANPATH estiver definido, o seu valor ser usado como a lista de directrios (manpath) onde podem estar entradas do manual. .TP .B MANROFFSEQ Se .B MANROFFSEQ est definido, o seu valor determina os preprocessamentos a aplicar antes de nroff ou troff. Normalmente, as pginas de manual, so preprocessadas pelo tbl antes de nroff. .TP .B MANSECT Se .B MANSECT existir, o seu valor indica as seces a percorrer. .TP .B PAGER Se .B PAGER est definido, indicar o programa a usar para mostrar o manual. Normalmente usar .B @pager@. .SH "VEJA TAMBM" apropos(1), whatis(1), less(1), groff(1). .SH BUGS .B \-t s funciona se existir o programa troff ou equivalente. man-1.6g/man/pt/whatis.man0000644000175000001440000000151410301736016015206 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH whatis 1 "5/1/1991" .LO 1 .SH NOME whatis \- procura palavras numa base de dados prpria .SH SINOPSE .BI whatis palavra_chave ... .SH DESCRIO whatis procura numa base de dados contendo breves descries dos comandos, as palavras chave indicadas. S quando uma palavra completa igual a uma .B palavra_chave ser mostrada a respectiva descrio. A base de dados do "whatis" criada usando o comando @makewhatis@. .SH "VEJA TAMBM" apropos(1), man(1). man-1.6g/man/pt/README0000644000175000001440000000030610301736016014070 0ustar lucifredusersThese portuguese man pages were contributed by Vitor Duarte. #From vad@fct.unl.pt Tue Jun 21 14:15:01 1994 #To: Andries.Brouwer@cwi.nl #Subject: portuguese man #From: Vitor Duarte man-1.6g/man/pt/man.conf.man0000644000175000001440000000164010301736016015406 0ustar lucifredusers.\" @(#)man.conf .TH MAN.CONF 5 "30/3/1994" .SH NOME man.conf \- dicheiro de configurao para man .SH DESCRIO .LP Este ficheiro lido por .BR man (1) e contm: (a) informao de como construir o manpath; (b) nomes completos de vrios programas como nroff, eqn, tbl, etc. usados por man; (c) a lista de descompressores dos ficheiros com determinadas extenses. Um ficheiro alternativo pode ser indicado com .LP .RS man -C fich_config ... .RE .LP Os nomes de comandos podem ser indicados com opes se pretendido. Opes uteis para o nroff podem ser encontradas em grotty(1). Por exemplo, am vez de linha .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP pode-se usar .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP para suprimir sublinhados e carregados. .SH "VEJA TAMBM" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) e compress(1), gzip(1). man-1.6g/man/pl/0000755000175000001440000000000010301736016013201 5ustar lucifredusersman-1.6g/man/pl/apropos.man0000644000175000001440000000176010442350141015362 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Tumaczenie: 950322 Rafa Maszkowski .\" .TH apropos 1 "19 wrzenia 2005" .LO 1 .SH NAZWA apropos \- wyszukuje acuchy znakw w bazie whatis .SH SKADNIA .BI apropos sowo_kluczowe ... .SH OPIS apropos wyszukuje sowa kluczowe w plikach bazy danych, ktre zawieraj krtkie opisy polece systemowych i wywietla wynik na standardowe wyjcie. .SH AUTOR Pierwotnym autorem programu .BR "man" jest John W. Eaton. Zeyd M. Ben-Halim opublikowa man w wersji 1.2, a Andries Brouwer wersje od 1.3 do 1.5p. Aktualnym opiekunem jest Federico Lucifredi . .SH "ZOBACZ TAKE" whatis(1), man(1). man-1.6g/man/pl/man.man0000644000175000001440000002755110301736016014463 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .\" Tumaczenie - 950322 Rafa Maszkowski .\" 960619 - aktualizacja -K .\" 20011102 - aktualizacja do wersji z man-1.5i2, czciowo w oparciu .\" o alternatywne tumaczenie PB z PTM - AMK .\" .TH man 1 "2 wrzenia 1995" .LO 1 .SH NAZWA man \- formatowanie i wywietlanie dostpnych stron podrcznika man .br manpath \- wyznaczanie cieki poszukiwania stron podrcznika odpowiedniej dla danego uytkownika .SH SKADNIA .TP 4 .B man .RB [ \-adfhkKtwW ] .RB [ \-m .IR system ] .RB [ \-p .IR acuch_znakw ] .RB [\-C .IR plik_konfiguracyjny ] .RB [ \-M .IR cieka ] .RB [ \-P .IR pager ] .RB [ \-S .IR lista_rozdziaw ] .RI [ rozdzia ] .IR nazwa ... .SH OPIS .B man formatuje i wywietla dostpne w systemie strony podrcznika man. .\" Ta wersja sprawdza zmienne rodowiskowe .\" .B MANPATH .\" i .\" .BR (MAN)PAGER , .\" wic moesz mie swj wasny zestaw stron podrcznika man i wybra do ich .\" wywietlania ulubiony program. Jeeli zostanie podany .IR rozdzia , .B man sprawdza tylko ten rozdzia podrcznika. .\" Uywajc opcji lub zmiennych rodowiskowych moesz take poda porzdek, .\" w jakim naley przeszukiwa rozdziay oraz jakie preprocesory powinny .\" zosta uyte do wstpnego przetworzenia stron. Jeeli .I nazwa zawiera znak /, to man prbuje najpierw znale podany plik, wic mona np. wyda polecenie .B "man ./foo.5" a nawet .B "man /cd/foo/bar.1.gz\fR.\fP" .PP Niej znajdziesz informacje, gdzie .B man szuka plikw stron podrcznika. .SH OPCJE .TP .B \-\^C " plik_konfiguracyjny" Okrela plik konfiguracyjny, ktrego naley uy. Domylnym jest .BR @man_config_file@ . (Zobacz .BR man.conf (5).) .TP .B \-\^M " cieka" Okrela list katalogw, w ktrych bd szukane strony podrcznika man. Katalogi naley rozdziela dwukropkami. Pusta lista jest rwnoznaczna z nie podaniem tej opcji. Zobacz .BR "CIEKA PRZESZUKIWANIA DLA STRON PODRCZNIKA" . .TP .B \-\^P " pager" Okrela, ktry pager ma zosta uyty. Jeeli podana jest ta opcja, ignorowana jest zmienna rodowiskowa .BR MANPAGER , ktrej uycie z kolei powoduje zignorowanie zmiennej rodowiskowej .BR PAGER . Domylnie .B man uywa .BR @pager@ . .TP .B \-\^S " lista_rozdziaw" Rozdzielona dwukropkami lista rozdziaw podrcznika, ktre maj by przeszukane. Jeeli podana jest ta opcja, zmienna rodowiskowa .B MANSECT jest ignorowana. .TP .B \-\^a Domylnie man koczy dziaanie po wywietleniu pierwszej znalezionej strony. Podanie tej opcji powoduje wywietlenie wszystkich stron podrcznika, ktre pasuj do .BR nazwa , a nie tylko pierwszej. .TP .B \-\^c Przeformatowuje rdow stron podrcznika, nawet jeeli istnieje aktualna strona cat. Moe to by istotne, jeeli strona cat jest sformatowana dla ekranu z inn liczb kolumn. .TP .B \-\^d Zamiast stron podrcznika wywietla mnstwo informacji diagnostycznych. .TP .B \-\^D Wywietla zarwno stron podrcznika jak i informacje diagnostyczne. .TP .B \-\^f Rwnowane .BR whatis . .TP .B \-\^h Wywietla krtk informacj pomocy i koczy prac. .TP .B \-\^k Rwnowane .BR apropos . .TP .B \-\^K Szuka podanego acucha znakw we *wszystkich* stronach podrcznika. Uwaga: bdzie to prawdopodobnie bardzo powolne! Podanie rozdziaw pomaga przyspieszy szukanie. (Dla oglnej orientacji: na mojej maszynie zajmuje to ok. minuty na kade 500 stron podrcznika.) .TP .B \-\^m " system" Podanie alternatywnego zestawu stron podrcznika, odpowiedniego dla systemu o podanej nazwie. .TP .B \-\^p " acuch_znakw" Podanie listy nazw preprocesorw, ktore zostan uruchomione przed .B nroff i .BR troff . Nie wszystkie intalacje maj peny zestaw preprocesorw. Niektre z nich oraz oznaczajce je litery to: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Podanie tej opcji powoduje zignorowanie zmiennej rodowiskowej .BR MANROFFSEQ . .TP .B \-\^t Sformatuj stron podrcznika za pomoc .BR @troff@ , a wynik wylij na .B stdout (standardowe wyjcie). Moe by konieczne przepuszczenie wyniku z .B @troff@ przez jaki filtr przed wydrukowaniem. .TP .B \-\^w \fRlub\fP \-\-path Nie wywietlaj stron podrcznika, podaj tylko gdzie znajduj si pliki, ktre byyby sformatowane i wywietlone. Jeeli nie podano adnych argumentw: wywietla (na stdout) list katalogw, w ktrych .B man poszukuje stron podrcznika. Jeeli .B manpath jest dowizaniem man to "manpath" jest rwnowane "man --path". .TP .B \-\^W Podobne do \-\^w, lecz podaje nazwy plikw, kad w osobnej linii, bez dodatkowych informacji. Przydaje si w poleceniach powoki, np. .ft CW .B "man -aW man | xargs ls -l" .ft .SH "STRONY CAT" Man bdzie prbowa zachowa sformatowane strony podrcznika aby skrci czas potrzebny na sformatowanie ich po raz kolejny, kiedy te strony bd znowu potrzebne. Tradycyjnie, sformatowane wersje stron podrcznika z katalogu DIR/manX s zachowywane w DIR/catX, ale mona te w pliku .BR @man_config_file@ okreli inne zasady. Strony cat nie s tworzone, jeeli wymagany katalog nie istnieje. .PP Moliwe jest uczynienie programu .B man suidowym na uytkownika man. Wtedy, jeli katalogi cat maj waciciela man i prawa dostpu 0755 (zapisywalne tylko przez uytkownika man), a pliki cat maj waciciela man i prawa dostpu 0644 lub 0444 (zapisywalne przez uytkownika man lub przez nikogo), to aden zwyky uytkownik nie moe zmienia stron cat lub umieszcza w katalogach cat innych plikw. Jeeli .B man nie jest suidowy to katalog cat powinien mie prawa dostpu 0777, o ile wszyscy uytkownicy powinni mie moliwo pozostawiania tam stron cat. .PP Opcja .B \-c wymusza przeformatowanie strony nawet jeeli istnieje ju odpowiednia strona cat. .SH "CIEKA PRZESZUKIWANIA DLA STRON PODRCZNIKA" .B man stosuje wymyln metod poszukiwania plikw stron podrcznika, opart na opcjach wywoania, zmiennych rodowiskowych, pliku konfiguracyjnym .B @man_config_file@ oraz na pewnych wbudowanych konwencjach i heurystyce. .PP Najpierw, gdy argument .I nazwa polecenia .B man zawiera ukonik .RB ( / ), .B man zakada, e jest on nazw waciwego pliku i nie prowadzi poszukiwania. .PP Ale zazwyczaj, gdy .I nazwa nie zawiera ukonika, .B man poszukuje pliku, ktry mgby stanowi stron podrcznika o zadanym temacie, w rnych katalogach. .PP Jeli zostanie podana opcja .BI "-M " cieka\fR, to .I cieka jest rozdzielon dwukropkami list przeszukiwanych przez program .B man katalogw. .PP Gdy opcja .B -M nie zostanie podana, ale zostanie zdefiniowana zmienna rodowiskowa .BR MANPATH , warto tej zmiennej stanowi list przeszukiwanych przez program .B man katalogw. .PP Jeli cieka nie zostanie podana w sposb jawny ani za pomoc .B -M ani poprzez .BR MANPATH , .B man rozwija swoj wasn ciek w oparciu o zawarto pliku konfiguracyjnego .BR @man_config_file@ . Instrukcje .B MANPATH w pliku konfiguracyjnym okrelaj poszczeglne katalogi wczane do cieki przeszukiwania. .PP Ponadto, instrukcje .B MANPATH_MAP dodaj do cieki przeszukiwania katalogi zalene od cieki przeszukiwania dla polece (tzn. zawartej w zmiennej rodowiskowej .B PATH ). Instrukcja .B MANPATH_MAP dodaje do cieki przeszukiwania dla stron podrcznika po jednym katalogu dla kadego katalogu zawartego w ciece przeszukiwania dla polece. .B man przeglda zmienn .B PATH i dodaje odpowiednie katalogi do cieki przeszukiwania dla stron podrcznika. Zatem przy waciwym uyciu .BR MANPATH_MAP , po wydaniu polecenia .BR "man xyz" , otrzyma si stron podrcznika dla programu, ktry zostaby uruchomiony poprzez wydanie polecenia .BR xyz . .PP Dodatkowo, dla kadego katalogu w ciece przeszukiwania dla polece (bdziemy go nazywa "katalogiem polece"), dla ktrego .I nie ma instrukcji .BR MANPATH_MAP , .B man automatycznie poszukuje "bliskiego" katalogu stron podrcznika jako podkatalogu waciwego katalogu polece lub w katalogu nadrzdnym dla katalogu polece. .PP Mona wyczy automatyczne "bliskie" przeszukiwania doczajc instrukcj .B NOAUTOPATH do .BR @man_config_file@ . .PP Jak opisano powyej, w kadym z katalogw cieki przeszukiwania .B man poszukuje pliku o nazwie .IB tytu . rozdzia\fR, z opcjonalnym przyrostkiem dla numeru rozdziau i moliwym przyrostkiem kompresji. Jeli nie znajdzie takiego pliku, bdzie szuka w podkatalogach o nazwach .BI man N i .BI cat N\fR, gdzie .I N jest numerem rozdziau podrcznika. Jeli plik znajduje si w podkatalogu .BIR cat N , .B man zakada, e jest to sformatowany plik strony podrcznika (cat page). W przeciwnym przypadku, .B man zakada, e jest ona niesformatowana. W obu przypadkach, jeli nazwa pliku zawiera znany przyrostek kompresji (jak .BR .gz ), .B man zakada, e jest ona spakowania gzipem. .PP Aby zobaczy, gdzie (lub czy) .B man znajdzie stron podrcznika o okrelonym tytule, naley posuyc si opcj .BR "--path " ( -w ). .SH "RODOWISKO" .TP .B MANPL Jeli zmienna .B MANPL jest zdefinowana, to jej warto jest uywana do okrelenia dugoci strony. W przeciwnym przypadku, caa strona podrcznika bdzie stanowi jedn (dug) stron. .TP .B MANROFFSEQ Jeli zmienna .B MANROFFSEQ jest zdefinowana, to jej warto jest uywana do zdefinowania zestawu preprocesorw uruchamianych przed .B nroff i .BR troff . Domylnie strony s przepuszczane przez preprocesor tbl przed uyciem nroff. .TP .B MANSECT Jeli zmienna .B MANSECT jest zdefiniowana, to jej warto jest uywana do okrelenia jakie rozdziay podrcznika powinny zosta przeszukane. .TP .B MANWIDTH Jeli zmienna .B MANWIDTH jest zdefiniowana, to jej warto jest uywana jako szeroko wywietlanych stron podrcznika man. W przeciwnym wypadku, strony bd wywietlane na caej szerokoci ekranu. .TP .B MANPAGER Jeli zmienna .B MANPAGER jest zdefiniowana, to jej warto jest uywana jako nazwa programu do wywietlania strony podrcznika man. Jeli nie jest zdefiniowana, to uywana jest zmienna .BR PAGER . Jeeli ta rwnie nie ma nadanej wartoci, to uywany jest .BR @pager@ . .TP .B LANG Jeli zmienna .B LANG jest zdefiniowana, to jej warto okrela nazw podkatalogu, w ktrym man najpierw bdzie szuka stron podrcznika. Zatem polecenie `LANG=pl man 1 co' (w sh lub bash) spowoduje, e man bdzie szuka strony "co" w .../pl/man1/co.1, a nastpnie, jeeli takiego pliku nie znajdzie, w .../man1/co.1, gdzie ... jest katalogiem ze cieki przeszukiwania. .TP .B "NLSPATH, LC_MESSAGES, LANG" Zmienne rodowiskowe .B NLSPATH i .B LC_MESSAGES (lub .BR LANG , jeeli ta druga nie istnieje) steruj przeszukiwaniem katalogw z komunikatami. (Komunikaty angielskie s wkompilowane, wic dla angielskiego taki katalog nie jest potrzebny.) Zauwa, e programy takie jak .BR col(1) , woane przez man, rwnie uywaj np. LC_TYPE. .TP .B PATH .B PATH pomaga okreli ciek przeszukiwania dla plikw stron podrcznika. Zobacz .BR "CIEKA PRZESZUKIWANIA DLA STRON PODRCZNIKA" . .TP .B SYSTEM .B SYSTEM jest uywana do pobierania domylnej alternatywnej nazwy systemu (do uywania razem z opcj .BR \-m ). .SH "ZOBACZ TAKE" apropos(1), whatis(1), less(1), groff(1), man.conf(5). .SH BDY Opcja .B \-t dziaa tylko jeeli jest zainstalowany jaki program dziaajcy jak troff. .br Jeeli zamiast mylnikw pojawi si migajce \e255 lub , to naley ustawi w rodowisku uytkownika `LESSCHARSET=latin1'. .SH ZAKOCZENIE Jeli do pliku .IR .emacs uytkownika dodana zostanie linia (global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word)))) to nacinicie F1 spowoduje wywietlenie strony podrcznika dla funkcji bibliotecznej, na ktrej ustawiony jest kursor. .LP Aby uzyska czysto tekstow wersj strony podrcznika, bez cofni i podkrele, naley wyda polecenie # man co | col -b > co.mantxt man-1.6g/man/pl/whatis.man0000644000175000001440000000214010442350141015167 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Tumaczenie - 950322 Rafa Maszkowski .\" .TH whatis 1 "19 wrzenia 2005" .LO 1 .SH NAZWA whatis \- wyszukuje sowa w bazie whatis. .SH SKADNIA .BI whatis sowo_kluczowe ... .SH OPIS whatis wyszukuje sowa kluczowe w zestawie plikw zawierajcych krtkie opisy polece systemowych i wywietla rezultat na standardowe wyjcie. Wywietlane s tylko polecenia, ktrych nazwy pasuj dokadnie. Baza whatis jest tworzona przy uyciu polecenia @makewhatis@. .SH AUTOR Pierwotnym autorem programu .BR "man" jest John W. Eaton. Zeyd M. Ben-Halim opublikowa man w wersji 1.2, a Andries Brouwer wersje od 1.3 do 1.5p. Aktualnym opiekunem jest Federico Lucifredi . .SH "ZOBACZ TAKE" apropos(1), man(1). man-1.6g/man/pl/man.conf.man0000644000175000001440000000236210442350141015375 0ustar lucifredusers.\" @(#)man.conf .\" Tumaczenie: 950322 Rafa Maszkowski .TH MAN.CONF 5 "19 wrzenia 2005" .SH NAZWA man.conf \- dane konfiguracyjne dla programu man .SH OPIS .LP Ten plik jest czytany przez .BR man (1) i zawiera (a) informacj jak utworzy ciek przeszukiwan przez man, (b) pene cieki do rnych programw jak nroff, eqn, tbl itd., ktre s uywane przez man oraz (c) list programw rozpakowujcych pliki z podanymi rozszerzeniami. Alternatywna wersja pliku man.conf moe by podana przez .LP .RS man -C prywatny_man.conf ... .RE .LP Nazwy polece mog by podane z opcjami. Uyteczne opcje nroff mona znale w grotty(1). Na przykad zamiast domylnej linii .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP mona napisa .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP eby wyczy podkrelanie i wytuszczanie. .SH PLIKI .I "@man_config_file@" .SH AUTOR Pierwotnym autorem programu .BR "man" jest John W. Eaton. Zeyd M. Ben-Halim opublikowa man w wersji 1.2, a Andries Brouwer wersje od 1.3 do 1.5p. Aktualnym opiekunem jest Federico Lucifredi . .SH "ZOBACZ TAKE" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) i compress(1), gzip(1). man-1.6g/man/pl.txt0000644000175000001440000000000710301736016013737 0ustar lucifreduserspolish man-1.6g/man/fr.txt0000644000175000001440000000000710301736016013733 0ustar lucifredusersfrench man-1.6g/man/fr/0000755000175000001440000000000010464171677013215 5ustar lucifredusersman-1.6g/man/fr/apropos.man0000644000175000001440000000301610366003222015352 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Traduction franaise Ren Cougnenc - Mai 1995. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH APROPOS 1 "19 septembre 2005" "Manuel Linux" "Commandes utilisateur" .LO 1 .SH NOM apropos \- recherche de chanes de caractres dans la base de donnes whatis .SH SYNOPSIS .BI apropos mot-cl ... .SH DESCRIPTION apropos effectue une recherche de chanes de caractres dans un ensemble de fichiers de donnes contenant de brves descriptions des commandes systme, et affiche le rsultat sur la sortie standard. .SH AUTEUR John W. Eaton est l'auteur historique de .BR man . Federico Lucifredi en assure aujourd'hui la maintenance. .SH "VOIR AUSSI" .BR whatis (1), .BR man (1). .SH TRADUCTION .PP Ce document est une traduction ralise par Ren Cougnenc en mai 1995 et mise jour par Alain Portal le 7 novembre 2005. .PP L'quipe de traduction a fait le maximum pour raliser une adaptation franaise de qualit. La version anglaise la plus jour de ce document est toujours consultable via la commande\ : \ \fBLANG=en\ man\ 1\ apropos\fR\ . N'hsitez pas signaler l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. man-1.6g/man/fr/makewhatis.man0000644000175000001440000000751610366003420016035 0ustar lucifredusers.\" Copyright (c) 1999 Ottavio G. Rizzo .\" .\" Traduction : Alain Portal le 1/6/2005 .\" .\" This is free documentation; 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 .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual 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 this manual; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, .\" USA. .\" .TH MAKEWHATIS 8 "19 septembre 2005" .SH NOM makewhatis \- Cre la base de donnes whatis .SH SYNOPSIS .BI "makewhatis [-u] [-v] [-w] [-s " sections " ] [-c [" catpath "]] [" manpath "]" .SH DESCRIPTION .B makewhatis lit toutes les pages de manuels contenues dans les sections .I sections du rpertoire . I manpath ou les pages prformates contenues dans les sections .I sections du rpertoire .IR catpath . Pour chacune des pages, .B makewhatis crit une ligne dans la base de donnes whatis\ ; chaque ligne est constitue du nom de la page de manuel et d'une courte description de celle-ci, spars par un trait. La description est extraite du contenu de la section NAME de la page de manuel. .LP Du fait que d'autres langues utilisent un terme diffrent pour la section NAME, .B makewhatis reconnat les termes quivalents en allemand, espagnol, finnois, franais, italien et tchque. .LP Si aucun argument .I manpath n'est fourni, la valeur par dfaut est .IR /usr/man . .SH OPTIONS .TP .B -u Mettre jour la base de donnes avec de nouvelles pages. .TP .B -v Sortie bavarde. .TP .B -w Utiliser le chemin de recherche .I manpath obtenu par la commande \ man --path\ . .TP .BI -s " sections" Chercher dans les sections .I sections de .IR manpath " ou " catpath . Si cette option est absente, sa valeur est .IR " " \' "1 2 3 4 5 6 7 8 9 n l"\' .TP .BI -c " catpath" Les pages prformates de manuel situes dans .I catpath sont scrutes. Si l'argument n'est pas fourni, il est suppos tre le premier des deux rpertoires existant entre .IR /usr/man/preformat " et " /usr/man . .SH EXEMPLES .PP Pour reconstruire seulement les bases de donnes .IR /usr/X11R6/man/whatis " et " /usr/local/man/whatis .IP makewhatis /usr/X11R6/man /usr/local/man .PP Pour reconstruire toutes les bases de donnes en incluant les traductions finnoise, franaise et italienne .IP LANGUAGE=fi:fr:it makewhatis -w .SH BOGUES .B makewhatis peut ne pas trs bien grer les pages de manuels qui ont t crites avec des macros troff non standard, comme les pages Tcl/Tk. .PP .B makewhatis ne fonctionne pas avec les traductions prformates. .SH AUTEUR John W. Eaton est l'auteur historique de .BR man . Federico Lucifredi en assure aujourd'hui la maintenance. .SH "VOIR AUSSI" .BR apropos (1), .BR man (1), .BR whatis (1) .SH TRADUCTION .PP Ce document est une traduction ralise par Alain Portal le 1er juin 2005 et mise jour le 7 novembre 2005. .PP L'quipe de traduction a fait le maximum pour raliser une adaptation franaise de qualit. La version anglaise la plus jour de ce document est toujours consultable via la commande\ : \ \fBLANG=en\ man\ 8\ makewhatis\fR\ . N'hsitez pas signaler l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. man-1.6g/man/fr/man.conf.man0000644000175000001440000000431210366003562015375 0ustar lucifredusers.\" @(#)man.conf .\" Traduction franaise Ren Cougnenc - Mai 1995 .\" .TH MAN.CONF 5 "19 septembre 2005" "Manuel Linux" "Commandes utilisateur" .SH NOM man.conf \- fichier de configuration de la commande man .SH DESCRIPTION .LP Ce fichier est lu par .BR man (1) et contient\ : (a) des informations sur la manire de construire le chemin de recherche des pages de manuel, (b) les chemins d'accs complets de divers programmes de formatage tels nroff, eqn, tbl, etc. utiliss par man, et (c) une liste des dcompacteurs employer pour traiter les pages prformates selon l'extension de leur nom de fichier. Il est possible de spcifier un autre fichier que celui-ci en prcisant\ : .LP .RS man -C man.conf_personnel ... .RE .LP Les noms de commandes peuvent comporter des options. Les options utiles pour nroff se trouvent dans grotty(1). Par exemple, au lieu de la ligne par dfaut\ : .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP vous pouvez mettre\ : .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP afin de supprimer le soulignement et les caractres gras. Notez que l'option -Tlatin1 passe la commande groff est importante pour nous autres, francophones\ ; associe un visualiseur et un terminal supportant ce jeu de caractres (comme less et xterm), elle permet de conserver nos prcieux accents dans les pages de manuel. .SH FICHIERS .I "@man_config_file@" .SH AUTEUR John W. Eaton est l'auteur historique de .BR man . Federico Lucifredi en assure aujourd'hui la maintenance. .SH "VOIR AUSSI" .BR col (1), .BR (g)eqn (1), .BR (g)pic (1), .BR groff (1), .BR grotty (1), .BR (g)refer (1), .BR (g)tbl (1), .BR less (1), .BR man (1) et .BR compress (1), .BR gzip (1). .SH TRADUCTION .PP Ce document est une traduction ralise par Ren Cougnenc en mai 1995 et mise jour par Alain Portal le 7 novembre 2005. .PP L'quipe de traduction a fait le maximum pour raliser une adaptation franaise de qualit. La version anglaise la plus jour de ce document est toujours consultable via la commande\ : \ \fBLANG=en\ man\ 5\ man.conf\fR\ . N'hsitez pas signaler l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. man-1.6g/man/fr/man.man0000644000175000001440000003366410366003657014472 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Traduction franaise Ren Cougnenc - Mai 1995 .\" Mise jour importante Alain Portal le 2 juin 2005 .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" More changes - flc .\" .TH MAN 1 "19 septembre 2005" "Manuel Linux" "Commandes utilisateur" .LO 1 .SH NOM man \- formate et affiche les pages du manuel en ligne .SH SYNOPSIS .B man .RB [ \-acdfFhkKtwW ] .RB [ --path ] .RB [ \-m .IR systme ] .RB [ \-p .IR chane ] .RB [ \-C .IR fichier_config ] .RB [ \-M .IR chemin ] .RB [ \-P .IR visualiseur ] .RB [ \-B .IR navigateur ] .RB [ \-H .IR visualiseur_html ] .RB [ \-S .IR liste_sections ] .RI [ section ] .I "nom ..." .SH DESCRIPTION .B man formate et affiche les pages du manuel en ligne. Si .I section est spcifie, .B man ne recherchera que dans cette section du manuel. .I nom est le nom de la page qui est gnralement le nom d'une commande, d'une fonction ou d'un fichier. Toutefois, si .I nom contient une barre oblique .RB " \ "/ \ , il sera d'abord considr en tant que nom de fichier, vous pouvez donc faire\ : .B "man ./toto.5" ou mme .B "man /truc/machin/bidule.1.gz\fR.\fP" .PP Voir plus loin pour une description sur la faon dont .B man cherche les fichiers pages de manuel. .SH OPTIONS .TP .B \-\^C " fichier_config" Spcifie le fichier de configuration utiliser\ ; par dfaut il s'agit de .BR @man_config_file@ . (Voir .BR man.conf (5).) .TP .B \-\^M " chemin" Indique la liste des rpertoires dans lesquels la recherche des pages sera effectue. Veuillez sparer les rpertoires par le symbole deux points .RB " \ ": \ . Une liste vide est quivalent ne pas spcifier l'option .BR \-M . Voir .BR "CHEMIN DE RECHERCHE POUR LES PAGES DE MANUEL" . .TP .B \-\^P " visualiseur" Indique le programme de visualisation des pages employer. Cette option a priorit sur la variable d'environnement .BR MANPAGER , qui, son tour, a priorit sur la variable d'environnement .BR PAGER . Par dfaut, .B man utilisera .B @pager@. .TP .B \-\^B Spcifie quel navigateur utiliser pour les fichiers HTML. Cette option supplante la variable d'environnement .B BROWSER Par dfaut, .B man utilise .BR @browser@ . .TP .B \-\^H Spcifie une commande qui produit un fichier texte partir du fichier HTML. Cette option supplante la variable d'environnement .B HTMLPAGER Par dfaut, .B man utilise .BR @htmlpager@ . .TP .B \-\^S " liste_sections" Il s'agit d'une liste de sections, spares par le symbole deux points .RB " \ ": \ , dans lesquelles les pages seront recherches. Elle a priorit sur la variable d'environnement .B MANSECT. .TP .B \-\^a Par dfaut, .B man s'arrte aprs avoir affich la premire page de manuel trouve. Cette option permet de l'obliger afficher toutes les pages correspondant la requte .RB " \ "nom \ de l'utilisateur, s'il y en a plusieurs, et pas seulement la premire trouve. .TP .B \-\^c Reformater la page de manuel, mme si une version prformate jour existe. Cela peut tre utile si cette dernire a t prvue pour un cran de taille diffrente ou bien si elle est abme. .TP .B \-\^d Ne pas afficher les pages de manuel, mais fournir une grande quantit d'informations de dbogage. .TP .B \-\^D Afficher la fois les pages de manuel et les informations de dbogage. .TP .B \-\^f quivalent .BR whatis . .TP .B \-\^h Afficher un court message d'aide et quitter. .TP .B \-\^k quivalent .B apropos. .TP .B \-\^K Chercher la chane spcifie dans *toutes* les pages de manuel. Attention\ : cela peut tre trs long\ ! Et il peut tre utile de spcifier une section. (Pour donner une vague ide, sur ma machine, il faut environ une minute pour 500 pages de manuel.) .TP .B \-\^m " systme" Demander l'utilisation d'un autre jeu de pages de manuel, en fonction du nom de systme indiqu. .TP .B \-\^p " chane" Spcifie la squence de prprocesseurs excuter avant .B nroff ou .BR troff . Selon votre installation de Linux, vous ne disposerez pas forcment de tous les programmes possibles. Voici les plus courants et les lettres qui les dsignent\ : eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Cette option a priorit sur la variable d'environnement .B MANROFFSEQ. .TP .B \-\^t Utiliser .B @troff@ pour formater la page de manuel, la sortie se faisant sur .B stdout. La sortie de .B @troff@ peut ncessiter un passage par certains filtres avant de pouvoir tre affiche ou imprime. .TP .B \-\^w \fRou\fP \-\-path Ne pas afficher les pages de manuel, mais les emplacements des fichiers qui auraient t formats ou affichs. Si aucun argument n'est prcis, indique sur la sortie standard la liste des rpertoires dans lesquels .B man recherche les pages. Si .B manpath est un lien sur le programme man, alors \ manpath\ est quivalent la commande \ man --path\ . .TP .B \-\^W Comme \-\^w, mais affiche les noms de fichiers, un par ligne, sans aucune autre information. Trs utile dans des commandes shell du genre\ : .ft CW .B man -aW man | xargs ls -l .ft .SH "PAGES FORMATES" Afin de gagner du temps, .B man tente de sauvegarder les pages formates au lieu de les interprter chaque fois qu'elles sont demandes. Traditionnellement, les versions formates des pages de REP/manX sont enregistres dans REP/catX, mais d'autres correspondances entre les rpertoires man et les rpertoires cat peuvent tre indiques dans le fichier .BR @man_config_file@ . Aucune page formate n'est enregistre si le rpertoire \ cat\ correspondant n'existe pas. Aucune page formate n'est enregistre si elle est formate avec une longueur de ligne diffrente de 80. Aucune page formate n'est enregistre si le fichier .B @man_config_file@ contient la ligne NOCACHE. .PP Il est possible de rendre .B man suid utilisateur man. Dans ce cas, si un rpertoire \ cat\ appartient man et a le mode 0755 (seul man peut l'crire), et que les fichiers formats appartiennent eux aussi man et ont le mode 0644 ou 0444 (seul man peut les crire, voire personne), aucun utilisateur normal ne pourra modifier les pages formates ou mettre d'autre fichiers dans le rpertoire correspondant. Si .B man n'est pas suid, les rpertoires cat devront avoir le mode 0777 afin que tout utilisateur puisse y laisser le rsultat des formatages lors des consultations du manuel. .PP L'option .B \-c force le reformatage d'une page, mme si un fichier cat plus rcent que le fichier source existe. .SH "CHEMIN DE RECHERCHE POUR LES PAGES DE MANUEL" .B man utilise une mthode sophistique pour chercher les pages de manuels, base sur l'invocation d'options et de variables d'environnement, le fichier de configuration .BR @man_config_file@ , des heuristiques et conventions prdfinies. .PP En premier lieu, lorsque l'argument .I nom de .B man contient une barre oblique .RB " \ "/ \ , .B man suppose qu'il s'agit d'un fichier et aucune recherche complexe n'est lance. .PP Mais dans la plupart des cas o .I nom ne contient pas de barre oblique, .B man recherche dans plusieurs rpertoires un fichier qui pourrait tre une page de manuel pour le sujet nomm. .PP Si vous spcifiez l'option .B \-M .IR liste_chemins , .I liste_chemins est une liste de rpertoires, spars par le symbole deux points .RB " \ ": \ , dans lesquels .B man effectuera sa recherche. .PP Si vous ne spcifiez pas .B -M mais que vous positionniez la variable d'environnement .BR MANPATH , la valeur de cette variable est la liste des rpertoires dans lesquels .B man effectuera sa recherche. .PP Si vous ne spcifiez pas une liste de chemins explicite avec .B -M ou .BR MANPATH , .B man dveloppe sa propre liste de chemins base sur le contenu du fichier de configuration .BR @man_config_file@ . Les dclarations .B MANPATH dans le fichier de configuration identifient des rpertoires particuliers inclure dans le chemin de recherche. .PP Qui plus est, les dclarations .B MANPATH_MAP compltent le chemin de recherche en fonction du chemin de recherche de vos commandes (autrement dit, de votre variable d'environnement .BR PATH ). La dclaration .B MANPATH_MAP indique, pour chacun des rpertoires pouvant se trouver dans le chemin de recherche des commandes, un rpertoire qui devrait tre ajout au chemin de recherche des pages de manuel. .B man scrute la variable .B PATH et ajoute au chemin de recherche des pages de manuel les rpertoires correspondants. Ainsi, avec une utilisation correcte de .BR MANPATH_MAP , lorsque vous tapez la commande .BR "man xyz" , vous obtenez la page de manuel du programme que vous lanceriez si vous tapiez la commande .BR xyz . .PP De plus, pour chacun des rpertoires situs dans le chemin de recherche des commandes (nous l'appellerons \ rpertoire commandes\ ) pour lequel vous .IR n "'avez " pas d'instruction .BR MANPATH_MAP , .B man cherchera automatiquement un rpertoire de pages de manuel proximit, savoir un sous-rpertoire du \ rpertoire commandes\ lui-mme ou dans le rpertoire parent du \ rpertoire commandes\ . .PP Vous pouvez dsactiver la recherche automatique de proximit en incluant l'instruction .B NOAUTOPATH dans le fichier de configuration .BR @man_config_file@ . .PP Dans chaque rpertoire du chemin de recherche dcrit plus haut, .B man cherche un fichier nomm .IB sujet . section\fR, avec un suffixe optionnel sur le numro de section et un possible suffixe de compression. S'il ne peut trouver un tel fichier, il regarde alors dans tous les sous-rpertoires nomms .BI man N ou .BI cat N o .I N est le numro de la section du manuel. Si le fichier se trouve dans le sous-rpertoire .B cat .IR N , .B man suppose qu'il s'agit d'une page de manuel formate (page cat). Autrement, .B man suppose qu'elle n'est pas formate. Dans tous les cas, si le nom de fichier comporte une extension indiquant une compression connue (comme .BR .gz ), .B man suppose que le fichier est gzipp. .PP Si vous vouloir savoir o (ou si) .B man peut trouver une page de manuel sur un sujet particulier, utilisez l'option .BR "--path " ( -w ). .SH ENVIRONNEMENT .TP .B MANPATH Si la variable .B MANPATH est positionne, .B man utilisera sa valeur comme chemin de recherche des pages de manuel. Cette variable est prioritaire sur le fichier de configuration et le chemin de recherche automatique, mais cde cette priorit si l'option .B -M est utilise. Voir .BR "CHEMIN DE RECHERCHE POUR LES PAGES DE MANUEL" . .TP .B MANPL Si la variable .B MANPL est positionne, sa valeur servira dfinir la longueur de l'affichage de la page. Autrement, la page entire est affiche sur une seule et longue page. .TP .B MANROFFSEQ Si .B MANROFFSEQ est positionne, sa valeur servira dterminer le jeu de prprocesseurs excuter avant de lancer .B nroff ou .BR troff . Par dfaut, les pages sont passes dans le processeur de tableaux avant .BR nroff . .TP .B MANSECT Si .B MANSECT est positionne, sa valeur dterminera les sections du manuel dans lesquelles les pages seront recherches. .TP .B MANWIDTH Si .B MANWIDTH est positionne, sa valeur servira dfinir la largeur de l'affichage de la page. Autrement, la page sera affiche sur toute la largeur de l'cran. .TP .B MANPAGER Si .B MANPAGER est positionne, sa valeur sera considre comme le nom du programme utiliser pour visualiser la page de manuel. Dans le cas contraire, .B PAGER sera utilise. Si aucune des deux variables n'est positionne, .B @pager@ sera utilis. .TP .B LANG Si .B LANG est positionne, sa valeur dfinira le nom du sous-rpertoire o .B man commencera la recherche des pages de manuel. Ainsi, la commande \ LANG=fr man 1 toto\ aura pour effet de faire rechercher la page toto dans .../fr/man1/toto.1, et si ce fichier n'existe pas, dans .../man1/toto.1, o ... est un rpertoire du chemin de recherche. .TP .B "NLSPATH, LC_MESSAGES, LANG" Les variables d'environnement .B NLSPATH et .B LC_MESSAGES (ou .B LANG lorsque la dernire n'existe pas) jouent un rle dans la localisation du catalogue de messages. (Mais les messages anglais sont inclus dans le programme la compilation, aucun catalogue n'est donc ncessaire pour un affichage dans la langue de Shakespeare.) Notez que les programmes comme .BR col (1) qui sont appels par .BR man , utilisent galement LC_CTYPE. .TP .B PATH .B PATH est utilise pour la construction du chemin de recherche par dfaut. Voir .BR "CHEMIN DE RECHERCHE POUR LES PAGES DE MANUEL" . .TP .B SYSTEM .B SYSTEM est employe pour obtenir le nom du systme alternatif par dfaut (en vue de l'utilisation de l'option .B \-m ). .SH BOGUES L'option .B \-t ne fonctionne que si un programme \ troff-like\ est install. .br Si vous voyez clignoter \e255 ou au lieu de traits d'union, mettez \ LESSCHARSET=latin1\ dans votre environnement. .SH ASTUCES Si vous ajoutez la ligne (global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word)))) votre fichier .IR .emacs , vous obtiendrez la page de manuel de l'appel de la bibliothque situ la position courante du curseur lorsque vous presserez la touche F1. .LP Pour obtenir une version texte seul d'une page de manuel, sans retour arrire ni caractre de soulignement, essayez # man foo | col -b > foo.mantxt .SH AUTEUR John W. Eaton est l'auteur historique de .BR man . Federico Lucifredi en assure aujourd'hui la maintenance. .SH "VOIR AUSSI" .BR apropos (1), .BR whatis (1), .BR less (1), .BR groff (1), .BR man.conf (5). .SH TRADUCTION .PP Ce document est une traduction ralise par Ren Cougnenc en mai 1995 et mise jour par Alain Portal le 7 novembre 2005. .PP L'quipe de traduction a fait le maximum pour raliser une adaptation franaise de qualit. La version anglaise la plus jour de ce document est toujours consultable via la commande\ : \ \fBLANG=en\ man\ 1\ man\fR\ . N'hsitez pas signaler l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. man-1.6g/man/fr/whatis.man0000644000175000001440000000321010366003753015173 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Traduction franaise Ren Cougnenc - Mai 1995. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH WHATIS 1 "19 septembre 2005" "Manuel Linux" "Commandes utilisateur" .LO 1 .SH NOM whatis \- recherche de noms complets dans la base de donnes whatis. .SH SYNOPSIS .BI whatis mot-cl ... .SH DESCRIPTION whatis effectue une recherche de mots-cls dans un ensemble de fichiers de donnes contenant de brves descriptions des commandes systme, et affiche le rsultat sur la sortie standard. Seules les entres contenant le mot-cl complet sont affiches. .LP La base de donnes whatis est ralise et mise jour par la commande @makewhatis@. .SH AUTEUR John W. Eaton est l'auteur historique de .BR man . Federico Lucifredi en assure aujourd'hui la maintenance. .SH "VOIR AUSSI" .BR apropos (1), .BR man (1). .SH TRADUCTION .PP Ce document est une traduction ralise par Ren Cougnenc en mai 1995 et mise jour par Alain Portal le 7 novembre 2005. .PP L'quipe de traduction a fait le maximum pour raliser une adaptation franaise de qualit. La version anglaise la plus jour de ce document est toujours consultable via la commande\ : \ \fBLANG=en\ man\ 1\ whatis\fR\ . N'hsitez pas signaler l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. man-1.6g/man/fi/0000755000175000001440000000000010301736016013164 5ustar lucifredusersman-1.6g/man/fi/man.man0000644000175000001440000001774310301736016014450 0ustar lucifredusers.\" From rkoski@pp.weppi.fi Sun Jun 28 12:50:44 1998 .\" .\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" Translated into Finnish by Teppo Kankaanp (photon@clinet.fi) .\" Proofread by Raimo Koski (rkoski@pp.weppi.fi) .\" Reconstructed man.man from man.1 - aeb .\" .\" TERM man_page man-sivu Nin se oli sotin sivuillakin.. .\" TERM manual_page ohjesivu .\" TERM section osasto Osasto kuvaa melko hyvin manin luonnetta .\" TERM pager nytinohjelma Tulee ihan IBM ja sen nyttimet mieleen... .\" TERM debugging_info,debugging_information debuggaustiedot .\" TERM preprocessor esiksittelyohjelma,esiksittelij Mik olisi parempi? .\" TERM message_catalog viestikirjasto .\" TERM search_path hakupolku .\" TERM owner_mode kyttoikeudet .\" TERM suid suid .\" TERM arguments parametrit .\" .TH MAN 1 "4. Keskuuta 1998" "Linux" "Kyttjn sovellusohjelmat" .LO 1 .SH NIMI man \- muotoile ja nyt on-line -ohjesivuja .br manpath \- mrit kyttjn hakupolku man-sivuihin .SH "YLEISKATSAUS" man [\-acdfhkKtwW] [\-m jrjestelm] [\-p merkkijono] [\-C konfiguraatiotiedosto] [\-M polku] [\-P selausohjelma] [\-S sektiolista] [sektio] nimi ... .SH KUVAUS .B man muotoilee ja nytt on-line -ohjesivuja. Tm versio tuntee ympristmuuttujat .B MANPATH ja .BR "(MAN)PAGER" , joten sinulla voi olla oma(t) kokoelmasi man-sivuja ja voit valita mink tahansa ohjelman nyttmn muotoillut sivut. Jos .I sektio on annettu, .B man etsii sivuja vain siit sektiosta. Voit mys mritell, miss jrjestyksess sektiot lpikydn sivuja haettaessa ja mink esiksittelyohjelmien lpi lhdetiedostot ajetaan, joko komentorivioptioiden tai ympristmuuttujien avulla. Jos .I nimi sislt / -merkin, yritetn se ensin ksitell tiedostonimen, joten voit kirjoittaa .B "man ./foo.5" tai vaikkapa .B "man /cd/foo/bar.1.gz\fR.\fP" .SH OPTIOT .TP .B \-\^C " config_file" Mrittele kytettv man.conf -tiedosto. Oletus on .BR @man_config_file@ . (Katso .BR man.conf (5).) .TP .B \-\^M " polku" Mrittele hakemistolista, joista man-sivuja etsitn. Jos optiota ei kytet, katsotaan lista ympristmuuttujasta .BR MANPATH . Jos tllaista ympristmuuttujaa ei lydy, oletuslista haetaan tiedostosta .BR @man_config_file@ . Jos .B MANPATH sislt tyhjn merkkijonon, kytetn mys tllin oletuslistaa. .TP .B \-\^P " pager" Mrittele, mill ohjelmalla sivuja katsotaan. Tm optio kumoaa .BR MANPAGER "-ympristmuuttujan" vaikutuksen, joka taas lytyessn kumoaa .BR PAGER "-ympristmuuttujan" vaikutuksen. Oletuksena .B man kytt komentoa .BR @pager@ . .TP .B \-\^S " sektiolista" Sektiolista on kaksoispisteill eroteltu lista sektioista, jotka kydn lpi sivua haettaessa. Tm optio kumoaa .BR MANSECT "-ympristmuuttujan" vaikutuksen. .TP .B \-\^a Oletuksena .B man lopettaa toimintansa nytettyn ensimmisen lytmns man-sivun. Tt optiota kyttmll .B man pakotetaan nyttmn .I kaikki tsmvt man-sivut. .TP .B \-\^c Uudelleenmuotoile lhteen oleva man-sivu, vaikka pivitetty cat-sivu lytyisi. Tm voi olla kytnnllist, jos cat-sivu muotoiltiin nytlle, jolle mahtuu eri mr kirjaimia. .TP .B \-\^d l nyt itse man-sivua, vaan vain debuggaustiedot. .TP .B \-\^D Nyt sek sivu ett debuggaustiedot. .TP .B \-\^f Vastaa komentoa .BR whatis . .TP .B \-\^h Nyt vain pieni ohje ohjelman kytst. .TP .B \-\^k Vastaa komentoa .BR apropos . .TP .B \-\^K Etsi mritelty merkkijonoa *kaikista* man-sivuista. Varoitus: tm on todennkisesti hyvin hidasta! Sektion mrittely auttaa. (Omalla koneellani etsint kest minuutin 500 man-sivua kohden) .TP .B \-\^m " jrjestelm" Mrittele etsittvksi vaihtoehtoinen kokoelma man-sivuja, pohjautuen annettuun jrjestelmnimeen. .TP .B \-\^p " merkkijono" Mrittele esiksittelijiden lista, jotka ajetaan ennen .BR nroff ":ia" tai .BR troff ":ia." Kaikkiin jrjestelmiin ei ole asennettu kaikkia esiksittelyohjelmia. Jotkin nist ja niit vastaavista kirjaimista ovat eqn (e), grap (g), pic (p), tbl (t), vgrind (v) ja refer (r). Tm optio kumoaa .BR MANROFFSEQ "-ympristmuuttujan" vaikutuksen. .TP .B \-\^t Kyt komentoa .B @troff@ man-sivun muotoiluun ja ohjaa tuloste .BR vakiotulosteeseen . Tm tuloste saatetaan joutua ohjaamaan jonkin filtterin lpi ennen tulostamista. .TP .B \-\^w \fRtai\fP \-\-path l nyt man-sivuja, mutta nyt sijainnit sivuille, jotka muotoiltaisiin tai nytettisiin. Jos mitn parametria ei anneta, tulostetaan (vakiotulosteeseen) lista hakemistoista, joista .B man etsisi sivuja. Jos .B manpath on linkitetty man-ohjelmaan, vastaa "manpath" samaa, kuin "man --path". .TP .B \-\^W Kuten \-\^w, mutta tulosta jokainen tiedostonimi omalle rivilleen ilman mitn listietoja. Tm on hydyllinen komennoissa, kuten .ft CW .B "man -aW man | xargs ls -l" .ft .SH CAT-SIVUT Man yritt tallentaa muotoillut man-sivut sstkseen muotoiluun kuluneen ajan seuraavalla kerralla, kun nit sivuja tarvitaan. Perinteisesti muotoillut sivut .../manX:st on tallennettu .../catX:n (... on hakupolku), mutta .BR @man_config_file@ ":issa" voidaan st jokin muu hakemistosijoittelu. Jos tarvittavaa cat-hakemistoa ei lydy, ei cat-sivuja tallenneta. .PP On mahdollista asettaa .BR man "in" suid:ksi kyttj man. Jos man omistaa cat-hakemiston, jonka kyttoikeudet ovat 0755 (vain man-kyttjn kirjoitettavissa) ja cat-tiedostojen kyttoikeudet ovat 0644 tai 0444 (vain man-kyttjn tai ei kenenkn kirjoitettavissa), ei tavallinen kyttj voi muuttaa cat-sivuja tai laittaa muita tiedostoja cat-hakemistoon. Jos .BR man "ille" ei ole mritelty suidia, silloin cat-hakemiston kyttoikeuksien pitisi olla 0777, jolloin jokainen kyttj voisi jtt cat-sivuja sinne. .PP Optio .B \-c pakottaa muotoilemaan sivun uudelleen, vaikka uusi cat-sivu lytyisikin. .SH YMPRISTMUUTTUJAT .TP .B MANPATH Jos .B MANPATH on asetettu, sen arvoa kytetn polkuna man-sivuja etsittess. .TP .B MANROFFSEQ Jos .B MANROFFSEQ on asetettu, sen arvoa kytetn mrittelemn esiksittelijt, jotka ajetaan ennen .BR nroff "ia" tai .BR troff "ia." Oletuksena sivut ajetaan tbl(1)-esiksittelijn lpi ennen .BR nroff "ia." .TP .B MANSECT Jos .B MANSECT on asetettu, sen arvoa kytetn mrittelemn, mist sektioista sivuja etsitn. .TP .B MANWIDTH Jos .B MANWIDTH on asetettu, sen arvo kertoo leveyden, jolla sivut nytetn ruudulla. Muuten sivut nytetn koko ruudun levyisin. .TP .B MANPAGER Jos .B MANPAGER on asetettu, sen arvo kertoo ohjelman nimen, jota kytetn man-sivujen esittmiseen. Muuten kytetn ympristmuuttujaa .BR PAGER . Jos sitkn ei ole asetettu, kytetn komentoa .BR @pager@ . .TP .B LANG Jos .B LANG on asetettu, sen arvo mrittelee alihakemiston nimen, mist man etsii ensin sivuja. Niinp komento 'LANG=fi man 1 foo' saa manin etsimn ensin sivua .../fi/man1/foo.1. Jos tt ei lydy, etsii man sivua .../man1/foo.1. Merkit ... tarkoittavat hakupolkua. .TP .B "NLSPATH, LC_MESSAGES, LANG" Ympristmuuttujat .B NLSPATH ja .B LC_MESSAGES (tai .BR LANG , jos jlkimmist ei ole asetettu) kertovat kytettvn viestikirjaston. (Englanninkieliset viestit on knnetty ohjelman sisn, joten ne eivt tarvitse erillist viestikirjastoa.) Huomaa, ett man saattaa kytt ohjelmia, kuten col(1), jotka kyttvt mys esimerkiksi muuttujaa LC_CTYPE. .TP .B PATH .BR PATH ":ia" kytetn muodostamaan oletushakupolkua man-sivuille. .TP .B SYSTEM .B SYSTEM "-ympristmuuttujaa" kytetn vaihtoehtoisen jrjestelmn oletusnimeksi (optiota .B \-m kytettess). .SH BUGIT Optio .B \-t toimii vain, jos troffin kaltainen ohjelma on asennettu. .br Jos net tavuviivojen tilalla vilkkuvan \e255:n tai :n, aseta ympristmuuttuja 'LESSCHARSET=latin1'. .SH "KATSO MYS" apropos(1) whatis(1) less(1) groff(1). man-1.6g/man/fi/apropos.man0000644000175000001440000000140010301736016015337 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Translated into Finnish by Raimo Koski .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH apropos 1 "Tammi 15, 1991" .LO 1 .SH NIMI apropos \- etsi whatis-tietokannasta merkkijonoja .SH YLEISKATSAUS .BI apropos avainsana ... .SH KUVAUS apropos etsii avainsanoja tietokannoista, joissa on lyhyet kuvaukset jrjestelmn komennoista ja nytt tulokset vakiotulosteessa. .SH "KATSO MYS" whatis(1), man(1). man-1.6g/man/fi/man.conf.man0000644000175000001440000000202010301736016015352 0ustar lucifredusers.\" @(#)man.conf .\" Translated into Finnish by Raimo Koski .TH MAN.CONF 5 "30 Maaliskuu 1994" .SH NIMI man.conf \- man-ohjelman konfigurointitiedot .SH KUVAUS .LP Tmn tiedoston lukee .BR man (1) ja siin on (a) tiedot, miten man:n hakupolku muodostetaan, (b) tydet nimet polkuineen ohjelmielle, kuten nroff, eqn, tbl jne. joita man kytt ja (c) lista purkuohjelmista, joilla annetun tiedostoptteen tiedostot voidaan purkaa. Vaihtoehtoinen versio tst tiedostosta voidaan ottaa kyttn komennolla .LP .RS man -C private_man.conf ... .RE .LP Komentojen nimille voidaan antaa optioita. Kyttkelpoiset optiot nroff-ohjelmalle lytyvt sivulta grotty(1). Esimerkiksi oletusrivin .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP sijasta voidaan mritell .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP jotta alle- ja yliviivaus estetn. .SH "KATSO MYS" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) and compress(1), gzip(1). man-1.6g/man/fi/whatis.man0000644000175000001440000000154510301736016015165 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Translated into Finnish by Raimo Koski .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH whatis 1 "Tammikuun 5, 1991" .LO 1 .SH NIMI whatis \- etsii whatis-tietokannasta kokonaisia sanoja. .SH YLEISKATSAUS .BI whatis avainsana ... .SH KUVAUS whatis etsii avainsanoja tietokannoista, joissa on lyhyet kuvaukset jrjestelmn komennoista ja nytt tulokset vakiotulosteessa. Vain lytyneet kokonaiset sanat nytetn. Whatis-tietokanta luodaan komennolla @makewhatis@. .SH "KATSO MYS" apropos(1), man(1). man-1.6g/man/cs/0000755000175000001440000000000010301736016013173 5ustar lucifredusersman-1.6g/man/cs/man.man0000644000175000001440000001611410301736016014446 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .\" Autorem eskho pekladu je Pavel JANK ml. .\" Pavel.JANIK@inet.cz .\" .TH man 1 "7. ledna, 1997" .LO 1 .SH JMNO man \- zformtuje a zobraz on-line manulov strnky .br manpath \- zobraz manulov cesty uivatele .SH SYNTAXE man [\-acdfhkKtwW] [\-m systm] [\-p etzec] [\-C konfiguran soubor] [\-M cesta] [\-P strnkova] [\-S seznam_sekc] [sekce] jmno ... .SH POPIS .B man zformtuje a zobraz on-line manulov strnky. Tato verze um pracovat s promnnmi prosted .B MANPATH a .BR (MAN)PAGER , proto mete mt i vlastn manulov strnky a vlastn program uren ke strnkovn zformtovanch manulovch strnek. Je-li specifikovna .I sekce .B man hled danou strnku pouze v tto sekci. Samozejm mete tak specifikovat poad sekc, kter budou prohledvny a tak mete pmo na pkazov dce nebo promnnmi prosted urit, kter preprocesory budou pi formtovn strnek pouity. Obsahuje-li .I jmno znak /, je prvn vyzkoueno jako jmno souboru, proto mete udlat nco jako .B "man ./nco.5" nebo .B "man /cdko/nco/nco_jinho.1.gz\fR.\fP" .SH VOLBY .TP .B \-\^C " konfiguran_soubor" Specifikujete jin konfiguran soubor. Standardn je @man_config_file@. (Viz t man.conf(5).) .TP .B \-\^M " cesta" Specifikuje seznam manulov cest (zde jsou hledny manulov strnky). Nen-li tato volba specifikovna, je pouita promnn prosted .B MANPATH . Jestlie ani ona neexistuje, jsou manulov cesty pevzaty ze souboru @man_config_file@. .TP .B \-\^P " strnkova" Specifikuje strnkova, kterm budou strnky prohleny. Tato volba m pednost ped .B MANPAGER , kter m pednost ped .B PAGER . Standardn strnkova je .BR @pager@ . .TP .B \-\^S " seznam_sekc" Seznam_sekc je rkami oddlen seznam sekc manulovch strnek. Tato volba m pednost ped promnnou prosted .B MANSECT . .TP .B \-\^a Standardn nastaven ukon man pot, co zobraz prvn nalezenou manulovou strnku. Tato volba umon zobrazit vechny nalezen strnky, kter vyhovuj zadanm kritrim. .TP .B \-\^c Zformtuj zdroj manulov strnky i kdy existuje ji zformtovan verze. Tato volba je vznamn. je-li zformtovan strnka prohlena na obrazovce s jinm potem sloupc. .TP .B \-\^d Nezobrazuj zformtovanou strnku, pouze vytiskni ladc informace. .TP .B \-\^D Zobraz ladc informace i zformtovanou strnku. .TP .B \-\^f Tot co .B whatis. .TP .B \-\^h Vytiskni krtkou pomoc a skoni. .TP .B \-\^k Tot co .B apropos. .TP .B \-\^K Hledej specifikovan etze ve *vech* manulovch strnkch. Varovn: tato funkce je pravdpodobn velmi pomal! Specifikujete-li sekci, bude to rychlej. (Jen pro zajmavost, na mm potai to trv piblin minutu na 500 strnek). .TP .B \-\^m " systm" Specifikuje jinou sadu manulovch strnek zvislou na zadanm systmu. .TP .B \-\^p " etzec" Specifikuje poad preprocesor ped nroff nebo troff. Ne vechny instalace maj plnou sadu preprocesor. Nkter preprocesory a psmena pouvan pro jejich spoutn: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Tato volba m pednost ped promnnou prosted .B MANROFFSEQ . .TP .B \-\^t Pouij .B @troff@ k formtovn strnky a vstup zobraz na .B stdout. Vstup z .B @troff@ je teba ped tiskem poslat pes njak filtry. .TP .B \-\^w \fRnebo\fP \-\-path Nezobrazuj manulov strnky, pouze vytiskni cestu(y) soubor, kter bys zobrazil. Nen-li zadn dn argument: zobraz (na standardn vstup) seznam adres, kter jsou programem .B man hledny. Je-li .B manpath link na man, potom je manpath toton s "man --path". .TP .B \-\^W Podobn jako \-\^w, ale tiskne jmna soubor po jednom na dek bez dalch informac. To je uiten pro pkazy shellu jako nap. .ft CW man -aW man | xargs ls -l .ft .SH "ZFORMTOVAN STRNKY" Man se sna ukldat ji zformtovan manulov strnky, aby uetil pi jejich ptm zobrazen as. Tradin se zformtovan strnky z DIR/manX ukldaj do DIR/catX, ale jin mapovn z manulovho adrese na adres zformtovanch strnek je mon specifikovat v souboru @man_config_file@. Neexistuje-li adres zformtovanch strnek, nejsou ukldny dn zformtovan strnky. Je mon nechat man suid pro uivatele man. Potom, je-li majitel adrese zformtovanch strnek man a md je 0755 (zapisovat me pouze vlastnk), a zformtovan strnky maj md 0644 nebo 0444 (zapisovat me bu jenom majitel nebo vbec nikdo), neme normln uivatel zmnit zformtovan strnky nebo umstit do adrese zformtovanch strnek jin soubory. Nen-li man suid, potom by ml mt adres zformtovanch strnek md 0777 aby zde mohli vichni uivatel zanechat ji zformtovan strnky. Volba -c zpsob reformtovn strnky i kdy ji existuje zformtovan strnka. .SH PROSTED .TP .B MANPATH Je-li nastavena promnn .B MANPATH , jej hodnota je vyuvna ke hledn zformtovanch strnek. .TP .B MANROFFSEQ Je-li nastavena promnn prosted .B MANROFFSEQ je jej hdnota vyuita pro uren poad spoutn preprocesor ped nroff nebo troff. Standardn jsou strnky formtovny prvn tabulkovm procesorem a teprve pot nroffem. .TP .B MANSECT Je-li nastvane promnn prosted .B MANSECT je jej hodnota vyuita k uren sekc, kter budou prohledvny. .TP .B MANWIDTH Je-li nastavena promnn prosted .B MANWIDTH , tak jej hodnota uruje poet sloupc, na kter bude strnka zformtovna. Jinak bude strnka zformtovna na ku obrazovky. .TP .B MANPAGER Je-li nastavena promnn prosted .B MANPAGER jej obsah uruje strnkova, kter bude pouit pi zobrazen zformtovan strnky. Nen-li nastavena, je pouita promnn .B PAGER . nen-li ani tato promnn nastavena, pouije se .B @pager@ . .TP .B LANG Je-li nastavena promnn prosted .B LANG jej hodnota definuje podadres, ve kterm budou hledny strnky. Potom pkaz `LANG=cz man 1 manulov_strnka' zobraz strnku .../cz/man1/manulov_strnka.1, nebo .../man1/manulov_strnka.1, kde ... je adres v manulov cest. .TP .B "NLSPATH, LC_MESSAGES, LANG" Promnn prosted .B NLSPATH a .B LC_MESSAGES (nebo .B LANG jestlie pedchoz neexistuj) hraj roli pi hledn katalogu zprv. (Anglick zprvy jsou zkompilovny a nen pro n teba katalogu.) Dejte pozor na to, e programy jako col (1) volan programem man pouvaj nap. LC_CTYPE. .TP .B PATH .B PATH je pouvna pi sestaven starndardn manulov cesty. .TP .B SYSTEM .B SYSTEM je pouvna ke zjitn standardnho jmna systmu (pro pouit s volbou .B \-m ). .SH "VIZ Tɮ" apropos(1), whatis(1), less(1), groff(1). .SH CHYBY Volba .B \-t je funkn pouze, je-li instalovn program podobn programu troff. .br Uvidte-li blikajc \e255 nebo msto oddlovtek, umstte `LESSCHARSET=latin1' do Vaeho prosted. man-1.6g/man/cs/whatis.man0000644000175000001440000000161510301736016015172 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Autorem eskho pekladu je Pavel JANK ml. .\" Pavel.JANIK@inet.cz .\" .TH whatis 1 "7. ledna 1997" .LO 1 .SH JMNO whatis \- hledej cel slova v databzi whatis .SH SYNTAXE .BI whatis slovo ... .SH POPIS whatis prohledv databzi obsahujc krtk popis systmovch pkaz na vskyt `slova' a vsledek zobraz na standardn vstup. Jsou vak zobrazena pouze slova, kter kompletn vyhovla. Databze whatis je vytvoena sputnm programu @makewhatis@. .SH "VIZ Tɮ" apropos(1), man(1). man-1.6g/man/cs/apropos.man0000644000175000001440000000142510301736016015355 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Autorem eskho pekladu je Pavel JANK ml. .\" Pavel.JANIK@inet.cz .\" .TH apropos 1 "7. ledna, 1997" .LO 1 .SH JMNO apropos \- hledej etzec v databzi whatis .SH SYNTAXE .BI apropos slovo ... .SH POPIS apropos prohledv databzi obsahujc krtk popis systmovch pkaz na vskyt `slova' a vsledek zobraz na standardn vstup. .SH "VIZ Tɮ" whatis(1), man(1). man-1.6g/man/cs/man.conf.man0000644000175000001440000000204510301736016015370 0ustar lucifredusers.\" @(#)man.conf .\" Autorem eskho pekladu je Pavel JANK ml. .\" Pavel.JANIK@inet.cz .\" .TH MAN.CONF 5 "7. ledna, 1997" .SH JMNO man.conf \- konfiguran soubor pro man .SH POPIS .LP Tento soubor je ten programem .BR man (1) a obsahuje (a) informace o tom, kde hledat manulov strnky, (b) pln jmna dalch preprocesor jako nroff, eqn, tbl atd. pouvanch programem man a (c) seznam komprimovacch program a jimi specifikovanch ppon. Uivatelsk verze tohoto souboru me bt specifikovna takto: .LP .RS man -C soukrom_man.conf ... .RE .LP Jmna pkaz mohou bt uvedena na pkazov dce. Uiten volby pro nroff mohou bt nalezeny v grotty(1). Nap. msto standardn dky .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP mete napsat .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP co zpsob, e znaky nebudou podtren a pekrtnut. .SH "VIZ Tɮ" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) and compress(1), gzip(1). man-1.6g/man/it/0000755000175000001440000000000010424573100013201 5ustar lucifredusersman-1.6g/man/it/man.man0000644000175000001440000003374010464454503014471 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" More changes - flc .\" .\" Traduzione italiana by Michele Dalla Silvestra - dalla@maya.dei.unipd.it .\" Luglio 1996 .\" Correzioni stilistiche di Daniele Giacomini .\" Gennaio 1999 .\" Aggiornamento a 1.5g di Ottavio Rizzo .\" Aggiornamento alla versione 1.6d di Giulio Daprel .\" Agosto 2006 .\" .TH man 1 "19 settembre 2005" .LO 1 .SH NOME man \- formatta e mostra le pagine di manuale .SH SINTASSI .B man .RB [ \-acdfFhkKtwW ] .RB [ --path ] .RB [ \-m .IR sistema ] .RB [ \-p .IR stringa ] .RB [ \-C .IR config_file ] .RB [ \-M .IR lista_percorsi ] .RB [ \-P .IR impaginatore ] .RB [ \-B .IR browser ] .RB [ \-H .IR impaginatorehtml ] .RB [ \-S .IR lista_sezione ] .RI [ sezione ] .I "nome ..." .SH DESCRIZIONE .B man formatta e mostra le pagine di manuale. Se si specifica .IR sezione .B man cerca solo in quella sezione del manuale. .I nome normalmente il nome della pagina di manuale, che tipicamente il nome di un comando, funzione, o file. Tuttavia, se .I name contiene uno slash .RB ( / ) allora .B man lo interpreta come la specificazione di un file, quindi si pu fare .B "man ./foo.5" o anche .B "man /cd/foo/bar.1.gz\fR.\fP" .PP Vedere pi avanti per una descrizione di dove .B man cerca i file delle pagine di manuale. .SH OPZIONI .TP .B \-\^C " file_configurazione" Specifica il file di configurazione da usare; il valore predefinito .BR @man_config_file@ (vedere .BR man.conf (5)). .TP .B \-\^M " percorso" Specifica la lista di directory in cui cercare le pagine di manuale. Separare le directory con caratteri ":". Una lista vuota come non specificare .B \-M vedere .BR "PERCORSO DI RICERCA DELLE PAGINE DI MANUALE" . .TP .B \-\^P " impaginatore" Specifica il programma di impaginazione da usare. Questa opzione sovrascrive la variabile d'ambiente .BR MANPAGER , che sovrascrive a sua volta la variabile .BR PAGER Per default, .B man usa .BR "@pager@" . .TP .B \-\^B Specifica quale browser usare con i file HTML. Questa opzione sovrascrive la variabile d'ambiente .B BROWSER Per default .B man usa .BR @browser@ , .TP .B \-\^H Specifica un comando che riproduce i file HTML come testo. Questa opzione sovrascrive la variabile d'ambiente .B HTMLPAGER Per default, .B man usa .BR @htmlpager@ , .TP .B \-\^S " lista_sezione" Lista una lista di sezioni di manuale in cui cercare, separate da ":". Questa opzione sovrascrive la variabile d'ambiente .B MANSECT . .TP .B \-\^a Per default, .B man terminer dopo aver visualizzato la prima pagina di manuale che trova. L'uso di questa opzione forza .B man a visualizzare tutte le pagine di manuale che corrispondono a .B nome, non solo la prima. .TP .B \-\^c Riformatta la pagina di manuale sorgente, anche se esiste una pagina cat aggiornata. Questo pu essere importante se la pagina cat stata formattata per uno schermo con un numero di colonne diverso, o se la pagina preformattata danneggiata. .TP .B \-\^d Non visualizza le pagine di manuale, ma stampa informazioni di debug. .TP .B \-\^D Visualizza e stampa informazioni di debug. .TP .B \-\^f Equivalente di .BR whatis . .TP .BR \-\^F " or " \-\-preformat Formatta solo - non visualizza. .TP .B \-\^h stampa un messaggio di aiuto ed esce. .TP .B \-\^k Equivalente di .BR apropos . .TP .B \-\^K Cerca la stringa specificata in *tutte* le pagine di manuale. Attenzione: questo probabilmente molto lento! Pu essere di aiuto specificare una sezione. (Solo per dare un'idea di massima, sulla mia macchina impiega circa un minuto per 500 pagine di manuale). .TP .B \-\^m " sistema" Specifica un insieme alternativo di pagine di manuale in cui cercare basato sul nome di sistema dato. .TP .B \-\^p " stringa" specifica la sequenza dei preprocessori da eseguire prima di .B nroff o .BR troff . Non tutte le installazioni avranno un insieme completo di preprocessori. Alcuni dei preprocessori, e le lettere usate per designarli, sono: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Questa opzione sovrascrive la variabile d'ambiente .B MANROFFSEQ . .TP .B \-\^t Usa .B @troff@ per formattare la pagina di manuale, passando l'output a .B stdout. Il formato di output predefinito di .B @troff@ Postscript, fare riferimento alla pagina di manuale di .B @troff@ per vedere i modi per scegliere un formato alternativo. .PP Secondo il formato selezionato e la disponibilit di dispositivi di stampa l'output deve passare attraverso alcuni filtri prima di essere stampato. .TP .B \-\^w \fRor\fP \-\-path Non visualizza le pagine di manuale, ma stampa la locazione(i) dei file che verrebbero formattati o visualizzati. Se non viene dato alcun argomento visualizza (sullo standard output) l'elenco delle directory in cui .B man cerca le pagine di manuale. Se .B manpath un collegamento a man, allora "manpath" equivalente a "man --path". .TP .B \-\^W Come \-\^w, ma stampa i nomi di file uno per linea, senza informazioni aggiuntive. Questo utile in comandi shell come .ft CW .B "man -aW man | xargs ls -l" .ft .SH "PAGINE CAT" Man cercher di salvare le pagine formattate, allo scopo di risparmiare tempo di formattazione la prossima volta che queste pagine saranno necessarie. Tradizionalmente le versioni formattate delle pagine in DIR/manX sono salvate in DIR/catX, ma possono essere specificati altri percorsi da man dir a cat dir in .BR @man_config_file@ . Non viene salvata alcuna pagina cat quando la directory cat richiesta non esiste. Le pagine cat non vengono salvate quando sono formattate per una lunghezza della linea diversa da 80. Le pagine cat non vengono salvate quando man.conf contiene la linea NOCACHE. .PP E' possibile fare un suid di .B man a un utente man. In questo caso se una directory di cat ha come proprietario man e permessi 0755 (scrivibile solo da man), e i file cat hanno proprietario man e permessi 0644 o 0444 (scrivibili solo da man, o non scrivibili del tutto), nessun utente ordinario pu cambiare le pagine cat o mettere altri file nella directory di cat. Se su .B man non viene fatto un suid, allora una directory cat deve avere permessi 0777 se tutti gli utenti devono poter lasciare l le pagine cat. .PP L'opzione .B \-c forza la riformattazione di una pagina, anche se esiste una pagina cat recente. .SH "PAGINE HTML" Man trover le pagine HTML se esse vivono in directory con nome 'html' seguita da una sezione. L'ultima estensione del file deve essere ".html", quindi un nome valido per una versione HTML della pagina di manuale di .BR ls (1) sarebbe .IR /usr/share/man/htmlman1/ls.1.html . .SH "PERCORSO DI RICERCA DELLE PAGINE DI MANUALE" .B man usa un metodo sofisticato per trovare i file delle pagine di manuale, basato su opzioni di invocazione e variabili d'ambiente, il file di configurazione .B @man_config_file@ e alcune convenzioni e metodi euristici inclusi. .PP Prima di tutto, quando l'argomento .I nome di .B man contiene uno slash .RB ( / ), .B man assume che si tratti di una specificazione di file, e non viene fatta alcuna ricerca. .PP Ma nel caso normale in cui .I nome non contenga uno slash, .B man cerca in una variet di directory un file che possa essere una pagina di manuale per il nome dato. .PP Se si specifica l'opzione .BI "-M " lista_percorsi .I lista_percorsi un elenco di directory, separate da ":", nelle quali .B man cerca. .PP Se non si specifica .B -M ma si imposta la variabile d'ambiente .B MANPATH il valore di tale variabile la lista di directory nelle quali .B man cerca. .PP Se non si specifica una lista percorsi esplicita con .B -M o .BR MANPATH , .B man sviluppa la propria lista percorsi basata sul contenuto del file di configurazione .BR @man_config_file@ . La dichiarazione .B MANPATH nel file di configurazione identifica particolari direcotry da includere nel percorso di ricerca. .PP Inoltre le dichiarazioni .B MANPATH_MAP fanno aggiunte al percorso di ricerca in funzione del proprio percorso di ricerca dei comandi (es. la propria variabile d'ambiente .B PATH ). Per ciascuna directory che potrebbe essere nel percorso di ricerca del comando, una dichiarazione .B MANPATH_MAP specifica una directory che deve essere aggiunta al percorso di ricerca dei file delle pagine di manuale. .B man guarda nella variabile .B PATH e aggiunge le directory corrispondenti al percorso di ricerca del file della pagina di manuale. Quindi, con l'uso appropriato di .BR MANPATH_MAP , quando si d il comando .BR "man xyz" , si ottiene una pagina di manuale per il programma che verrebbe eseguito se si desse il comando .BR xyz . .PP In aggiunta, per ciascuna directory nel percorso di ricerca del comando (lo chiameremo una "directory del comando") per il quale .I non si ha una dichiarazione .B MANPATH_MAP , .B man automaticamente cerca una directory di pagina di manuale "vicina", come una sottodirectory nella stessa directory del comando o nella directory di livello superiore della directory del comando. .PP Si possono disabilitare le ricerche automatiche "vicine" includendo una direttiva .B NOAUTOPATH in .BR @man_config_file@ . .PP In ciascuna directory nel percorso di ricerca come descritto in precedenza, .B man cerca un file chiamato .IB argomento . sezione\fR, con un suffisso opzionale sul numero di sezione e magari un suffisso di compressione. Se non trova un tale file, esso allora cerca in tutte le sottodirectory che si chiamano .BI man N o .BI cat N dove .I N il numero di sezione del manuale. Se il file in una sottodirectory .BI cat N .B man suppone che sia un file di una pagina di manuale formattata (pagina cat). Altrimenti .B man suppone che non sia formattato. In ogni caso se il nome del file ha un suffisso di compressione noto (come .BR .gz ), .B man suppone che sia compresso con gzip. .PP Se si vuole vedere dove (o se) .B man troverebbe la pagina di manuale per un particolare soggetto usare l'opzione .BR "--path " ( -w ) . .SH AMBIENTE .TP .B MANPATH Se .B MANPATH impostata, .B man la usa come percorso di ricerca dei file delle pagine di manuale. Esso sovrascrive il file di configurazione e il percorso di ricerca automatico, ma sovrascritta a sua volta dall'opzione di invocazione .B -M Vedere .BR "PERCORSO DI RICERCA DELLE PAGINE DI MANUALE" . .TP .B MANPL Se .B MANPL impostata il suo valore usato come lunghezza della pagina da visualizzare. Altrimenti l'intera pagina di manuale occuper una (lunga) pagina. .TP .B MANROFFSEQ Se .B MANROFFSEQ impostata il suo valore usato per determinare l'insieme di preprocessori da eseguire prima di eseguire .B nroff o .BR troff . Per default le pagine vengono passate attraverso il preprocessore tbl prima di .BR nroff . .TP .B MANSECT Se .B MANSECT impostata il suo valore usato per determinare in quali sezioni del manuale cercare. .TP .B MANWIDTH Se .B MANWIDTH impostata il suo valore usato come ampiezza a cui le pagine di manuale devono essere visualizzate. Altrimenti le pagine possono essere visualizzate sull'intera larghezza del proprio schermo. .TP .B MANPAGER Se .B MANPAGER impostata il suo valore usato come nome del programma da usare per visualizzare la pagina di manuale. Se non lo allora viene usata .B PAGER . Se nemmeno questa impostata, viene usato .B @pager@ . .TP .B BROWSER Il nome di un browser da usare per visualizzare le pagine di manuale HTML. Se non impostata viene usato @browser@ . .TP .B HTMLPAGER Il comando da usare per riprodurre le pagine di manuale HTML come testo. Se non impostata viene usato @htmlpager@ . .TP .B LANG Se .B LANG impostata il suo valore definisce il nome della sottodirectory ove man fa la prima ricerca delle pagine di manuale. Perci il comando `LANG=dk man 1 foo' far s che man cerchi la pagina di manuale foo in .../dk/man1/foo.1, e, se non pu trovare tale file, allora in .../man1/foo.1, dove ... una directory nel percorso di ricerca. .TP .B "NLSPATH, LC_MESSAGES, LANG" Le variabili d'ambiente .B NLSPATH e .B LC_MESSAGES (o .B LANG quando l'ultima non esiste) giocano un ruolo nel localizzare il catalogo messaggi. (Ma i messaggi in inglese sono compilati nel programma, e per l'inglese non necessario alcun catalogo). Notare che anche programmi come .BR col(1) chiamati da man usano ad es. LC_CTYPE. .TP .B PATH .B PATH aiuta a determinare il percorso di ricerca dei file delle pagine di manuale. Vedere .BR "PERCORSO DI RICERCA DELLE PAGINE DI MANUALE" . .TP .B SYSTEM .B SYSTEM usata per ottenere il nome di sistema alternativo (da usare con l' opzione .B \-m ). .SH BACHI L'opzione .B \-t funziona solo se installato un programma tipo troff. .br Se si vedono lampeggiare \e255 o invece dei trattini, mettere `LESSCHARSET=latin1' nel proprio ambiente. .SH SUGGERIMENTI Se si aggiunge la linea (global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word)))) al proprio file .IR .emacs , allora la pressione di F1 dar la pagina di manuale della chiamata di libreria alla posizione corrente del cursore. .LP Per ottenere una versione testuale di una pagina di manuale, senza backspace e sottolineature, provare # man foo | col -b > foo.mantxt .SH AUTORE John W. Eaton l'autore originale di .BR "man" . Zeyd M. Ben-Halim ha rilasciato man 1.2, e Andries Brouwer le versioni da 1.3 a 1.5p. Federico Lucifredi il maintainer attuale. .SH VEDERE ANCHE apropos(1), whatis(1), less(1), groff(1), man.conf(5). man-1.6g/man/it/whatis.man0000644000175000001440000000240010464454506015205 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Traduzione italiana by Michele Dalla Silvestra - dalla@maya.dei.unipd.it .\" Luglio 1996 .\" Aggiornamento alla versione 1.6d di Giulio Daprel .\" Agosto 2006 .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH whatis 1 "19 settembre 2005" .LO 1 .SH NOME whatis \- ricerca parole complete nel database di whatis. .SH SINTASSI .BI whatis parola chiave ... .SH DESCRIZIONE whatis ricerca una parola chiave in database contenenti brevi descrizioni dei comandi di sistema e mostra i risultati sullo standard output. Solo le corrispondenze con parole intere sono mostrate. Il database whatis creato usando il comando @makewhatis@. .SH AUTORE John W. Eaton l'autore originale di .BR "man" . Zeyd M. Ben-Halim ha rilasciato man 1.2, e Andries Brouwer le versioni da 1.3 a 1.5p. Federico Lucifredi il maintainer attuale. .SH "VEDERE ANCHE" apropos(1), man(1). man-1.6g/man/it/apropos.man0000644000175000001440000000217410464454466015406 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Traduzione italiana by Michele Dalla Silvestra - dalla@maya.dei.unipd.it .\" Luglio 1996 .\" Aggiornamento alla versione 1.6d di Giulio Daprel .\" Agosto 2006 .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH apropos 1 "19 settembre 2005" .LO 1 .SH NOME apropos \- ricerca stringhe nel database di whatis .SH SINTASSI .BI apropos parola ... .SH DESCRIZIONE apropos ricerca una parola chiave in database contenenti brevi descrizioni dei comandi di sistema e mostra i risultati sullo standard output. .SH AUTORE John W. Eaton l'autore originale di .BR "man" . Zeyd M. Ben-Halim ha rilasciato man 1.2, e Andries Brouwer le versioni da 1.3 a 1.5p. Federico Lucifredi il maintainer attuale. .SH "VEDERE ANCHE" whatis(1), man(1).man-1.6g/man/it/man.conf.man0000644000175000001440000000305010464454477015416 0ustar lucifredusers.\" @(#)man.conf .\" Traduzione italiana by Michele Dalla Silvestra - dalla@maya.dei.unipd.it .\" Luglio 1996 .\" Correzioni stilistiche di Daniele Giacomini .\" Gennaio 1999 .\" Aggiornamento alla versione 1.6d di Giulio Daprel .\" Agosto 2006 .\" .TH MAN.CONF 5 "19 settembre 2005" .SH NOME man.conf \- configurazione di man .SH DESCRIZIONE .LP Questo file letto da .BR man (1) e contiene (a) informazioni su come costruire il percorso di ricerca per man, (b) percorso completo per vari programmi tipo nroff, eqn, tbl ecc. usati da man, e (c) una lista con programmi di dearchiviazione per file con una data estensione. Una versione alternativa di questo file pu essere specificata con: .LP .RS man -C private_man.conf ... .RE .LP I nomi dei comandi possono essere forniti con opzioni. Opzioni utili a nroff possono essere trovate in grotty(1). Per esempio, invece della riga predefinita: .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP si potrebbe scrivere: .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP per eliminare la sottolineatura e la sovrascrittura. .SH FILE .I "@man_config_file@" .SH AUTORE John W. Eaton l'autore originale di .BR "man" . Zeyd M. Ben-Halim ha rilasciato man 1.2, e Andries Brouwer le versioni da 1.3 a 1.5p. Federico Lucifredi il maintainer attuale. .SH "VEDERE ANCHE" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) and compress(1), gzip(1). man-1.6g/man/it/makewhatis.man0000644000175000001440000000657110464454474016064 0ustar lucifredusers.\" $Id: makewhatis.8,v 1.2 1999/05/24 14:40:26 otto Exp $ .\" Copyright (c) 1999 Ottavio G. Rizzo .\" Traduzione italiana del medesimo .\" Aggiornamento alla versione 1.6d di Giulio Daprel .\" Agosto 2006 .\" .\" This is free documentation; 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 .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual 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 this manual; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, .\" USA. .\" .TH MAKEWHATIS 8 "19 settembre 2005" .SH NOME makewhatis \- Crea il database di whatis .SH SINTASSI .BI "makewhatis [-u] [-v] [-w] [-s " sezioni " ] [-c [" percorso_cat "]] [" percorso_man "]" .SH DESCRIZIONE .B makewhatis legge tutte le pagine di manuale contenute nelle date .IR sezioni " in " percorso_man o nelle corrispondenti .IR sezioni " in " percorso_cat . Scrive, per ogni pagina, una riga nel database di whatis: ognuna consiste nel nome della pagina e in una breve descrizione separata da un trattino. La descrizione viene estratta basandosi sul contenuto della sezione NOME della pagina di manuale. .LP Poich lingue diverse usano nomi diversi per indicare la sezione NOME, .B makewhatis riconosce il termine equivalente in ceco, finlandese, francese, inglese, italiano, spagnolo e tedesco. .LP Se non viene passato nessun argomento .I percorso_man , viene usato .I /usr/man . .SH OPZIONI .TP .B -u Aggiorna il database con le nuove pagine. .TP .B -v Output pi dettagliato. .TP .B -w Ottiene il percorso da `man --path` .TP .BI -s " sezioni" Guarda nelle .I sezioni di .IR percorso_man " or " percorso_cat . Se l'opzione manca, il suo valore viene posto a .I \'1 2 3 4 5 6 7 8 9 n l\' .TP .BI -c " percorso_cat" Vengono considerate le pagine preformattate che si trovano in .I catpath . Se l'argomento assente, viene usata la prima directory esistente fra .I /usr/man/preformat " e " /usr/man . .SH ESEMPI .PP Per ricostruire solo .IR /usr/X11R6/man/whatis " e " /usr/local/man/whatis : .IP makewhatis /usr/X11R6/man /usr/local/man .PP Per ricostruire tutti i database, inclusi quelli con le traduzioni finlandesi, francesi e italiane: .IP LANGUAGE=fi:fr:it makewhatis -w .SH BACHI .B makewhatis potrebbe non aprezzare molto le pagine scritte con macro Troff non standard, come quelle di Tcl/Tk. .PP .B makewhatis non funziona con le traduzioni preformattate. .SH AUTORE John W. Eaton l'autore originale di .BR "man" . Zeyd M. Ben-Halim ha rilasciato man 1.2, e Andries Brouwer le versioni da 1.3 a 1.5p. Federico Lucifredi il maintainer attuale. .SH VEDERE ANCHE .BR apropos (1), .BR man (1), .BR whatis (1)man-1.6g/man/it.txt0000644000175000001440000000001010301736016013732 0ustar lucifredusersitalian man-1.6g/man/es/0000755000175000001440000000000010464721062013202 5ustar lucifredusersman-1.6g/man/es/README0000644000175000001440000000045310464722234014066 0ustar lucifredusersMan pages y msgs en castellano por Pablo Saratxaga Inspiradas de las pginas portuguesas de Vitor Duarte Fecha: Fri May 24 02:43:10 MET DST 1996 Actualizacin de Benjamn Albiana Fecha: vie abr 14 13:21:11 CEST 2006 man-1.6g/man/es/apropos.man0000644000175000001440000000234010464721026015361 0ustar lucifredusers.\" .\" Generated automatically from apropos.1.in by the .\" configure script. .\" .\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Traducido del portugus por Pablo Saratxaga .\" .\" Traduccin actualizada por Benjamn Albiana .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH apropos 1 "Septiembre 19 2005" .LO 1 .SH NOMBRE apropos \- busca `cadenas' en la base de datos "whatis" .SH SINOPSIS .BI apropos palabra_clave ... .SH DESCRIPCIN apropos busca el contenido de .B palabra_clave, en una base de datos que contiene breves descripciones de los comandos, mostrando todas las descripciones donde encontra una referencia a la clave. .SH AUTOR John W. Eaton fue el autor original de .BR "man" . Zeyd M. Ben-Halim lanz man 1.2, y Andries Brouwer continu con las versiones 1.3 a 1.5p. Federico Lucifredi es el encargado actual. .SH "VASE TAMBIN" whatis(1), man(1). man-1.6g/man/es/man.man0000644000175000001440000001621610464721233014460 0ustar lucifredusers.\" .\" Generated automatically from man.1.in by the .\" configure script. .\" .\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Traducido del portugus por Pablo Saratxaga .\" La seccin "pginas formatadas" ha sido tomada de la version francesa de .\" esta pgina de manual, traducida por Ren Cougnenc. .\" .\" Traduccin actualizada por Benjamn Albiana .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .TH man 1 "Septiembre 19 2005" .LO 1 .SH NOMBRE man \- da formato y muestra las pginas del manual en lnea .br manpath \- determina la ruta de bsqueda inicial .SH SINPSIS man [\-acdfhktw] [\-m sistema] [\-p cadena] [\-C fich_config] [\-M ruta] [\-P paginador] [\-S lista_sec] [seccin] nombre ... .SH DESCRIPCIN .B man da formato y muestra las pginas del manual en lnea. Esta versin reconoce las variables de entorno (environment) .B. MANPATH y .B (MAN)PAGER (ver ms adelante). Si se indica la .I seccin , .B man buscar nicamente en ella. Es tambin posible indicar el orden de bsqueda en la secciones y que preprocesamiento efectuar con los manuales, por medio de opciones en la lnea de comando o con variables de entorno. Si el .I nombre contiene el carcter `/' tratar primero un fichero con ese nombre, permitiendo hacer .B "man ./foo.5" o tambin .B "man /cd/foo/bar.1.gz" para dar formato y ver un fichero en particular. .SH OPCIONES .TP .B \-\^C " fich_config" Indica el fichero de configuracin a usar; por defecto se usar /etc/man.conf. (Ver man.conf(5).) .TP .B \-\^M " ruta" Indica la lista de directorios donde buscar los manuales. Sin esta opcin se utilizar la variable .B MANPATH. Si esta variable tampoco estuviera definida, se obtendr una lista consultando /etc/man.conf. Un directorio vaco en MANPATH representa la lista anterior. .TP .B \-\^P " paginador" Indica que paginador/visualisador usar. Sin esta opcin tratar de consultar la variable .B PAGER. Normalmente, man usar .B /usr/bin/less -is. .TP .B \-\^S " lista_sec" Da la lista de secciones (separadas por `:') donde buscar y en que orden. Esta opcin tiene prioridad sobre la variable .B MANSECT. .TP .B \-\^a Normalmente man muestra el primer manual que encuentra. Esta opcin le permite mostrar todas las pginas de manual encontradas para la entrada .B nombre. .TP .B \-\^d No muestra el manual, sino informacin para la depuracin de errores. .TP .B \-\^f Equivalente a .B whatis. .TP .B \-\^h Muestra un breve mensaje de ayuda. .TP .B \-\^k Equivalente a .B apropos. .TP .B \-\^m " sistema" Indica un conjunto de manuales diferentes aplicables al sistema indicado. .TP .B \-\^p " cadena" Especifica una secuencia de preprocesadores a usar antes de nroff o troff (los formateadores). Algunas instalaciones de Linux pueden no tener todos los preprocesadores. Algunos preprocesadores y las letras a usar para indicarlos son: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Esta opcin tiene proridad sobre la variable .B MANROFFSEQ. .TP .B \-\^t Usar .B /usr/bin/groff -Tps -mandoc para dar formato a las pginas de manual, efectundose la salida por .B stdout Puede ser necesario procesar la salida de este comando con otros filtros para poder visualizarla o imprimirla. .TP .B \-\^w \fRo\fP \-\-path No muestra las pginas de manual, sino la(s) localizacin(es) de los ficheros que se hubieran formateado y mostrado, para la entrada de .B nombre indicado. Si no se da ninguna otra opcin muestra la lista de directorios que seran recorrido por .B man durante la bsqueda. Si .B manpath es un enlace a man, entonces "manpath" equivale a "man --path". .B \-\^W Como \-\^w, pero muestra los nombres de ficheros, uno por linea, sin ninguna otra informacin. Muy til en comandos shell del estilo: .ft CW man -aW man | xargs ls -l .ft .SH "PGINAS FORMATEADAS" Con el fin de ganar tiempo, .B man trata de guardar la pginas formateadas en vez de interpretarlas cada vez que se las pide. Tradicionalmente, las versiones formateadas de las pginas de REP/manX son guardadas en REP/catX, pero se pueden indicar otras correspondencias entre los directorios man y cat en el fichero /etc/man.conf. Si el directorio \%cat\% correspondiente no existe, no se guardarn las pginas formateadas. Es posible hacer a .B man suid para un usuario man. En este caso, si un directorio cat pertenece a man, y tiene el modo 0755 (nicamente man tiene permisos de escritura), y los ficheros cat pertenecen tambin a man y tiene el modo 0644 0444 (slo mana tiene permisos de escritura, o nadie los tiene), ningn usuario normal podr cambiar las pginas formateadas o aadir ficheros al directorio correspondiente. Si .B man no es suid, los directorios cat debern tener el modo 0777 para que todo usuario pueda dejar el resultado de los formateos efectuados durante las consutlas del manual. .LP La opcin -c fuerza el reformateo de una pgina, aunque ya exista un fichero cat ms reciente que el fichero fuente. .SH ENTORNO .TP .B MANPATH Si se ha definido .B MANPATH se usar su valor como lista de directorios (manpath) donde pueden estar las entradas del manual. .TP .B MANROFFSEQ Si se ha definido .B MANROFFSEQ su valor determinar los preprocesadores a aplicar antes de nroff o troff. Normalmente, las pginas de manual, son preprocesadas por tbl antes de nroff. .TP .B MANSECT Si se ha definido .B MANSECT su valor indicar las secciones a recorrer. .TP .B PAGER Si se ha definido .B PAGER su valor indicar el programa a usar para mostrar el manual. Normalmente usar .B /usr/bin/less -is. .TP .B LANG Si se ha definido .B LANG su valor indicar el nombre del subdirectorio donde .B man comenzar la bsqueda de las pginas de manual. Por ejemplo, el comando \%LANG=es man 1 pepe\% tendr como efecto de hacer una bsqueda de la pgina pepe en .../es/man1/pepe.1, y si ese fichero no existe, en .../man1/pepe.1, ( ... indica un directorio en la ruta de bsqueda). .TP .B "NLSPATH, LC_MESSAGES, LANG" Las variables de entorno .B NLSPATH y .B LC_MESSAGES (o .B LANG cuando LC_MESSAGES no existe) juegan un papel en la localizacin del catlogo de mensajes. Ntese que los programas como col(1) que son llamados por .B man, tambin utilizan LC_CTYPE. .TP .B PATH .B PATH se utiliza para la construccin de la ruta de bsqueda por omisin. .TP .B SYSTEM .B SYSTEM se emplea para obtener los sistemas alternativos por omisin (en vista del uso de la opcin .B \-m ). .SH AUTOR John W. Eaton fue el autor original de .BR "man" . Zeyd M. Ben-Halim lanz man 1.2, y Andries Brouwer continu con las versiones 1.3 a 1.5p. Federico Lucifredi es el encargado actual. .SH "VASE TAMBIN" apropos(1), whatis(1), less(1), groff(1). .SH BUGS .B \-t solo funciona si existe un programa troff o equivalente. .SH TRADUCCIN Pablo Saratxaga, 1996. A partir de la pgina en portugus de Vitor Duarte y la pgina en francs de Ren Cougnenc. Actualizacin de Benjamn Albiana, 2006. man-1.6g/man/es/whatis.man0000644000175000001440000000222110464721314015173 0ustar lucifredusers.\" .\" Generated automatically from whatis.1.in by the .\" configure script. .\" .\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH whatis 1 "Septiembre 19 2005" .LO 1 .SH NOMBRE whatis \- busca palabras en una base de datos propia .SH SINOPSIS .BI whatis palabra_clave ... .SH DESCRIPCIN whatis busca el contenido de .B palabra_clave, en una base de datos que contiene breves descripciones de los comandos, mostrando todas las descripciones que contienen una palabra idntica ( una palabra completa). La base de datos de "whatis" se crea con el comando /usr/sbin/makewhatis .SH AUTOR John W. Eaton fue el autor original de .BR "man" . Zeyd M. Ben-Halim lanz man 1.2, y Andries Brouwer continu con las versiones 1.3 a 1.5p. Federico Lucifredi es el encargado actual. .SH VASE TAMBIN apropos(1), man(1). man-1.6g/man/es/man.conf.man0000644000175000001440000000267210464721276015414 0ustar lucifredusers.\" .\" Generated automatically from man.conf.5.in by the .\" configure script. .\" .\" @(#)man.conf .\" Traducido del portugus por Pablo Saratxag .\" .\" Traduccin actualizada por Benjamn Albiana .\" .TH MAN.CONF 5 "Septiembre 19, 2005" .SH NOMBRE man.conf \- fichero de configuracin para el comando man .SH DESCRIPCIN .LP Este fichero es leido por .BR man (1) y contiene: (a) informacin para obtener la ruta de bsqueda de las pginas (manpath); (b) nombres completos de varios programas como nroff, eqn, tbl, etc. usados por man; (c) una lista de descompresores de ficheros con determinadas extensiones. Se puede indicar un fichero alternativo con .LP .RS man -C fich_config ... .RE .LP Los nombres de comandos pueden ser indicados con opciones. Las opciones tiles para nroff se pueden encontrar en grotty(1). Por ejemplo, en vez de la lnea .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP se puede usar .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP para suprimir subrayados y carcteres en negrita. .SH AUTOR John W. Eaton fue el autor original de .BR "man" . Zeyd M. Ben-Halim lanz man 1.2, y Andries Brouwer continu con las versiones 1.3 a 1.5p. Federico Lucifredi es el encargado actual. .SH VASE TAMBIN col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) e compress(1), gzip(1). man-1.6g/man/es/makewhatis.man0000644000175000001440000000627410464721062016045 0ustar lucifredusers.\" Copyright (c) 1999 Ottavio G. Rizzo .\" .\" Traducido por Benjamn Albiana .\" .\" This is free documentation; 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 .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual 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 this manual; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, .\" USA. .\" .TH MAKEWHATIS 8 "Septiembre 19 2005" .SH NOMBRE makewhatis \- Crea la base de datos de whatis .SH SINOPSIS .BI "makewhatis [-u] [-v] [-w] [-s " secciones " ] [-c [" catpath "]] [" manpath "]" .SH DESCRIPCIN .B makewhatis lee todas las pginas del manual contenidas en las .IR secciones " de " manpath dadas o de las pginas preformateadas contenidas en las .IR secciones " de " catpath dadas. Por cada pgina, escribe una lnea en la base de datos de whatis; cada lnea contiene el nombre de la pgina y una breve descripcin, separadas por una guin. La descripcin se obtiene del contenido de la seccin NOMBRE de la pgina del manual. .LP Ya que otros idiomas usan trminos diferentes para la seccin NOMBRE, .B makewhatis reconoce los trminos equivalentes en checo, italiano, finlands, francs, alemn y espaol. .LP Si no se da el argumento .I manpath se asume por defecto .I /usr/man .SH OPCIONES .TP .B -u Actualiza la base de datos con pginas nuevas. .TP .B -v Salida prolija .TP .B -w Usa la ruta de `man --path` .TP .BI -s " secciones " Mira en las .I secciones de .IR manpath " o " catpaht. Si no existe la opcin, se asume el valor .I \'1 2 3 4 5 6 7 8 9 n l\' .TP .BI -c " catpath" Se exploran la pginas del manual preformateadas en .I catpath Si no se da el argumento, se asume que ser el primer directorio existente entre .IR /usr/man/preformat " y " /usr/man . .SH EJEMPLOS .PP Para rehacer slo .IR /usr/X11R6/man/whatis " y " /usr/local/man/whatis .IP makewhatis /usr/X11R6/man /usr/local/man .PP Para reconstruir todas las bases de datos, incluyendo las traducciones al finlands, francs e italiano .IP LANGUAGE=fi:fr:it makewhatis -w .SH FALLOS .B makewhatis puede que no maneje bien pginas del manual hechas con macros troff no estndar, como las pginas de Tcl/Tk. .PP .B makewhatis no funciona con traducciones preformateadas .SH AUTOR John W. Eaton fue el autor original de .BR "man" . Zeyd M. Ben-Halim lanz man 1.2, y Andries Brouwer continu con las versiones 1.3 a 1.5p. Federico Lucifredi es el encargado actual. .SH TRADUCCIN Benjamn Albiana, 2006 .SH VASE TAMBIN .BR apropos (1), .BR man (1), .BR whatis (1) man-1.6g/man/es.txt0000644000175000001440000000001010301736016013725 0ustar lucifredusersspanish man-1.6g/man/sl.txt0000644000175000001440000000001210301736016013736 0ustar lucifredusersslovenian man-1.6g/man/sl/0000755000175000001440000000000010301736016013204 5ustar lucifredusersman-1.6g/man/sl/apropos.man0000644000175000001440000000144110301736016015364 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Slovenski prevod Primo Peterlin , .\" julij 1996. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH apropos 1 "15. januar 1991" .LO 1 .SH IME apropos \- poii kljuno besedo v datoteki whatis .SH SINTAKSA .BI apropos kljuna_beseda ... .SH OPIS apropos preie za kljuno besedo mnoico datotek, ki vsebujejo kratke opise sistemskih ukazov, in izpie rezultat na standardni izhod. .SH "GLEJ TUDI" whatis(1), man(1). man-1.6g/man/sl/man.man0000644000175000001440000001722410301736016014462 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Slovenski prevod Primo Peterlin , .\" julij 1996. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .TH man 1 "2. september 1995" .LO 1 .SH IME man \- oblikovanje in prikaz strani on-line prironika .br manpath \- prikaz poti do imenikov, kjer man ie prironike .SH SINTAKSA .\" man [\-acdfhkKtwW] [\-m system] [\-p string] [\-C config_file] [\-M path] .\" [\-P pager] [\-S section_list] [section] name ... man [\-adfhkKtwW] [\-m sistem] [\-p niz] [\-C nastavitvena_datoteka] [\-M pot] [\-P paginator] [\-S seznam_poglavij] [poglavje] ime ... .SH OPIS .B man oblikuje in prikae strani on-line prironika. Ta izvedba pozna spremenljivki .B MANPATH in .BR (MAN)PAGER , tako da si lahko pripravite lasten nabor osebnih strani prironika in izberete va najljubi program za prikaz oblikovanih strani. e je doloeno .I poglavje, .B man ie samo v tem poglavju prironika. Iz ukazne vrstice ali prek spremenljivk okolja lahko doloite tudi vrsti red poglavij, ki jih .B man preie, ter katere predprocesorje se pred prikazom uporabijo na izvornem besedilu. e .I ime vsebuje znak /, se najprej preveri, e obstaja datoteka s tem imenom. Ukaz .B "man ./foo.5" ali celo .B "man /cd/foo/bar.1.gz\fR.\fP" sta zato povsem veljavna. .SH IZBIRE .TP .B \-\^C " nastavitvena_datoteka" Doloimo nastavitveno datoteko man.conf, ki jo elimo uporabljati; privzeta izbira je @man_config_file@. (glejte man.conf(5).) .TP .B \-\^M " pot" Doloimo seznam imenikov, v katerih se ie za stranmi prironika. e izbira ni podana, se uporabi spremenljivka okolja .B MANPATH e tudi spremenljivke s tem imenom ni, se uporabi privzeta izbira iz nastavitvene datoteke @man_config_file@. Prazen niz v MANPATH implicira privzet seznam imenikov. .TP .B \-\^P " paginator" Doloimo paginator. Ta izbira ima prednost pred spremenljivko okolja .B MANPAGER, ki ima nadalje prednost pred spremenljivko okolja .B PAGER. Privzeta izbira za paginator je .BR @pager@ . .TP .B \-\^S " seznam_poglavij" Seznam_poglavij je z dvopiji loen seznam poglavij prironika, v katerem se ie geslo. Ta izbira ima prednost pred spremenljivko okolja .B MANSECT. .TP .B \-\^a Sam po sebi man prikae prvo stran, ki ustreza imenu .B name. S to izbiro zahtevamo, da prikae vse strani, ki ustrezajo pogoju, ne le prve. .TP .B \-\^c Izrecno zahtevamo ponovno oblikovanje strani, etudi e oblikovana stran obstaja. Izbira je lahko smiselna, e je bila stran oblikovana za drugano irino zaslona. .TP .B \-\^d Ne prikai oblikovane strani, ampak le "debugging" informacije. .TP .B \-\^D Prikai tako oblikovano stran kot tudi "debugging" informacije. .TP .B \-\^f Isto kot .B whatis. .TP .B \-\^h Izpii eno vrstico navodila in konaj. .TP .B \-\^k Isto kot .B apropos. .TP .B \-\^K Preii *vse* strani prironika za dani niz. Pozor: to zelo verjetno vzame kar nekaj asa! Hitreje gre, e iskanje omejimo na poglavje. (Kot grob primer: na avtorjevem raunalniku traja iskanje prek 500 strani prironika priblino minuto.) .TP .B \-\^m " sistem" Doloimo alternativni nabor strani prironika na podanem sistemu. .TP .B \-\^p " niz" Doloimo zaporedje predprocesorjev, ki se poenejo pred nroff ali troff. Nekateri od predprocesorjev, in njihove enorkovne okrajave: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Ni nujno, da so na vaem sistemu vsi nateti predprocesorji na voljo. Ta izbira ima prednost pred spremenljivko okolja .B MANROFFSEQ. .TP .B \-\^t Uporabi .B @troff@ za oblikovanje strani prironika in usmeri izhod na standardni izhod .B stdout. Lahko, da je izhod iz .B @troff@ pred tiskom potrebno obdelati s e kaknim filtrom. .TP .B \-\^w \fRali\fP \-\-path Ne prikai oblikovanih strani prironika, ampak pot do datotek, ki bi bile oblikovane in prikazane. e je izbira brez argumenta, prikai pot do imenikov, v katerih .B man ie strani prironika. e je .B manpath povezava na man, tedaj je "manpath" enakovredno "man --path". .TP .B \-\^W Kot \-\^w, le da prikae po eno ime datoteke v vrstici in brez dodatnih informacij. To je lahko uporabno v ukazih ukazne lupine, kot npr. .ft CW man -aW man | xargs ls -l .ft .SH "OBLIKOVANE STRANI" Man poskusi shraniti oblikovane strani in tako prihraniti as, potreben za oblikovanje, ko se stran naslednji rabi. Tradicionalno se oblikovane strani iz imenikov DIR/manX shranjujejo v imenike DIR/catX, drugaen dogovor glede preslikave med izvornimi in oblikovanimi razliicami pa je mono doloiti v @man_config_file@. Oblikovane strani se ne shranijo, e ustrezni imenik ne obstaja. .TP Program man je mono pripisati (SUID) uporabniku z imenom man. V tem primeru, kadar je imenik z oblikovanimi stranmi v lasti man, nain zaite pa 0755 (dovoljeno pisanje samo lastniku -- man), oblikovane datoteke pa so zaitene z 0644 ali 0444 (dovoljeno pisanje samo lastniku, ali pa sploh prepovedano pisanje), nihe od uporabnikov ne more ne more spreminjati oblikovanih strani ali puati svojih datotek v imeniku z oblikovanimi stranmi. e man ni v lasti (SUID) uporabnika man, mora biti imenik z oblikovanimi stranmi dovoljen za pisanje (0777), e naj bo tam vsem uporabnikom dovoljeno puati oblikovane strani. .TP Izbira \-\^c zahteva ponovno oblikovanje strani, etudi recentna oblikovana stran e obstaja. .SH SPREMENLJIVKE OKOLJA .TP .B MANPATH e nastavimo spremenljivko .B MANPATH, se njena vrednost uporabi za pot do strani prironika. .TP .B MANROFFSEQ e nastavimo spremenljivko .B MANROFFSEQ, z njeno vrednostjo doloimo zaporedje predprocesorjev, ki obdelajo stran pred nroff ali troff. Privzeta izbira je tabelarni predprocesor tbl. .TP .B MANSECT e nastavimo spremenljivko .B MANSECT, njena vrednost doloa poglavja v prironiku, v katerih man ie zahtevano stran. .TP .B MANWIDTH e nastavimo spremenljivko .B MANWIDTH, njena vrednost doloa irino zaslona, za katero se oblikujejo strani prironika. Privzeta izbira je cela irina zaslona. .TP .B MANPAGER e nastavimo spremenljivko .B MANPAGER, njena vrednost doloa paginator -- program, ki prikae oblikovano stran. e spremenljivka ni nastavljena, se uporabi vrednost spremenljivke .B PAGER. e tudi ta ni nastavljena, se uporabi privzeta izbira .B @pager@. .TP .B LANG e nastavimo spremenljivko .B LANG, njena vrednost doloa podimenik, v katerem man najprej poskusi poiskati stran prironika. Na primer, pri ukazu ,,LANG=dk man 1 foo'' man najprej poskusi poiskati ustrezno stran prironika v datoteki .../dk/man1/foo.1, e ta ne obstaja, pa v .../man1/foo.1. Pri tem je ... eden od imenikov, v katerih man ie strani. .TP .B "NLSPATH, LC_MESSAGES, LANG" Spremenljivki .B NLSPATH in .B LC_MESSAGES (ali .B LANG e LC_MESSAGES ne obstaja) doloajo katalog s sporoili programa. (Angleka sporoila so izjema, ker so e vkljuena v program, tako da zanje ne potrebujemo posebnega kataloga.) Programi kot npr. col(1), ki ga klie man, prav tako uporabljajo lokalizacijske spremenljivke (npr. LC_CTYPE). .TP .B PATH .B PATH se uporablja za sestavljanje privzete poti, v katerih man ie strani prironika. .TP .B SYSTEM .B SYSTEM se uporablja za doloitev imena alternativnega sistema (z izbiro .B \-m). .SH "GLEJTE TUDI" apropos(1), whatis(1), less(1), groff(1). .SH NAPAKE The .B \-t deluje samo, kadar je na voljo troff ali drug enakovreden program. .br e namesto pomiljajev vidite utripajoe \e255 or , dodajte med spremenljivke okolja `LESSCHARSET=latin1'. man-1.6g/man/sl/whatis.man0000644000175000001440000000156610301736016015210 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" Slovenski prevod Primo Peterlin .\" avgust 1996 .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH whatis 1 "5. januar 1991" .LO 1 .SH IME whatis \- poii besedo v zbirki whatis. .SH SINTAKSA .BI whatis kljuna_beseda ... .SH OPIS whatis poskusi v podatkovnih zbirkah s kratkimi opisi sistemskih ukazov poiskati kljune besede in izpie rezultat na standardni izhod. Samo ujemanja celih besed se izpiejo. Podatkovno zbirko whatis napravimo z ukazom @makewhatis@. .SH "GLEJTE TUDI" apropos(1), man(1). man-1.6g/man/sl/man.conf.man0000644000175000001440000000200610301736016015376 0ustar lucifredusers.\" @(#)man.conf .TH MAN.CONF 5 "30. marec 1994" .SH IME man.conf \- nastavitvena datoteka za program man .SH OPIS .LP To datoteko prebere program .BR man (1). Vsebuje (a) informacijo o sestavljanju poti, v katerih man ie strani prironika, (b) celotne poti do programov, ki jih man uporablja, kot npr. nroff, eqn, tbl itd., ter (c) seznam programov, ki znajo dekompresirati datoteke z doloenimi priponami. Alternativo privzeti verziji te datoteke lahko doloimo z izbiro .LP .RS man -C privatni_man.conf ... .RE .LP Ukazi so lahko navedeni skupaj z izbirami. Nekaj uporabnih izbir za nroff lahko najdete na strani grotty(1). Na primer, namesto privzete vrstice .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP lahko navedemo .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP in prepreimo podrtanje in polkrepki tisk z vekratnim odtisom (overstrike). .SH "GLEJTE TUDI" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) and compress(1), gzip(1). man-1.6g/man/cs.txt0000644000175000001440000000000610301736016013730 0ustar lucifredusersczech man-1.6g/man/da/0000755000175000001440000000000010301736016013152 5ustar lucifredusersman-1.6g/man/da/apropos.man0000644000175000001440000000157610301736016015343 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" edited and translated to danish by Bo Vagner Hoejer 1996 .\" email bo@petshop.ping.dk - bo@image.dk .\" .TH apropos 1 "15. Januar 1991" "da" "Linux brugerkommandoer" .LO 1 .SH NAVN apropos \- gennemsg 'whatis' databasen for tekststrenge .SH SYNTAKS .BI apropos ngleord ... .SH BESKRIVELSE apropos gennemsger et set af databasefiler, som indeholder korte beskrivelser af systemets kommandoer, efter ngleordet og udskriver resultatet paa standard udskriftsenheden. .SH "SE OGS" whatis(1), man(1). man-1.6g/man/da/man.man0000644000175000001440000001631110301736016014424 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .\" edited and translated to danish by Bo Vagner Hoejer 1996 .\" email bo@petshop.ping.dk .\" .TH man 1 "2. September 1995" "da" "Linux brugerkommandoer" .LO 1 .SH NAVN man \- formaterer og viser online manual siderne .br manpath \- udskriver brugerens sgesti for manual siderne .SH SYNTAKS man [\-acdfhkKtwW] [\-m system] [\-p streng] [\-C konfigurationsfil] [\-M sti] [\-P pager] [\-S kapitelliste] [kapitel] opslagsord ... .SH BESKRIVELSE .B man formaterer og viser online manual siderne. Denne version genkender .B MANPATH og .B (MAN)PAGER variablerne, s du kan derfor faststte dit personlige set manual sider og vlge hvilket program du fortrkker til at vise de formaterede sider med. Hvis .I kapitel er angivet vil .B man kun gennemsge dette kapitel af manualen. Man kan ogs angive hvilken rkkeflge kapitlerne gennemsges for opslag i og hvilke preprocessore, som kres p kildeteksten, via kommandolinie parametre eller skalvariabler. Hvis .I opslagsordet indeholder en skrstreg ('/') bliver det frst testet som et filnavn, s man kan anfre .I "man ./foo.5" eller selv .I "man /cd/foo/bar.1.gz\fR.\fP" .SH PARAMETRE .TP .B \-\^C " konfigurations_fil" Angiver hvilken konfigurations_fil som bruges. Normalt anvendes @man_config_file@. (Se man.conf(5).) .TP .B \-\^M " sti" Angiver hvilke kataloger som gennemsges efter manualsider. Hvis en sdan parameter ikke er angivet bruges skalvariablen .BR MANPATH . Hvis ingen sdan skalvariabel findes, konsulteres .I @man_config_file@ for at opbygge en standardliste. Hvis MANPATH indeholder et tom delstreng bruges standardlisten. .TP .B \-\^P " pager" Angiver hvilket 'pager' program, som skal bruges. Denne parameter tilsidestter .B MANPAGER skalvariablen, som igen overskygger .B PAGER variablen. Normalt bruger 'man' .IR @pager@ . .TP .B \-\^S " kapitel_liste" Kapitel_liste er en kolon sepereret liste af kapiteller som skal gennemsges. Denne parameter tilsidestter .B MANSECT skalvariablen. .TP .B \-\^a Normalt vil man afslutte efter visning af den frste fundne manualside Brug af denne parameter tvinger 'man' til ikke kun at vise den frst fundne side, men alle sider der matcher .BR opslagsord . .TP .B \-\^c Reformater kildesiden, selvom der findes en preformateret side, som er up to date. Denne mulighed bruges, hvis for eksempel manualsiden er preformateret til en skrm med en anden bredde end den, man aktuelt anvender. .TP .B \-\^d Siden vises ikke; men der udskrives adskillige fejlfindingsinformationer i stedet. .TP .B \-\^D Udskiver bde siden og fejlfindingsinformation. .TP .B \-\^f kvivalent med .B whatis. .TP .B \-\^h Udskriv en kort hjlpetekst og afslut programmet. .TP .B \-\^k kvivalent med .B apropos. .TP .B \-\^K Gennemsger *alle* manualsiderne efter den angivne streng. Advarsel: det kan godt g meget langsomt. Det hjper at specifisere et kapitel. P en typisk maskine tager det omkring 1 minut at gennemsge 500 manualsider. .TP .B \-\^m " system" System angiver et alternativt set manualsider. .TP .B \-\^p " string" Angiver den sekvens af preprocessore som kres fr nroff eller troff. Ikke alle installationer har et fuldt set preprocessore. Bogstaverne som betegner nogle af preprocessorene er: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Denne parameter tilsidestter .B MANROFFSEQ skalvariablen. .TP .B u-\^t Brug .B @troff@ til formattering af manualside, uddata sendes til .B stdout. Uddata fra .B @troff@ m muligvis viderebearbejdes gennem et filter fr udskrift. .TP .BR \-\^w or \-\-path Manualsiderne vises ikke, men findestedet for filerne ,som ville blive formateret eller vist, udskrives. Hvis ingen argumenter er angivet udskrives hvilke kataloger som .B man gennemsger efter manualsider. Hvis .B manpath er et link til man, s er 'manpath' kvivalent med 'man --path'. .TP .B \-\^W Som \-\^w, men udskriver filnavne en per linie, uden yderligere information. Dette er smart i skal kommandoer ssom .ft CW man -aW man | xargs ls -l .ft .SH "PREFORMATEREDE SIDER" .B man vil prve p at gemme de formaterede manualsider, for at spare formatteringstid nste gang der er brug for siderne. Traditionelt bliver de formatterede sider fra KATALOG/manX gemt i KATALOG/catX, men rute fra manual kataloget til preformat kataloget kan angives i .I @man_config_file@. Ingen preformaterede sider bliver gemt, hvis det forlangte katalog ikke eksisterer. .TP Det er muligt at stte 'man' suid til bruger man. Hvis cat kataloget har ejer man og tilgangsrettighed 0755 (kum skrivetilladelse for man), og cat-filerne har ejer man og tilgangsrettighed 0644 eller 0444 (kun skrivetilladelse for man, eller ingen skriveltilladelse overhovedet), kan ingen ordinr bruger ndre de preformaterede sider eller anbringe andre filer i katalog for preformaterede sider. Hvis 'man' ikke er suid, skal kataloget for preformaterede sider have tilgangrettighed 0777 hvis alle brugere skal have mulighed for at gemme preformaterede sider. .TP Parameteren -c gennemtvinger reformattering af en side, selvom en frisk preformateret side eksisterer. .SH SKALVARIABLE .TP .B MANPATH Hvis .B MANPATH er sat, bruges dens vrdi som sgesti til manualsiderne. .TP .B MANROFFSEQ Hvis .B MANROFFSEQ is sat, bruges dennes vrdi til at bestemme hvilke preprocessore som gennemkres fr nroff eller troff. Normalt bliver siderne sendt gennem tabel preprocessoren fr nroff. .TP .B MANSECT Hvis .B MANSECT er sat, bruges dens vrdi til at faststte hvilken manualsektioner som gennemsges. .TP .B MANWIDTH Hvis .B MANWIDTH is sat, bruges dens vrdi; som den brede manualsiderne bliver vist med. Hvis ikke .B MANWIDTH er sat, bruges hele skrmens bredde. .TP .B MANPAGER Hvis .B MANPAGER is sat, anvendes dets vrdi som navnet p det program som bruges til at vise manualsiderne med. Hvis ikke s bruges .BR PAGER . Hvis denne heller ikke har nogen vrdi bruges .BR @pager@ . .TP .B LANG Hvis .B LANG er sat, bruges dets vrdi til at definere i hvilket underkatalog man frst kigger efter manualsider. Sledes vil kommandoen `LANG=da man 1 foo' f man til at lede efter foo manualsiden i .../da/man1/foo.1, og hvis der ikke kan finde en sdan fil fortsttes der i .../man1/foo.1, hvor ... er et katalog p sgestien. .TP .B "NLSPATH, LC_MESSAGES, LANG" Skalvariablerne .B NLSPATH og .B LC_MESSAGES (eller .B LANG nr den sidste ikke findes) spiller en rolle i at lokalisere meddelelses kataloget. (Engelske meddelelser er oversat direkte ind i programmet, s derfor behves intet katalog.) Bemrk at nogle programmer, s som col(1), kaldt af man ogs bruger LC_CTYPE. .TP .B STI .B STI bliver brugt til konstruktion af den normale sgesti for manualsiderne. .TP .B SYSTEM .B SYSTEM bliver brugt til at angive et andet system navn med (for brug med .B \-m parametren). .SH "SE OGS" apropos(1), whatis(1), less(1), groff(1). .SH FEJL .B \-t parametren virker kun, hvis der er installeret et troff-lignende program. man-1.6g/man/da/whatis.man0000644000175000001440000000175310301736016015154 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" edited and translated to danish by Bo Vagner Hoejer 1996 .\" email bo@petshop.ping.dk - bo@image.dk .\" .TH whatis 1 "5. Januar 1991" "da" "Linux brugerkommandoer" .LO 1 .SH NAVN whatis \- gennemsg 'whatis' databasen efter komplette ord. .SH SYNTAKS .BI whatis ngleord ... .SH BESKRIVELSE whatis gennemsger et set af databasefiler, som indeholder korte beskrivelser af systemets kommandoer, efter ngleordet og udskriver resultatet paa standard udskriftsenheden. Kun ord der matcher fuldstndigt bliver vist. whatis databasen oprettes ved at anvende kommandoen @makewhatis@. .SH "SE OGS" apropos(1), man(1). man-1.6g/man/da/man.conf.man0000644000175000001440000000214310301736016015346 0ustar lucifredusers.\" @(#)man.conf .\" .\" edited and translated to danish by Bo Vagner Hoejer 1996 .\" email bo@petshop.ping.dk - bo@image.dk .\" .TH MAN.CONF 5 "30 Marts 1994" "da" "Linux filformater" .SH NAVN man.conf \- konfigurationsfil for manual kommandoen .SH BESKRIVELSE .LP Denne fil bliver lst af .BR man (1) og indeholder (a) information om hvordan sgestien for 'man' konstrueres, (b) den fulde sti til programmer som bruges af 'man' f.eks. nroff, eqn, tbl etc. og (c) en liste over udpakkeprogrammer til filer med en given endelse. En alternativ version af denne fil kan specifiseres med .LP .RS man -C privat_manual.konfiguration ... .RE .LP Programnavne kan angives med parametre. Nyttige parametre til nroff er beskrevet p .BR grotty (1) manualsiden. Eksempelvis kan standardlinien .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP erstattes med .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP med det forml at forhindre understregning og fed skrift. .SH "SE OGS" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) og compress(1), gzip(1). man-1.6g/man/da.txt0000644000175000001440000000000710301736016013710 0ustar lucifredusersdanish man-1.6g/man/fi.txt0000644000175000001440000000001010301736016013714 0ustar lucifredusersfinnish man-1.6g/man/hr.txt0000644000175000001440000000001110301736016013730 0ustar lucifreduserscroatian man-1.6g/man/hr/0000755000175000001440000000000010301736016013177 5ustar lucifredusersman-1.6g/man/hr/apropos.man0000644000175000001440000000165310301736016015364 0ustar lucifredusers.\" Man stranica za apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" Moete distribuirati pod uvjetima GNU Ope javne licence kako je .\" odreeno u datoteci README koja dolazi s distribucijom mana 1.0. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" 9. studenog 1998. preveo Matej Vela , META. .TH apropos 1 "15. sijenja 1991." .SH IME apropos \- trai niz u whatis bazi podataka .SH SAETAK .BI apropos kljuna_rije ... .SH OPIS .B apropos trai kljune rijei u skupu baza podataka koje sadre kratke opise naredbi sustava i prikazuje rezultate na standardnom izlazu. .SH "TAKOER POGLEDAJTE" .BR whatis (1), .BR man (1). man-1.6g/man/hr/man.conf.man0000644000175000001440000000210010301736016015364 0ustar lucifredusers.\" @(#)man.conf .\" .\" 9. studenog 1998. preveo Matej Vela , META. .TH MAN.CONF 5 "30. oujka 1994." .SH IME man.conf \- konfiguracijski podaci za man .SH OPIS Ovu datoteku ita .BR man (1), a sadri (a) informacije o izgradnji staze pretraivanja za man, (b) pune staze i imena raznih programa kao to je .BR nroff ", " eqn ", " tbl itd. koje man koristi, te (c) popis programa za dekomprimiranje datoteka s navedenim nastavcima. Neka druga verzija ove datoteke moe se odrediti pomou .LP .RS man -C osobni_man.conf ... .RE .LP Imenima naredbi mogu se dodati opcije. Opcije korisne za .B nroff mogu se nai u .BR grotty (1). Na primjer, umjesto predodreenog reda .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP moete napisati .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP kako biste iskljuili potcrtavanje i precrtavanje. .SH "TAKOER POGLEDAJTE" .BR col (1), .BR (g)eqn (1), .BR (g)pic (1), .BR groff (1), .BR grotty (1), .BR (g)refer (1), .BR (g)tbl (1), .BR less (1), .BR man (1), te .BR compress (1), .BR gzip (1). man-1.6g/man/hr/man.man0000644000175000001440000001656110301736016014460 0ustar lucifredusers.\" Man stranica za man (i bivi manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" Moete distribuirati pod uvjetima GNU Ope javne licence kako je .\" odreeno u datoteci README koja dolazi s distribucijom mana 1.0. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Mnoge promjene -- aeb .\" .\" 9. studenog 1998. preveo Matej Vela , META. .TH man 1 "2. rujna 1998." .SH IME man \- formatira i prikazuje raunalne man stranice .br manpath \- saznaje korisnikovu stazu pretraivanja za man stranice .SH SAETAK man [\-acdfhkKtwW] [\-m sustav] [\-p niz] [\-C konfiguracijska_datoteka] [\-M staza] [\-P preglednik] [\-S popis_dijelova] [dio] ime ... .SH OPIS .B man formatira i prikazuje raunalne man stranice. Ova verzija poznaje varijable okruja .B MANPATH i .BR (MAN)PAGER , pa moete imati svoje vlastite skupove osobnih man stranica i odabrati eljeni program za prikaz formatiranih stranica. Ako je naveden .IR dio , .B man pretrauje samo taj dio man stranica. Takoer moete preko opcija na naredbenom redu ili varijabli okruja odrediti red po kojem se pretrauju dijelovi te preprocesore kojima se obrauju izvorne datoteke. Ako .I ime sadri /, prvo ga se iskuava kao ime datoteke, pa tako moete pokrenuti ``man ./foo.5'' ili ak ``man /cd/foo/bar.1.gz''. .SH OPCIJE .TP .B \-\^C " konfiguracijska_datoteka" Koristi drugi .IR man.conf ; predodreeni je .BR @man_config_file@ . (Pogledajte .BR man.conf (5).) .TP .B \-\^M " staza" .I staza je popis direktorija u kojima se trae man stranice. Ako takva opcija nije dana, koristi varijablu okruja .BR MANPATH . Ako takve varijable okruja nema, predodreeni popis se nalazi u .BR @man_config_file@ . Neispunjen dio u .B MANPATH odgovara predodreenom popisu. .TP .B \-\^P " preglednik" Odreuje koriteni preglednik. Ova opcija ima prednost nad varijablom okruja .BR MANPAGER , koja pak ima prednost nad varijablom .BR PAGER . .B man predodreeno koristi .BR @pager@ . .TP .B \-\^S " popis_dijelova" .I popis_dijelova je popis dvotokama razdvojenih dijelova man stranica koje se pretrauje. Ova opcija ima prednost nad varijablom okruja .BR MANSECT . .TP .B \-\^a .B man predodreeno izlazi nakon prikazivanja prve naene man stranice. Ova opcija prisiljava .B man na prikaz svih man stranica ije je ime .IR ime , a ne samo prve. .TP .B \-\^c Ponovno formatira izvornu man stranicu, ak i kada postoji svjea cat stranica. Ovo ima smisla ako je cat stranica formatirana za drukiju irinu zaslona ili ako je preformatirana stranica pokvarena. .TP .B \-\^d U stvari ne prikazuje man stranice, ali zato ispisuje gomilu informacija za otklanjanje greaka. .TP .B \-\^D I prikazuje i ispisuje informacije za otklanjanje greaka. .TP .B \-\^f Isto to i .BR whatis . .TP .B \-\^h Ispisuje poruku o koritenju od jednog reda i zavrava. .TP .B \-\^k Isto to i .BR apropos . .TP .B \-\^K Navedeni niz trai u .I svim man stranicama. Upozorenje: ovo je vjerojatno vrlo sporo! Navoenje dijela ubrzava stvari. (Samo okvirno, na mom stroju ovo traje oko minutu na 500 man stranica.) .TP .B \-\^m " sustav" Pretrauje se drugi skup man stranica na osnovu danog imena sustava. .TP .B \-\^p " niz" .I niz odreuje niz preprocesora koje treba pokrenuti prije pokretanja .B nroff odnosno .BR troff . Sve instalacije nemaju potpun skup preprocesora. Neki od preprocesora i slova koja ih oznauju su: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Ova opcija ima prednost nad varijablom okruja .BR MANROFFSEQ . .TP .B \-\^t Za formatiranje man stranica koristi .BR @troff@ , aljui izlaz na standardni izlaz. Izlaz iz .B @troff@ moe prije samog tiskanja zahtijevati prolazak kroz neki filter. .TP .B \-\^w \fRili\fP \-\-path U stvari ne prikazuje man stranice, ali zato ispisuje lokacije datoteka koje bi se formatirale ili prikazale. Ako nije dan nijedan argument, prikazuje (na standardnom izlazu) popis direktorija u kojima .B man trai man stranice. Ako je .B manpath veza na .BR man , onda ``manpath'' ima isti uinak kao ``man --path''. .TP .B \-\^W Kao \-\^w, ali svako ime datoteke ispisuje u zasebnom redu, bez dodatnih informacija. Ovo je korisno u naredbama ljuske kao to je .ft CW .B "man -aW man | xargs ls -l" .ft .SH "CAT STRANICE" .B man e pokuati snimiti formatirane man stranice kako bi utedio vrijeme formatiranja slijedei put kada te man stranice budu potrebne. Tradicionalno se formatirane verzije stranica iz .I DIREKTORIJ/manX snimaju u .IR DIREKTORIJ/catX , no druga mapiranja man direktorija u cat direktorije se mogu odrediti u .BR @man_config_file@ . Kada potrebni cat direktorij ne postoji, cat stranice se ne snimaju. .PP .B man se moe suid-ati na korisnika man. Potom e, ako je vlasnik cat direktorija man, uz dozvole 0755 (pisati moe samo man), a vlasnik cat datoteka man uz dozvole 0644 ili 0444 (pisati moe samo man, odnosno nitko ne moe pisati), nijedan obini korisnik ne moe mijenjati cat stranice ili stavljati druge datoteke u cat direktorij. Ako .B man nije suid-an, cat direktorij bi trebao imati dozvole 0777 ako bi svi korisnici trebali moi tamo ostavljati cat stranice. .PP Opcija .B \-c prisiljava na ponovno formatiranje stranice, ak i ako postoji svjea cat stranica. .SH OKRUJE .TP .B MANPATH Ako je .B MANPATH postavljenja, njena se vrijednost koristi kao staza za traenje man stranica. .TP .B MANROFFSEQ Ako je .B MANROFFSEQ postavljena, njena vrijednost odreuje skup preprocesora koje treba pokrenuti prije pokretanja .B nroff odnosno .BR troff . Stranice predodreeno prolaze kroz preprocesor tablica prije nego prou kroz .BR nroff . .TP .B MANSECT Ako je .B MANSECT postavljena, njena vrijednost odreuje dijelove man stranica koje treba pretraiti. .TP .B MANWIDTH Ako je .B MANWIDTH postavljena, njena se vrijednost koristi kao irina u kojoj bi se man stranice trebale prikazivati. Inae se stranice mogu prikazati preko cijele irine vaeg zaslona. .TP .B MANPAGER Ako je .B MANPAGER postavljena, njena se vrijednost koristi kao ime programa za prikaz man stranice. Ako nije, koristi se .BR PAGER . Ako ni to nema vrijednosti, koristi se .BR @pager@ . .TP .B LANG Ako je .B LANG postavljena, njena vrijednost odreuje ime poddirektorija u kojem .B man najprije trai man stranice. Dakle, naredba `LANG=hr man 1 foo' .B man tjera na traenje man stranice foo u .../hr/man1/foo.1, a ako takvu datoteku ne moe nai, u .../man1/foo.1, gdje ... oznaava direktorij u stazi pretrage. .TP .B NLSPATH, LC_MESSAGES, LANG Varijable okruja .B NLSPATH i .B LC_MESSAGES (odnosno .B LANG kada ova druga ne postoji) igraju ulogu u nalaenju kataloga poruka. (No engleske su poruke ugraene i engleski katalog nije potreban.) Primjetite da programi koje .B man pokree, kao to je .BR col (1), takoer mogu koristiti npr. .BR LC_CTYPE . .TP .B PATH .B PATH se koristi u graenju predodreene staze traenja man stranica. .TP .B SYSTEM .B SYSTEM se koristi za odreivanje predodreenog imena drugog sustava (za koritenje uz opciju .BR \-m ). .SH "TAKOER POGLEDAJTE" .BR apropos (1), .BR whatis (1), .BR less (1), .BR groff (1). .SH GREKE Opcija .B \-t radi samo ako je instaliran .BR troff-olik program. .PP Ako umjesto crtica vidite trepui \e255 ili , u okruje dodajte `LESSCHARSET=latin1'. man-1.6g/man/hr/whatis.man0000644000175000001440000000205110301736016015171 0ustar lucifredusers.\" Man stranica za whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" Moete distribuirati pod uvjetima GNU Ope javne licence kako je .\" odreeno u datoteci README koja dolazi s distribucijom mana 1.0. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" 9. studenog 1998. preveo Matej Vela , META. .TH whatis 1 "5. sijenja 1991." .SH IME whatis \- trai potpune rijei u whatis bazi podataka .SH SAETAK .BI whatis kljuna_rije ... .SH OPIS .B whatis trai kljune rijei u skupu baza podataka koje sadre kratke opise naredbi sustava i prikazuje rezultate na standardnom izlazu. Prikazuju se samo rijei koje potpuno odgovaraju zadanima. .PP .B whatis baza podataka se stvara naredbom @makewhatis@. .SH "TAKOER POGLEDAJTE" .BR apropos (1), .BR man (1). man-1.6g/man/ja.txt0000644000175000001440000000001110301736016013711 0ustar lucifredusersjapanese man-1.6g/man/ja/0000755000175000001440000000000010301736016013160 5ustar lucifredusersman-1.6g/man/ja/man.man0000644000175000001440000001646510301736016014444 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .\" Japanese Version Copyright (c) 1996 Tanoshima Hidetohsi .\" all rights reserved. .\" Dec 31, 1996 Tanoshima Hidetoshi .\" .\" Modified Thu Jan 29 01:52:36 JST 1998 .\" by HANATAKA Shinya .\" .TH man 1 "September 12, 1995" .LO 1 .SH ̾ man \- 饤ޥ˥奢ڡɽ롣 .br manpath \- 桼ġΥޥ˥奢ڡθѥ롣 .SH man [\-adfhktwW] [\-m system] [\-p string] [\-C config_file] [\-M path] [\-P pager] [\-S section_list] [section] name ... .SH .B man ϥ饤󡦥ޥ˥奢롦ڡɽ롣ΥС man ޥɤǤϴĶѿ MANPATH (MAN)PAGER Ǥ롣 ˤꡢĿŪʥޥ˥奢ڡꤷꡢڡ ɽץ򹥤٤롣 .I section ꤹȡ .B man ϥޥ˥奢ΤΥΤõޤޥɥ饤󡦥ץ Ķѿǡ줾Υ򸡺䡢ե ФƤɤʥץץåѤ뤫ꤷꤹ뤳ȤǤ롣 .I name / ޤޤƤȤ man ޥɤϤޤե̾Ȥư ä .B "man ./foo.5" ޤ .B "man /cd/foo/bar.1.gz\fR\fP" ȤǤ롣 .SH ץ .TP .B \-\^C " config_file" Ѥ man.conf եꤹ롣ǥեȤ .BR @man_config_file@ (ȡ man.conf(5)) .TP .B \-\^M " path" ޥ˥奢롦ڡõǥ쥯ȥΥꥹȤꤹ롣 Υץꤷʤ硢Ķѿ .B MANPATH ȤδĶѿꤷʤȡ .BR @man_config_file@ ˻ꤵ줿ǥեȤΥꥹȤȤ MANPATH ζʸϥǥեȤΥꥹȤ̣롣 .TP .B \-\^P " pager" Ѥڡ㡼ꤹ롣ǥեȤǤ man .BR @pager@ ȤΥץϴĶѿ .B MANPAGER ͥ褹롣δĶѿ .B PAGER ͥ褹롣ǥեȤǤ .B man .BR @pager@ Ѥ롣 .TP .B \-\^S " section_list" ʬ줿ꥹȤǡޥ˥奢õ ꤹ롣ΥץϴĶѿ .B MANSECT ͥ褵롣 .TP .B \-\^a ǥեȤǤϡman ϸĤäǽΥޥ˥奢ڡɽ Ƚλ롣ΥץȤȡman ϺǽˤߤĤä ΤǤʤ .B name ˥ޥå٤ƤΥڡɽ롣 .TP .B \-\^c ǿ cat ΥڡäƤޥ˥奢ڡΥ ʤΥץ cat ڡüȰä ƤȤƤʤɤͭѤǤ롣 .TP .B \-\^d ޥ˥奢롦ڡɽ̤ΥǥХåϤ롣 .TP .B \-\^D ǥХåȥޥ˥奢롦ڡξɽ롣 .TP .B \-\^f .B whatis ޥɤƱ .TP .B \-\^h 1ԥإסåɽƽλ롣 .TP .B \-\^k .B apropos ޥɤƱ .B \-\^K ƤΡץޥ˥奢롦ڡꤷʸõٹ: ٤Τ ꤷɤ(ΥޥǤϡ ܰ¤Ȥơ500 ڡ򸡺Τ 1ʬ֤롣) .TP .B \-\^m " system" ̤ΥƥΥޥ˥奢롦ڡ򸡺褦˻ꤹ롣 .TP .B \-\^p " string" .B nroff .B troff Τޤ˼¹Ԥץץåν֤ꤹ롣 󥹥ȡξ֤ˤäƤϥե륻åȤ ץץåѰդƤʤ⤷ʤ ΥץץåȤؤʸϼΤȤꡧ eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r) ΥץϴĶѿ .B MANROFFSEQ ͥ褵롣 .TP .B \-\^t ޥ˥奢롦ڡ .B @troff@ Ȥ .B stdout ˽Ϥ롣 .B @troff@ νϤϰޤˤʤ餫Υե륿ʤɤ̤ɬ 뤫⤷ʤ .TP .B \-\^w \fRor\fP \-\-path ޥ˥奢ڡɽǤ˥եޥåȤޤɽ˻Ѥ եΰ֤ɽ롣Ϳʤ .B man ޥ˥奢ڡ򸡺ǥ쥯ȥΥꥹȤ(ɸϤ)ɽ롣 .B manpath man ˥󥯤ƤȤ "manpath" "man --path" Ʊˤʤ롣 .TP .B \-\^W \-\^w ˻Ƥ뤬ե̾ɲþʤˣԣĤɽ롣 ϥ .ft CW ,B "man -aW man | xargs ls -l" .ft ʤɤȻȤΤǤ롣 .SH "CAT ڡ" man ޥɤϤǤ줿ޥ˥奢ڡ򡢼ˤ ڡɬפˤʤäȤ֤Τˡ¸褦 Ȥ롣ŪˡDIR/manX Ѥߥޥ˥奢 DIR/catX ֤뤬man ǥ쥯ȥ꤫ cat ǥ쥯ȥؤ ¾Υޥåԥˡ .BR @man_config_file@ ˻Ǥ롣 cat ǥ쥯ȥ꤬ѰդƤʤä硢cat ڡϥ֤ʤ .PP man ޥɤ桼 man suid 뤳ȤǤ롣Τ cat ǥ쥯ȥΥʡ man ĥ⡼ɤ 0755 (桼 man 񤭹߲)ǡcat եΥʡ man ĥ⡼ɤ 0644 ޤ 0444 (桼 man 񤭹߲ġޤϥ桼٤Ƥ񤭹Բ) ΤȤ̤Υ桼 cat ڡѹ¾Υե cat ǥ ȥ֤ꤹ뤳ȤǤʤʤ롣 man ޥɤ suid ƤʤС ٤ƤΥ桼 cat ڡ cat ǥ쥯ȥ֤褦ˡ cat ǥ쥯ȥΥ⡼ɤ 0777 ˤɬפ롣 .PP cat ڡäȤƤ⡢ץ .B \-c ĤȶŪ˥ޥ˥奢ڡ롣 .SH Ķѿ .TP .B MANPATH .B MANPATH ꤹȡޥ˥奢롦ڡõȤΥѥȤ .TP .B MANROFFSEQ .B MANROFFSEQ ꤹȡnroff troff ˼¹Ԥץץå ꤹΤˤͤȤǥեȤǤϥޥ˥奢ڡ .B nroff Τޤ˥ơ֥ѤΥץץå̤롣 .TP .B MANSECT .B MANSECT ꤹȡͤ򸵤ˤɤΥޥ˥奢롦õ롣 .TP .B MANWIDTH .B MANWIDTH ꤹȡͤɽޥ˥奢롦ڡȤƻѤ롣 ꤷʤäˤϲ̤դޤǻѤ롣 .TP .B MANPAGER .B MANPAGER ꤹȡޥ˥奢롦ڡɽץȤƻѤ롣 ꤷʤäˤϡ .B PAGER Ѥ롣ɤꤵƤʤˤ .B @pager@ Ȥ롣 .TP .B LANG .B LANG ꤹȡman ޥɤ̾Υ֥ǥ쥯ȥ꤫ǽ ޥ˥奢롦ڡõ椨'LANG=dk man 1 foo' ȥޥɥ饤󤫤ǤĤȡman ޥɤϤޤ .../dk/man1/foo.1 õ Ĥʤ .../man1/foo.1 õ ... ϥѥ Υǥ쥯ȥǤ롣 .TP .B "NLSPATH, LC_MESSAGES, LANG" Ķѿ .B NLSPATH .B LC_MESSAGES (ޤԤʤȤ .B LANG )ϥåΰ֤ꤹ롣 (ѸΥåϥѥȤ߹ޤƤΤǡѸξ ɬפʤ) man ˸ƤӽФ col(1) Τ褦 moץ Ȥ LC_CTYPE ȤȤդ뤳ȡ .TP .B PATH .B PATH ϥޥ˥奢롦ڡΥǥեȤθѥιۤ˻Ȥ롣 .TP .B SYSTEM .B SYSTEM ϥǥեȤΥƥ̾Τ˻Ȥ롣 ( .B \-m ץȤȤ˻Ȥ) .SH Ϣ apropos(1), whatis(1), less(1), groff(1). .SH Х .B \-t ץ troff 饤ʥץब󥹥ȡ뤵Ƥ ΤͭǤ롣 .br ⤷ϥեΤˡǤ \e255 ɽ줿ˤ Ķѿ 'LESSCHARSET=latin1' ꤹɤ (: ܸѤˤ 'JLESSCHARSET=ja_JP.ujis' ޤ 'LESSCHARSET=ja_JP.ujis' Ѥ뤿ˡˡǤбǤʤgroff Υץ \-Tnippon ޤ \-Tascii Ѥ뤳ȡ) man-1.6g/man/ja/whatis.man0000644000175000001440000000172110301736016015155 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya .\" all rights reserved. .\" Translated Thu Jan 29 01:52:06 JST 1998 .\" by HANATAKA Shinya .\" .TH whatis 1 "Jan 5, 1991" .LO 1 .SH ̾ whatis \- whatis ǡ١鴰ñ򸡺 .SH .BI whatis keyword ... .SH whatis ϥƥΥޥɤ˴ؤȥɤޤǡ ١ν򸡺̤ɸϤɽ롣˥ޥåñ Τߤɽ롣 whatis ǡ١ /usr/sbin/makewhatis ޥɤѤƺ롣 .SH Ϣ apropos(1), man(1). man-1.6g/man/ja/man.conf.man0000644000175000001440000000217610301736016015362 0ustar lucifredusers.\" @(#)man.conf .\" .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya .\" all rights reserved. .\" Translated Thu Jan 29 01:49:33 JST 1998 .\" by HANATAKA Shinya .\" .TH MAN.CONF 5 "30 Mar 1994" .SH ̾ man.conf \- man ޥɤΤե .SH .LP Υե .BR man (1) ޥɤɤ߹ޤ졢(a) man ΤḡѥɤΤäƹۤ뤫ξ (b) nroff, eqn, tbl ʤɤΤ褦 man ˤäƻѤ뤤Ĥ ץδʥѥ̾(c) եγĥҤȤŸˡʤɤ ޤǤ롣Υե̤ΥСʲΤ褦 ꤹ뤳ȤǤ롣 .LP .RS man -C private_man.conf ... .RE .LP ޥ̾ˤϥץդ뤳ȤǤ롣 nroff ˴ؤƤʥץ grotty(1) ˸Ĥ뤳ȤǤ롣 㤨СǥեȤ .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP Τ .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP Ƚ񤭹ळȤǤŤǤ뤳ȤǤ롣 .SH Ϣ col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1), compress(1), gzip(1). man-1.6g/man/ja/apropos.man0000644000175000001440000000167310301736016015347 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Japanese Version Copyright (c) 1996 Tanoshima Hidetohsi .\" all rights reserved. .\" Dec 31, 1996 Tanoshima Hidetoshi .\" .\" Modified Thu Jan 29 01:53:11 JST 1998 .\" by HANATAKA Shinya .\" .TH apropos 1 "Jan 15, 1991" .LO 1 .SH ̾ apropos \- whatis ǡ١ʸ򸡺롣 .SH .BI apropos keyword ... .SH apropos ޥɤϡƥࡦޥɤδñʲ⤬ ǡ١ե뤫饭ɤ򸡺 η̤ɸϤɽ롣 .SH "Ϣ" whatis(1), man(1). man-1.6g/man/bg/0000755000175000001440000000000010361330262013155 5ustar lucifredusersman-1.6g/man/bg/README0000644000175000001440000000034410361330530014034 0ustar lucifredusersThese pages are a one-time contribution by Dimitar Zhekov. E-mail: They were updated by Alexander Shopov. E-mail: You can reach the Bulgarain translation team at: http://fsa-bg.org/project/gtp man-1.6g/man/bg/apropos.man0000644000175000001440000000205410361330530015334 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Translated by Dimitar Zhekov , 2002. .\" Translated by Alexander Shopov , 2005. .TH apropos 1 "15 1991" .LO 1 .SH apropos \- whatis .SH .BI apropos _ ... .SH apropos , , . .SH "/" .BR man John W. Eaton. Federico Lucifredi . .SH , .SH " " .BR whatis(1), .BR man(1). man-1.6g/man/bg/man.conf.man0000644000175000001440000000243710361330530015355 0ustar lucifredusers.\" @(#)man.conf .TH MAN.CONF 5 "21 2005" .SH man.conf \- man .SH .LP .BR man (1) : () ; () nroff, eqn, tbl .., man; () . : .LP .RS man -C private_man.conf ... .RE .LP . grotty(1) nroff. , : .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP : .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP . .SH .I "@man_config_file@" .SH "/" .BR man John W. Eaton. Federico Lucifredi . .SH , .SH " " .BR col (1), .BR (g)eqn (1), .BR (g)pic (1), .BR groff (1), .BR grotty (1), .BR (g)refer (1), .BR (g)tbl (1), .BR less (1), .BR man (1), .BR compress (1), .BR gzip (1). man-1.6g/man/bg/man.man0000644000175000001440000003123610361330530014430 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" More changes - flc .\" .\" Translated by Dimitar Zhekov , 2002. .\" Translated by Alexander Shopov , 2005. .TH man 1 "21 2005" .LO 1 .SH man \- .SH .B man .RB [ \-acdfFhkKtwW ] .RB [ --path ] .RB [ \-m .IR ] .RB [ \-p .IR ] .RB [ \-C .IR _ ] .RB [ \-M .IR ] .RB [ \-P .IR ] .RB [ \-B .IR ] .RB [ \-H .IR __HTML ] .RB [ \-S .IR __ ] .RI [ ] .I " ..." .SH .B man . .IR , .B man . .I , .. , . .I .RB ( / ), .B man , , .B "man ./foo.5" .B "man /cd/foo/bar.1.gz\fR.\fP" .PP - .B man . .SH .TP .B \-\^C " _" . .BR @man_config_file@ . ( .BR man.conf (5)). .TP .B \-\^M " __" , , . .BR \-M . .BR " " . .TP .B \-\^P " " , . - .BR MANPAGER , - .BR PAGER . .B man .BR "@pager@" . .TP .B \-\^B , HTML. - .BR BROWSER . .B man .BR @browser@ , .TP .B \-\^H HTML. - .BR HTMLPAGER . .B man .BR @htmlpager@ , .TP .B \-\^S " __" , , . - .BR MANSECT . .TP .B \-\^a . .B man . .B man . .TP .B \-\^c , , . , . .TP .B \-\^d , .BR man . .TP .B \-\^D , . .TP .B \-\^f .BR whatis . .TP .BR \-\^F " " \-\-preformat , . .TP .B \-\^h . .TP .B \-\^k .BR apropos . .TP .B \-\^K ** . : \- , . ( \- 500 ). .TP .B \-\^m " " , . .TP .B \-\^p " " , .B nroff .BR troff . . , : eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). - .BR MANROFFSEQ . .TP .B \-\^t .B @troff@ \- .B stdout. . .TP .B \-\^w \fR\fP \-\-path , , . , ( ) , .B man . .B manpath man, "manpath" "man --path". .TP .B \-\^W \-\^w, . .ft CW .BR "man -aW man | xargs ls -l" . .ft .SH " " , man . ("cat") /manX /catX, .BR @man_config_file@ . , , 80 man.conf NOCACHE. .PP .B man (suid) man. , man 0755 ( man), man 0644 0444 ( man ), . .B man (suid) man cat , 0777. .PP .B \-c , , . .SH " HTML" Man HTML, html . ".html". \- .BR ls (1) HTML .IR /usr/share/man/htmlman1/ls.1.html . .SH " " .B man , , , .B @man_config_file@ . .PP , .I .B man .RB ( / ), .B man . .PP , .I , .B man , .IR . .PP .BI "-M " , .I , .B man . .PP .BR -M , .BR MANPATH , , .B man . .PP .B -M .BR MANPATH , .B man , .BR @man_config_file@ . .B MANPATH , . .PP .B MANPATH_MAP , .. .BR PATH . , , .B MANPATH_MAP , . .B man .B PATH . , .BR MANPATH_MAP , .BR "man xyz" , , , .BR xyz . .PP , (" "), .I .B MANPATH_MAP , .B man , \- . .PP .B NOAUTOPATH .BR @man_config_file@ . .PP , \-, .B man .IB . \fR, \- . , .B man , , .BI man N .BI cat N\fR, .I N . .BI cat N, .B man , , . .B man , . , .B man , .BR .gz , .B man , . .PP ( ) .B man , .BR "--path " ( -w ). .SH .TP .B MANPATH . \- , \- .BR -M . .BR " " . .TP .B MANPL . , () . .TP .B MANROFFSEQ , .B nroff .BR troff . , .B nroff tbl. .TP .B MANSECT , . .TP .B MANWIDTH . . .TP .B MANPAGER , . , .BR PAGER . , .BR @pager@ . .TP .B BROWSER HTML. , @browser@. .TP .B HTMLPAGER HTML. @htmlpager@. .TP .B LANG , man - . LANG=bg man 1 foo man foo .../bg/man1/foo.1, , .../man1/foo.1 (... ). .TP .B "NLSPATH, LC_MESSAGES, LANG" .B NLSPATH .B LC_MESSAGES ( .BR LANG , LC_MESSAGES ) man ( man ). : , man, .BR col(1) , LC_CTYPE. .TP .B PATH . .BR " " . .TP .B SYSTEM .BR \-m . .SH .B \-t , troff . .br () \e255 , LESSCHARSET=latin1. .SH (global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word)))) .IR .emacs , F1 , . .LP , , : # man foo | col -b > foo.mantxt .SH "/" .BR man John W. Eaton. Federico Lucifredi . .SH , .SH " " .BR apropos (1), .BR whatis(1), .BR less(1), .BR groff(1), .BR man.conf(5). man-1.6g/man/bg/whatis.man0000644000175000001440000000223210361330530015146 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Translated by Dimitar Zhekov , 2002. .\" Translated by Alexander Shopov , 2005. .TH whatis 1 "5 1991" .LO 1 .SH whatis \- whatis .SH .BI whatis _ ... .SH E whatis , , . . whatis @makewhatis@. .SH "/" .BR man John W. Eaton. Federico Lucifredi . .SH , .SH " " .BR apropos (1), .BR man (1). man-1.6g/man/bg/makewhatis.man0000644000175000001440000000632510361330262016015 0ustar lucifredusers.\" Copyright (c) 1999 Ottavio G. Rizzo .\" .\" This is free documentation; 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 .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual 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 this manual; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, .\" USA. .\" .\" Translated by Alexander Shopov , 2005. .TH MAKEWHATIS 8 "21 2005" .SH makewhatis \- whatis .SH .BI "makewhatis [-u] [-v] [-w] [-s " " ] [-c [" ___ "]] [" __ "]" .SH .B makewhatis .IR " " " " " " .IR " " " " " ", .I . whatis . . . .LP , .B makewhatis , , , , . .LP .IR " ", .I /usr/man . .SH .TP .B -u . .TP .B -v . .TP .B -w `man --path` .TP .BI -s " " .I .IR " " " " . , .I \'1 2 3 4 5 6 7 8 9 n l\' .TP .BI -c " ___" .I . , .IR /usr/man/preformat " " /usr/man . .SH .PP .IR /usr/X11R6/man/whatis " " /usr/local/man/whatis .IP makewhatis /usr/X11R6/man /usr/local/man .PP , , : .IP LANGUAGE=bg:ru:en makewhatis -w .SH .B makewhatis , troff, . Tcl/Tk. .PP .B makewhatis . .SH "/" .BR man John W. Eaton. Federico Lucifredi . .SH .SH " " .BR apropos (1), .BR man (1), .BR whatis (1) man-1.6g/man/ro/0000755000175000001440000000000010301736016013206 5ustar lucifredusersman-1.6g/man/ro/apropos.man0000644000175000001440000000155110301736016015370 0ustar lucifredusers.\" .\" Generated automatically from apropos.1.in by the .\" configure script. .\" .\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Traducere de Ovidiu Constantin .TH apropos 1 "15 Ian 1991" .LO 1 .SH NUME apropos \- caut iruri de caractere n baza de date whatis .SH SUMAR .BI apropos cuvnt_cheie ... .SH DESCRIERE apropos caut cuvinte cheie ntr-un set de baze de date coninnd scurte descrieri ale comenzilor sistem i afieaz rezultatul la ieirea standard (stdout). .SH "VEZI I" whatis(1), man(1). man-1.6g/man/ro/man.conf.man0000644000175000001440000000200510301736016015377 0ustar lucifredusers.\" @(#)man.conf .\" Traducere de Ovidiu Constantin .TH MAN.CONF 5 "30 Mar 1994" .SH NUME man.conf \- date de configurare pentru man .SH DESCRIERE .LP Acest fiier este citit de .BR man (1) i conine (a) informaii despre cum se construiete calea de cutare pentru man, (b) ci complete pentru diferite programe ca nroff, eqn, tbl etc. folosite de man, i (c) o list cu decomprimatoare pentru fiierele cu o anumit extensie. O versiune alternativ a acestui fiier poate fi specificat cu .LP .RS man -C man_privat.conf ... .RE .LP Numele de comenzi pot fi completate cu opiuni. Opiuni folositoare pentru nroff pot fi gsite n grotty(1). De exemplu, n loc de linia implicit .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP se poate scrie .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP pentru a elimina sublinierea i tierea. .SH "VEZI I" col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) i compress(1), gzip(1). man-1.6g/man/ro/man.man0000644000175000001440000002664510301736016014473 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .\" Traducere de Ovidiu Constantin .TH man 1 "2 Septembrie 1995" .LO 1 .SH NUME man \- formateaz i afieaz paginile de manual .br manpath \- determin calea de cutare a utilizatorului pentru paginile de manual .SH SUMAR .B man .RB [ \-acdfFhkKtwW ] .RB [ --path ] .RB [ \-m .IR sistem ] .RB [ \-p .IR ir ] .RB [ \-C .IR fiier_configurare ] .RB [ \-M .IR list_ci ] .RB [ \-P .IR paginator ] .RB [ \-S .IR list_seciuni ] .RI [ seciune ] .I "nume ..." .SH DESCRIERE .B man formateaz i afieaz paginile de manual. Dac specificai .IR seciune , .B man caut doar n acea seciune a manualului. .I nume este n mod normal numele paginii de manual, care este de obicei numele unei comenzi, funcii, sau fiier. Totui, dac .I nume conine un slash .RB ( / ) atunci .B man l interpreteaz ca o specificare de fiier, astfel nct putei executa .B "man ./foo.5" sau chiar .B "man /cd/foo/bar.1.gz\fR.\fP" .PP Vedei mai jos pentru o descriere a locurilor unde caut .B man fiierele cu paginile de manual. .SH OPIUNI .TP .B \-\^C " fiiier_configurare" Specific fiierul de configurare care se va folosi; inplicit este .BR @man_config_file@ . (Vezi .BR man.conf (5).) .TP .B \-\^M " cale" Specific lista de directoare unde se caut paginile man. Separai directoarele cu dou puncte (:). O list goal este echivalent cu a nu specifica .B \-M de loc. Vezi i .BR "CALEA DE CUTARE A PAGINILOR MAN" . .TP .B \-\^P " paginator" Specific ce paginator de va folosi. Aceast opiune ignor variabila de mediu .B MANPAGER , care n schimb ignor variabila .BR PAGER . Implicit, .B man folosete .BR @pager@ . .TP .B \-\^S " list_seciuni" Lista este un ir de seciuni de manual care vor fi cutate, desprite prin dou puncte (:). Aceast opiune ignor variabila de mediu .BR MANSECT . .TP .B \-\^a Implicit, executia .B man se va termina dup afiarea primei pagini de manual pe care o gsete. Folosirea acestei opiuni foreaz .B man s afieze toate paginila de manual care verific .B nume, nu doar prima. .TP .B \-\^c Reformateaz pagina man surs, chiar dac exist o pagin cat actualizat. Acest lucru poate fi important dac pagina cat a fost formatat pentru un ecran cu un numr diferit de coloane, sau dac pagina preformatat este alterat. .TP .B \-\^d Nu afieaz efectiv paginile man, ci tiprete multe informaii de depanare. .TP .B \-\^D Afieaz att paginile man, ct i informaii de depanare. .TP .B \-\^f Echivalent cu .BR whatis . .TP .BR \-\^F " sau " \-\-preformat Doar formateaz - nu afieaz. .TP .B \-\^h Tiprete un mesaj de ajutor i termin execuia. .TP .B \-\^k Echivalent cu .BR apropos . .TP .B \-\^K Caut irul de caractere specificat n *toate* paginile man. Avertisment: aceasta este probabil o operaie foarte lent! Ajut specificarea unei seciuni. (Pentru a da o idee general, pe maina mea aceasta dureaz aproape un minut pentru 500 pagini man.) .TP .B \-\^m " sistem" Specific un set alternativ de pagini man de cutat, bazat pe numele de sistem dat. .TP .B \-\^p " ir" Specific secvena de preprocesoare ce vor fi rulate nainte de .B nroff sau .BR troff . Nu toate instalrile vor avea un set complet de preprocesoare. Unele din preprocesoare i literele folosite pentru a le desemna sunt: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Aceast opiune duce la ignorarea variabilei de mediu .BR MANROFFSEQ . .TP .B \-\^t Folosete .B @troff@ pentru a formata pegina man, trimind rezultatul la ieirea standard .BR (stdout) . Rezultatul comenzii .B @troff@ ar putea necesita s fie trecut printr-un filtru nante de a fi tiprit. .TP .B \-\^w \fRsau\fP \-\-path Nu afieaz efectiv paginile man, ci tiprete locaia(ile) fiierelor care ar fi formatate sau afiate. Dac nici un argument nu este dat: afieaz (la ieirea standard (stdout)) lista directoarelor n care sunt cutate de .B man paginile man. Dac .B manpath este o legtur la man, atunci "manpath" este echivalent cu "man --path". .TP .B \-\^W Ca \-\^w, dar afieaz numele de fiiere unul pe linie, fr informaii adiionale. Aceast opiune este util n comenzi shell ca .ft CW .B "man -aW man | xargs ls -l" .ft .SH "PAGINILE CAT" Man va ncerca s salveze paginile man formatate, pentru a reduce timpul de formatare data viitoare cnd aceste pagini sunt necesare. Tradiional, versiunile formatate ale paginilor din DIR/manX sunt salvate n DIR/catX, dar alte mapri de la directorul man la directorul cat pot fi specificate n .BR @man_config_file@ . Nici o pagin cat nu este salvat dac directorul cat necesar nu exist. .PP Este posibil s facei .B man suid la un utilizator man. Atunci, dac un director cat are proprietar man i modul 0755 (scriere doar de ctre man), i fiierele cat au proprietarul man i modul 0644 sau 0444 (scriere doar de ctre man, sau nici o permisiune de scriere), nici un utilizator normal nu poate modifica paginile cat sau s pun alte fiiere n directorul cat. Dac .B man nu este fcut suid, atunci un director cat ar trebui s aib modul 0777 dac toi utilizatorii trebuie s poat lsa pagini cat acolo. .PP Opiunea .B \-c foreaz reformatarea unei pagini, chiar dac exist o pagin cat recent. .SH "CALEA DE CUTARE A PAGINILOR MAN" .B man folosete o metod sofisticat pentru a gsi paginile de manual, bazat pe opiuni de apelare i variabile de mediu, fiierul de configurare .B @man_config_file@ i anumite convenii i euristici. .PP nainte de toate, cnd argumentul .I nume al .B man conine un slash .RB ( / ), .B man consider c este un specificator de fiier i nu se efectueaz nici o cutare. .PP Dar n cazul normal n care .I nume nu conine un slash, .B man caut n o mulime de directoare un fiier care a putea fi o pagin de manual pentru subiectul numit. .PP Dac specificai opiunea .BI "-M " list_ci\fR, .I list_ci este o list de directoare desprite prin dou puncte (:) n care caut .BR man . .PP Dac nu specificai .B -M dar setai variabila de mediu .BR MANPATH , valoarea acestei variabile este lista de directoare n care caut .BR man . .PP Dac nu specificai explicit o list de ci cu .B -M sau .BR MANPATH , .B man i creeaz propria list de ci bazat pe coninutul fiierului de configurare .BR @man_config_file@ . Declaraiile .B MANPATH din fiierul de configurare definesc anumite directoare care s fie incluse n calea de cutare. .PP Mai mult, declaraiile .B MANPATH_MAP se adaug la calea de cutare depinznd de calea de cutare a comenzilor (de ex. variabila de mediu .BR PATH ). Pentru fiecare director care este n calea de cutare a comenzilor, o declaraie .B MANPATH_MAP specific un director care trebuie c fie adugat la calea de cutare a fiierelor cu paginile de manual. .B man analizeaz variabila .B PATH i adaug directoarele corespunztoare la calea de cutare a fiierelor cu paginile de manual. Astfel, prin folosirea corect a .BR MANPATH_MAP , cnd executai comanda .BR "man xyz" , obinei o pagin de manual pentru programul care ar rula dac ai executa comanda .BR xyz . .PP n plus, pentru fiecare director n calea de cutare a comenzilor (o vom denumi "director de comenzi") pentru care .I nu avei o declaraie .BR MANPATH_MAP , .B man caut n mod automat un director cu pagini de manual "nvecinat", respectiv ca un subdirector al directorului de comenzi sau n directorul printe al directorului de comenzi. .PP Putei dezactiva cutarea "nvecinat" automat incluznd o declaraie .B NOAUTOPATH n .BR @man_config_file@ . .PP n fiecare director din calea de cutare descris mai sus, .B man caut un fiier numit .IB topic . section\fR, cu un sufix opional la numrul seciunii i posibil un sufix de compresie. Dac nu gsete un astfel de fiier, caut n orice subdirectoare numite .BI man N sau .BI cat N unde .I N este numrul seciunii de manual. Dac fiierul este ntr-ul subdirector .BI cat N\fR, .B man consider c este o pagin de manual formatat (pagin cat). Altfel, .B man consider c este neformatat. n oricare caz, dac numele fiierului are un sufix cunoscut de compresie (ca .BR .gz ), .B man consider c este comprimat cu gzip. .PP Dac doriie s vedei unde (sau dac) .B man ar gsi pagina de manual pentru un anumit subiect, folosii opiunea .BR "--path " ( -w ). .SH "VARIABILE DE MEDIU" .TP .B MANPATH Dac .B MANPATH este setat, .B man o folosete drept cale de cutare a fiierelor cu paginile de manual. Ignor fiierul de configurare i calea de cutare automat, dar este ignorat de opiunea de apelare .BR -M . Vezi i .BR "CALEA DE CUTARE A PAGINILOR MAN" . .TP .B MANPL Dac .B MANPL este setat, valoarea ei este folosit ca lungimea paginii afiate. Altfel, ntreaga pagin man va ocupa o singur pagin (lung). .TP .B MANROFFSEQ Dac .B MANROFFSEQ este setat, valoarea ei este folosit pentru determinarea setului de preprocesoare rulate nainte de a rula .B nroff sau .BR troff . Implicit, paginile sunt trecute prin preprocesorul tbl nainte de .BR nroff . .TP .B MANSECT Dac .B MANSECT este setat, valoare ei este folosit pentru a determina n ce seciune de manual s se caute. .TP .B MANWIDTH Dac .B MANWIDTH este setat, valoare ei este folosit ca limea pe care paginile de manual ar trebui s fie afiate. Altfel paginile ar putea fi afiate peste limea ecranului. .TP .B MANPAGER Dac .B MANPAGER este setat, valoarea ei este folosit ca numele programului ce va fi folosit pentru a afia pagina man. Dac nu, atunci .B PAGER este folosit. Dac nici aceasta nu are o valoare, .B @pager@ este folosit. .TP .B LANG Dac .B LANG este setat, valoarea ei definete numele subdirectorului unde man caut prima dat paginile man. Astfel, comanda `LANG=dk man 1 foo' va determina man s caute pagina man foo n .../dk/man1/foo.1 i dac nu poate gsi un astfel de fiier, n .../man1/foo.1, unde ... este un director n calea de cutare. .TP .B "NLSPATH, LC_MESSAGES, LANG" Variabilele de mediu .B NLSPATH i .B LC_MESSAGES (sau .B LANG cnd ultima nu exist) joac un rol n localizarea catalogului de mesaje. (Dar mesajele n englez sunt incluse la compilare i pentru englez nu este necesar nici un catalog.) Notai c programe apelate de man ca .BR col(1) folosesc i ele de ex. LC_CTYPE. .TP .B PATH .B PATH ajut la determinarea cii de cutare a fiierelor cu paginile de manual. Vezi i .BR "CALEA DE CUTARE A PAGINILOR MAN" . .TP .B SYSTEM .B SYSTEM este folosit pentru a obine numele implicit al sistemului alternativ (pentru a fi utilizat cu opiunea .BR \-m ). .SH "VEZI I" apropos(1), whatis(1), less(1), groff(1), man.conf(5). .SH ERORI Opiunea .B \-t funcioneaz doar dac un program gen troff este instalat. .br Dac vedei \e255 sau clipind n loc de liniue, setai `LESSCHARSET=latin1' n mediu. .SH SFATURI Dac adugai linia (global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word)))) n fiierul dumneavoastr .IR .emacs\fR, apsnd F1 vei obine pagina man pentru apelul de librrie la poziia curent a cursorului. .LP Pentru a obine o versiune doar text a paginii man, fr backspace i liniue de subliniere (underscore), ncercai # man foo | col -b > foo.mantxt man-1.6g/man/ro/whatis.man0000644000175000001440000000171110301736016015202 0ustar lucifredusers.\" .\" Generated automatically from whatis.1.in by the .\" configure script. .\" .\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Traducere de Ovidiu Constantin .TH whatis 1 "5 Ian 1991" .LO 1 .SH NUME whatis \- caut cuvinte complete n baza de date whatis. .SH SUMAR .BI whatis cuvnt_cheie ... .SH DESCRIERE whatis caut ntr-un set de baze de date coninnd scurte descrieri ale comenzilor sistem cuvinte cheie i afieaz rezultatul la ieirea standard (stdout). Doar rezultatele complete sunt afiate. Baza de date whatis este creat folosind comanda @makewhatis@. .SH "VEZI I" apropos(1), man(1). man-1.6g/man/ro/makewhatis.man0000644000175000001440000000572210301736016016046 0ustar lucifredusers.\" Copyright (c) 1999 Ottavio G. Rizzo .\" .\" This is free documentation; 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 .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual 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 this manual; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, .\" USA. .\" .\" Traducere de Ovidiu Constantin .TH MAKEWHATIS 8 "22 Ianuarie 1999" .SH NUME makewhatis \- Creaz baza de date whatis .SH SUMAR .BI "makewhatis [-u] [-v] [-w] [-s " seciuni " ] [-c [" cale_cat "]] [" cale_man "]" .SH DESCRIERE .B makewhatis citete toate paginile de manual coninute n .IR seciunile " date n " cale_man sau paginile preformatate coninute n .IR seciunile " din " cale_cat . Pentru fiecare pagin, scrie o linie n baza de date whatis; fiecare linie const n numele paginii i o scurt descriere, separate de o liniut. Descrierea este extras folosind coninutul seciunii NUME din pagina de manual. .LP Din moment ce alte limbi folosesc un termen diferit pentru seciunea NUME, .B makewhatis recunoate termenii echivaleni n ceh, italian, finlandez, francez, german i spaniol. .LP Dac nici un argument .I cale_man nu este furnizat, .I /usr/man este considerat implicit. .SH OPIUNI .TP .B -u Actualizeaz baza de date cu pagini noi. .TP .B -v Operaii explicite .TP .B -w Folosete cale_man obinut din `man --path` .TP .BI -s " seciuni" Caut n .I seciuni ale .IR cale_man " sau " cale_cat . Dac opiunea este absent, valoarea sa este considerat a fi .I \'1 2 3 4 5 6 7 8 9 n l\' .TP .BI -c " cale_cat" Paginile preformatate de manual aflate n .I cale_cat sunt scanate. Dac argumentul nu este furnizat, este considerat a fi primul director existent ntre .IR /usr/man/preformat " i " /usr/man . .SH EXEMPLE .PP Pentru a recrea doar .IR /usr/X11R6/man/whatis " i " /usr/local/man/whatis .IP makewhatis /usr/X11R6/man /usr/local/man .PP Pentru a recrea toate bazele de date, inclusiv cele cu traducerile finlandeze, franceze i italiene .IP LANGUAGE=fi:fr:it makewhatis -w .SH ERORI .B makewhatis ar putea s nu manipuleze prea bine paginile de manual scrise cu macrouri troff nestandard, cum ar fi paginile Tcl/Tk. .PP .B makewhatis nu funcioneaza pentru traducerile preformatate. .SH VEZI I .BR apropos (1), .BR man (1), .BR whatis (1) man-1.6g/man/ro/man2html.man0000644000175000001440000001070210301736016015425 0ustar lucifredusers'\" t .\" Man page for man2html .\" aeb, 980101 .\" .\" Traducere de Ovidiu Constantin .TH man2html 1 "1 Ianuarie 1998" .LO 1 .SH NUME man2html \- formateaz o pagin de manual n html .SH SUMAR man2html [opuni] [fiier] .SH DESCRIERE .B man2html convertete o pagin de manual aa cum se gsete n .I fiier (sau intrarea standard (stdin), n caz c argumentul fiier lipsete, sau argumentul "-" este folosit) din stilul man nroff n html, i tiprete rezultatul la ieirea standard (stdout). Suport tbl dar nu tie de eqn. Starea de ieire este 0. Dac ceva merge eronat, o pagin de eroare este tiprit la ieirea standard (stdout). Poate fi folosit ca un utilitar de sine stttor, dar este n principal conceput ca un auxiliar, pentru a permite utilizatorilor s navigheze prin paginile de manual folosind un navigator html ca .BR lynx (1), .BR xmosaic (1) sau .BR netscape (1). ./" (Vezi ./" .BR man (1) ./" pentru informaii despre cum s navighezi prin paginile de manual cu ./" .BR man2html . ./" De obicei este suficient adugarea "MANHTMLPAGER=/usr/bin/lynx" ./" la mediu.) Partea principal a .B man2html este motorul troff-to-html scris de Richard Verhoeven (rcb5@win.tue.nl). Adaug legturi pentru urmtoarele construcii: .LP .TS l l. foo(3x) "http://localhost/cgi-bin/man/man2html?3x+foo" method://ir "method://ir" www.nume.gazd "http://www.nume.gazd" ftp.nume.gazd "ftp://ftp.nume.gazd" nume@gazd "mailto:nume@gazd" "file:/usr/include/string.h" .TE .LP (Primele din acestea pot fi modificate cu opiuni - vezi mai jos.) Nici o verificare nu este fcut - legturile generate nu trebuie s existe. De asemenea, este generat un cuprins cu legturi interne spre diverse seciuni, astfel nct este mai uor pentru cineva s se descurce n paginile mari de manual ca .BR bash (1). .SH OPIUNI Cnd se citete de la intrarea standard, nu este ntotdeauna clar cum s se fac expansiunea .so. Opiunea \-D permite unui script s defineasc directorul de lucru. .LP .TP .B \-\^D cale Elimin ultimele dou pri din cale, i face un \fIchdir\fP(\fIdir\fP) nainte de a ncepe conversia. .LP Opiunea \-E permite generarea uoar a mesajelor de eroare dintr-un script cgi. .LP .TP .B \-\^E ir Produce o pagin de eroare coninnd mesajul de eroare dat. .LP Forma general a unei legturi generate pentru o referin la o pagin de manual este .IP .LP cu o form implicit ca mai sus. Prile acestei legturi sunt configurate folosind diverse opiuni. .TP .B \-\^h Configureaz metod:cele_cgi ca http://localhost. Aceast opiune este implicit. .TP .BI \-\^H " gazd[.domeniu][:port]" Configureaz metod:cale_cgi ca .RI http:// gazd.domeniu:port . .TP .B \-\^l Configureaz metod:cale_cgi ca .RI lynxcgi: /home/httpd . .TP .BI \-\^L " dir" Configureaz metod:cale_cgi ca .RI lynxcgi: dir . .TP .BI \-\^M " cale_man2html" Configureaz cale_man2html care va fi folosit. Implicit ea este .IR /cgi-bin/man/man2html . .TP .B \-\^p Configureaz separatorul ca '/'. .TP .B \-\^q Configureaz separatorul ca '?'. Aceast opiune este implicit. .LP Pe o main care nu ruleaz .BR httpd , se poate folosi .B lynx pentru a naviga prin paginile de manual, folosind metoda lynxcgi. Cnd un demon http ruleaz, lynx, sau orice alt navigator, poate fi folosit pentru a naviga prin paginile de manual, folosind metoda http. Opiunea \-l (pentru `lynxcgi') selecteaz comportamentul precedent. Cu ea, cale_cgi este \fI/home/httpd\fP. n general, un script cgi poate fi apelat prin .IP /? .LP i variabilele de mediu PATH_INFO i QUERY_STRING vor fi configurate ca i respectiv . Din moment ce lynxcgi nu trateaz partea PATH_INFO, generm legturi cu `?' drept separator n mod implicit. Opiunea \-p (de la eng. `path' (cale)) selecteaz '/' ca separator, n timp ce opiunea \-q (de la eng. `query'(cerere)) selecteaz '?' ca separator. Opiunea \-H \fIgazd\fP va specifica gazda care va fi folosit (n loc de \fIlocalhost\fP). Un script cgi ar putea folosi .IP man2html -H $SERVER_NAME .LP dac variabila SERVER_NAME este configurat. Aceasta ar permite mainii s se comporte ca un server i s exporte pagini de manual. .SH ERORI Sunt multe euristici. Rezultatul nu va fi ntotdeauna perfect. Metoda lynxcgi nu va funciona dac lynx a fost compilat fr a selecta suport pentru ea. Ar putea fi probleme de securitate. .SH "VEZI I" .BR lynx (1), .BR man (1) man-1.6g/man/bg.txt0000644000175000001440000000001210301736016013710 0ustar lucifredusersbulgarian man-1.6g/man/ko/0000755000175000001440000000000010424573406013207 5ustar lucifredusersman-1.6g/man/ko/man.conf.man0000644000175000001440000000166410424573270015411 0ustar lucifredusers.\" @(#)man.conf .TH MAN.CONF 5 "30 Mar 1994" .SH ̸ man.conf \- man ڷ .SH .LP .BR man (1) о, (a) man ˻ , (b) nroff, eqn, tbl man Ǵ α׷ θ, (c) Ͽ ־ Ȯڸ Ǯ Ʈ ϰ ִ. ϴ ó ִ. .LP .RS man -C private_man.config ... .RE .LP ̸ ɼǵ ִ. nroff ɼ grotty(1) ã ִ. , ⺻ .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP ٰ ۾(ü) ϱ 𸥴. .SH ׸ col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) compress(1), gzip(1). .SH 輺 , 2000 5 5 man-1.6g/man/ko/apropos.man0000644000175000001440000000125310301736016015360 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH apropos 1 "Jan 15, 1991" .LO 1 .SH NAME apropos \- whatis Ÿ̽ ڿ ˻Ѵ .SH SYNOPSIS .BI apropos Ű ... .SH DESCRIPTION apropos ý Ű ϴ ̷ Ÿ̽ ˻Ͽ ǥ ش. .SH "SEE ALSO" whatis(1), man(1). man-1.6g/man/ko/whatis.man0000644000175000001440000000144410301736016015176 0ustar lucifredusers.\" .\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .TH whatis 1 "Jan 5, 1991" .LO 1 .SH NAME whatis \- ܾ ϼŰ whatis Ÿ̽ ã´. .SH SYNOPSIS .BI whatis Ű ... .SH DESCRIPTION whatis ý Ű ϴ Ÿ̽ ˻Ͽ ǥ ش. ܾ ġ 츸 ش. whatis Ÿ̽ @makewhatis@ ̿Ͽ .SH "SEE ALSO" apropos(1), man(1). man-1.6g/man/ko/man.man0000644000175000001440000001520010424573406014455 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" .TH man 1 "September 2, 1995" .LO 1 .SH ̸ man \- ¶ Ŵ ȭϰ ǥ .br manpath \- ˻ θ .SH man [\-acdfFhkKtwW] [\-m system] [\-p string] [\-C config_file] [\-M path] [\-P pager] [\-S section_list] [section] name ... .SH .B man ¶ Ŵ ȭϰ ǥѴ. .B MANPATH .B (MAN)PAGER ȯ νѴ. ׷Ƿ ڽ ְ ȭ ǥϱ ϴ α׷ ִ. .I section Ǹ, .B man ǿ Ŵ ã ش. ɼ̳ ȯ ؼ ˻ ҽ Ͽ ó⸦ ִ. .I name / ϸ, ̰ ϸ óȴ. ׷ .B "man ./foo.5" Ȥ .B "man /cd/foo/bar.1.gz" ó ִ. .SH ɼ .TP .B \-\^C " config_file" man.conf ; ⺻ .B @man_config_file@ ̴. ( .BR man.conf (5) .) .TP .B \-\^M " path" ˻ 丮 Ʈ Ѵ. ɼ ־ , ȯ .B MANPATH Ѵ. ȯ ߰ ϸ .B @man_config_file@ ⺻ Ʈ Ѵ. .B MANPATH ⺻ Ʈ̴. .TP .B \-\^P " pager" Ѵ. ɼ .B MANPAGER ȯ 켱Ѵ. environment variable, .B PAGER ٵ 켱Ѵ. ⺻ .B man .BR @pager@ ̿Ѵ. .TP .B \-\^S " section_list" ˻ Ŵ Ʈ ݷ Ʈ. ɼ .B MANSECT ȯ 켱Ѵ. .TP .B \-\^a ⺻ , .B man ù° ߰ߵ Ŵ ǥ Ѵ. ɼ ϸ, .B man ù° Ӹ ƴ϶ .B name ´ Ŵ ǥѴ. .TP .B \-\^c ֽ cat Ͽ ҽ ȭѴ. cat ٸ Į ũ ° ȭǾų, Ȥ, ȭ ջǸ ̰ ǹ̰ ִ. .TP .B \-\^d ǥ ʰ,  ƮѴ. .TP .B \-\^D ǥÿ Ѵ Ѵ. .TP .B \-\^f .BR whatis . .TP .BR \-\^F " or " \-\-preformat ȭ ϰ ǥ ʴ´. .TP .B \-\^h ޽ ϰ Ѵ. .TP .B \-\^k .BR apropos . .TP .B \-\^K ** ڿ ã´. : ſ ! ϴ .(ü, 迡 500 ˻ϴµ 1 ɸ.) .TP .B \-\^m " system" ־ ý ̸ ؼ ˻ϱ ü Ѵ. .TP .B \-\^p " string" .B nroff or .BR troff տ ϴ ó ʸ Ѵ. ġ ó ̴ ׵ ϱ Ǵ  õó : eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). ɼ .B MANROFFSEQ ȯ 켱Ѵ. .TP .B \-\^t ȭ .B @troff@ ϰ, .B stdout Ѵ. .B @troff@ μϱ ͸ ų ʿ䰡 𸥴. .TP .B \-\^w \fRor\fP \-\-path ǥ ʰ, ȭ Ȥ ǥõ ġ Ѵ. ڰ : .B man ˻ϴ 丮 Ʈ ǥ(ǥ ¿)Ѵ. .B manpath man Ǿ , "manpath" "man --path" . .TP .B \-\^W \-\^w , ߰ ࿡ ǥѴ. ̰ ɿ ϸ ϴ. .ft CW .B "man -aW man | xargs ls -l" .ft .SH "CAT " Man ȭ ʿϰ Ǿ ȭ ð ̱ Ѵ. , DIR/manX ȭ DIR/catX ȴ. man dir ٸ cat dir ϴ .BR @man_config_file@ ٸ ִ. cat 丮 cat ʴ´. .PP .B man man suid ִ. ׷, cat 丮 ڰ man 0755( man Ⱑ), cat ڰ man 0644 Ȥ 0444( man Ⱑ, Ȥ Ұ), cat ϰų, ٸ cat 丮 ΰų ϴ . .B man suid ƴϸ, cat cat 丮 ִ ó cat 丮 带 0777 ؾ Ѵ. .PP ֱ cat ϴ .B \-c ϸ ȭѴ. .SH ȯ .TP .B MANPATH .B MANPATH Ǹ, ̰ Ŵ ˻ η Ѵ. .TP .B MANROFFSEQ .B MANROFFSEQ Ǹ, ̰ .B nroff .BR troff տ ϴ ó Ͽ Ѵ. ⺻ , .BR nroff տ ̺ ó⸦ Ų. .TP .B MANSECT .B MANSECT Ǹ, ̰ ˻ Ŵ Ѵ. .TP .B MANWIDTH .B MANWIDTH Ǹ, ̰ ǥϴ Ѵ. ׷ , ȭ ü ̻ ǥõ ִ. .TP .B MANPAGER .B MANPAGER Ǹ, ̰ ǥñ Ѵ. ٸ, .B PAGER ȴ. Ѵ .B @pager@ Ѵ. .TP .B LANG .B LANG Ǹ, ̰ man ù° ֱ 丮 ̸ Ѵ. , `LANG=dk man 1 foo' .../dk/man1/foo.1 for ٷ ̰, file ߰ߵ , .../man1/for.1 ã´. ... ˻ 丮̴. .TP .B "NLSPATH, LC_MESSAGES, LANG" ȯ .B NLSPATH .B LC_MESSAGES (Ǵ ڰ Ǿ .B LANG ) ޽ īŻα ġ Ѵ. ( ޽ ϵɶ ǰ,  īŻα״ ʿ ʴ.) man ȣǴ col(1) α׷ LC_CTYPE ϴ ض. .TP .B PATH .B PATH ⺻ ˻ ȴ. .TP .B SYSTEM .B SYSTEM ⺻ ſ ý ̸ Ѵ. ( .B \-m ɼǰ Բ ) .SH ׸ apropos(1), whatis(1), less(1), groff(1). .SH .B \-t ɼ troff α׷ ġǾ ִ 쿡 Ѵ. .br ſ \e255 Ȥ , `LESSCHARSET=latin1' ȯ濡 ־. .SH (global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word)))) .IR .emacs Ͽ ߰ϸ, F1 Ŀ ġ ̺귯 ȣ ̴. .SH 輺 , 2000 5 5 man-1.6g/man/ro.txt0000644000175000001440000000001110301736016013737 0ustar lucifredusersromanian man-1.6g/man/ko.txt0000644000175000001440000000000710301736016013735 0ustar lucifreduserskorean man-1.6g/man/el.txt0000644000175000001440000000000610301736016013723 0ustar lucifredusersgreek man-1.6g/man/el/0000755000175000001440000000000010301736016013166 5ustar lucifredusersman-1.6g/man/el/apropos.man0000644000175000001440000000154410301736016015352 0ustar lucifredusers.\" Man page for apropos .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" . 2003 .\" .TH apropos 1 " 15 1991" " " " " .LO 1 .SH ONOMA apropos \- whatis .SH .BI apropos - ... .SH apropos , ' , . .SH " " whatis(1), man(1). man-1.6g/man/el/hman.man0000644000175000001440000000367010301736016014614 0ustar lucifredusers.\" Copyright (c) 1998 Andries Brouwer .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" . edimitro@tee.gr, 2003 .TH hman 1 "19 1998" .LO 1 .SH hman \- .SH .B hman [ -P \fI\fP ] [ -H \fI_\fP ] [ \fI\fP ] \fI\fP .br .B hman [ -P \fI\fP ] [ -H \fI_\fP ] [ \fI\fP ] [ ] .SH .B hman man2html(1) , . .BR man (1) .B hman .BR man . netscape, , .B hman ' . .SH .TP .B \-\^P " " ( lynx, xmosaic, arena, chimera, netscape, amaya, ...) . .BR MANHTMLPAGER . -httpd .BR lynx . .TP .B \-\^H " _" . .BR MANHTMLHOST . .BR localhost . .SH .TP .B MANHTMLPAGER , . .TP .B MANHTMLHOST , . .SH " " .BR man (1), .BR man2html (1), .BR arena (1), .BR lynx (1), .BR netscape (1), .BR xmosaic (1), .BR glimpse (1) http://www.mcom.com/newsref/std/x-remote.html man-1.6g/man/el/makewhatis.man0000644000175000001440000000642510301736016016027 0ustar lucifredusers.\" Copyright (c) 1999 Ottavio G. Rizzo .\" .\" This is free documentation; 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 .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual 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 this manual; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, .\" USA. .\" .\" . edimitro@tee.gr 2003 .\" .TH MAKEWHATIS 8 "22 1999" " " " " .SH makewhatis \- whatis. .SH .BI "makewhatis [-u] [-v] [-w] [-s " " ] [-c [" catpath "]] [" manpath "]" .SH .B makewhatis .IR " " manpath " , " .IR " " catpath " . " , whatis , . , . .LP , .B makewhatis , , , , . .LP .I manpath .I /usr/man . .SH .TP .B -u . .TP .B -v . .TP .B -w manpath man --path . .TP .BI -s " " .I .IR manpath " " .IR catpath " . " , .I \'1 2 3 4 5 6 7 8 9 n l\' .TP .BI -c " catpath" .IR catpath " . " , .IR /usr/man/preformat " " /usr/man ". " .SH .PP .IR /usr/X11R6/man/whatis " " /usr/local/man/whatis .IP makewhatis /usr/X11R6/man /usr/local/man .PP , , , .IP LANGUAGE=fi:fr:it makewhatis -w .SH .B makewhatis , troff macros, Tcl/Tk. .PP .B makewhatis . .SH .BR apropos (1), .BR man (1), .BR whatis (1) man-1.6g/man/el/man.conf.man0000644000175000001440000000230410301736016015361 0ustar lucifredusers.\" @(#)man.conf .\" . edimitro@tee.gr 2003 .TH MAN.CONF 5 "30 1994" " " " " .SH man.conf \- man .SH .LP .BR man (1) : () man, () nroff, eqn, tbl . man, () . .LP .RS man -C private_man.conf ... .RE .LP . nroff grotty(1). , .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 .fi .RE .LP .LP .RS .nf NROFF /usr/bin/groff -mandoc -Tlatin1 -P-u -P-b .fi .RE .LP . .SH .I "@man_config_file@" .SH " " col(1), (g)eqn(1), (g)pic(1), groff(1), grotty(1), (g)refer(1), (g)tbl(1), less(1), man (1) and compress(1), gzip(1). man-1.6g/man/el/man.man0000644000175000001440000003145410301736016014445 0ustar lucifredusers.\" Man page for man (and the former manpath) .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" Many changes - aeb .\" . edimitro@tee.gr 2003 .\" .TH man 1 "2 1995" " " " " .LO 1 .SH man \- .br manpath \- . .SH .B man .RB [ \-acdfFhkKtwW ] .RB [ -- ] .RB [ \-m .IR ] .RB [ \-p .IR ] .RB [ \-C .IR _ ] .RB [ \-M .IR _ ] .RB [ \-P .IR ] .RB [ \-S .IR _ ] .RI [ ] .I " ..." .SH .B man . .IR .B man ' . .I , , . , .I .RB ( / ) .B man , .B "man ./foo.5" .B "man /cd/foo/bar.1.gz\fR.\fP" .PP .B man . .SH .TP .B \-\^C " config_file" .BR @man_config_file@ . ( .BR man.conf (5).) .TP .B \-\^M " " . . .B \-M . .BR " ". .TP .B \-\^P " " . .B MANPAGER .BR PAGER . , .B man .BR "@pager@" . .TP .B \-\^S " _" . .BR MANSECT . .TP .B \-\^a , .B man . , .B man .BR , . .TP .B \-\^c , cat. cat , . .TP .B \-\^d , . .TP .B \-\^D .I .I . .TP .B \-\^f .BR whatis . .TP .BR \-\^F " " \-\-preformat - . .TP .B \-\^h . .TP .B \-\^k .BR apropos . .TP .B \-\^K ** . : ! . ( , 500 .) .TP .B \-\^m " " , . .TP .B \-\^p " " .B nroff .BR troff . . : eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). .BR MANROFFSEQ . .TP .B \-\^t .B @troff@ , .BR " " . .B @troff@ . .TP .B \-\^w \fR\fP \-\- , () () . : ( ) .B man . .B manpath man, manpath man --޻. .TP .B \-\^W \-\^w, , , . .ft CW .B "man -aW man | xargs ls -l" .ft .SH " CAT" man , . , DIR/manX DIR/catX, man dir cat dir .BR @man_config_file@ . cat , cat. cat 80, . cat man.conf NOCACHE. .PP .B man suid man. , cat man 0755 ( man), cat man 0644 0444 ( man, ), cat cat. .B man suid, cat 0777, cat. .PP .B \-c , cat. .SH " " .B man , , .B @man_config_file@ . .PP ' , .I .B man .RB ( / ), .B man , . .PP .I .RB ( / ), .B man , . .PP .BI "-M " _ .I _ .BR man . .PP .B -M .B MANPATH .B man . .PP .B -M .BR MANPATH , .B man .BR @man_config_file@ . .B MANPATH . .PP , .B MANPATH_MAP (. ) .BR PATH . , .B MANPATH_MAP . .B man .B PATH . , .BR MANPATH_MAP , .BR "man xyz", .BR xyz . .PP , ( ) .I .B MANPATH_MAP .B man ' . .PP ' .B NOAUTOPATH .BR @man_config_file@ . .PP , , .B man .IB . \fR, . , .BI man N .BI cat N .I N . ' .BI cat N, .B man ( cat). .B man . , ( .BR .gz ), .B man gzip. .PP ( ) .B man , .BR "-- " ( -w ). .SH .TP .B MANPATH .B MANPATH .B man . , .B -M .BR " ". .TP .B MANPL .B MANPL . , () . .TP .B MANROFFSEQ .B MANROFFSEQ .B nroff .BR troff . , tbl .BR nroff . .TP .B MANSECT .B MANSECT . .TP .B MANWIDTH .B MANWIDTH . ' . .TP .B MANPAGER .B MANPAGER . , .BR PAGER . .BR @pager@ . .TP .B LANG .B LANG man ' . , LANG=dk man 1 foo man foo .../dk/man1/foo.1, , .../man1/foo.1, ... . .TP .BR NLSPATH ", " LC_MESSAGES ", " LANG .B NLSPATH .B LC_MESSAGES ( .B LANG ) . ( , .) .BR col(1) man LC_CTYPE. .TP .B PATH .B PATH . .BR " " . .TP .B SYSTEM .B SYSTEM ( .B \-m ) . .SH " " apropos(1), whatis(1), less(1), groff(1), man.conf(5). .SH .B \-t troff. .br \e255 , LESSCHARSET=latin1 . .SH (global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word)))) .IR .emacs F1 . .LP , a , # man foo | col -b > foo.mantxt man-1.6g/man/el/man2html.man0000644000175000001440000001155510301736016015414 0ustar lucifredusers'\" t .\" Man page for man2html .\" aeb, 980101 .\" .\" . edimitro@tee.gr, 2003 .\" .TH man2html 1 "1 1998" .LO 1 .SH man2html \- html .SH man2html [] [] .SH .B man2html .I ( , - ) nroff html, . tbl eqn. 0. , . , , html .BR lynx (1), .BR xmosaic (1) .BR netscape (1). ./" ( ./" .BR man (1) ./" ./" .BR man2html . ./" "MANHTMLPAGER=/usr/bin/lynx" ./" .) .B man2html troff-to-html Richard Verhoeven (rcb5@win.tue.nl) : .LP .TS l l. foo(3x) "http://localhost/cgi-bin/man/man2html?3x+foo" method://string "method://string" www.host.name "http://www.host.name" ftp.host.name "ftp://ftp.host.name" name@host "mailto:name@host" "file:/usr/include/string.h" .TE .LP ( - .) - ' . , .BR bash (1). .SH , . \-D ' . .LP .TP .B \-\^D _ , \fIchdir\fP(\fIdir\fP) . .LP \-E cgi. .LP .TP .B \-\^E . .LP .LP <:/_cgi><_man> .LP . . .TP .B \-\^h :_cgi http://localhost . .TP .BI \-\^H " _[._][:]" :_cgi .RI http:// _._: . .TP .B \-\^l :_cgi .RI lynxcgi: /home/httpd . .TP .BI \-\^L " dir" :_cgi .RI lynxcgi: dir . .TP .BI \-\^M " _man2html" _man2html . .IR /cgi-bin/man/man2html . .TP .B \-\^p /. .TP .B \-\^q ?. . .TP .B \-\^r html, cgi-bin. .LP ' .BR httpd , .B lynx , lynxcgi. http, lynx, , , http. \-l ( lynxcgi ) . , _cgip \fI/home/httpd\fP. , cgi .LP <___>/<__>?<> .LP PATH_INFO QUERY_STRING <__> <>, . lynxcgi PATH_INFO, ? . \-p ( path ) / , \-q ( query ) ?. \-H \fI_\fP, ( \fIlocalhost\fP). cgi .IP man2html -H $SERVER_NAME .LP SERVER_NAME. , . .SH . . lynxcgi lynx . . .SH " " .BR lynx (1), .BR man (1) man-1.6g/man/el/whatis.man0000644000175000001440000000175110301736016015166 0ustar lucifredusers.\" Man page for whatis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" . edimitro@tee.gr 2003 .\" .TH whatis 1 "Jan 5, 1991" " " " " .LO 1 .SH whatis \- whatis . .SH .BI whatis - ... .SH whatis , , . . whatis @makewhatis@. .SH " " apropos(1), man(1). man-1.6g/gencat/0000755000175000001440000000000010464165420013261 5ustar lucifredusersman-1.6g/gencat/gencat.c0000644000175000001440000001634610464165340014701 0ustar lucifredusers /*********************************************************** Copyright 1990, by Alfalfa Software Incorporated, Cambridge, Massachusetts. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that Alfalfa's name not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. ALPHALPHA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ALPHALPHA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. If you make any modifications, bugfixes or other changes to this software we'd appreciate it if you could send a copy to us so we can keep things up-to-date. Many thanks. Kee Hinckley Alfalfa Software, Inc. 267 Allston St., #3 Cambridge, MA 02139 USA nazgul@alfalfa.com ******************************************************************/ /* Edit History 01/18/91 3 hamilton #if not reparsed 01/12/91 2 schulert conditionally use prototypes 12/23/90 2 hamilton Fix fd == NULL to fd < 0 11/03/90 1 hamilton Alphalpha->Alfalfa & OmegaMail->Poste 08/13/90 1 schulert move from ua to omu */ #include #include #include #ifdef SYSV #include #include #else #include #endif #ifdef __linux__ #include #include #endif #include #include #include "gencat.h" #ifndef L_SET #define L_SET SEEK_SET #endif #ifndef L_INCR #define L_INCR SEEK_CUR #endif /* * The spec says the syntax is "gencat catfile msgfile...". * We extend it to: * gencat [-new] [-or] [-lang C|C++|ANSIC] catfile msgfile * [-h ]... * Flags are order dependant, we'll take whatever lang was most recently chosen * and use it to generate the next header file. The header files are generated * at the point in the command line they are listed. Thus the sequence: * gencat -lang C foo.cat foo.mcs -h foo.h -lang C++ bar.mcs -h bar.H * will put constants from foo.mcs into foo.h and constants from bar.mcs into * bar.h. Constants are not saved in the catalog file, so nothing will come * from that, even if things have been defined before. The constants in foo.h * will be in C syntax, in bar.H in C++ syntax. */ static void writeIfChanged( #if defined(__STDC__) || defined(__cplusplus) char *fname, int lang, int orConsts #endif ); void usage() { fprintf(stderr, "Use: gencat [-new] [-or] [-lang C|C++|ANSIC] catfile msgfile [-h ]...\n"); } int main( #if defined(__STDC__) || defined(__cplusplus) int argc, char *argv[]) #else argc, argv) int argc; char *argv[]; #endif { int ofd, ifd, i; FILE *fptr; char *catfile = NULL; char *input = NULL; int lang = MCLangC; int new = False; int orConsts = False; for (i = 1; i < argc; ++i) { if (argv[i][0] == '-') { if (strcmp(argv[i], "-lang") == 0) { ++i; if (strcmp(argv[i], "C") == 0) lang = MCLangC; else if (strcmp(argv[i], "C++") == 0) lang = MCLangCPlusPlus; else if (strcmp(argv[i], "ANSIC") == 0) lang = MCLangANSIC; else { fprintf(stderr, "gencat: Unrecognized language: %s\n", argv[i]); exit(1); } } else if (strncmp(argv[i], "-h", 2) == 0) { if (!input) { fprintf(stderr, "gencat: Can't write to a header before reading something.\n"); exit(1); } ++i; writeIfChanged(argv[i], lang, orConsts); } else if (strncmp(argv[i], "-new", 4) == 0) { if (catfile) { fprintf(stderr, "gencat: You must specify -new before the catalog file name\n"); exit(1); } new = True; } else if (strncmp(argv[i], "-or", 3) == 0) { orConsts = ~orConsts; } else { usage(); exit(1); } } else { if (!catfile) { catfile = argv[i]; if (new) { if ((ofd = open(catfile, O_WRONLY|O_TRUNC|O_CREAT, 0666)) < 0) { fprintf(stderr, "gencat: Unable to create a new %s.\n", catfile); exit(1); } } else if ((ofd = open(catfile, O_RDONLY)) < 0) { if ((ofd = open(catfile, O_WRONLY|O_CREAT, 0666)) < 0) { fprintf(stderr, "gencat: Unable to create %s.\n", catfile); exit(1); } } else { MCReadCat(ofd); close(ofd); if ((ofd = open(catfile, O_WRONLY|O_TRUNC)) < 0) { fprintf(stderr, "gencat: Unable to truncate %s.\n", catfile); exit(1); } } } else { input = argv[i]; if ((ifd = open(input, O_RDONLY)) < 0) { fprintf(stderr, "gencat: Unable to read %s\n", input); exit(1); } MCParse(ifd); close(ifd); } } } if (catfile) { MCWriteCat(ofd); exit(0); } else { usage(); exit(1); } return 0; /* just for gcc */ } static void writeIfChanged( #if defined(__STDC__) || defined(__cplusplus) char *fname, int lang, int orConsts) #else fname, lang, orConsts) char *fname; int lang; int orConsts; #endif { char tmpname[32]; char buf[BUFSIZ], tbuf[BUFSIZ], *cptr, *tptr; int fd, tfd; int diff = False; int c, len, tlen; struct stat sbuf; /* If it doesn't exist, just create it */ if (stat(fname, &sbuf)) { if ((fd = open(fname, O_WRONLY|O_CREAT, 0666)) < 0) { fprintf(stderr, "gencat: Unable to create header file %s.\n", fname); exit(1); } MCWriteConst(fd, lang, orConsts); close(fd); return; } /* If it does exist, create a temp file for now */ sprintf(tmpname, "/tmp/gencat.%d", (int) getpid()); if ((tfd = open(tmpname, O_RDWR|O_CREAT, 0666)) < 0) { fprintf(stderr, "gencat: Unable to open temporary file: %s\n", tmpname); exit(1); } unlink(tmpname); /* Write to the temp file and rewind */ MCWriteConst(tfd, lang, orConsts); /* Open the real header file */ if ((fd = open(fname, O_RDONLY)) < 0) { fprintf(stderr, "gencat: Unable to read header file: %s\n", fname); exit(1); } /* Backup to the start of the temp file */ if (lseek(tfd, 0L, L_SET) < 0) { fprintf(stderr, "gencat: Unable to seek in tempfile: %s\n", tmpname); exit(1); } /* Now compare them */ while ((tlen = read(tfd, tbuf, BUFSIZ)) > 0) { if ((len = read(fd, buf, BUFSIZ)) != tlen) { diff = True; goto done; } for (cptr = buf, tptr = tbuf; cptr < buf+len; ++cptr, ++tptr) { if (*tptr != *cptr) { diff = True; goto done; } } } done: if (diff) { if (lseek(tfd, 0L, L_SET) < 0) { fprintf(stderr, "gencat: Unable to seek in tempfile: %s\n", tmpname); exit(1); } close(fd); if ((fd = open(fname, O_WRONLY|O_TRUNC)) < 0) { fprintf(stderr, "gencat: Unable to truncate header file: %s\n", fname); exit(1); } while ((len = read(tfd, buf, BUFSIZ)) > 0) { if (write(fd, buf, len) != len) { fprintf(stderr, "gencat: Error writing to header file: %s\n", fname); } } } close(fd); close(tfd); } man-1.6g/gencat/genlib.c0000644000175000001440000004623011507436376014704 0ustar lucifredusers/* -*-c++-*- */ /*********************************************************** Copyright 1990, by Alfalfa Software Incorporated, Cambridge, Massachusetts. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that Alfalfa's name not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. ALPHALPHA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ALPHALPHA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. If you make any modifications, bugfixes or other changes to this software we'd appreciate it if you could send a copy to us so we can keep things up-to-date. Many thanks. Kee Hinckley Alfalfa Software, Inc. 267 Allston St., #3 Cambridge, MA 02139 USA nazgul@alfalfa.com ******************************************************************/ /* Edit History 12/03/82 nazgul Patch from . This may fix the problem with updating sets. 10/18/92 3 schulert actually put in the changes described in last edit. 10/18/92 7 nazgul Changes from gbooman@feds1.Prime.COM (Gordon Booman) 1) Support backslash quoted quotes in message file text. 2) Correctly indicate error location in messages that have tabs. 3) Fixed a misspelling. 04/15/91 6 nazgul Check for byte order first 02/25/91 5 nazgul Added flag for MS byteorder 01/14/91 4 nazgul Off by one on number specified entries */ #include #include #ifdef SYSV #include #include #endif #if !defined(__linux__) && !defined(__CYGWIN__) #include static int bcopy(src, dst, length) char *src, *dst; int length; { memcpy(dst, src, length); } static int bzero(b, length) char *b; int length; { memset(b, '\0', length); } #else #include #endif #include #include #include "msgcat.h" #include "gencat.h" #ifndef L_SET #define L_SET SEEK_SET #endif #ifndef L_INCR #define L_INCR SEEK_CUR #endif static char *curline = NULL; static long lineno = 0; static void warning(cptr, msg) char *cptr; char *msg; { fprintf(stderr, "gencat: %s on line %d\n", msg, lineno); fprintf(stderr, "%s\n", curline); if (cptr) { char *tptr; for (tptr = curline; tptr < cptr; ++tptr) putc(*tptr == '\t' ? '\t' : ' ', stderr); fprintf(stderr, "^\n"); } } static void error(cptr, msg) char *cptr; char *msg; { warning(cptr, msg); exit(1); } static void corrupt() { error(NULL, "corrupt message catalog"); } static void nomem() { error(NULL, "out of memory"); } static char *my_getline(fd) int fd; { static long len = 0, curlen = BUFSIZ; static char buf[BUFSIZ], *bptr = buf, *bend = buf; char *cptr, *cend; long buflen; if (!curline) { curline = (char *) malloc(curlen); if (!curline) nomem(); } ++lineno; cptr = curline; cend = curline + curlen; while (True) { for (; bptr < bend && cptr < cend; ++cptr, ++bptr) { if (*bptr == '\n') { *cptr = '\0'; ++bptr; return(curline); } else *cptr = *bptr; } if (bptr == bend) { buflen = read(fd, buf, BUFSIZ); if (buflen <= 0) { if (cptr > curline) { *cptr = '\0'; return(curline); } return(NULL); } bend = buf + buflen; bptr = buf; } if (cptr == cend) { cptr = curline = (char *) realloc(curline, curlen *= 2); cend = curline + curlen; } } } static char *token(cptr) char *cptr; { static char tok[MAXTOKEN+1]; char *tptr = tok; while (*cptr && isspace(*cptr)) ++cptr; while (*cptr && !isspace(*cptr)) *tptr++ = *cptr++; *tptr = '\0'; return(tok); } static char *wskip(cptr) char *cptr; { if (!*cptr || !isspace(*cptr)) { warning(cptr, "expected a space"); return(cptr); } while (*cptr && isspace(*cptr)) ++cptr; return(cptr); } static char *cskip(cptr) char *cptr; { if (!*cptr || isspace(*cptr)) { warning(cptr, "wasn't expecting a space"); return(cptr); } while (*cptr && !isspace(*cptr)) ++cptr; return(cptr); } static char *getmsg(fd, cptr, quote) int fd; char *cptr; char quote; { static char *msg = NULL; static long msglen = 0; long clen, i; char *tptr; int needq; if (quote && *cptr == quote) { needq = True; ++cptr; } else needq = False; clen = strlen(cptr) + 1; if (clen > msglen) { if (msglen) msg = (char *) realloc(msg, clen); else msg = (char *) malloc(clen); msglen = clen; } tptr = msg; while (*cptr) { if (quote && *cptr == quote) { char *tmp; tmp = cptr+1; if (*tmp && (!isspace(*tmp) || *wskip(tmp))) { warning(cptr, "quote character before end of line, ignoring"); *tptr++ = *cptr++; } else { *cptr = '\0'; } } else if (*cptr == '\\') { ++cptr; switch (*cptr) { case '\0': cptr = my_getline(fd); if (!cptr) error(NULL, "premature end of file"); msglen += strlen(cptr); i = tptr - msg; msg = (char *) realloc(msg, msglen); tptr = msg + i; break; case 'n': *tptr++ = '\n'; ++cptr; break; case 't': *tptr++ = '\t'; ++cptr; break; case 'v': *tptr++ = '\v'; ++cptr; break; case 'b': *tptr++ = '\b'; ++cptr; break; case 'r': *tptr++ = '\r'; ++cptr; break; case 'f': *tptr++ = '\f'; ++cptr; break; case '\\': *tptr++ = '\\'; ++cptr; break; default: if (isdigit(*cptr)) { *tptr = 0; for (i = 0; i < 3; ++i) { if (!isdigit(*cptr)) break; if (*cptr > '7') warning(cptr, "octal number greater than 7?!"); *tptr *= 8; *tptr += (*cptr - '0'); ++cptr; } } else if (*cptr == quote) { *tptr++ = *cptr++; } else { warning(cptr, "unrecognized escape sequence"); } } } else { *tptr++ = *cptr++; } } *tptr = '\0'; return(msg); } static char *dupstr(ostr) char *ostr; { char *nstr; nstr = (char *) malloc(strlen(ostr) + 1); if (!nstr) error(NULL, "unable to allocate storage"); strcpy(nstr, ostr); return(nstr); } /* * The Global Stuff */ typedef struct _msgT { long msgId; char *str; char *hconst; long offset; struct _msgT *prev, *next; } msgT; typedef struct _setT { long setId; char *hconst; msgT *first, *last; struct _setT *prev, *next; } setT; typedef struct { setT *first, *last; } catT; static setT *curSet; static catT *cat; /* * Find the current byte order. There are of course some others, but this will do * for now. Note that all we care about is "long". */ long MCGetByteOrder() { long l = 0x00010203; char *cptr = (char *) &l; if (cptr[0] == 0 && cptr[1] == 1 && cptr[2] == 2 && cptr[3] == 3) return MC68KByteOrder; else return MCn86ByteOrder; } void MCParse( #if PROTO int fd) #else fd) int fd; #endif { char *cptr, *str; int setid, msgid = 0; char hconst[MAXTOKEN+1]; char quote = 0; int i; if (!cat) { cat = (catT *) malloc(sizeof(catT)); if (!cat) nomem(); bzero(cat, sizeof(catT)); } hconst[0] = '\0'; while (cptr = my_getline(fd)) { if (*cptr == '$') { ++cptr; if (strncmp(cptr, "set", 3) == 0) { cptr += 3; cptr = wskip(cptr); setid = atoi(cptr); cptr = cskip(cptr); if (*cptr) cptr = wskip(cptr); if (*cptr == '#') { ++cptr; MCAddSet(setid, token(cptr)); } else MCAddSet(setid, NULL); msgid = 0; } else if (strncmp(cptr, "delset", 6) == 0) { cptr += 6; cptr = wskip(cptr); setid = atoi(cptr); MCDelSet(setid); } else if (strncmp(cptr, "quote", 5) == 0) { cptr += 5; if (!*cptr) quote = 0; else { cptr = wskip(cptr); if (!*cptr) quote = 0; else quote = *cptr; } } else if (isspace(*cptr)) { cptr = wskip(cptr); if (*cptr == '#') { ++cptr; strcpy(hconst, token(cptr)); } } else { if (*cptr) { cptr = wskip(cptr); if (*cptr) warning(cptr, "unrecognized line"); } } } else { if (isdigit(*cptr) || *cptr == '#') { if (*cptr == '#') { ++msgid; ++cptr; if (!*cptr) { MCAddMsg(msgid, "", hconst); hconst[0] = '\0'; continue; } if (!isspace(*cptr)) warning(cptr, "expected a space"); ++cptr; if (!*cptr) { MCAddMsg(msgid, "", hconst); hconst[0] = '\0'; continue; } } else { msgid = atoi(cptr); cptr = cskip(cptr); cptr = wskip(cptr); /* if (*cptr) ++cptr; */ } if (!*cptr) MCDelMsg(msgid); else { str = getmsg(fd, cptr, quote); MCAddMsg(msgid, str, hconst); hconst[0] = '\0'; } } } } } void MCReadCat( #if PROTO int fd) #else fd) int fd; #endif { MCHeaderT mcHead; MCMsgT mcMsg; MCSetT mcSet; msgT *msg; setT *set; int i; char *data; cat = (catT *) malloc(sizeof(catT)); if (!cat) nomem(); bzero(cat, sizeof(catT)); if (read(fd, &mcHead, sizeof(mcHead)) != sizeof(mcHead)) corrupt(); if (strncmp(mcHead.magic, MCMagic, MCMagicLen) != 0) corrupt(); if ((mcHead.flags & MCGetByteOrder()) == 0) error(NULL, "wrong byte order"); if (mcHead.majorVer != MCMajorVer) error(NULL, "unrecognized catalog version"); if (lseek(fd, mcHead.firstSet, L_SET) == -1) corrupt(); while (True) { if (read(fd, &mcSet, sizeof(mcSet)) != sizeof(mcSet)) corrupt(); if (mcSet.invalid) continue; set = (setT *) malloc(sizeof(setT)); if (!set) nomem(); bzero(set, sizeof(*set)); if (cat->first) { cat->last->next = set; set->prev = cat->last; cat->last = set; } else cat->first = cat->last = set; set->setId = mcSet.setId; /* Get the data */ if (mcSet.dataLen) { data = (char *) malloc(mcSet.dataLen); if (!data) nomem(); if (lseek(fd, mcSet.data.off, L_SET) == -1) corrupt(); if (read(fd, data, mcSet.dataLen) != mcSet.dataLen) corrupt(); if (lseek(fd, mcSet.u.firstMsg, L_SET) == -1) corrupt(); for (i = 0; i < mcSet.numMsgs; ++i) { if (read(fd, &mcMsg, sizeof(mcMsg)) != sizeof(mcMsg)) corrupt(); if (mcMsg.invalid) { --i; continue; } msg = (msgT *) malloc(sizeof(msgT)); if (!msg) nomem(); bzero(msg, sizeof(*msg)); if (set->first) { set->last->next = msg; msg->prev = set->last; set->last = msg; } else set->first = set->last = msg; msg->msgId = mcMsg.msgId; msg->str = dupstr((char *) (data + mcMsg.msg.off)); } free(data); } if (!mcSet.nextSet) break; if (lseek(fd, mcSet.nextSet, L_SET) == -1) corrupt(); } } static void printS(fd, str) int fd; char *str; { write(fd, str, strlen(str)); } static void printL(fd, l) int fd; long l; { char buf[32]; sprintf(buf, "%ld", l); write(fd, buf, strlen(buf)); } static void printLX(fd, l) int fd; long l; { char buf[32]; sprintf(buf, "%lx", l); write(fd, buf, strlen(buf)); } static void genconst(fd, type, setConst, msgConst, val) int fd; int type; char *setConst; char *msgConst; long val; { switch (type) { case MCLangC: if (!msgConst) { printS(fd, "\n#define "); printS(fd, setConst); printS(fd, "Set"); } else { printS(fd, "#define "); printS(fd, setConst); printS(fd, msgConst); } printS(fd, "\t0x"); printLX(fd, val); printS(fd, "\n"); break; case MCLangCPlusPlus: case MCLangANSIC: if (!msgConst) { printS(fd, "\nconst long "); printS(fd, setConst); printS(fd, "Set"); } else { printS(fd, "const long "); printS(fd, setConst); printS(fd, msgConst); } printS(fd, "\t= "); printL(fd, val); printS(fd, ";\n"); break; default: error(NULL, "not a recognized (programming) language type"); } } void MCWriteConst( #if PROTO int fd, int type, int orConsts) #else fd, type, orConsts) int fd; int type; int orConsts; #endif { msgT *msg; setT *set; long id; if (orConsts && (type == MCLangC || type == MCLangCPlusPlus || type == MCLangANSIC)) { printS(fd, "/* Use these Macros to compose and decompose setId's and msgId's */\n"); printS(fd, "#ifndef MCMakeId\n"); printS(fd, "# define MCuint unsigned int\n"); printS(fd, "# define MCushort unsigned short\n"); printS(fd, "# define MCulong unsigned long\n"); printS(fd, "# define MCMakeId(s,m)\t(MCulong)(((MCushort)s<<(sizeof(short)*8))\\\n"); printS(fd, " \t |(MCushort)m)\n"); printS(fd, "# define MCSetId(id)\t(MCuint) ((MCuint)id >> (MCuint)(sizeof(short) * 8))\n"); printS(fd, "# define MCMsgId(id)\t(MCuint) (((MCuint)id << (MCuint)(sizeof(short) * 8))\\\n"); printS(fd, " \t >> (MCuint)(sizeof(short) * 8))\n"); printS(fd, "#endif\n"); } for (set = cat->first; set; set = set->next) { if (set->hconst) genconst(fd, type, set->hconst, NULL, set->setId); for (msg = set->first; msg; msg = msg->next) { if (msg->hconst) { if (orConsts) id = MCMakeId(set->setId, msg->msgId); else id = msg->msgId; genconst(fd, type, set->hconst, msg->hconst, id); free(msg->hconst); msg->hconst = NULL; } } if (set->hconst) { free(set->hconst); set->hconst = NULL; } } } void MCWriteCat( #if PROTO int fd) #else fd) int fd; #endif { MCHeaderT mcHead; int cnt; setT *set; msgT *msg; MCSetT mcSet; MCMsgT mcMsg; off_t pos; bcopy(MCMagic, mcHead.magic, MCMagicLen); mcHead.majorVer = MCMajorVer; mcHead.minorVer = MCMinorVer; mcHead.flags = MCGetByteOrder(); mcHead.firstSet = 0; /* We'll be back to set this in a minute */ for (cnt = 0, set = cat->first; set; set = set->next) ++cnt; mcHead.numSets = cnt; lseek(fd, 0L, L_SET); write(fd, &mcHead, sizeof(mcHead)); mcHead.firstSet = lseek(fd, 0, L_INCR); lseek(fd, 0L, L_SET); write(fd, &mcHead, sizeof(mcHead)); for (set = cat->first; set; set = set->next) { bzero(&mcSet, sizeof(mcSet)); mcSet.setId = set->setId; mcSet.invalid = False; /* The rest we'll have to come back and change in a moment */ pos = lseek(fd, 0, L_INCR); write(fd, &mcSet, sizeof(mcSet)); /* Now write all the string data */ mcSet.data.off = lseek(fd, 0, L_INCR); cnt = 0; for (msg = set->first; msg; msg = msg->next) { msg->offset = lseek(fd, 0, L_INCR) - mcSet.data.off; mcSet.dataLen += write(fd, msg->str, strlen(msg->str) + 1); ++cnt; } mcSet.u.firstMsg = lseek(fd, 0, L_INCR); mcSet.numMsgs = cnt; /* Now write the message headers */ for (msg = set->first; msg; msg = msg->next) { mcMsg.msgId = msg->msgId; mcMsg.msg.off = msg->offset; mcMsg.invalid = False; write(fd, &mcMsg, sizeof(mcMsg)); } /* Go back and fix things up */ if (set == cat->last) { mcSet.nextSet = 0; lseek(fd, pos, L_SET); write(fd, &mcSet, sizeof(mcSet)); } else { mcSet.nextSet = lseek(fd, 0, L_INCR); lseek(fd, pos, L_SET); write(fd, &mcSet, sizeof(mcSet)); lseek(fd, mcSet.nextSet, L_SET); } } } void MCAddSet( #if PROTO int setId, char *hconst) #else setId, hconst) int setId; char *hconst; #endif { setT *set; if (setId <= 0) { error(NULL, "setId's must be greater than zero"); return; } if (hconst && !*hconst) hconst = NULL; for (set = cat->first; set; set = set->next) { if (set->setId == setId) { if (set->hconst && hconst) free(set->hconst); set->hconst = NULL; break; } else if (set->setId > setId) { setT *newSet; newSet = (setT *) malloc(sizeof(setT)); if (!newSet) nomem(); bzero(newSet, sizeof(setT)); newSet->prev = set->prev; newSet->next = set; if (set->prev) set->prev->next = newSet; else cat->first = newSet; set->prev = newSet; set = newSet; break; } } if (!set) { set = (setT *) malloc(sizeof(setT)); if (!set) nomem(); bzero(set, sizeof(setT)); if (cat->first) { set->prev = cat->last; set->next = NULL; cat->last->next = set; cat->last = set; } else { set->prev = set->next = NULL; cat->first = cat->last = set; } } set->setId = setId; if (hconst) set->hconst = dupstr(hconst); curSet = set; } void MCAddMsg( #if PROTO int msgId, char *str, char *hconst) #else msgId, str, hconst) int msgId; char *str; char *hconst; #endif { msgT *msg; if (!curSet) error(NULL, "can't specify a message when no set exists"); if (msgId <= 0) { error(NULL, "msgId's must be greater than zero"); return; } if (hconst && !*hconst) hconst = NULL; for (msg = curSet->first; msg; msg = msg->next) { if (msg->msgId == msgId) { if (msg->hconst && hconst) free(msg->hconst); if (msg->str) free(msg->str); msg->hconst = msg->str = NULL; break; } else if (msg->msgId > msgId) { msgT *newMsg; newMsg = (msgT *) malloc(sizeof(msgT)); if (!newMsg) nomem(); bzero(newMsg, sizeof(msgT)); newMsg->prev = msg->prev; newMsg->next = msg; if (msg->prev) msg->prev->next = newMsg; else curSet->first = newMsg; msg->prev = newMsg; msg = newMsg; break; } } if (!msg) { msg = (msgT *) malloc(sizeof(msgT)); if (!msg) nomem(); bzero(msg, sizeof(msgT)); if (curSet->first) { msg->prev = curSet->last; msg->next = NULL; curSet->last->next = msg; curSet->last = msg; } else { msg->prev = msg->next = NULL; curSet->first = curSet->last = msg; } } msg->msgId = msgId; if (hconst) msg->hconst = dupstr(hconst); msg->str = dupstr(str); } void MCDelSet( #if PROTO int setId) #else setId) int setId; #endif { setT *set; msgT *msg; for (set = cat->first; set; set = set->next) { if (set->setId == setId) { for (msg = set->first; msg; msg = msg->next) { if (msg->hconst) free(msg->hconst); if (msg->str) free(msg->str); free(msg); } if (set->hconst) free(set->hconst); if (set->prev) set->prev->next = set->next; else cat->first = set->next; if (set->next) set->next->prev = set->prev; else cat->last = set->prev; free(set); return; } else if (set->setId > setId) break; } warning(NULL, "specified set doesn't exist"); } void MCDelMsg( #if PROTO int msgId) #else msgId) int msgId; #endif { msgT *msg; if (!curSet) error(NULL, "you can't delete a message before defining the set"); for (msg = curSet->first; msg; msg = msg->next) { if (msg->msgId == msgId) { if (msg->hconst) free(msg->hconst); if (msg->str) free(msg->str); if (msg->prev) msg->prev->next = msg->next; else curSet->first = msg->next; if (msg->next) msg->next->prev = msg->prev; else curSet->last = msg->prev; free(msg); return; } else if (msg->msgId > msgId) break; } warning(NULL, "specified msg doesn't exist"); } man-1.6g/gencat/gencat.h0000644000175000001440000000662310301736016014675 0ustar lucifredusers /*********************************************************** Copyright 1990, by Alfalfa Software Incorporated, Cambridge, Massachusetts. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that Alfalfa's name not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. ALPHALPHA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ALPHALPHA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. If you make any modifications, bugfixes or other changes to this software we'd appreciate it if you could send a copy to us so we can keep things up-to-date. Many thanks. Kee Hinckley Alfalfa Software, Inc. 267 Allston St., #3 Cambridge, MA 02139 USA nazgul@alfalfa.com ******************************************************************/ /* Edit History 02/25/91 2 nazgul Added MCGetByteOrder 01/18/91 2 hamilton #if not reparsed 01/12/91 2 schulert conditionally use prototypes 11/03/90 1 hamilton Alphalpha->Alfalfa & OmegaMail->Poste 08/13/90 1 schulert move from ua to omu */ #ifndef gencat_h #define gencat_h /* * $set n comment * My extension: If the comment begins with # treat the next string * as a constant identifier. * $delset n comment * n goes from 1 to NL_SETMAX * Deletes a set from the MC * $ comment * My extension: If comment begins with # treat the next string as * a constant identifier for the next message. * m message-text * m goes from 1 to NL_MSGMAX * If message-text is empty, and a space or tab is present, put * empty string in catalog. * If message-text is empty, delete the message. * Length of text is 0 to NL_TEXTMAX * My extension: If '#' is used instead of a number, the number * is generated automatically. A # followed by anything is an empty message. * $quote c * Optional quote character which can suround message-text to * show where spaces are. * * Escape Characters * \n (newline), \t (horiz tab), \v (vert tab), \b (backspace), * \r (carriage return), \f (formfeed), \\ (backslash), \ddd (bitpattern * in octal). * Also, \ at end of line is a continuation. * */ #define MCLangC 0 #define MCLangCPlusPlus 1 #define MCLangANSIC 2 #define MAXTOKEN 1024 #if !defined(ANSI_C) && (defined(__STDC__) || defined(_AIX)) # define ANSI_C 1 #endif #if ANSI_C || defined(__cplusplus) # define P_(x) x #else # define P_(x) /**/ #endif extern void MCAddSet P_((int setId, char *c)); extern void MCDelSet P_((int setId)); extern void MCAddMsg P_((int msgId, char *msg, char *c)); extern void MCDelMsg P_((int msgId)); extern void MCParse P_((int fd)); extern void MCReadCat P_((int fd)); extern void MCWriteConst P_((int fd, int type, int orConsts)); extern void MCWriteCat P_((int fd)); extern long MCGetByteOrder P_((void)); #ifndef True # define True ~0 # define False 0 #endif #endif man-1.6g/gencat/Makefile0000644000175000001440000000057010424501147014717 0ustar lucifredusers# extremely primitive makefile # just for people that don't have gencat but need it to make man # note: you only need gencat if you want non-English messages gencat: gencat.o genlib.o $(CC) $(LDFLAGS) -o gencat gencat.o genlib.o gencat.o genlib.o: gencat.h genlib.o: msgcat.h install: gencat cp gencat$(EXEEXT) $(DESTDIR)$(PREFIX)/usr/bin clean: rm -f *~ *.o gencat man-1.6g/gencat/msgcat.h0000644000175000001440000001327610301736016014714 0ustar lucifredusers/* -*-c++-*- */ #ifndef __msgcath /*********************************************************** Copyright 1990, by Alfalfa Software Incorporated, Cambridge, Massachusetts. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that Alfalfa's name not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. ALPHALPHA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ALPHALPHA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. If you make any modifications, bugfixes or other changes to this software we'd appreciate it if you could send a copy to us so we can keep things up-to-date. Many thanks. Kee Hinckley Alfalfa Software, Inc. 267 Allston St., #3 Cambridge, MA 02139 USA nazgul@alfalfa.com ******************************************************************/ #include /* * On disk data structures */ /* Edit History 02/25/91 2 nazgul Byte order flags, upped the version number 11/03/90 1 hamilton Alphalpha->Alfalfa & OmegaMail->Poste 08/13/90 1 schulert move from ua to omu */ /* For or'd constants */ #define MCMakeId(s,m) (unsigned long) ( ((unsigned short)s << (sizeof(short)*8)) \ | (unsigned short)m ) #define MCSetId(id) (unsigned int) ( id >> (sizeof(short) * 8) ) #define MCMsgId(id) (unsigned int) ( (id << (sizeof(short) * 8)) \ >> (sizeof(short) * 8) ) #undef S #undef UI #undef UL #define MCMagicLen 8 #define MCMagic "*nazgul*" #define MCLastMsg 0 #define MCLastSet 0 #define MCMajorVer 1 #define MCMinorVer 0 /* * Critical note here. Sets and Messages *MUST* be stored in ascending * order. There are stored that way (by specification) in the original * data file, however in the process of merging in new stuff you might * mix that up. Don't! The catget stuff does a binary search and will * totally lose it if these aren't in order (not contiguous mind you, just * in order. If this turns out to be a major problem this could be enhanced * by adding a 'sorted' flag to the db, and sorting msgs and sets at load * time if things aren't sorted, but I'd like not to have to do that. */ /* * I have tried here to define data structures which can be used * while the catalog is on disk, and at runtime. * This is rather dangerous of course, but I think it can be done without * overly increasing the memory usage, and it makes loading and storing * somewhat simpler and less prone to accidents. I have also tried to * define on disk data structures which can be updated in place, so that * with a very large catalog (e.g. all system errors) you don't have to * load everything in memory in order to add or update one set. With * this in mind there are "invalid" flags which allow items to be * invalidated and thus not loaded at runtime. Note however that although * I pay attention to these when I load the DB, I do not currently use * them in gencat (it just reads everything into memory), so there is * no guarantee that this will all work. */ /* These should be publicly available */ #define MCLoadBySet 0 /* Load entire sets as they are used */ #define MCLoadAll 1 /* Load entire DB on catopen */ extern char *MCAppPath; /* Additional search path for strings (appended) */ /* * MCOffsetT - Union to handle both disk and runtime pointers */ typedef union { off_t off; char *str; void *ptr; struct _MCMsgT *msg; struct _MCSetT *set; } MCOffsetT; /* * MCMsgT - Message structure (disk and runtime) */ typedef struct _MCMsgT { long msgId; /* Id of this message */ MCOffsetT msg; /* Relative offset on disk or pointer in memory */ long invalid; /* Valid on disk, loaded in memory */ } MCMsgT; /* * MCSetT - Set structure (disk and runtime) */ typedef struct _MCSetT { long setId; /* Id of this set */ off_t nextSet; /* Offset of next set on disk */ union { off_t firstMsg; /* Offset to first Msg (while on disk) */ MCMsgT *msgs; /* Pointer to array of msgs (in mem, loaded) */ } u; MCOffsetT data; /* Offset to data, or pointer to data */ long dataLen; /* Length of data area on disk */ long numMsgs; /* Number of messages */ long invalid; /* Valid on disk, loaded in memory */ } MCSetT; /* * MCCatT - Runtime catalog pointer */ typedef struct { long loadType; /* How to load the messages (see MSLoadType) */ #ifdef HAVE_MMAP union { #endif int fd; /* File descriptor of catalog (if load-on-demand) */ #ifdef HAVE_MMAP caddr_t addr; /* Mmaped() address */ } u; off_t size; /* File size */ #endif long numSets; /* Number of sets */ MCSetT *sets; /* Pointer to the sets */ off_t firstSet; /* Offset of first set on disk */ } MCCatT; /* * MCHeaderT - Disk file header */ typedef struct { char magic[MCMagicLen]; /* Magic cookie "*nazgul*" */ long majorVer; /* ++ on incompatible changes */ long minorVer; /* ++ on compatible changes */ long flags; /* Informational flags */ long numSets; /* Number of valid Sets */ off_t firstSet; /* Offset of first set on disk */ } MCHeaderT; /* Some flags */ #define MC68KByteOrder 0x01 #define MCn86ByteOrder 0x02 #endif man-1.6g/catopen/0000755000175000001440000000000010301736016013444 5ustar lucifredusersman-1.6g/catopen/README0000644000175000001440000000244110301736016014325 0ustar lucifredusersIn the good old days, with libc 4.*.*, if NLSPATH was set to "/usr/lib/locale/%N/%L" and LANG to "fr", then catopen("man",0) would open /usr/lib/locale/man/fr. These days, with libc 5.0.9, catopen will fail because it does a call to setlocale, and if no locale has been setup, the C locale is assumed, independent of the LANG setting. In order to preserve the possibility to say "LANG=de man fstab" for systems where no locale has been set up, I enclose here the original version of catopen. Concerning correctness: as far as I know POSIX does not specify catopen(), and X/Open specifies catopen() without mentioning any relation to locale - indeed, catopen() predates locale. So, I think catopen() in libc 5.0.9 is broken. --- Time goes on, and I just looked at glibc-2.0.5. Its catgets() contains (at least) two bugs, and will dump core. One is fixed in RedHat's glibc-2.0.5c-10; I have submitted a fix for the other. With a fixed catgets() things will work correctly. However, glibc does a secure_getenv("NLSPATH"), which means that the setting of NLSPATH is not taken into account for programs that are sgid or suid. Thus, if you make man suid or sgid, and want to use message catalogues, you have to install them in the default place - on my system that is /usr/share/locale/%L/man where %L is $LANG. man-1.6g/catopen/catopen.c0000644000175000001440000001164310301736016015246 0ustar lucifredusers/* catopen.c - aeb, 960107 */ #include #include #include #include #include extern char *index (const char *, int); /* not always in */ extern char *my_malloc(int); /* in util.c */ #ifndef DEFAULT_NLSPATH # if __GLIBC__ >= 2 # define DEFAULT_NLSPATH "/usr/share/locale/%L/%N" # else # define DEFAULT_NLSPATH "/usr/lib/locale/%N/%L" # endif #endif static nl_catd my_catopenpath(char *name, char *path); static /* this source included in gripes.c */ nl_catd my_catopen(char *name, int oflag) { nl_catd fd; fd = catopen(name, oflag); if (fd == (nl_catd) -1 && oflag) { oflag = 0; fd = catopen(name, oflag); } if (fd == (nl_catd) -1) { char *nlspath; /* The libc catopen fails - let us see if we can do better */ /* The quotes below are from X/Open, XPG 1987, Vol. 3. */ /* * "In catopen(), the oflag argument is reserved for future use * and should be set to 0." */ if (oflag) return fd; /* only treat the known case */ /* * "If `name' contains a `/', then `name' specifies a pathname" */ if (index(name, '/')) { #ifdef __GLIBC__ /* glibc uses a pointer type for nl_catd, not a fd */ return fd; #else /* this works under libc5 */ return open(name, O_RDONLY); #endif } /* * "If NLSPATH does not exist in the environment, or if a * message catalog cannot be opened in any of the paths specified * by NLSPATH, then an implementation defined default path is used" */ nlspath = getenv("NLSPATH"); if (nlspath) fd = my_catopenpath(name, nlspath); if (fd == (nl_catd) -1) fd = my_catopenpath(name, DEFAULT_NLSPATH); } return fd; } /* * XPG 1987, Vol. 3, Section 4.4 specifies the environment * variable NLSPATH (example: * NLSPATH=/nlslib/%L/%N.cat:/nlslib/%N/%L * where %L stands for the value of the environment variable LANG, * and %N stands for the `name' argument of catopen(). * The environ(5) page specifies more precisely that * LANG is of the form * LANG=language[_territory[.codeset]] * and adds %l, %t, %c for the three parts of LANG, without the * _ or . and are NULL when these parts are missing. * It also specifies %% for a single % sign. * A leading colon, or a pair of adjacent colons, in NLSPATH * specifies the current directory. (Meant is that "" stands for "%N".) * */ static nl_catd my_catopenpath(char *name, char *nlspath) { int fd; nl_catd cfd = (nl_catd) -1; char *path0, *path, *s, *file, *lang, *lang_l, *lang_t, *lang_c; int langsz, namesz, sz, lang_l_sz, lang_t_sz, lang_c_sz; namesz = strlen(name); lang = getenv("LANG"); if (!lang) lang = ""; langsz = strlen(lang); lang_l = lang; s = index(lang_l, '_'); if (!s) { lang_t = lang_c = ""; lang_l_sz = langsz; lang_t_sz = lang_c_sz = 0; } else { lang_l_sz = s - lang_l; lang_t = s+1; s = index(lang_t, '.'); if (!s) { lang_c = ""; lang_t_sz = langsz - lang_l_sz - 1; lang_c_sz = 0; } else { lang_t_sz = s - lang_t; lang_c = s+1; lang_c_sz = langsz - lang_l_sz - lang_t_sz - 2; } } /* figure out how much room we have to malloc() */ sz = 0; s = nlspath; while(*s) { if(*s == '%') { s++; switch(*s) { case '%': sz++; break; case 'N': sz += namesz; break; case 'L': sz += langsz; break; case 'l': sz += lang_l_sz; break; case 't': sz += lang_t_sz; break; case 'c': sz += lang_c_sz; break; default: /* unknown escape - ignore */ break; } } else if (*s == ':' && (s == nlspath || s[-1] == ':')) { sz += (namesz + 1); } else sz++; s++; } /* expand the %L and %N escapes */ path0 = my_malloc(sz + 1); path = path0; s = nlspath; while(*s) { if(*s == '%') { s++; switch(*s) { case '%': *path++ = '%'; break; case 'N': strncpy(path, name, namesz); path += namesz; break; case 'L': strncpy(path, lang, langsz); path += langsz; break; case 'l': strncpy(path, lang_l, lang_l_sz); path += lang_l_sz; break; case 't': strncpy(path, lang_t, lang_t_sz); path += lang_t_sz; break; case 'c': strncpy(path, lang_c, lang_c_sz); path += lang_c_sz; break; default: /* unknown escape - ignore */ break; } } else if (*s == ':' && (s == nlspath || s[-1] == ':')) { strncpy(path, name, namesz); path += namesz; *path++ = ':'; } else *path++ = *s; s++; } *path = 0; path = path0; while(path) { file = path; s = index(path, ':'); if (s) { *s = 0; path = s+1; } else path = 0; fd = open(file, O_RDONLY); if (fd != -1) { /* we found the right catalog - but we don't know the type of nl_catd, so close it again and ask libc */ close(fd); cfd = catopen(file, 0); break; } } free(path0); return cfd; } man-1.6g/misc/0000755000175000001440000000000010464504025012751 5ustar lucifredusersman-1.6g/misc/man-preformat.c0000644000175000001440000002660010301736016015666 0ustar lucifredusersFrom bryanh@giraffe.giraffe.netgate.net Sat Nov 16 09:32:59 1996 Received: from giraffe.giraffe.netgate.net by hera.cwi.nl with SMTP id ; Sat, 16 Nov 1996 09:32:53 +0100 Received: (from bryanh@localhost) by giraffe.giraffe.netgate.net (8.6.11/8.6.9) id AAA00639; Sat, 16 Nov 1996 00:32:46 -0800 Date: Sat, 16 Nov 1996 00:32:46 -0800 Message-Id: <199611160832.AAA00639@giraffe.giraffe.netgate.net> From: bryanh@giraffe.netgate.net (Bryan Henderson) To: Andries.Brouwer@cwi.nl In-Reply-To: <9611151043.AA01606=aeb@zeus.cwi.nl> (Andries.Brouwer@cwi.nl) Subject: Re: cross references for Linux man page package Status: RO >I hope a shell script or perl script? Well, no. Shell scripts are too hard and I don't know perl. So it's in tortured C. It also needs the shhopt package (from sunsite), which effortlessly parses a command line, but not many people know about it. So maybe this isn't up to distributions standards. Here it is anyway. You invoke it just like this: preformat ls.1 Or for a whole directory, preformat * Or if you keep preformatted man pages elsewhere than /usr/man/preformat/catN, preformat --mandir=/usr/local/doc/package_xyz/man * It makes the target directories where necessary and groffs and gzips the man pages into them. If it finds a man page that looks like ".so whatever", it just does a symbolic link to the base file instead. -------------------------------------------------------------------------- #include #include #include #include #include #include #include #define TRUE 1 #define FALSE 0 void compute_mkdir_command(const char *installed_path, char *mkdir_cmd, const int mkdir_cmd_l) { /*---------------------------------------------------------------------------- Figure out what, if any, mkdir command we need to create the directories in which to put the file whose full pathname is . ----------------------------------------------------------------------------*/ char *slash_p; /* pointer to last slash in installed_path. */ char need_dir[strlen(installed_path)+1]; /* pathname of directory which must exist so we can install the man page into it. If we're just defaulting to the current directory, then this is a null string. */ slash_p = strrchr(installed_path, '/'); if (slash_p == NULL) need_dir[0] = '\0'; else { int need_dir_l; /* length for need_dir */ need_dir_l = slash_p - installed_path + 1; /* includes slash */ strncpy(need_dir, installed_path, need_dir_l); need_dir[need_dir_l] = '\0'; /* need that string terminator */ } if (need_dir[0] == '\0') mkdir_cmd[0] = '\0'; else { struct stat stat_buf; /* results of a stat system call */ int rc; /* return code from stat() */ rc = stat(need_dir, &stat_buf); if (rc == 0) mkdir_cmd[0] = '\0'; else sprintf(mkdir_cmd, "umask 002;mkdir --parents %s; ", need_dir); } } void extract_dot_so_stmt(const char *man_page_source_path, char *dot_so_stmt, const int dot_so_stmt_l) { FILE *source_file; source_file = fopen(man_page_source_path, "r"); if (source_file != NULL) { char buffer[200]; /* First line of file */ fgets(buffer, sizeof(buffer), source_file); fclose(source_file); if (strncmp(buffer, ".so ", 4) == 0) snprintf(dot_so_stmt, dot_so_stmt_l, "%s", buffer); else dot_so_stmt[0] = '\0'; } else dot_so_stmt[0] = '\0'; } void format_page(const char *installed_path, const char *man_page_source_path, const char *mkdir_cmd, int *rc_p) { /*---------------------------------------------------------------------------- Format and compress the groff source in file and put the output in . Execute the possible mkdir command too. -----------------------------------------------------------------------------*/ char shell_command[100+strlen(installed_path) + strlen(man_page_source_path) + strlen(mkdir_cmd)]; /* A pipeline we have the shell execute */ int rc; /* local return code */ snprintf(shell_command, sizeof(shell_command), "%sgroff -Tlatin1 -mandoc %s | gzip >%s", mkdir_cmd, man_page_source_path, installed_path); printf("%s\n", shell_command); rc = system(shell_command); if (rc != 0) { fprintf(stderr, "groff pipeline failed, rc = %d\n", rc); *rc_p = 10; } else { *rc_p = 0; chmod(installed_path, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH ); } } void create_symlink(const char *installed_path, const char *dot_so_stmt, const char *mkdir_cmd, int *rc_p) { /*---------------------------------------------------------------------------- Create a symlink from to the installed name of the man page identified by . We make some large assumptions about the .so statement, so this may return gibberish. Execute the possible mkdir command too. -----------------------------------------------------------------------------*/ char shell_command[100+strlen(mkdir_cmd) + strlen(installed_path) + strlen(dot_so_stmt)]; /* A pipeline we have the shell execute */ int rc; /* local return code */ char *slash_p; /* pointer to last slash in .so statement, or NULL */ slash_p = strrchr(dot_so_stmt, '/'); if (slash_p == NULL) { fprintf(stderr, "Cannot find the base filename " "in the .so statement '%s'. There is no slash ('/').\n", dot_so_stmt); *rc_p = 15; } else if (*(slash_p+1) == '\0') { fprintf(stderr, "Cannot find the base filename " "in the .so statement '%s'. There is nothing after the " "last slash ('/').", dot_so_stmt); *rc_p = 13; } else { char link_contents[200]; strncpy(link_contents, slash_p+1, sizeof(link_contents)-10); if (link_contents[strlen(link_contents)-1] == '\n') link_contents[strlen(link_contents)-1] = '\0'; strcat(link_contents, ".gz"); sprintf(shell_command, "%sln --symbolic %s %s", mkdir_cmd, link_contents, installed_path); printf("%s\n", shell_command); rc = system(shell_command); if (rc != 0) { fprintf(stderr, "ln pipeline failed, rc = %d\n", rc); *rc_p = 10; } else *rc_p = 0; } } void install_it(char *installed_path, char *man_page_source_path, int *rc_p){ /*---------------------------------------------------------------------------- Take the man page groff source in file , format it, compress it, and place it in file . Special case: If the file appears to be just a groff .so statement, don't format it; instead, create a symbolic link that will do the same thing as formatting the .so. A .so statement looks like: .so man3/basepage.3 and means to include all the groff source from the file man3/basepage.3. So we just create a symbolic link to cat3/basepage.3.gz and save some redundancy. Make any directories necessary to create file . -----------------------------------------------------------------------------*/ char mkdir_cmd[30 + strlen(installed_path)]; /* A mkdir shell command to create the necessary directories. Null string if no directory needs creating. */ char dot_so_stmt[200]; /* The .so statement from the man page source, if the man page appears to be one that consists solely of a .so statement. If it doesn't appear so, this is an empty string. */ /* We have to remove the file first, because it may be a symbolic link for the purposes of having the same man page come up for multiple commands. If we just overwrite, we will be replacing the base file, which we don't want to do. */ unlink(installed_path); compute_mkdir_command(installed_path, mkdir_cmd, sizeof(mkdir_cmd)); extract_dot_so_stmt(man_page_source_path, dot_so_stmt, sizeof(dot_so_stmt)); if (*dot_so_stmt != '\0') create_symlink(installed_path, dot_so_stmt, mkdir_cmd, rc_p); else format_page(installed_path, man_page_source_path, mkdir_cmd, rc_p); } char * just_filename(const char *full_path) { /*---------------------------------------------------------------------------- Return pointer into of start of filename part. Return NULL if pathname ends with a slash (i.e. it's a directory). -----------------------------------------------------------------------------*/ char *slash_p; /* Pointer to last slash in */ char *filename; /* Our eventual result */ slash_p = strrchr(full_path, '/'); if (slash_p == NULL) filename = (char *) full_path; else if (*(slash_p+1) == '\0') { filename = NULL; } else filename = slash_p+1; return(filename); } int main(int argc, char *argv[]) { char *mandir; /* The directory in which the formatted man pages are to go. This is the parent directory of the cat1, cat2, etc. directories. */ char default_mandir[] = "/usr/man/preformat"; /* default value for mandir, if user doesn't give --mandir option */ int error; /* boolean: we've encountered an error */ int i; /* local for loop index */ const optStruct option_def[] = { { 0, (char *) "mandir", OPT_STRING, &mandir, 0}, { 0, 0, OPT_END, 0, 0} }; int argc_parse; /* argc, except we modify it as we parse */ char **argv_parse; /* argv, except we modify it as we parse */ mandir = default_mandir; /* initial assumption - default */ argc_parse = argc; argv_parse = argv; optParseOptions(&argc_parse, argv_parse, option_def, 0); /* uses and sets argc_parse, argv_parse. */ /* sets mandir (via option_def) */ error = FALSE; /* no error yet */ for (i=1;i <= argc_parse-1 && !error; i++) { /* Do one of the man pages specified in the program arguments */ char *man_page_source_path; /* string: pathname of man page source file we're supposed to install */ char *man_page_source_fn; /* pointer within pathname to filename */ char *dot_p; /* pointer within filename to last dot */ char man_section; /* man section number to which this page belongs */ char installed_path[100]; /* full pathname for installed man page file */ man_page_source_path = argv_parse[i]; man_page_source_fn = just_filename(man_page_source_path); if (man_page_source_fn == NULL) fprintf(stderr, "Need filename at the end of pathname: %s\n", man_page_source_path); else { dot_p = strrchr(man_page_source_fn, '.'); if (dot_p == NULL) { fprintf(stderr, "Invalid source file -- contains no period: %s\n", man_page_source_fn); } else if (*(dot_p+1) == '\0') { fprintf(stderr, "Invalid source file -- need at least one character " "after the last period: %s\n", man_page_source_fn); } else { int rc; /* local return code */ /* Filename has a dot with at least one character after it. Manual section number is the character right after that dot. */ man_section = *(dot_p+1); sprintf(installed_path, "%s/cat%c/%s.gz", mandir, man_section, man_page_source_fn); install_it(installed_path, man_page_source_path, &rc); if (rc != 0) error = TRUE; } } } return(error); } man-1.6g/misc/README0000644000175000001440000000021010464504025013622 0ustar lucifredusersHere a contributed program to preformat man pages. Untested. Comments, suggestions and patches are welcome. flc, . man-1.6g/misc/manlint0000644000175000001440000001567210301736016014346 0ustar lucifredusers#!/usr/bin/perl -w # manlint - report "errors" in man page(s). # USAGE: # manlint [list of files to check] # # EXAMPLE: # manlint /usr/man/man*/*.* | less # An error is anything not known to be a safe construct in a man page; # see man(7) for more information. # Currently it's excessively paranoid, but that's the point -- this # program assumes there's a problem, and if it isn't we can add that to the # ruleset so that what's safe is explicitly spelled out. # Currently this program only examines tmac.an based pages, the normal # kind encountered in Linux. This is different than the BSD manddoc format, # which is used by a number of man pages. # (C) 1999 David A. Wheeler (dwheeler@ida.org) # 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 the 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA require 5.002; # Requires Perl 5.002 because functions are prototyped. # First, set up configuration. $debug = 0; $errs = $totalerrs = 0; $goodfiles = $badfiles = $skipfiles = 0; $filename = ''; # Allow options for small or large safe set; just printing if a file fails # instead of detail; auto-skip BSD files. # This is a list of "safe" macros, with their value being the # maximum number of allowed parameters (-1 = any, 0=no parameters allowed) %safemacros = ( 'TH' => 5, # Font Control: 'B' => -1, 'BI' => -1, 'BR' => -1, 'I' => -1, 'IB' => -1, 'IR' => -1, 'RB' => -1, 'RI' => -1, 'SB' => -1, 'SM' => -1, # tmac.an other macros: 'SH' => 1, 'LP' => 0, 'P' => 0, 'PP' => 0, 'RS' => 1, 'RE' => 0, 'HP' => 1, 'IP' => 2, 'TP' => 1, 'DT' => 0, 'PD' => 1, 'SS' => 1, # We'll allow IX (indexing). 'IX' => -1, # I'm adding the UR, UN, and UE macros that will permit embedded URIs. 'UR' => 1, 'UN' => 1, 'UE' => 0, # allowed troff macros '\\"' => -1, # troff comments 'ps' => 1, # Point size 'ft' => 1, # Font commands (not recommended, may be ignored in some cases) 'hy' => 1, # Hyphenation (probably ignored in translation) 'bp' => 0, # Force page break; optional parameter forbidden. 'ne' => 1, # Need lines (likely to be ignored in translation) 'br' => 0, 'nf' => 0, # No-fill; insert breaks at end of each line. 'fi' => 0, 'ig' => 1, '.' => 0, # standard end-of-ignore/end-of-definition. 'ce' => 1, # Center next N lines 'ad' => 1, 'na' => 0, # Will probably need to handle some if. 'if' => -1, # LIMITED VERSION. 'ie' => -1, # LIMITED VERSION. 'el' => -1, 'so' => 1, # Handle 'so' for shared man pages 'sp' => 1, # Vertical Space - only permit positive values. 'de' => 1, # Handling 'macro define' is a pain, but many pages require it. 'ds' => -1, # Allow string defines. 'in' => 1, # Require that every indent be paired with a negative indent. 'ti' => 1, # Temporary indent may be ignored 'hy' => 1, # Hypenation almost certainly ignored by anyone else. 'nh' => 1, # Again, hyphenation likely ignored. 'tr' => 1, # Translations limited, see below. ); # Allowed parameters for the ft (font) troff command. %allowed_ft_parameter = ( '1' => 1, '2' => 1, '3' => 1, '4' => 1, 'R' => 1, 'I' => 1, 'B' => 1, 'P' => 1, 'CW' => 1, '' => 1, ); %allowed_tr = ( '\\(ts"' => 1, '\\(is\'' => 1, '\\(if`' => 1, '\\(pd"' => 1, '\\(*W-|\(bv\*(Tr' => 1, '\\*(Tr' => 1, ); sub problem($) { # Report a problem, if you should. my $message = shift; print "${ARGV}: $message\n"; $errs++; } sub clean_state { %defined_macros = (); $is_skipped = 0; } sub process_line { # Process line already read in $_ (default input line). my $macro; my $parameters; if (m/^[.']\s*([^\s]+)\s*(.*)?/) { $macro=$1; $parameters=$2; $macro =~ s/\s//g; print "Found macro: #${macro}#\n" if $debug; if ($macro =~ m/Dd/) { # Is this the BSD macro set and not a tmac.an set? problem("Uses BSD mandoc conventions instead of tmac.an"); $errs--; # Patch up error count. # print "${ARGV}: Uses BSD mandoc conventions instead of tmac.an.\n"; close(ARGV); # Skip the rest of this file. $is_skipped = 1; return; } if ($macro =~ m/\\"/) {return;} # Skip troff comments. if (exists($defined_macros{$macro})) { return; # ??? Should examine the macro parameters. } if (exists($safemacros{$macro}) ) { # ??? Check parameter count. # ??? Check that .TH is the first macro (note: bash.1, etc., break this) if ( ($macro eq 'if') || ($macro eq 'ie' )) { # Only permit checking 't' or 'n' for now. if ($parameters =~ m/^[tn]\s/) { $_ = $parameters; s/^[tn]\s+//; process_line(); # Re-examine line without the if statement. } else { problem("unsafe use of if/ie"); } # ??? sp: only no-parameter or positive values. } elsif ($macro eq 'de') { $parameters =~ m/^([^\s]+)/; $is_defining = $1; $defined_macros{$is_defining} = 1; } elsif ($macro eq 'so') { $parameters =~ m/^([^\s]+)/; $new_file = $1; while (<$new_file>) { process_line(); } } elsif (($macro eq 'ft') && (defined($parameters)) && (! exists($allowed_ft_parameter{$parameters}))) { problem("forbidden ft parameter $parameters"); } elsif (($macro eq 'tr') && (defined($parameters)) && (! exists($allowed_tr{$parameters}))) { problem("forbidden tr parameter $parameters"); } # ??? 'in': Require that every indent be paired with a negative indent. # ??? For macros with text after them, check their text's escapes. } else { problem("unsafe macro $macro"); } } else { # ??? Regular text; check escape clauses. } } # Main loop: Process files, looking for errors. clean_state(); while (<>) { if ($ARGV ne $filename) { print "Processing $ARGV; up to now good=$goodfiles bad=$badfiles skip=$skipfiles\n"; $filename=$ARGV; } process_line(); } continue { if (eof) { # End of processing this file. close ARGV; # Perl magic to get line #s to be accurate. $totalerrs += $errs; if ($errs) { $badfiles++ } else { if ($is_skipped) {$skipfiles++} else {$goodfiles++}; } $errs = 0; clean_state(); } } print "Number of good files = $goodfiles\n"; print "Number of bad files = $badfiles\n"; print "Number of skipped files = $skipfiles\n"; exit $errs; # ??? Handle .so better (esp. the error messages) # currently error messages don't report the traceback & they should. man-1.6g/misc/manlint.10000644000175000001440000000505410464503673014511 0ustar lucifredusers'\" .\" (C) Copyright 1999 David A. Wheeler (dwheeler@ida.org) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Modified Wed Jul 14 23:00:00 1999 by David A. Wheeler (dwheeler@ida.org) .TH MANLINT 1 "14 July 1999" "Linux" "Linux Programmer's Manual" .SH NAME manlint \- program to report errors in man or mdoc pages .SH SYNOPSIS .BR manlint " [ " options " ] [ " "list of files" " ] " .SH DESCRIPTION manlint is a program that identifies lint (errors) in man or mdoc page formatting, similar to a spelling checker for ordinary text. Manlint has a list of permitted macros and escape sequences, and reports the use of any macro or escape sequence not in the permitted list. This permitted list includes all the macros defined in .BR man (7), .BR mdoc (7), and the safe subset of troff defined in .BR man (7). manlint also checks for conformance to various rules. .PP If a man page passes manlint, it should be widely portable, even to tools such as .BR man2html (1) which don't implement all of troff. .PP If a list of files is omitted, the standard input is used. A file by the name "-" is interpreted as the standard input. .SH BUGS Currently the program is very incomplete. It doesn't have any options, it doesn't actually check escape sequences, and it can't handle mdoc format. Still, it's clear what it should do, and even in its current form it can find lots of problems in existing man files. .SH AUTHOR David A. Wheeler (dwheeler@ida.org) was the original author of .BR "manlint" . Federico Lucifredi is the current maintainer. .SH "SEE ALSO" .BR man (7), .BR mdoc (7). man-1.6g/misc/locales/0000755000175000001440000000000010464172623014400 5ustar lucifredusersman-1.6g/misc/locales/it/0000755000175000001440000000000010464172623015014 5ustar lucifredusersman-1.6g/misc/locales/it/manlint.10000644000175000001440000000547610464170017016547 0ustar lucifredusers'\" .\" (C) Copyright 1999 David A. Wheeler (dwheeler@ida.org) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Modified Wed Jul 14 23:00:00 1999 by David A. Wheeler (dwheeler@ida.org) .\" .\" Traduzione da man-1.6d di Giulio Daprel .\" Revisione a cura di Vieri Giugni .\" giugno 2006 .\" .TH MANLINT 1 "14 luglio 1999" "Linux" "Linux Programmer's Manual" .SH NOME manlint \- programma per identificare errori di formattazione in pagine man o mdoc .SH SINTASSI .BR manlint " [ " options " ] [ " "list of files" " ] " .SH DESCRIZIONE manlint un programma che identifica lint (errori) nella formattazione di pagine man o mdoc page, in modo simile a quello di un controllo ortografico per un testo ordinario. Manlint ha un elenco di macro e sequenze di escape ammesse, e segnala l'uso di qualunque macro o sequenza di escape che non sia nell'elenco di riferimento. Questo elenco di riferimento include tutte le macro definite in .BR man (7), .BR mdoc (7), e un sottoinsieme sicuro di troff definito in .BR man (7). manlint inoltre verifica la conformit alle varie regole. .PP Se una man page supera la verifica di manlint, dovrebbe risultare ampiamente portabile, anche con strumenti come .BR man2html (1) che non implementano completamente troff. .PP Se non viene indicato un elenco di file, viene letto lo standard input. Un file con il nome "-" viene interpretato come standard input. .SH BUG Attualmente il programma alquanto incompleto. Non ha nessuna opzione, non verifica le sequenze di escape, e non in grado di gestire il formato mdoc. Inoltre, chiaro cosa deve fare, e anche nella sua forma attuale pu trovare tantissimi problemi nei file man esistenti. .SH AUTORE David A. Wheeler (dwheeler@ida.org) .SH "VEDERE ANCHE" .BR man (7), .BR mdoc (7). man-1.6g/TODO0000644000175000001440000000152611507436261012517 0ustar lucifredusersResuming regular releases after Grad School hiatus. Improvements and reviews of internationalization/localization. ----> The localization and platform support are being addressed in the upcoming minor releases. Comments and patches welcome. ----> UTF-8 support is in the works as well. Comments and patches welcome. hman does not use LANG; review coherence of ENV use. Review support under HP-UX, Irix, Solaris, AIX, OS-X and other *NIXes. Add support for missing macros in man2html. Are there security problems in the present setup? ----------------------------------------------------------- MANPL gives page length - undocumented; may disappear again [But brobison@ecst.csuchico.edu likes it and says: it allows one to do something like: export LINES export MANPAGER='less -i' export MANPL='$(perl -e "print ($LINES - 1) / 6, \"i\";")' ] man-1.6g/LSM0000644000175000001440000000254211507440322012375 0ustar lucifredusersBegin4 Title: man Version: 1.6g Entered-date: 2010-12-31 Description: * man is a man pager. It has support for compressed pages (both man pages and cat pages), and for locale ($LANG) and for message catalogs ($LC_MESSAGES). It will format files given explicitly (man ./foo.man.gz). It conforms to FSSTND or FHS, and handles stray cats. * man2html is a utility that converts man pages to html * hman is a man browser that uses your favorite browser. For use with lynx, no http daemon is required. Keywords: man manpath apropos whatis makewhatis man.conf man2html man2dvi hman manual pager browser keyword search Keywords: man, man2html, hman, whatis, apropos, man2dvi Author: John Eaton, Richard Verhoeven, Michael Hamilton, Andries Brouwer, Federico lucifredi (flucifredi@acm.org) Maintained-by: Federico Lucifredi (flucifredi@acm.org) Primary-site: http://primates.ximian.com/~flucifredi/man/ 251k man-1.6g.tar.gz 1378 man-1.6g.lsm Alternate-site: http://www.people.fas.harvard.edu/~lucifred/man/ Alternate-site: ftp://metalab.unc.edu/pub/Linux/apps/doctools/man/ Copying-policy: Copyright by authors. Distributable under GPL. End man-1.6g/README.IRIX0000644000175000001440000000133710301736016013451 0ustar lucifredusersThe NLSPATH / locale stuff doesnt work under IRIX. (Patches are welcome.) --------------------------------------------------------------- It is reported that IRIX uses /usr/share/man/[apu]_man/man[1-8] corresponding to admin, programmer and user pages. One finds files like /usr/share/catman/u_man/cat1/ls.z Maybe MAN_IRIX_CATNAMES=1 in the environment and MANPATH /usr/share/man/a_man /usr/share/catman/a_man MANPATH /usr/share/man/p_man /usr/share/catman/p_man MANPATH /usr/share/man/u_man /usr/share/catman/u_man in the man.conf file will suffice to make this man work in an IRIX environment. Reports on success/failure are welcome. --------------------------------------------------------------- flucifredi@acm.org man-1.6g/version0000644000175000001440000000001110741005524013414 0ustar lucifredusersman-1.6g man-1.6g/HISTORY0000644000175000001440000001237411507436756013127 0ustar lucifredusersman-1.6g - 'Murcielago' - Fixed "man cut cut" throwing an error (Fedora #542852) (Ivana Varekova, flc). - Corrections to the man.man German locale translation (Stefan Bacher). - flawed treatment of Awk in configure script (Elias Pipping). - announcement mailing list set up (man-announce@googlegroups.com) (flc). - Minor fix to LZMA support (Per Øyvind Karlsen - Mandriva team). - Added XZ compression support (Per Øyvind Karlsen). - Improvements to extension handling (R. Urban, V. Zell - CYGWIN project). - Releases now gpg signed. Validation instructions on primary distribution site (flc). - DOAP.rdf enabled on primary distribution site (flc). - EXPERIMENTAL: SPDX.rdf enabled on primary distro site (flc). - Changes to LSM file (flc). man-1.6f - 'Flying Fox' - Fixed incorrect shell-unsafe verification alphabet missing ampersand simbol. This was being caught by another part of the code but yet still a bug (flc). - Unified Posix locale to the C one (J. Pello, flc). - Additional checks for defined but empty PAGER environment variable (flc). - Don't update whatis files on read-only partitions (Mike Frysinger). - Added bzip support to man2dvi (Charles Clément). - Added bzip support to man2html (Fabiano Castro Pereira). - EXPERIMENTAL: added LZMA suport to man (Per Øyvind Karlsen - Mandriva team). - EXPERIMENTAL: added LZMA suport to makewhatis (Per Øyvind Karlsen, flc). - README updates: cygwin (Volker Zell). - Added "MANUAL SECTIONS" header to man.man (flc). - Fixes to avoid shebang mangling in generated scripts (Mike Frysinger). - makewhatis fix allowing spaces in pathnames for CYGWIN project (Volker Zell). - Minor corrections to the German message catalog (Volker Zell). - Updated Dutch Message catalog (Benno Schulenberg). - Minor doc changes (flc). man-1.6e - 'Dracula' - Sections used by makewhatis set via environment variable MANSECT, falling back to man.conf's MANSECT setting as man does (Mike Frysinger). - Removed use of implicit prototypes - besides being sloppy, it leads to issues on 64 bit platforms (Mike frysinger, flc). - Building will now honor pre-existing LDFLAGS if set (Mike Frysinger). - Updated Italian man pages (Giulio Daprelá). - Updated Spanish man pages (B. Albiñana, flc). - Corrected a minor bug in makewhatis' tempdir generation (flc). - EXPERIMENTAL: support for Plan 9 rc shell lists (Michael Haardt). - Overdue LSM v4 format compliance (flc). - Minor corrections and cleanup (flc). man-1.6d - Fixed freeing of unallocated memory in '-K' under unsafe flag (flc). - Corrected a bug introduced in 1.6c makewhatis - thanks to the packagers that promptly pointed it out (flc). - corrected off-by-one in LANG splitting code (no security aspect) (flc). - added support for DESTDIR in man2html's Makefile (Claudio Fontana). - Fixed -D option (flc). - Header fix for variable header location of TIOCGWINSZ (Eugene Kotlyarov). - Corrected erroneous encoding of FR locale man pages translation (flc). - EXEEXT and DESTDIR fixes for gencat (Volker Zell). - Minor correction of CYGWIN support (Volker Zell). - Updated Polish message catalog and select man pages (M. Garski). - Minor corrections to man pages, and the German message catalog (flc, Volker Zell, others). - Constricted locale settings for gencat (Fedora Project). - Corrections to makewhatis exit codes and signal handling (flc). - Fixes in man2html parsing (Fedora Project). - Minor additional corrections (flc). man-1.6c - Corrected missing format string, but no privilege escalation was involved (flc, Ville-Skyttä). - pscan format string audit run - nothing further found (flc). - Updated Bulgarian locale man pages translation and message catalog (Alexander Shopov). - makewhatis and other minor changes to support BG locale (Alexander Shopov, flc). - Updated Italian locale message catalog translation (flc). - Updated French man pages, with new man2html page (Alain Portal). man-1.6b - Additional changes for parallel Make (Octavio Ruiz). - New French locale man pages translation (Alain Portal). - New French locale message catalog translation (Alain Portal). - Minor changes in manual pages (Giorgos Keramidas, flc). - Minor corrections in the docs (flc). man-1.6a - Fixes to support parallel Make (Mike Frysinger). - Fixes in mess.en message catalog (Martin von Gagern). - Corrections and updates to the manual (flc). man-1.6 - New Maintainer Federico Lucifredi (flucifredi@acm.org). - Ability to hand HTML man pages off to a browser added (Eric S. Raymond). man-1.5p - Chinese messages (CHAO, Wei-Lun) - unused - Russian messages - Set DEFAULT_NLSPATH to "/usr/share/locale/%L/%N" - Prefer LC_MESSAGES over LANG - Don't (potentially) use a pager with apropos and whatis - Superfluous security fix - Filter .iX macros out when constructing whatis database - Allow globbed MANPATH items like /opt/*/man - Return a correct status - Continue search when an appropriate page was found to be inaccessible man-1.5o2: - Fixed man -k segfault - Allow man -k "text with spaces" man-1.5o1: - Fixed man2html array overflow man-1.5o: - Polish messages, non-dummy codesets (Jakub Bogusz ) - CYGWIN fix for perl manpages (with :: in filename) - Fix for certain awk versions in mansec (NISHIMURA Daisuke) - When asked for a nonexisting page in section 1p, do not also try section 1 man-1.6g/DOAP.rdf.xml0000644000175000001440000000526111507454031014041 0ustar lucifredusers man 2010-09-01 C, Shell All Linux distributions, commercial *NIX derivatives (including OS-X), *BSD, Windows with Cygwin, Plan 9 The man suite: man, man2html, hman, whatis, apropos, man2dvi man is a man pager. It has support for compressed pages (both man pages and cat pages), and for locale ($LANG) and for message catalogs ($LC_MESSAGES). It will format files given explicitly (man ./foo.man.gz). It conforms to FSSTND or FHS, and handles stray cats. * man2html is a utility that converts man pages to html * hman is a man browser that uses your favorite browser. For use with lynx, no http daemon is required. Keywords: man manpath apropos whatis makewhatis man.conf man2html man2dvi hman manual pager browser keyword search. Federico Lucifredi Latest Stable Release: 1.6g 2010-12-31 1.6g 1.6f 2007-12-31 1.6f 1.6e 2006-11-20 1.6e 1.6d 2006-6-16 1.6d 1.6c 2006-1-23 1.6c 1.6b 2005-9-19 1.6b 1.6a 2005-8-21 1.6a 1.6 2006-6-20 1.6 man-1.6g/SPDX.rdf.xml0000644000175000001440000000340711436604335014101 0ustar lucifredusers SPDX-1.0 c97012607ed9d75a6eee7e66d257a99a8ed86918 Man Maintainer (Federico Lucifredi) 2010-09-15T18:31:00Z Man 1.6g man-1.6g.tar.gz Man Maintainers (Federico Lucifredi, Andries Brouwer, Zeyd M. Ben-Halim, and John Eaton) and Contributors (Richard Verhoeven, Eric S. Raymond, Michael Hamilton, and others) 2010 The man suite: man, man2html, hman, whatis, apropos, man2dvi. man is a man pager. It has support for compressed pages (both man pages and cat pages), and for locale ($LANG) and for message catalogs ($LC_MESSAGES). It will format files given explicitly (man ./foo.man.gz). It conforms to FSSTND or FHS, and handles stray cats. * man2html is a utility that converts man pages to html * hman is a man browser that uses your favorite browser. For use with lynx, no http daemon is required. Keywords: man manpath apropos whatis makewhatis man.conf man2html man2dvi hman manual pager browser keyword search.