diff options
Diffstat (limited to 'Build/source')
34 files changed, 0 insertions, 18442 deletions
diff --git a/Build/source/texk/README b/Build/source/texk/README index 3c0638647f5..e0a3ec98f3f 100644 --- a/Build/source/texk/README +++ b/Build/source/texk/README @@ -24,10 +24,6 @@ afm2pl 0.7.03 - ok 28apr08 bibtex8 - ? -chktex - ok 12apr09 - http://mirror.sourceshare.org/savannah/chktex/chktex-1.6.3.tar.gz - http://savannah.nongnu.org/download/chktex/chktex-1.6.3.tar.gz - cjkutils - Werner Lemberg ctan diff --git a/Build/source/texk/chktex/COPYING b/Build/source/texk/chktex/COPYING deleted file mode 100644 index 10d1e0b82d3..00000000000 --- a/Build/source/texk/chktex/COPYING +++ /dev/null @@ -1,325 +0,0 @@ - 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. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) 19yy <name of author> - - 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. - - <signature of Ty Coon>, 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. diff --git a/Build/source/texk/chktex/ChangeLog b/Build/source/texk/chktex/ChangeLog deleted file mode 100644 index bc3a30a1444..00000000000 --- a/Build/source/texk/chktex/ChangeLog +++ /dev/null @@ -1,7 +0,0 @@ -2008-01-31 Peter Breitenlohner <peb@mppmu.mpg.de> - - Convert from autoconf-2.13 to autoconf-2.59+: - * Makefile.in: Add @configure_input@ line. - * configure.in: Autoupdated. - * configure: Regenerated (autoconf). - diff --git a/Build/source/texk/chktex/ChkTeX.readme b/Build/source/texk/chktex/ChkTeX.readme deleted file mode 100644 index 9d9dc96ae3c..00000000000 --- a/Build/source/texk/chktex/ChkTeX.readme +++ /dev/null @@ -1,515 +0,0 @@ -Short: v1.5. Finds typographic errors in LaTeX -Author: <jensthi@ifi.uio.no> (Jens T. Berger Thielemann) -Uploader: <jensthi@ifi.uio.no> (Jens T. Berger Thielemann) -Type: text/tex -Replaces: text/tex/ChkTeX.lha -Version: 1.5 -URL: http://www.ifi.uio.no/~jensthi/chktex/ -Porting: <bjort@ifi.uio.no> (Bjørn Ove Thue) [MSDOS] - <fritsch@hmi.de> (Wolfgang Fritsch) [OS/2] - - - ##### ### ### ######## ### ## - ### ## ## ## ## ## # - @@ @@ @@@ @@ @@ @@ ####### @@ @ - @@ @@@ @@ @@ @@ @@ ## # @@ - && && && &&&& && @@ & && - &&& && && && && && && @@@@ & && - %%%%% %%% %%% %%% %%% %% && %%% %%% v1.5 - && & - %%%%%%% - - Introduction - - This program has been written in frustration because some constructs - in LaTeX are sometimes non-intuitive, and easy to forget. It is _not_ - a replacement for the built-in checker in LaTeX; however it catches - some typographic errors LaTeX oversees. In other words, it is Lint for - LaTeX. Filters are also provided for checking the LaTeX parts of CWEB - documents. - - It is written in ANSI C and compiles silently under GCC using ``-Wall - -ansi -pedantic'' and almost all warning flags. This means that you - can compile & use the program on your favorite machine. Full source - included. - - The program also supports output formats suitable for further - processing by editors or other programs, making errors easy to cycle - through. Software is provided for beautifully interfacing against the - AUC-TeX Emacs mode, CygnusED, GoldEd and various Amiga message - browsers. - - The program itself does not have any machine requirements; Amiga, - MSDOS and OS/2 binaries are available. Of course, you'll need ARexx - and ScMsg or VBrowse to benefit from the ARexx scripts. - - Features - - ChkTeX begins to get quite a few bells & whistles now. However, you - should be aware of that in most cases, all this is transparent to the - user. As you will see, ChkTeX offers the ability to adapt to many - environments and configurations. - -New features - - Modifications and additions since v1.4: - - Program - - Modifications to the executable itself: - * As usual, a few more warnings: - + No space or similar in front/after parenthesis. - + Demands a consistent quote style. - + Double spaces in input which will not be rendered as one. - + Punctuation malplaced regarding to math mode. - + Warns about TeX primitives. - + Space in front of footnotes. - + Bogus \left and \right commands. - * The abbreviation recognizer has (for the last time?) been - redesigned. We now produce far less false warnings, catch more - cases and do all this faster than before. Seems like a win. - Done much of the same with the italic correction detection part, - too... - * Some bugs have been silently fixed. Hot spots in the program have - been optimized; in certain cases this in fact doubles the speed! - Along with this goes more code elegance and utilization of macro - processing and the C language. Take a look at ``Resource.[ch]''. - * It's possible to specify separate output-formats depending on - whether you are sending the output to a file/pipe or to a - terminal. - * Column positions are finally correct; we now expand tabs - correctly. - * ChkTeX will now recursively search for \input'ed files, both in - the document and on the commandline. See the ``chktexrc'' file for - more info. - * The debug switch is now more intelligent; if you wish to hack a - bit on ChkTeX for yourself, it is possible to produce selective - debugging output. The feature can also be disabled altogether. - * MS-DOS and OS/2 version of the program is now more flexible and - well-behaved, thanks to Gerd Böhm. - * You may now say ``-wall'' to make all messages warnings, and turn - them on. - * Uses termcap on UNIX boxes; this should ensure that ``-v2'' (or - more precisely: ``%i'' and ``%I'') works regardless to what - terminal you are using. - - Resource file - - New concepts introduced in the setup file: - * You may now specify both case-sensitive and case-insensitive user - patterns in the ``chktexrc'' file. In addition; it is now possible - to reset/clear lists. - * It is possible to specify how many arguments (optional/required) - ``WIPEARG'' should wipe; it behaves also somewhat more intelligent - when the arguments stretch over multiple lines. - * Global files will be read _in addition_ to local ones. The - searching order has also been reversed in order to make this more - intelligent. - - Other - - Various other stuff I've done to the product: - - * The documentation has been polished and should now be easier to - use in practical situations. - * ``check'' target in ``Makefile'', so you can check that the - installation succeeded. In fact, the ``Makefile'' has been - enhanced in several other ways too, amongst other it is now GNU - conforming. - * ``deweb'' is now documented; you may say ``man deweb'' to get a - few words of advice. The support script (chkweb) does now behave - as the remaining package (accepting stdin input and flags). - * I've written an Emacs hack which magically adds ChkTeX to the list - of AUC-TeX commands; thus making the use of the program even more - trivial. - For those of you who don't wish to mess with Emacs, I've included - a trivial lacheck <-> ChkTeX interface. - This means that you now can use ChkTeX just as easily as lacheck - when you're running AUC-TeX. - * Added an ARexx script which lets ChkTeX talk to VBrowse, the - message browser of Volker Barthelmann's freely distributable ANSI - C compiler. The browser itself is available on Aminet as - ``dev/c/vbcc.lha''. - -Feature list - - * Supports over 40 warnings. Warnings include: - + Commands terminated with space. Ignores ``\tt'', etc. - + Space in front of references instead of ``~''. - + Forgetting to group parenthesis characters when - sub-/superscripting. - + Italic correction (``\/'') mistakes (double, missing, - unnecessary). - + Parenthesis and environment matching. - + Ellipsis detection; also checks whether to use ``\dots'', - ``\cdots'' or ``\ldots''. - + Enforcement of normal space after abbreviation. Detects most - abbreviations automagically. - + Enforcement of end-of-sentence space when the last sentence - ended with capital letter. - + Math-mode on/off detection. - + Quote checking, both wrong types (``"'') and wrong direction. - + Recommends splitting three quotes in a row. - + Searching for user patterns. - + Displays comments. - + Space in front of ``\label'' and similar commands. - + Use of ``x'' instead of ``$\times$'' between numbers. - + Multiple spaces in input which will be rendered as one space - (or multiple spaces, where that is undesirable). - + Warns about text which may be ignored. - + Mathematical operators typeset as variables. - + No space in front of/after parenthesis. - + Demands a consistent quote style. - + Punctuation inside inner math mode/outside display math mode. - + Use of TeX primitives where LaTeX equivalents are available. - + Space in front of footnotes. - + Bogus characters following commands. - * Fully customizable. Intelligent resource format makes it possible - to make ChkTeX respect your LaTeX setup. Even command-line options - may be specified globally in the ``chktexrc'' file. - * Supports ``\input'' command; both TeX and LaTeX version. Actually - includes the files. ``TEXINPUTS''-equivalent search path. - * Intelligent warning/error handling. The user may promote/mute - warnings to suit his preferences. You may also mute warnings in - the header of a file; thus killing much unwanted garbage. - * Scripts included for checking CWEB files written in LaTeX. - (Requires perl v5). - * Supports both LaTeX 2.09 and LaTeX2e. - * Flexible output handling. Has some predefined formats and lets the - user specify his own format. Uses a ``printf()'' similar syntax. - ``lacheck'' compatible mode included for interfacing with the - AUC-TeX Emacs mode. - * ARexx scripts for interfacing with ScMsg and VBrowse are included. - Special scripts included for CygnusED/GoldED, for binding to - hotkey. - * Amiga Workbench support. Parameters may be passed by - shift-clicking the LaTeX files and setting the remaining options - in the tooltypes. - * Wildcard matching (Amiga only). Matches file patterns internally, - thus saving a lot of work. This is, however, platform-specific - code -- on UNIX boxes this is done by the shell. - * Written in ANSI C. ``configure'' script included for easy setup - and installation on UNIX systems. - - Still, it is important to realize that the output from ChkTeX is only - intended as a _guide_ to fixing faults. However, it is by no means - always correct. This means that correct LaTeX code may produce errors - in ChkTeX, and vice versa: Incorrect LaTeX code may pass silently - through. - - Legal stuff - - ChkTeX, documentation, installations scripts, CWEB filters and other - materials provided are copyright © 1995-96 Jens T. Berger Thielemann, - unless explicitly stated otherwise. - - 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 - -Registration - - `ChkTeX' is made available under the concept of Gift-Ware, which is a - variant of Share-Ware. Share-Ware software authors often release - `crippled' versions of their products, i.e. these programs do not - support the same functionality as the registered versions you get when - sending monetary contributions to the authors. It all comes down to - `pay for the software you are using' in Share-Ware terms. With - Gift-Ware registration it is different, you are not required to - contribute money, but a gift will do. With `ChkTeX' you always get a - fully functional program, there is no `crippled' test release which - you can try for a limited time and then have to pay for in order to - receive the working registered version. - - It may seem as if `ChkTeX' was free, but this is not the case. - Although there is no need to pay the author in order to get a fully - functional version of the program you should consider making a - contribution. You don't need to feel guilty if you cannot or do not - want to give me something in return for the work I have put into - `ChkTeX'. Show me that it was worth spending so much time listening to - users, updating, rewriting and enhancing this program. Your - contributions will provide the motivation for me to keep developing - the program. - - Send your contribution to the following address: - - Jens Berger - Spektrumvn. 4 - N-0666 Oslo - Norway - - Availability - - This program will be uploaded to AmiNet and CTAN; thus it can be found - at any mirrors of those. - - Please note that earlier versions of ChkTeX have been uploaded to - Aminet under the same archive name, to keep consistent with Aminet's - policy of keeping versions out of filenames. Please read the file - ``ChkTeX.readme'' (which is in the same directory as the archive) to - find out the version number. - - I'm now uploading the archive uncompressed to CTAN; however, most of - the ftpservers in that network allow you to retrieve a directory - compressed in whatever way you prefer. Aminet will as usual receive a - LhArc archive. - - Mirrors of both networks include: - -Comprehensive TeX Archive Network (CTAN) - - Directory: support/chktex - * ftp://ftp.adfa.oz.au/pub/tex/ctan/, (Australia) - * ftp://ftp.cs.rmit.edu.au/tex-archive/, (Australia) - * ftp://gw.pacbell.com/mirror/ftp.shsu.edu/tex-archive/, - (California, USA) - * ftp://sunsite.queensu.ca/pub/tex-archive/, (Canada) - * ftp://ftp.dante.de/pub/tex/, (Deutschland) - * ftp://ftp.germany.eu.net/pub/packages/TeX/, (Deutschland) - * ftp://ftp.gwdg.de/pub/dante/, (Deutschland) - * ftp://ftp.tex.ac.uk/pub/tex /, (England) - * ftp://src.doc.ic.ac.uk/packages/tex/uk-tex/, (England) - * ftp://kadri.ut.ee/pub/tex/, (Estonia) - * ftp://ftp.funet.fi/pub/TeX/CTAN/, (Finland) - * ftp://ftp.jussieu.fr/pub4/TeX/CTAN/, (France) - * ftp://ftp.loria.fr/pub/unix/tex/ctan/, (France) - * ftp://ftp.comp.hkbu.edu.hk/pub/TeX/CTAN/, (Hong Kong) - * ftp://ftp.unina.it/pub/TeX/, (Italia) - * ftp://sunsite.dsi.unimi.it/pub/TeX/, (Italia) - * ftp://ftp.riken.go.jp/pub/tex-archive/, (Japan) - * ftp://wuarchive.wustl.edu/packages/TeX/, (Missouri, USA) - * ftp://ftp.rge.com/pub/tex/, (New York, USA) - * ftp://ftp.duke.edu/tex-archive/, (North Carolina, USA) - * ftp://sunsite.unc.edu/pub/packages/TeX/, (North Carolina, USA) - * ftp://sunsite.icm.edu.pl/pub/CTAN/, (Poland) - * ftp://ftpserver.nus.sg/pub/zi/TeX/, (Singapore) - * ftp://ftp.ee.up.ac.za/tex-archive/, (South Africa) - * ftp://nic.switch.ch/mirror/tex/, (Switzerland) - * ftp://dongpo.math.ncu.edu.tw/tex-archive/, (Taiwan) - * ftp://ftp.ccu.edu.tw/pub/tex/, (Taiwan) - * ftp://ftp.fcu.edu.tw/pub2/tex/, (Taiwan) - * ftp://ftp.shsu.edu/pub/tex/, (Texas, USA) - * ftp://ftp.muni.cz/pub/tex/CTAN/, (The Czech Republic) - * ftp://ftp.cs.ruu.nl/pub/tex-archive/, (The Netherlands) - * ftp://ftp.uu.net/pub/text-processing/TeX/, (Virginia, USA) - * ftp://ftp.cdrom.com/pub/tex/ctan/, (West coast, USA) - * ftp://ftp.univie.ac.at/packages/tex/, (\"Osterreich) - -Aminet - - I'm only uploading the Amiga version of the archive to Aminet (so that - unsuspecting Amiga users won't have to download hundreds of unwanted - kilobytes). If you wish to use ChkTeX on another machine, please refer - to CTAN. - - Directory: text/tex/, filename: chktex.lha - * ftp://ftp.wustl.edu/pub/aminet/text/tex/, (USA (MO)) - * ftp://ftp.netnet.net/pub/aminet/text/tex/, (USA (WI)) - * ftp://ftp.ninemoons.com/pub/aminet/text/tex/, (USA (AZ)) - * ftp://ftp.livewire.com.au/pub/aminet/text/tex/, (Australia) - * ftp://ftp.tas.gov.au/pub/aminet/text/tex/, (Australia) - * ftp://ftp.luth.se/pub/aminet/text/tex/, (Scandinavia) - * ftp://ftp.eunet.ch/pub/aminet/text/tex/, (Switzerland) - * ftp://ftp.germany.aminet.org/pub/aminet/text/tex/, (Germany) - * ftp://ftp.pb.aminet.org/pub/aminet/text/tex/, (Germany) - * ftp://ftp.uni-stuttgart.de/pub/aminet/text/tex/, (Germany) - * ftp://ftp.uni-erlangen.de/pub/aminet/text/tex/, (Germany) - * ftp://ftp.cs.tu-berlin.de/pub/aminet/text/tex/, (Germany) - * ftp://ftp.tu-chemnitz.de/pub/aminet/text/tex/, (Germany) - * ftp://ftp.fh-augsburg.de/pub/aminet/text/tex/, (Germany) - * ftp://ftp.uni-bremen.de/pub/aminet/text/tex/, (Germany) - * ftp://ftp.uni-kl.de/pub/aminet/text/tex/, (Germany) - * ftp://ftp.uni-trier.de/pub/aminet/text/tex/, (Germany) - * ftp://ftp.informatik.rwth-aachen.de/pub/aminet/text/tex/, - (Germany) - * ftp://ftp.uni-siegen.de/pub/aminet/text/tex/, (Germany) - * ftp://ftp.uni-regensburg.de/pub/aminet/text/tex/, (Germany) - * ftp://sunsite.cnam.fr/pub/aminet/text/tex/, (France) - * ftp://aminet.grolier.fr/pub/aminet/text/tex/, (France) - * ftp://ftp.giga.or.at/pub/aminet/text/tex/, (Austria) - * ftp://sunsite.auc.dk/pub/aminet/text/tex/, (Denmark) - * ftp://ftp.acropolis.gr/pub/aminet/text/tex/, (Greece) - * ftp://aminet.iit.uni-miskolc.hu/pub/aminet/text/tex/, - (Hungary) - * ftp://ftp.italy.aminet.org/pub/aminet/text/tex/, (Italy) - * ftp://ftp.man.szczecin.pl/pub/aminet/text/tex/, (Poland) - * ftp://ftp.portugal.aminet.org/pub/aminet/text/tex/, (Portugal) - * ftp://ftp.gui.uva.es/pub/aminet/text/tex/, (Spain) - * ftp://ftp.uk.aminet.org/pub/aminet/text/tex/, (UK) - * ftp://micros.hensa.ac.uk/pub/aminet/text/tex/, (UK) - - Installation - - A few words on installation on various platforms: - - _Amiga:_ - Use the supplied Installer script. - - _MS-DOS & OS/2:_ - Copy the binary (``ChkTeX.exe'') to somewhere in your path, and - place the ``chktexrc'' file in the same directory. - - If you're running Emacs, you may wish to copy the file - ``chktex.el'' to your elisp source directory, and add the - following line to your ``.emacs'' file: - -(require 'chktex) - - _UNIX:_ - Type ``configure'', ``make'' and finally ``make install''. To - make sure everything proceeded correctly, type ``make check''. - If you don't have superuser privileges and thus access to the - default system areas, you should type ``configure -help'' to - help you set up correct paths. - - If you haven't installed any software like this before, that is - distributed in source form, here are some guidelines to help - you install it locally at your account. Please note that a mail - to the system administrator may be less work for you. :-) - - We assume that you have put the archive (``chktex.tar.gz'') in - a subdir of yours, with path ``~/tmp''. We further assume that - your shell is ``csh'' or ``tcsh''. Do the following: - - 1. First of all, unpack the archive contents. -> cd ~/tmp -> gunzip chktex.tar.gz -> tar xf chktex.tar - 2. Now, we can configure the program. There are some - configuration options you should know about: - - _``-enable-emacs-hack'':_ - Install a small file which adds ChkTeX to the - command menu of AUC-TeX. This is to be considered - as a hack, and may break in future versions of - AUC-TeX. It works fine under AUC-TeX v2.9, though. - - This option needs the path of your elisp directory - as argument, e.g. - ``-enable-emacs-hack=/home/myself/elisp'' or - similar. - - You'll also have to add the following line to your - ``.emacs'' file: - -(require 'chktex) - - You can now access ChkTeX from the ``Command'' menu in - AUC-TeX. To cycle through the messages, type C-x `. - - _``-enable-lacheck-replace''_ - This enables a quick hack for making the AUC-TeX - Emacs mode use ChkTeX instead of lacheck. This is - done by installing a stub script which - ``overrides'' the original lacheck executable. - - While more stable than the previous solution, this - is also significantly less elegant -- in computing - terms, this is the ``brute force'' approach. - - _``-enable-debug-info''_ - ChkTeX has an ability to spit out various - diagnostic messages using the ``-d'' flag. This - behaviour is on by default. By adding the flag - ``-disable-debug-info'' to the commandline, this - will not be compiled in. - - This may be useful if you're running short of disk - space (the time savings are neglible). - - If you are installing the program on your local account, use - the following command: -> configure --prefix ~/ - Add eventual extra flags as specified above. This command - will generate a significant amount of output, this can - usually be ignored. - 3. Finally, we can just build the program and install it. -> make -> make install - 4. Finished! The program is now installed and ready to use. You - may now tell other people to put your bindir in their path in - order to benefit from your work. All that remains is to make - the shell aware of your installation. -> rehash - To make the remaining parts of your system aware of this, - you'll have to log out and re-log in, I'm afraid. However, - you should delay this until you've completed this - installation procedure. - 5. If you wish to make sure that everything is OK (you ought - to), you may now ask ChkTeX to do a self-test: -> make check - - _Other platforms:_ - First of all, you have to copy the ``config.h.in'' file to a - file named ``config.h''. Then, edit it to reflect your system. - Do the same with ``OpSys.h'' (this file has been reduced - significantly). If you wish, you may define ``DATADIR'' to the - path you want the global resource file to be put. - - Now, I would suggest that you take a peak at the ``OpSys.c'' - file, and edit it appropiately, for more comfort. This should - not be necessary, though, at least not the first time. - - Finally, you may now compile and link all .cfiles. Define - ``HAVE_CONFIG_H'' to 1 (on the command-line, for instance). If - the ``config.h'' you wish to use has another name, define - ``CONFIG_H_NAME'' to that (in that case, don't define - ``HAVE_CONFIG_H''). - - Put the directory path of the ``chktexrc'' file in a - environment variable named ``CHKTEXRC''. The files ``deweb.in'' - and ``chkweb'' should be moved to a directory in your path. - These files may need further setup, as they haven't got the - location of perl initialized. - - If your compiler/the compiled program complains (or crashes!), - you may try the hints listed below. Please note that it only - makes sense to try these hints if your compiler fails to - produce a working program. - - 1. Increase the preprocessor buffers and line buffers. The - ChkTeX sources define macros sized 3-4k (expanding to about - the same), and passes arguments sized about 1k. - 2. Use the magic switch which lets us use large - ``switch(...){...}'' statements; some of these statements - have about 120 ``case'' entries. - 3. The sources require that at least the first 12 of each - identifier is significant. - - _Note:_ You _must_ install the new ``chktexrc'' file; ChkTeX will fail - to function unless! - - After doing this, you may enhance ChkTeX' behaviour by reading/editing - the ``chktexrc'' file. - - Contacting the author - - If you wish to contact me for any reason or would like to participate - in the development of ChkTeX, please write to: - - Jens Berger - Spektrumvn. 4 - N-0666 Oslo - Norway - E-mail: <jensthi@ifi.uio.no> - - Any signs of intelligent life are welcomed; that should exclude - piracy. - - Have fun. - diff --git a/Build/source/texk/chktex/ChkTeX.tex b/Build/source/texk/chktex/ChkTeX.tex deleted file mode 100644 index 1c80942b5af..00000000000 --- a/Build/source/texk/chktex/ChkTeX.tex +++ /dev/null @@ -1,2111 +0,0 @@ -%% -%% ChkTeX v1.5, LaTeX documentation for ChkTeX program. -%% Copyright (C) 1995-96 Jens T. Berger Thielemann -%% -%% 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. -%% -%% Contact the author at: -%% Jens Berger -%% Spektrumvn. 4 -%% N-0666 Oslo -%% Norway -%% E-mail: <jensthi@ifi.uio.no> -%% -%% NOTE: This file is written in LaTeX, and should be compiled -%% before viewing. If you don't know how to do this, consult -%% your local TeX guru. If you don't possess LaTeX, you are -%% assumed to not need this program; so there's no text version -%% of this file... -%% -%% You may still be able to view the DVI or PostScript versions of -%% this file, though, they are included in the archive. -%% - - - -%\documentstyle[a4, array, tabularx, verbatim, multicol]{article} -\documentclass[a4paper]{article} -\usepackage{ array, tabularx, verbatim, multicol} -%latex -\nonfrenchspacing -\newcounter{errornum} -\setcounter{errornum}{1} -%endlatex -\newcommand{\jtbt}{Jens~T. Berger~Thielemann} -\newcommand{\Cmd}[1]{``{\tt{}#1}''} -\newcommand{\rsrc}{``{\tt{}chktexrc}''} -\newcommand{\chktex}{Chk\TeX} -\newcommand{\smiley}{:-)} - -%latex -\newcolumntype{Y}{>{\raggedright\arraybackslash}X} -\newcommand{\fmted}[1]{% - {\noindent\large% - \begin{tabularx}{\linewidth}{lY}% - \bf Warning \theerrornum: & \tt #1% - \end{tabularx}}\stepcounter{errornum}\nopagebreak[4]} - -\newenvironment{errdesc}[1]{\noindent\fmted{#1}\begin{quote}}{\end{quote}% -\pagebreak[3]} - -\newenvironment{html}{\comment}{\endcomment} -\newenvironment{rawhtml}{\comment}{\endcomment} - -\makeatletter -\@namedef{errdesc*}#1{\begin{errdesc}{\textit{#1}}} -\@namedef{enderrdesc*}{\end{errdesc}} -\@ifundefined{textit}{\gdef\textit#1{{\it #1}}}\relax -\@ifundefined{LaTeXe}{\gdef\LaTeXe{\LaTeX2${}_{\textstyle\varepsilon}$}}\relax -\makeatother - - -\newenvironment{errexam} -{ -\vskip 0pt plus 5pt -\begin{center} -} -{\end{center}} -\columnseprule 0.1pt - -%!\newcommand{\LaTeXe}{\LaTeX 2e} -%!\newcommand{\BS}{\verb@\@} -%!\newcommand{\chktex}{ChkTeX} -%!\newcommand{\slash}{/} -%endlatex - - -\title{\chktex\ v1.5} -\author{Jens~T. Berger~Thielemann} -\date{\today} - - -\begin{document} -\maketitle - -%latex -\newcommand{\BS}{\char`\\} -%endlatex -\section{Introduction} - -This program has been written in frustration because some constructs in -\LaTeX\ are sometimes non-intuitive, and easy to forget. It is {\em - not\/} a replacement for the built-in checker in \LaTeX\@; however it -catches some typographic errors \LaTeX\ oversees. In other words, it -is Lint for \LaTeX. Filters are also provided for checking the -\LaTeX\ parts of CWEB documents. - -It is written in ANSI C and compiles silently under GCC using -\Cmd{-Wall -ansi -pedantic} and almost all warning flags. This means -that you can compile \& use the program on your favorite machine. -Full source included. - -The program also supports output formats suitable for further -processing by editors or other programs, making errors easy to cycle through. -Software is provided for beautifully interfacing against the -AUC-\TeX\ Emacs mode, CygnusED, GoldEd and various Amiga message browsers. - -The program itself does not have any machine requirements; Amiga, -MSDOS and OS/2 binaries are available. Of course, you'll need ARexx -and ScMsg or VBrowse to benefit from the ARexx scripts. - - - -\section{Features} -\chktex\ begins to get quite a few bells \& whistles now. However, you -should be aware of that in most cases, all this is transparent to the user. -As you will see, \chktex\ offers the ability to adapt to many environments -and configurations. - -\subsection{New features} -Modifications and additions since v1.4: - - -\subsubsection{Program} - -Modifications to the executable itself: -\begin{itemize} -\item As usual, a few more warnings: - \begin{itemize} - \item No space or similar in front/after parenthesis. - \item Demands a consistent quote style. - \item Double spaces in input which will not be rendered as one. - \item Punctuation malplaced regarding to math mode. - \item Warns about \TeX\ primitives. - \item Space in front of footnotes. - \item Bogus {\tt\BS{}left} and {\tt\BS{}right} commands. - \end{itemize} - -\item The abbreviation recognizer has (for the last time?) been - redesigned. We now produce far less false warnings, catch more - cases and do all this faster than before. Seems like a win. - - Done much of the same with the italic correction detection part, - too\ldots -\item Some bugs have been silently fixed. Hot spots in the program - have been optimized; in certain cases this in fact doubles the - speed! - - Along with this goes more code elegance and utilization of macro - processing and the C language. Take a look at \Cmd{Resource.[ch]}. - -\item It's possible to specify separate output-formats depending on - whether you are sending the output to a file/pipe or to a - terminal. - -\item Column positions are finally correct; we now expand tabs - correctly. -\item \chktex\ will now recursively search for {\tt\BS{}input}'ed - files, both in the document and on the commandline. See the - \rsrc\ file for more info. -\item The debug switch is now more intelligent; if you wish to hack - a bit on \chktex\ for yourself, it is possible to produce - selective debugging output. The feature can also be disabled - altogether. -\item MS-DOS and OS/2 version of the program is now more flexible - and well-behaved, thanks to Gerd B\"ohm. -\item You may now say \Cmd{-wall} to make all messages warnings, and - turn them on. -\item Uses termcap on UNIX boxes; this should ensure that \Cmd{-v2} - (or more precisely: \Cmd{\%i} and \Cmd{\%I}) works regardless to - what terminal you are using. -\end{itemize} - -\subsubsection{Resource file} - -New concepts introduced in the setup file: -\begin{itemize} -\item You may now specify both case-sensitive and case-insensitive - user patterns in the \rsrc\ file. In addition; it is now possible - to reset/clear lists. -\item It is possible to specify how many arguments - (optional/required) \Cmd{WIPEARG} should wipe; it behaves also - somewhat more intelligent when the arguments stretch over multiple - lines. -\item Global files will be read {\em in addition\/} to local ones. The - searching order has also been reversed in order to make this more - intelligent. -\end{itemize} - - -\subsubsection{Other} -Various other stuff I've done to the product: - -\begin{itemize} -\item The documentation has been polished and should now be easier - to use in practical situations. -\item \Cmd{check} target in \Cmd{Makefile}, so you can check that - the installation succeeded. In fact, the \Cmd{Makefile} has been - enhanced in several other ways too, amongst other it is now GNU - conforming. -\item \Cmd{deweb} is now documented; you may say \Cmd{man~deweb} to - get a few words of advice. The support script ({\tt chkweb}) does - now behave as the remaining package (accepting stdin input and flags). -\item I've written an Emacs hack which magically adds \chktex\ to the - list of AUC-\TeX\ commands; thus making the use of the program even - more trivial. - - For those of you who don't wish to mess with Emacs, I've included a trivial -%latex - $\mbox{lacheck}\leftrightarrow\mbox{\chktex}$ -%!lacheck <-> \chktex\ % -%endlatex - interface. - - This means that you now can use \chktex\ just as easily as lacheck - when you're running AUC-\TeX. - -\item Added an ARexx script which lets \chktex\ talk to VBrowse, the - message browser of Volker Barthelmann's freely distributable ANSI - C compiler. The browser itself is available on Aminet as - \Cmd{dev/c/vbcc.lha}. -\end{itemize} - -\subsection{Feature list} - -\begin{itemize} -\item Supports over 40 warnings. Warnings include: -%latex - \begin{multicols}{2} - \begin{flushleft} -%endlatex - \begin{itemize} - \item Commands terminated with space. Ignores \Cmd{\BS{}tt}, etc. - \item Space in front of references instead of \Cmd{\~{}}. - \item Forgetting to group parenthesis characters when - sub-\slash{}super\-scripting. - \item Italic correction (\Cmd{\BS/}) mistakes (double, - missing, unnecessary). - \item Parenthesis and environment matching. - \item Ellipsis detection; also checks whether to use - \Cmd{\BS{}dots}, \Cmd{\BS{}cdots} or \Cmd{\BS{}ldots}. - \item Enforcement of normal space after abbreviation. Detects - most abbreviations automagically. - \item Enforcement of end-of-sentence space when the last - sentence ended with capital letter. - \item Math-mode on/off detection. - \item Quote checking, both wrong types (\Cmd{"}) and wrong - direction. - \item Recommends splitting three quotes in a row. - \item Searching for user patterns. - \item Displays comments. - \item Space in front of \Cmd{\BS{}label} and similar commands. - \item Use of \Cmd{x} instead of \Cmd{\$\BS{}times\$} between numbers. - \item Multiple spaces in input which will be rendered as one - space (or multiple spaces, where that is undesirable). - \item Warns about text which may be ignored. - \item Mathematical operators typeset as variables. - \item No space in front of/after parenthesis. - \item Demands a consistent quote style. - \item Punctuation inside inner math mode/outside display math - mode. - \item Use of \TeX\ primitives where \LaTeX\ equivalents are - available. - \item Space in front of footnotes. - \item Bogus characters following commands. - \end{itemize} -%latex - \end{flushleft} - \end{multicols} -%endlatex -\item Fully customizable. Intelligent resource format makes it - possible to make \chktex\ respect your \LaTeX\ setup. Even - command-line options may be specified globally in the \rsrc\ file. -\item Supports \Cmd{\BS{}input} command; both \TeX\ and \LaTeX\ version. - Actually includes the files. \Cmd{TEXINPUTS}-equivalent search path. -\item Intelligent warning/error handling. The user may promote/mute - warnings to suit his preferences. You may also mute warnings in the - header of a file; thus killing much unwanted garbage. -\item Scripts included for checking CWEB files written in \LaTeX. - (Requires perl v5). -\item Supports both \LaTeX\ 2.09 and \LaTeXe. -\item Flexible output handling. Has some predefined formats and lets - the user specify his own format. Uses a \Cmd{printf()} similar - syntax. \Cmd{lacheck} compatible mode included for interfacing with - the AUC-\TeX\ Emacs mode. -\item ARexx scripts for interfacing with ScMsg and VBrowse are - included. Special scripts included for CygnusED/GoldED, for binding - to hotkey. -\item Amiga Workbench support. Parameters may be passed by - shift-clicking the \LaTeX\ files and setting the remaining options - in the tooltypes. -\item Wildcard matching (Amiga only). Matches file patterns - internally, thus saving a lot of work. This is, however, - platform-specific code --- on UNIX boxes this is done by the shell. -\item Written in ANSI C\@. \Cmd{configure} script included for easy - setup and installation on UNIX systems. -\end{itemize} - -Still, it is important to realize that the output from \chktex\ is -only intended as a {\em guide\/} to fixing faults. However, it is by -no means always correct. This means that correct \LaTeX\ code may -produce errors in \chktex, and vice versa: Incorrect \LaTeX\ code may pass -silently through. - - - -\section{Legal stuff} - -\chktex{}, documentation, installations scripts, CWEB filters and other -materials provided are copyright \copyright\ 1995--96 Jens~T. -Berger~Thielemann, unless explicitly stated otherwise. - -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: -\begin{quote} - The Free Software Foundation, Inc. \\ - 675 Mass Ave \\ - Cambridge \\ - MA 02139 \\ - USA -\end{quote} - - - - -\subsection{Registration} - -`\chktex' is made available under the concept of Gift-Ware, which is a -variant of Share-Ware. Share-Ware software authors often release -`crippled' versions of their products, i.e.\ these programs do not -support the same functionality as the registered versions you get when -sending monetary contributions to the authors. It all comes down to -`pay for the software you are using' in Share-Ware terms. With -Gift-Ware registration it is different, you are not required to -contribute money, but a gift will do. With `\chktex' you always get a -fully functional program, there is no `crippled' test release which -you can try for a limited time and then have to pay for in order to -receive the working registered version. - -It may seem as if `\chktex' was free, but this is not the case. -Although there is no need to pay the author in order to get a fully -functional version of the program you should consider making a -contribution. You don't need to feel guilty if you cannot or do not -want to give me something in return for the work I have put into -`\chktex'. Show me that it was worth spending so much time listening -to users, updating, rewriting and enhancing this program. Your -contributions will provide the motivation for me to keep developing -the program. - -Send your contribution to the following address: -%latex -\begin{samepage} -%endlatex -\begin{quote} - Jens Berger \\ - Spektrumvn. 4 \\ - N-0666 Oslo \\ - Norway -\end{quote} -%latex -\end{samepage} -%endlatex - -\begin{html} -\section{Availability} - -This program will be uploaded to AmiNet and CTAN\@; thus it can be -found at any mirrors of those. - -Please note that earlier versions of \chktex\ have been uploaded to -Aminet under the same archive name, to keep consistent with Aminet's -policy of keeping versions out of filenames. Please read the file -\Cmd{ChkTeX.readme} (which is in the same directory as the archive) to -find out the version number. - -I'm now uploading the archive uncompressed to CTAN\@; however, most of -the ftpservers in that network allow you to retrieve a directory -compressed in whatever way you prefer. Aminet will as usual receive a -LhArc archive. - -Mirrors of both networks include: - - \subsection{Comprehensive \TeX\ Archive Network (CTAN)} -\end{html} - -\begin{rawhtml} - Directory: <tt> support/chktex</tt> - <ul> -<li> <a href="ftp://ftp.adfa.oz.au/pub/tex/ctan/support/chktex/"> - ftp://ftp.adfa.oz.au/pub/tex/ctan/</a>, (Australia) - -<li> <a href="ftp://ftp.cs.rmit.edu.au/tex-archive/support/chktex/"> - ftp://ftp.cs.rmit.edu.au/tex-archive/</a>, (Australia) - -<li> <a href="ftp://gw.pacbell.com/mirror/ftp.shsu.edu/tex-archive/support/chktex/"> - ftp://gw.pacbell.com/mirror/ftp.shsu.edu/tex-archive/</a>, (California, USA) - -<li> <a href="ftp://sunsite.queensu.ca/pub/tex-archive/support/chktex/"> - ftp://sunsite.queensu.ca/pub/tex-archive/</a>, (Canada) - -<li> <a href="ftp://ftp.dante.de/pub/tex/support/chktex/"> - ftp://ftp.dante.de/pub/tex/</a>, (Deutschland) - -<li> <a href="ftp://ftp.germany.eu.net/pub/packages/TeX/support/chktex/"> - ftp://ftp.germany.eu.net/pub/packages/TeX/</a>, (Deutschland) - -<li> <a href="ftp://ftp.gwdg.de/pub/dante/support/chktex/"> - ftp://ftp.gwdg.de/pub/dante/</a>, (Deutschland) - -<li> <a href="ftp://ftp.tex.ac.uk/pub/tex /support/chktex/"> - ftp://ftp.tex.ac.uk/pub/tex /</a>, (England) - -<li> <a href="ftp://src.doc.ic.ac.uk/packages/tex/uk-tex/support/chktex/"> - ftp://src.doc.ic.ac.uk/packages/tex/uk-tex/</a>, (England) - -<li> <a href="ftp://kadri.ut.ee/pub/tex/support/chktex/"> - ftp://kadri.ut.ee/pub/tex/</a>, (Estonia) - -<li> <a href="ftp://ftp.funet.fi/pub/TeX/CTAN/support/chktex/"> - ftp://ftp.funet.fi/pub/TeX/CTAN/</a>, (Finland) - -<li> <a href="ftp://ftp.jussieu.fr/pub4/TeX/CTAN/support/chktex/"> - ftp://ftp.jussieu.fr/pub4/TeX/CTAN/</a>, (France) - -<li> <a href="ftp://ftp.loria.fr/pub/unix/tex/ctan/support/chktex/"> - ftp://ftp.loria.fr/pub/unix/tex/ctan/</a>, (France) - -<li> <a href="ftp://ftp.comp.hkbu.edu.hk/pub/TeX/CTAN/support/chktex/"> - ftp://ftp.comp.hkbu.edu.hk/pub/TeX/CTAN/</a>, (Hong Kong) - -<li> <a href="ftp://ftp.unina.it/pub/TeX/support/chktex/"> - ftp://ftp.unina.it/pub/TeX/</a>, (Italia) - -<li> <a href="ftp://sunsite.dsi.unimi.it/pub/TeX/support/chktex/"> - ftp://sunsite.dsi.unimi.it/pub/TeX/</a>, (Italia) - -<li> <a href="ftp://ftp.riken.go.jp/pub/tex-archive/support/chktex/"> - ftp://ftp.riken.go.jp/pub/tex-archive/</a>, (Japan) - -<li> <a href="ftp://wuarchive.wustl.edu/packages/TeX/support/chktex/"> - ftp://wuarchive.wustl.edu/packages/TeX/</a>, (Missouri, USA) - -<li> <a href="ftp://ftp.rge.com/pub/tex/support/chktex/"> - ftp://ftp.rge.com/pub/tex/</a>, (New York, USA) - -<li> <a href="ftp://ftp.duke.edu/tex-archive/support/chktex/"> - ftp://ftp.duke.edu/tex-archive/</a>, (North Carolina, USA) - -<li> <a href="ftp://sunsite.unc.edu/pub/packages/TeX/support/chktex/"> - ftp://sunsite.unc.edu/pub/packages/TeX/</a>, (North Carolina, USA) - -<li> <a href="ftp://sunsite.icm.edu.pl/pub/CTAN/support/chktex/"> - ftp://sunsite.icm.edu.pl/pub/CTAN/</a>, (Poland) - -<li> <a href="ftp://ftpserver.nus.sg/pub/zi/TeX/support/chktex/"> - ftp://ftpserver.nus.sg/pub/zi/TeX/</a>, (Singapore) - -<li> <a href="ftp://ftp.ee.up.ac.za/tex-archive/support/chktex/"> - ftp://ftp.ee.up.ac.za/tex-archive/</a>, (South Africa) - -<li> <a href="ftp://nic.switch.ch/mirror/tex/support/chktex/"> - ftp://nic.switch.ch/mirror/tex/</a>, (Switzerland) - -<li> <a href="ftp://dongpo.math.ncu.edu.tw/tex-archive/support/chktex/"> - ftp://dongpo.math.ncu.edu.tw/tex-archive/</a>, (Taiwan) - -<li> <a href="ftp://ftp.ccu.edu.tw/pub/tex/support/chktex/"> - ftp://ftp.ccu.edu.tw/pub/tex/</a>, (Taiwan) - -<li> <a href="ftp://ftp.fcu.edu.tw/pub2/tex/support/chktex/"> - ftp://ftp.fcu.edu.tw/pub2/tex/</a>, (Taiwan) - -<li> <a href="ftp://ftp.shsu.edu/pub/tex/support/chktex/"> - ftp://ftp.shsu.edu/pub/tex/</a>, (Texas, USA) - -<li> <a href="ftp://ftp.muni.cz/pub/tex/CTAN/support/chktex/"> - ftp://ftp.muni.cz/pub/tex/CTAN/</a>, (The Czech Republic) - -<li> <a href="ftp://ftp.cs.ruu.nl/pub/tex-archive/support/chktex/"> - ftp://ftp.cs.ruu.nl/pub/tex-archive/</a>, (The Netherlands) - -<li> <a href="ftp://ftp.uu.net/pub/text-processing/TeX/support/chktex/"> - ftp://ftp.uu.net/pub/text-processing/TeX/</a>, (Virginia, USA) - -<li> <a href="ftp://ftp.cdrom.com/pub/tex/ctan/support/chktex/"> - ftp://ftp.cdrom.com/pub/tex/ctan/</a>, (West coast, USA) - -<li> <a href="ftp://ftp.univie.ac.at/packages/tex/support/chktex/"> - ftp://ftp.univie.ac.at/packages/tex/</a>, (\"Osterreich) - - - </ul> -\end{rawhtml} - -\begin{html} -\subsection{Aminet} -\end{html} -\begin{rawhtml} - I'm only uploading the Amiga version of the archive to Aminet (so - that unsuspecting Amiga users won't have to download hundreds of - unwanted kilobytes). If you wish to use ChkTeX on another machine, - please refer to CTAN. - - <p> Directory: <tt> text/tex/</tt>, filename: <tt>chktex.lha</tt> - <ul> -<li> <a href="ftp://ftp.wustl.edu/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.wustl.edu/pub/aminet/text/tex/</a>, (USA (MO)) - -<li> <a href="ftp://ftp.netnet.net/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.netnet.net/pub/aminet/text/tex/</a>, (USA (WI)) - -<li> <a href="ftp://ftp.ninemoons.com/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.ninemoons.com/pub/aminet/text/tex/</a>, (USA (AZ)) - -<li> <a href="ftp://ftp.livewire.com.au/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.livewire.com.au/pub/aminet/text/tex/</a>, (Australia) - -<li> <a href="ftp://ftp.tas.gov.au/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.tas.gov.au/pub/aminet/text/tex/</a>, (Australia) - -<li> <a href="ftp://ftp.luth.se/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.luth.se/pub/aminet/text/tex/</a>, (Scandinavia) - -<li> <a href="ftp://ftp.eunet.ch/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.eunet.ch/pub/aminet/text/tex/</a>, (Switzerland) - -<li> <a href="ftp://ftp.germany.aminet.org/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.germany.aminet.org/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.pb.aminet.org/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.pb.aminet.org/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.uni-stuttgart.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.uni-stuttgart.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.uni-erlangen.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.uni-erlangen.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.cs.tu-berlin.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.cs.tu-berlin.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.tu-chemnitz.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.tu-chemnitz.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.fh-augsburg.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.fh-augsburg.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.uni-bremen.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.uni-bremen.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.uni-kl.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.uni-kl.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.uni-trier.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.uni-trier.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.informatik.rwth-aachen.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.informatik.rwth-aachen.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.uni-siegen.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.uni-siegen.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://ftp.uni-regensburg.de/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.uni-regensburg.de/pub/aminet/text/tex/</a>, (Germany) - -<li> <a href="ftp://sunsite.cnam.fr/pub/aminet/text/tex/chktex.lha"> - ftp://sunsite.cnam.fr/pub/aminet/text/tex/</a>, (France) - -<li> <a href="ftp://aminet.grolier.fr/pub/aminet/text/tex/chktex.lha"> - ftp://aminet.grolier.fr/pub/aminet/text/tex/</a>, (France) - -<li> <a href="ftp://ftp.giga.or.at/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.giga.or.at/pub/aminet/text/tex/</a>, (Austria) - -<li> <a href="ftp://sunsite.auc.dk/pub/aminet/text/tex/chktex.lha"> - ftp://sunsite.auc.dk/pub/aminet/text/tex/</a>, (Denmark) - -<li> <a href="ftp://ftp.acropolis.gr/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.acropolis.gr/pub/aminet/text/tex/</a>, (Greece) - -<li> <a href="ftp://aminet.iit.uni-miskolc.hu/pub/aminet/text/tex/chktex.lha"> - ftp://aminet.iit.uni-miskolc.hu/pub/aminet/text/tex/</a>, (Hungary) - -<li> <a href="ftp://ftp.italy.aminet.org/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.italy.aminet.org/pub/aminet/text/tex/</a>, (Italy) - -<li> <a href="ftp://ftp.man.szczecin.pl/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.man.szczecin.pl/pub/aminet/text/tex/</a>, (Poland) - -<li> <a href="ftp://ftp.portugal.aminet.org/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.portugal.aminet.org/pub/aminet/text/tex/</a>, (Portugal) - -<li> <a href="ftp://ftp.gui.uva.es/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.gui.uva.es/pub/aminet/text/tex/</a>, (Spain) - -<li> <a href="ftp://ftp.uk.aminet.org/pub/aminet/text/tex/chktex.lha"> - ftp://ftp.uk.aminet.org/pub/aminet/text/tex/</a>, (UK) - -<li> <a href="ftp://micros.hensa.ac.uk/pub/aminet/text/tex/chktex.lha"> - ftp://micros.hensa.ac.uk/pub/aminet/text/tex/</a>, (UK) - - </ul> -\end{rawhtml} - -\section{Installation} - -A few words on installation on various platforms: - -\begin{description} -\item[Amiga:] Use the supplied Installer script. -\item[MS-DOS \& OS/2:] Copy the binary (\Cmd{ChkTeX.exe}) to somewhere in - your path, and place the \rsrc\ file in the same directory. - - If you're running Emacs, you may wish to copy the file \Cmd{chktex.el} - to your elisp source directory, and add the following line to your - \Cmd{.emacs} file: -\begin{verbatim} -(require 'chktex) -\end{verbatim} - -\item[UNIX:] Type \Cmd{configure}, \Cmd{make} and finally - \Cmd{make~install}. To make sure everything proceeded correctly, - type \Cmd{make~check}. If you don't have superuser privileges and thus - access to the default system areas, you should type - \Cmd{configure~--help} to help you set up correct paths. - - If you haven't installed any software like this before, that is - distributed in source form, here are some guidelines to help you - install it locally at your account. Please note that a mail to the - system administrator may be less work for you. \smiley - - We assume that you have put the archive (\Cmd{chktex.tar.gz}) in a - subdir of yours, with path \Cmd{\~{}/tmp}. We further assume that - your shell is \Cmd{csh} or \Cmd{tcsh}. Do the following: - - \begin{enumerate} - \item First of all, unpack the archive contents. - -\begin{verbatim} -> cd ~/tmp -> gunzip chktex.tar.gz -> tar xf chktex.tar -\end{verbatim} - - \item Now, we can configure the program. There are some - configuration options you should know about: - \begin{description} - \item[\Cmd{--enable-emacs-hack}:] Install a small file which - adds \chktex\ to the command menu of AUC-\TeX. This is to be - considered as a hack, and may break in future versions of - AUC-\TeX. It works fine under AUC-\TeX\ v2.9, though. - - This option needs the path of your elisp directory as argument, - e.g. \Cmd{--enable-emacs-hack=/home/myself/elisp} or similar. - - You'll also have to add the following line to your \Cmd{.emacs} - file: -\begin{verbatim} -(require 'chktex) -\end{verbatim} - You can now access \chktex\ from the \Cmd{Command} menu in - AUC-\TeX. To cycle through the messages, type \verb#C-x `#. - - \item[\Cmd{--enable-lacheck-replace}] This enables a quick - hack for making the AUC-\TeX\ Emacs mode use \chktex\ instead of - lacheck. This is done by installing a stub script which - ``overrides'' the original lacheck executable. - - While more stable than the previous solution, this is also - significantly less elegant --- in computing terms, this is the - ``brute force'' approach. - - \item[\Cmd{--enable-debug-info}] \chktex\ has an ability to spit - out various diagnostic messages using the \Cmd{-d} flag. This - behaviour is on by default. By adding the flag - \Cmd{--disable-debug-info} to the commandline, this will not be - compiled in. - - This may be useful if you're running short of disk space (the - time savings are neglible). - \end{description} - - If you are installing the program on your local account, use the - following command: - -\begin{verbatim} -> configure --prefix ~/ -\end{verbatim} - - Add eventual extra flags as specified above. This command will - generate a significant amount of output, this can usually be ignored. - - \item Finally, we can just build the program and install it. - -\begin{verbatim} -> make -> make install -\end{verbatim} - - \item Finished! The program is now installed and ready to use. You - may now tell other people to put your bindir in their path in - order to benefit from your work. All that remains is to make the - shell aware of your installation. - -\begin{verbatim} -> rehash -\end{verbatim} - - To make the remaining parts of your system aware of this, you'll - have to log out and re-log in, I'm afraid. However, you should delay this - until you've completed this installation procedure. - - \item If you wish to make sure that everything is OK (you ought to), - you may now ask \chktex\ to do a self-test: - -\begin{verbatim} -> make check -\end{verbatim} - - \end{enumerate} - -\item[Other platforms:] First of all, you have to copy the - \Cmd{config.h.in} file to a file named \Cmd{config.h}. Then, edit - it to reflect your system. Do the same with \Cmd{OpSys.h} (this - file has been reduced significantly). If you wish, you may define - \Cmd{DATADIR} to the path you want the global resource file to be - put. - - Now, I would suggest that you take a peak at the \Cmd{OpSys.c} - file, and edit it appropiately, for more - comfort. This should not be necessary, though, at least not the - first time. - - Finally, you may now compile and link all \verb@.c@ files. Define - \Cmd{HAVE\_CONFIG\_H} to 1 (on the command-line, for instance). If - the \Cmd{config.h} you wish to use has another name, define - \Cmd{CONFIG\_H\_NAME} to that (in that case, don't define - \Cmd{HAVE\_CONFIG\_H}). - - Put the directory path of the \rsrc\ file in a environment variable - named \Cmd{CHKTEXRC}. The files \Cmd{deweb.in} and \Cmd{chkweb} - should be moved to a directory in your path. These files may need - further setup, as they haven't got the location of perl - initialized. - - If your compiler/the compiled program complains (or crashes!), you - may try the hints listed below. Please note that it only makes - sense to try these hints if your compiler fails to produce a working - program. - - \begin{enumerate} - \item Increase the preprocessor buffers and line buffers. The - \chktex{} sources define macros sized 3--4k (expanding to about - the same), and passes arguments sized about 1k. - \item Use the magic switch which lets us use large - \Cmd{switch(\dots)\{\dots\}} statements; some of these statements - have about 120 \Cmd{case} entries. - \item The sources require that at least the first 12 of each - identifier is significant. - \end{enumerate} -\end{description} -{\bf Note:\/} You {\em must\/} install the new \rsrc\ file; \chktex\ will -fail to function unless! - - After doing this, you may enhance \chktex' behaviour by -reading/editing the \rsrc\ file. - -%latex -\section{Usage} - -\subsection{\chktex} - -Amiga v2.04+ users may wish to note that you may pass the files that -\chktex\ is to process by shift-clicking them. In addition, you may -specify the arguments as tooltypes to the main program icon, using the -{\sf Info} menu option. For instance, if you wish to make the `fancy' -output the default when starting from Workbench, enter the following -as a tooltype: -% -\begin{verbatim} -Verbosity=2 -\end{verbatim} -% -We use the WB2Argv package (also developed by me, available on Aminet as -\Cmd{dev/c/WB2Argv.lha}), and -will fold case until the \Cmd{=} character, in tradition with the -case-insensitivity of Amiga OS\@. In all other respects (and platforms), the -options listed below are case-sensitive. - - - -\subsubsection{Synopsis} - -A UNIX-compliant template format follows: - -\newcommand{\Group}[1]{\mbox{[#1]}} -\begin{tabularx}\textwidth{lY} - \tt chktex & \tt \Group{-hiqrW} \Group{-v[0-\dots]} \Group{-l - <rcfile>} \Group{-[wemn] <[1-42]|all>} \Group{-d[0-...]} \Group{-p - <pseudoname>} \Group{-o <outputfile>} \Group{-[btxgI][0|1]} - file1 file2 \dots -\end{tabularx} - - -\subsubsection{Options} - -These are the options \chktex\ currently accepts. -Please note that single-lettered options requiring a numerical or no -argument may be concatenated. E.g.\ saying \Cmd{-v0qb0w2} is the -same as saying \Cmd{-v0~-q~-b0~-w2}, except for being less to -type. - -Enough general talk; here's a rather detailed description of all -options: -\begin{description} -\item[Misc.\ options:] General options which aren't related to some - specific subpart of \chktex. - \begin{description} - \item[{\tt -h [--help]}] Gives you a command summary. - \item[{\tt -i [--license]}] Shows distribution information. - \item[{\tt -l [--localrc]}] Reads a resource-file formatted - as the global resource-file \rsrc, in addition to the global - resource-file. This option needs the name of the resource-file - as a parameter. See also {\tt -g}. - \item[{\tt -r [--reset]}] This will reset all settings to their - defaults. This may be useful if you use the {\tt CMDLINE} - directive in your \rsrc\ file, and wish to do something - unusual. - \item[{\tt -d [--debug]}] Needs a numeric argument; a bitmask - telling what to output. The values below may be added in order - to output multiple debugging info. - - \begin{tabularx}\linewidth{cX} - \bf Value & \bf Dumps\ldots\\ - 1 & All warnings available and their current status. \\ - 2 & Statistics for all lists in the resource file. \\ - 4 & The contents of all lists in the resource file. \\ - 8 & Misc.\ other status information. \\ - 16 & Run-time info (note that this isn't widely used). \\ - \end{tabularx} - The info is produced after all switches and resource files have - been processed. - - It is possible to install versions of \chktex\ that ignore this - flag; this means that it is not certain that this flag works. - \item[{\tt -W [--version]}] Displays version information, and exits. - \end{description} -\item[Muting warning messages:] Controls whether and in what form - error messages will appear. Usually they accept a specific warning - number (e.g.\ \Cmd{-w2}), but you may also say \Cmd{all} (e.g.\ - \Cmd{-wall}) which does the operation on {\em all\/} warnings. - \begin{description} - \item[{\tt -w [--warnon]}] Makes the message number passed as - parameter a warning and turns it on. - \item[{\tt -e [--erroron]}] Makes the message number passed as - parameter an error and turns it on. - \item[{\tt -m [--msgon]}] Makes the message number passed as - parameter a message and turns it on. Messages are not counted. - \item[{\tt -n [--nowarn]}] Turns the warning/error number passed - as a parameter off. - \end{description} -\item[Output control flags:] Determines the appearance and - destination of the error reports. - \begin{description} - \item[{\tt -q [--quiet]}] Shuts up about copyright information. - \item[{\tt -o [--output]}] Normally, all errors are piped to {\tt stdout}. - Using this option with a parameter, errors will be sent to the - named file instead. Only information relative to the \LaTeX\ file - will be sent to that file. Memory problems and similar will as as - always be sent to {\tt stderr}. If a file with the name given - already exists, it will be renamed to \Cmd{foobar.bak} - (\Cmd{foobar.\$cl} under MS-DOS), \Cmd{foobar} being the name of - the file. See also \Cmd{-b}. - - \item[{\tt -v [--verbosity]}] Specifies how much and how you - wish the error reports to be displayed. This is specified in the - \rsrc\ file; we'll list the default values below. If you wish, - you may thus edit the \rsrc\ file to add or modify new formats. - - The default is mode 1 (that is, the {\em second\/} entry in the - \rsrc\ file), using {\tt -v} without any parameter will give you - mode 2. - - \begin{description} - \item[0] Will show the information in a way that should be - suitable for further parsing by {\tt awk}, {\tt sed} or - similar. The format is as follows: -\begin{verbatim} -File:Line:Column:Warning number:Warning message -\end{verbatim} - The colons may be replaced with another string; use the - \verb@-s@ switch for this. - - As the program does not output all errors in quite order, this - output format is also suitable for piping through \Cmd{sort}. - \item[1] Shows the information in a way which is more - comprehensible for humans, but which still doesn't need - anything but a glass tty. - \item[2] Shows the information in a fancy way, using escape - codes and stuff. It is the indeed most readable of all - modes; however, it needs proper set up of the \Cmd{ChkTeX.h} - at compilation time. UNIX boxes, however, will find the - information automatically. - \item[3] Shows the information suitable for parsing by Emacs; - this is the same format as {\tt lacheck} uses. More formally, - it is the following: -\begin{verbatim} -"File", line Line: Warning message -\end{verbatim} - - To utilize this, type \verb@M-x compile RET@. Delete whatever - is written in the minibuffer, and type - \verb@chktex -v3 texfile.tex@, and you should be able to - browse through the - error messages. Use \verb@C-x `@ to parse the messages. - \item[4] More or less the same as \verb@-v3@, but also includes - information on where the error actually was found. Takes somewhat - longer time to parse, but much more informative in use. - \end{description} - - \item[{\tt -f [--format]}] Specifies the format of the output. - This is done using a format similar to \Cmd{printf()}, where we - support the specifiers listed below. - - \smallskip - \newcommand{\Pf}[1]{\tt \%#1 &} - \begin{tabularx}{\linewidth}{cX} - \bf Code & \bf Description \\ - \Pf{b} String to print {\bf b\/}etween fields (from {\tt - -s} option). \\ - \Pf{c} {\bf C\/}olumn position of error. \\ - \Pf{d} Length of error ({\bf d\/}igit). \\ - \Pf{f} Current {\bf f\/}ilename.\\ - \Pf{i} Turn on {\bf i\/}nverse printing mode.\\ - \Pf{I} Turn off {\bf i\/}nverse printing mode.\\ - \Pf{k} {\bf k\/}ind of error (warning, error, message).\\ - \Pf{l} {\bf l\/}ine number of error.\\ - \Pf{m} Warning {\bf m\/}essage.\\ - \Pf{n} Warning {\bf n\/}umber.\\ - \Pf{u} An {\bf u\/}nderlining line (like the one which - appears when using \Cmd{-v1}).\\ - \Pf{r} Part of line in front of error ($\mbox{`S'} - - 1$).\\ - \Pf{s} Part of line which contains error ({\bf - s\/}tring).\\ - \Pf{t} Part of line after error ($\mbox{`S'} + 1$). - \end{tabularx} - \smallskip - - Other characters will be passed literally; thus you can say - \Cmd{\%\%} to achieve a single percent sign in the output. - Please note that we may introduce other specifiers in the future, - so don't abuse this feature for other characters. - - Also, note that we do {\em not\/} support field lengths (yet). - This may come in the future, if I get the time\dots - - The {\tt -v} command is implemented by indexing into the \rsrc\ - file; read that for seeing how each format is implemented. If - you find yourself using a particular format often by using the - -f switch, consider putting it in the \rsrc\ file instead. - \item[{\tt -V [--pipeverb]}] Which entry we'll use in the \rsrc\ - file whenever {\tt stdout} isn't a terminal. - - The default is to use the same mode as specified with the - {\tt -v} switch; using {\tt -V} without any parameter will give you - mode 1. - - This switch was implemented because GNU less has problems with - the escape codes \chktex\ uses for displaying inverse text. - Under UNIX, there's another way around, though, which is slightly - more elegant. Add the following line to your \Cmd{.envir} file: -\begin{verbatim} -setenv LESS -r -\end{verbatim} - - \item[{\tt -p [--pseudoname]}] With this switch, you can provide - the filename which will be used when we report the errors. This - may be useful in scripts, especially when doing pipes. It is in - other words similar to C's \verb@#line@ directive. - - We will only assume this name for the uppermost file; files that - this one in turn \verb@\@\verb@input@ are presented under their original - names. This seems most logical to me. - - \item[{\tt -s [--splitchar]}] String to use instead of the - colons when doing {\tt -v0}; e.g.\ this string will be output - between the fields. - - \end{description} -\item[Boolean switches:] Common for all of these are that they - take an optional parameter. If it is {\tt 0}, the feature will - be disabled, if it is {\tt 1}, it will be enabled. All these - features are on by default; and are toggled if you don't give - any parameter. - - \begin{description} - \item[{\tt -b [--backup]}] If you use the {\tt -o} switch, and the - named outputfile exists, it will be renamed to {\tt filename.bak}. - \item[{\tt -I [--inputfiles]}] Execute \verb@\@\verb@input@ - statements; e.g.\ include the file in the input. Our input parsing - does of course nest; we use an input-stack to keep track of this. - \item[{\tt -H [--headererr]}] Show errors found in front of the - \verb@\begin{document}@ line. Some people keep {\em lots\/} of - pure \TeX\ code there, which errors can't be detected reliably - (in other words, we will in most cases just produce a lot of - garbage). - \item[{\tt -g [--globalrc]}] Read in the global resource file. This - switch may be useful together with the {\tt -l} option. - \item[{\tt -t [--tictoc]}] Display a twirling baton, to show that - we're working. {\tt -v0} does an {\tt -t0}, too, as it assumes - that the user then uses the program non-interactively. This is - now a no-op. - \item[{\tt -x [--wipeverb]}] Ignore the ``\verb@\verb@'' command - found within the \LaTeX\ file and its argument is completely by - the checking routines. This is done by simply overwriting them. - If you somehow don't like that (for instance, you would like to - count brackets inside those commands, too), use this switch. - \end{description} -\end{description} - - -If you don't specify any input \LaTeX-files on the commandline, we'll -read from {\tt stdin}. To abort {\tt stdin} input, press the -following keycombinations: - -\smallskip -\begin{tabular}{ll} - \bf Machine & \bf Key-combination \\ - Amiga & $\fbox{\tt Ctrl} + \fbox{\tt\BS}$ \\ - UNIX & $\fbox{\tt Ctrl} + \fbox{\tt D}$ \\ - MS-DOS & $\fbox{\tt Ctrl} + \fbox{Z}$, followed by return. -\end{tabular} -\smallskip - -By default, we're using the 1994 version of GNU's \Cmd{getopt()} -routine. For those of you who have only used the Amiga's \Cmd{ReadArgs()}, -here are some quick instructions: - -\begin{itemize} -\item Options may be given in any order; the names of the \LaTeX-files - do not have to be the last arguments. This behaviour may be turned - off by creating an environment variable named \Cmd{POSIXLY\_CORRECT}. -\item The special argument \Cmd{--} forces an end of - option-scanning. -\item Long-named options begin with \Cmd{--} instead of \Cmd{-}. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the argument, separated from - the option name by a \Cmd{=}, or else the in next argument. -\end{itemize} - -\subsubsection{The \rsrc\ file} - -You should also take a look at the \rsrc\ file. As the file is -self-documenting; you should be able to get the meaning of each -keyword by simply reading the file. The method for {\em finding it}, -however, has grown rather complex. An outline is given below. - -If \chktex\ finds multiple files when searching, each and everyone -will be read in the order specified below. The \Cmd{Keyword = \{ item - item \dots \}} may thus be necessary to reset previously defined -lists. - -In this list, \Cmd{\$foo} is assumed to be the environment variable -\Cmd{foo}: - -\begin{enumerate} -\item First, we'll take a look at the directory which was specified as - \Cmd{DATADIR} during compilation (this does not happen on Amiga - machines). On UNIX boxes, this usually evaluates to - \Cmd{/usr/local/share/chktexrc} or similar, under MS-DOS it is set - to \Cmd{\BS{}emtex\BS{}data\BS{}chktexrc}. - -\item Look in the following system directories: - - \begin{tabular}{ll} - \bf Machine & \bf Directory \\ - 2.04+ Amiga & {\tt ENV:.chktexrc} \\ - 1.3 Amiga & {\tt S:.chktexrc} \\ - UNIX & \Cmd{\$HOME/.chktexrc} or \Cmd{\$LOGDIR/.chktexrc} \\ - MSDOS & Program installation path - \end{tabular} - -\item Look for it in the directory pointed to by an environment - variable, as specified in the table below: - - \begin{tabularx}\linewidth{lY} - \bf Machine & \bf Directory \\ - Amiga & \Cmd{\$CHKTEXRC/.chktexrc} \\ - UNIX & \Cmd{\$CHKTEXRC/.chktexrc} \\ - MSDOS & \Cmd{\$CHKTEXRC\BS{}chktexrc}, \Cmd{\$CHKTEX\_HOME\BS - chktexrc} or \Cmd{\$EMTEXDIR\BS{}data\BS{}chktexrc} - \end{tabularx} - -\item Look for it in the current directory. On UNIX and Amiga boxes, - we expect the filename to be \Cmd{.chktexrc}; on other machines - \Cmd{chktexrc}. - -\end{enumerate} - -If you for some reason wish to undo what the previous files may have -done, you may say \Cmd{CmdLine \{ -g0 -r \}} somewhere in the \rsrc\ -file; this will reset all previous settings. - - -\subsubsection{Hints} -I've tried to collect some advice that may be useful --- if you have a -favourite hint, feel free to send it to me! - -\begin{itemize} -\item If you use \Cmd{german.sty}; it may be wise to put \Cmd{-n18} in - the \Cmd{CmdLine} entry in the \rsrc\ file. This will probably reduce - the amount of false warnings significantly. -\item Put \Cmd{-v} in the \Cmd{CmdLine} entry of the \rsrc\ file; this - makes the fancy printing the default. -\item If you're working on a large project, it may pay off to make a - local resource file which is included in addition to the global - one. In this one, add the necessary info to reduce the amount of - false warnings --- these usually don't do anything but hide the - real warnings. -\item Create a total ignore environment, which \chktex\ will ignore - completely. In here, you can place all that code which outsmarts - \chktex\ completely. For instance, add the following lines at the top - of your \LaTeX\ file: -\begin{verbatim} -% ChkTeX will ignore material within this environment -\newenvironment{ignore}{}{} -\end{verbatim} - In addition, you should add the item \Cmd{ignore} to the \Cmd{VerbEnvir} - entry in the \rsrc\ file. -\end{itemize} -\subsubsection{Bugs} - -No fatal ones, I think, but the program currently has some problems when a -\LaTeX\ command/parameter stretch over a two lines --- some extra spaces -may be inserted into the input. I regard the program as fairly well -tested; using the SAS/C \Cmd{cover} utility I was able to make sure that -approximately 95\% of the code has actually been run successfully in the -final version. This does indeed leave some lines; most of these are -procedure terminating brackets or ``can't happen'' lines, though. - -We've got some problems when isolating the arguments of a command. -Although improved, it will certainly fail in certain cases; \chktex\ -can for instance not handle arguments stretching over two lines. This -also means that \Cmd{WIPEARG} entries in the \rsrc\ file will only -have the first half of their argument wiped if the argument stretches -over two lines. We will, however, take care not to wipe parenthesis -in such cases, in order to avoid false warnings. - -Before submitting a bug report, please first see whether the problem can be -solved by editing the \rsrc\ file appropiately. - - - -\subsection{ChkWEB} - -This shell script is provided for checking CWEB files. The template is -as follows: -\begin{verbatim} -chkweb [options] file1 file2 ... -\end{verbatim} -As you may see from the script, it is only a trivial interface towards -{\tt deweb} and \chktex. It does not support any individual options -on the command line --- all options found will be passed onto \chktex. -If \Cmd{--} or a filename is found, the remaining parameters will be -ignored. -The only real intelligence it features is that it will try to append -\verb@.w@ to filenames it can't find. - -If no filenames are given, we will read from {\tt stdin}. - -\subsection{DeWEB} - -This program strips away C code and CWEB commands from CWEB sources. -It is called with the following synopsis: - -\begin{verbatim} -deweb file1 file2 ... -\end{verbatim} - -{\tt deweb} filters away all C \&\ CWEB commands from a CWEB source code. -This leaves only the \LaTeX\ code. This stripped code, in turn, may then -be passed to a suitable syntax checker for \LaTeX, like \chktex\ and {\tt - lacheck}, or spell-checkers like {\tt ispell}. - -When {\tt deweb} strips away the C code from your CWEB source, it tries to -preserve line breaks. This means that the error reports from {\it your - favorite tool\/} will be correct regarding to line numbers. In most -cases, the column position will also be correct. This significantly -simplifies finding the errors in the \LaTeX\ source (in contrast to the -output from {\tt cweave}, which output is truly difficult to figure -anything out from). - -{\tt deweb} accepts a list of filenames on the argument line, and will send -its output to {\tt stdout}. If no filenames are given, it will read from -stdin, acting as a filter. No options are currently accepted. - -Macho users may try to pipe the output from {\tt deweb} directly into -\LaTeX, theoretically, this should work. This would ease the debugging of -the \LaTeX\ code significantly, as when \LaTeX\ complains about wrong -syntax, you'll be able to find the erroneous line much more easily. Don't -expect that the output looks very much like the final one, though. - -{\tt deweb} should now understand all correct {\tt CWEB} opcodes. If it -complains about not understanding a correct opcode, please inform the -author. - -\subsubsection{Bugs} - -{\tt deweb} will not even {\em compile\/} under Perl versions before perl -v5. Unfortunately, this means that we can't even tell the user why we -failed; Perl will just complain about not being able to compile the -regexps. - -\section{Explanation of error messages} -Below is a description of all error-messages \chktex\ outputs. -Error messages set in {\it italic type\/} are turned off by default. -Where margin paragraphs are listed in the text, they refer to the -keyword in the \rsrc\ file which controls the discussed warning. - -\newcommand\Keyword[1]{\marginpar{\large\tt\hfill\\ #1}} - -\smallskip\pagebreak[2] -\Keyword{Silent} -\begin{errdesc}{Command terminated with space.} - You tried to terminate a command with a blank space. Usually, this - is an error as these are ignored by \LaTeX. In most cases, you would - like to have a real space there. - - \begin{errexam} - \verb@\LaTeX@\underline{\tt }\verb@is a typesetter.@ \\* - \LaTeX is a typesetter. \\* - \smallskip - \verb@\LaTeX\ is a typesetter.@ \\* - \LaTeX\ is a typesetter. \\* - \end{errexam} -\end{errdesc} - -\Keyword{Linker} -\begin{errdesc}{Non-breaking space (`\~{}') should have been used.} - When reading a document, it is not very pretty when references are - split across lines. If you use the \verb@~@ character, \LaTeX\ will - assign a very high penalty for splitting a line at that point. - \chktex\ issues this warning if you have forgot to do this. - - \begin{errexam} - \verb@Please refer to figure@\underline{\tt\ }\verb@\ref{foo}.@ \\* - Please refer to figure 11. \\* % Gotta cheat here! :) - \smallskip - \verb@Please refer to figure~\ref{foo}.@ \\* - Please refer to figure~11. \\* - \end{errexam} -\end{errdesc} - -\begin{errdesc}{You should enclose the previous parenthesis with `\{\}'.} - - This is a warning which you may ignore, but for maximum aestethic - pleasure, you should enclose your bracket characters with `\{\}'s. - - \begin{errexam} - \verb@$@\underline{\tt\ }\verb@[(ab)^{-1}]@\underline{\tt\ }\verb@\^{-2}$@ \\* - $[(ab)^{-1}]^{-2}$ \\* - \smallskip - \verb@${[{(ab)}^{-1}]}^{-2}$@ \\* - ${[(ab)^{-1}]}^{-2}$ \\* - \end{errexam} -\end{errdesc} - -\Keyword{Italic\\ItalCmd\\NonItalic} -\begin{errdesc}{Italic correction (`\BS/') found in non-italic - buffer.} - If you try to use the \verb@\/@ command when \chktex\ believes that - the buffer is not outputted as italic, you'll get this warning. - - \begin{errexam} - \verb@This is an@\underline{\tt\BS/}\verb@ example@ \\* - This is an\/ example. \\* - \smallskip - \verb@This is an example.@ \\* - This is an example. \\* - \end{errexam} -\end{errdesc} - -\Keyword{Italic\\ItalCmd\\NonItalic} -\begin{errdesc}{Italic correction (`\BS/') found more than once.} - If the buffer is italic, and you try to use the \verb@\/@ command - more than once, you'll get this warning. - - \begin{errexam} - \verb@This {\it example\/@\underline{\tt\BS/}\verb@} is not amusing.@ \\* - This {\it example\/\/} is not amusing. \\* - \smallskip - \verb@This {\it example\/} is not amusing.@ \\* - This {\it example\/} is not amusing. \\* - \end{errexam} -\end{errdesc} - -\Keyword{Italic\\ItalCmd\\NonItalic} -\begin{errdesc}{No italic correction (`\BS/') found.} - You get this error if \chktex\ believes that you are switching from - italic to non-italic, and you've forgot to use the \verb@\/@ command - to insert that extra little spacing. If you use the \Cmd{em} option, - you may ignore this warning. - - \begin{errexam} - \verb@This {\it example@\underline{\tt\ }\verb@} is not amusing, either.@ \\* - This {\it example} is not amusing, either. \\* - \smallskip - \verb@This {\it example\/} is not amusing, either.@ \\* - This {\it example\/} is not amusing, either. \\* - \end{errexam} -\end{errdesc} - -\Keyword{IJAccent} -\begin{errdesc}{Accent command `command' needs use of `command'.} - If you're using accenting commands, `i' and `j' should lose their - dots before they get accented. This is accomplished by using the - \verb@\i@, \verb@\j@, \verb@\imath@ and \verb@\jmath@ command. - - \begin{errexam} - \verb@This is an example of use of accents: \'{@\underline{\tt i}\verb@}.@ \\* - This is an example of use of accents: \'{i}. \\* - \smallskip - \verb@This is an example of use of accents: \'{\i}.@ \\* - This is an example of use of accents: \'{\i}. \\* - \end{errexam} -\end{errdesc} - -\Keyword{HyphDash\\NumDash\\WordDash} -\begin{errdesc}{Wrong length of dash may have been used.} - This warning suggests that a wrong number of dashes may have been - used. It does this by classifying the dash according to the the - character in front and after the dashes. - - If they are of the same type, \chktex\ will determine which keyword - to use in the \rsrc\ file. If not, it will shut up and accept that - it doesn't know. - - \begin{tabular}{ll} - \bf Character type & \bf Keyword in \rsrc\ file \\* - Space & \tt WordDash \\* - Number & \tt NumDash \\* - Alphabetic character & \tt HyphDash \\* - \end{tabular} - - This is more or less correct, according to my references. Hopefully - this check can be even more improved (suggestions?). - - \begin{errexam} - \verb@It wasn't anything @\underline{\tt-}\verb@ just a 2@\underline - {\tt---}\verb@3 star@\underline{\tt--}\verb@shots.@ \\* - It wasn't anything - just a 2---3 star--shots. \\* - \smallskip - \verb@It wasn't anything --- just a 2--3 star-shots@ \\* - It wasn't anything --- just a 2--3 star-shots. \\* - \end{errexam} -\end{errdesc} - - -\fmted{`\%s' expected, found `\%s'.} -\begin{errdesc}{Solo `\%s' found.} - You get this warning whenever brackets or environments don't match. - \chktex\ expect to find matching brackets/environments in the - same order as their opposites were found, and no closing delimiters - which haven't been preceded by an opening one. - - While bracket matching is not an explicit error, it is usually a - sign that something is wrong. - -\end{errdesc} - -\Keyword{CenterDots\\LowDots} -\begin{errdesc}{You should use `\%s' to achieve an ellipsis.} - Simply typing three \Cmd{.} in a row will not give a perfect spacing - withing the between the dots. The \verb@\ldots@ is much more - suitable for this. - - In math mode, you should also distinguish between \verb@\cdots@ and - \verb@\ldots@; take a look at the example below. - - \begin{errexam} - \newcommand{\td}{\underline{\tt...}} - \verb@Foo@\td\verb@bar. $1,@\td\verb@,3$. $1+@\td\verb@+3$. $1,@% - \underline{\tt\BS{}cdots}\verb@,3$.@ \\* - Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. \\* - \smallskip - \verb@Foo\dots bar. $1,\ldots,3$. $1+\cdots+3$. $1,\ldots,3$.@ \\* - Foo\dots bar. $1,\ldots,3$. $1+\cdots+3$. $1,\ldots,3$. \\ - \end{errexam} -\end{errdesc} - -\Keyword{Abbrev} -\begin{errdesc}{Interword spacing (`\BS\ ') should perhaps be used.} - - One of the specified abbreviations were found. Unless you have - previously said \verb@\frenchspacing@, you'll have incorrect - spacing, which one should avoid if possible. - - \begin{errexam} - \verb@This is an example, i.e.@\underline{\tt\ }\verb@an demonstration.@ \\* - This is an example, i.e. an demonstration. \\* - \smallskip - \verb@This is an example, i.e.\ an demonstration.@ \\* - This is an example, i.e.\ an demonstration. \\* - \end{errexam} -\end{errdesc} - -\begin{errdesc}{Intersentence spacing (`\BS{}@') should perhaps be used.} - - \LaTeX' detection of whether a period ends a sentence or not, is - only based upon the character in front of the period. If it's - uppercase, it assumes that it does not end a sentence. While this - may be correct in many cases, it may be incorrect in others. - \chktex\ thus outputs this warning in every such case. - - \begin{errexam} - \verb@I've seen an UFO!@\underline{\tt\ }\verb@Right over there!@ \\* - I've seen an UFO! Right over there! \\* - \smallskip - \verb+I've seen an UFO\@! Right over there!+ \\* - I've seen an UFO\@! Right over there! \\* - \end{errexam} -\end{errdesc} - -\begin{errdesc}{Could not find argument for command.} - - \chktex\ will in some cases need the argument of a function to - detect an error. As \chktex\ currently processes the \LaTeX\ file on - a line-by-line basis, it won't find the argument if the command - which needed it was on the previous line. On the other hand, this - {\em may\/} also be an error; you ought to check it to be safe. - - \begin{errexam} - \verb@$\hat$@ \\* - This will give a \LaTeX\ error\dots \\* - \smallskip - \verb@$\hat{a}$@ \\* - $\hat{a}$ \\* - \end{errexam} -\end{errdesc} - -\begin{errdesc}{No match found for `\%s'.} - - This warning is triggered if we find a single, {\em opening\/} - bracket or environment. While bracket matching is not an explicit - error, it is usually a sign that something is wrong. - -\end{errdesc} - -\Keyword{MathEnvir} -\begin{errdesc}{Mathmode still on at end of LaTeX file.} - This error is triggered if you at some point have turned on - mathmode, and \chktex\ couldn't see that you remembered to turn it - off. - -\end{errdesc} - -\begin{errdesc}{Number of `character' doesn't match the number of `character'.} - - Should be self-explanatory. \chktex\ didn't find the same number of - an opening bracket as it found of a closing bracket. - -\end{errdesc} - -\begin{errdesc}{You should use either `` or '' as an alternative to `\,"\,'.} - Self-explanatory. Look in the example, and you'll understand why. - - \begin{errexam} - \verb@This is an @\underline{\tt"}\verb@example@\underline{\tt"} \\* - This is an "example" \\* - \smallskip - \verb@This is an ``example''@ \\* - This is an ``example'' \\* - \end{errexam} -\end{errdesc} - -\begin{errdesc}{You should use "'" (ASCII 39) instead of - "'" (ASCII 180).} On some keyboards you might get the wrong quote. - This quote looks, IMHO, {\em ugly\/} compared to the standard - quotes, it doesn't even come out as a quote! Just see in the - example. - - - \begin{errexam} - \verb@``There@\underline{\tt '}\verb@s quotes and there@\underline{\tt '}\verb@s quotes@ - \underline{\tt ''} \\* % '' - ``There´s quotes and there´s quotes´´ \\* % '' - \smallskip - \verb@``There's quotes and there's quotes''@ \\* - ``There's quotes and there's quotes'' \\* - \end{errexam} -\end{errdesc} - -\Keyword{Userwarn} -\begin{errdesc}{User-specified pattern found.} - A substring you've specified using {\tt USERWARN} in the \rsrc\ file, - has been found. -\end{errdesc} - -\begin{errdesc*}{This command might not be intended.} - I implemented this because a friend of mine kept on making these - mistakes. Easily done if you haven't gotten quite into the syntax - of \LaTeX. - - \begin{errexam} - \verb@\LaTeX\ is an extension of \TeX@\underline{\tt\BS.}\verb@ Right?@ \\* - \LaTeX\ is an extension of \TeX\. Right? \\* - \smallskip - \verb@\LaTeX\ is an extension of \TeX. Right?@ \\* - \LaTeX\ is an extension of \TeX. Right? \\* - \end{errexam} -\end{errdesc*} - -\begin{errdesc*}{Comment displayed.} - \chktex\ dumps all comments it finds, which in some cases is useful. - I usually keep all my notes in the comments, and like to review them - before I ship the final version. For commenting out parts of the - document, the \Cmd{comment} environment is better suited. - -\end{errdesc*} - - -\begin{errdesc}{Either ''\BS,' or '\BS,'' will look better.} - - This error is generated whenever you try to typeset three quotes in - a row; this will not look pretty, and one of them should be - separated from the rest. - - \begin{errexam} - \underline{\tt```}\verb@Hello', I heard him said'', she remembered.@ \\* - ```Hello', I heard him said'', she remembered. \\* - \smallskip - \verb@``\,`Hello', I heard him said'', she remembered.@ \\* - ``\,`Hello', I heard him said'', she remembered. - \end{errexam} -\end{errdesc} - -\Keyword{PostLink} -\begin{errdesc}{Delete this space to maintain correct pagereferences.} - This message, issued when a space is found in front of a - \verb@\index@, \verb@\label@ or similar command (can be set in the - \rsrc\ file). Sometimes, this space may cause that the word and the - index happens on separate pages, if a pagebreak happens just there. - - You might also use this warning to warn you about spaces in front of - footnotes; however, the warning text may not be entirely correct - then. - - \begin{errexam} - \verb@Indexing text@\underline{\tt\ }\verb@\index{text} is fun!@ \\* - \smallskip - \verb@Indexing text\index{text} is fun!@ \\* - \end{errexam} -\end{errdesc} - -\begin{errdesc}{You might wish to put this between a pair of `\{\}'} - - This warning is given whenever \chktex\ finds a \Cmd{\^{ }}' or a - \Cmd{\_} followed by either two or more numberic digits or two or - more alphabetic characters. In most situations, this means that - you've forgotten some \{\}'s. - - \begin{errexam} - \verb@$5\cdot10^@\underline{\tt10}\verb@$@ \\* - $5\cdot10^10$ \\* - \smallskip - \verb@$5\cdot10^{10}$@ \\* - $5\cdot10^{10}$ - \end{errexam} -\end{errdesc} - -\begin{errdesc}{You ought to remove spaces in front of punctuation.} - - This warning is issued if \chktex\ finds space in front of an - end-of-sentence character. - - \begin{errexam} - \verb@Do you understand@\underline{\tt\ }\verb@?@ \\* - Do you understand ? \\* - \smallskip - \verb@Do you understand?@ \\* - Do you understand? \\* - \end{errexam} -\end{errdesc} - -\begin{errdesc}{Could not execute LaTeX command.} - - Some \LaTeX\ commands will be interpreted by \chktex; however, some - of them are sensible to errors in the \LaTeX\ source. Most notably, - the \verb@\@\verb@input@ command relies on that the input file exists\dots - -\end{errdesc} - -\Keyword{Italic\\ItalCmd\\NonItalic} -\begin{errdesc}{Don't use \BS/ in front of small punctuation.} - Italic correction should generally {\em not\/} be used in front of - small punctuation characters like `.' and `,'; as it looks better - when the preceding italic character leans ``over'' the punctum or - comma. - - \begin{errexam} - \verb@It is just a {\it test@\underline{\tt\BS/}\verb@}, don't think anything else.@ \\* - It is just a {\it test\/}, don't think anything else. \\* - \smallskip - \verb@It is just a {\it test}, don't think anything else.@ \\* - It is just a {\it test}, don't think anything else. - \end{errexam} -\end{errdesc} - -\begin{errdesc}{\$\BS{}times\$ may look prettier here.} - In ASCII environments, it is usual to use the `x' character as an - infix operator to denote a dimension. The mathemathical symbol - $\times$ provided by the \verb@$\times$@ command is better suited for - this. - - \begin{errexam} - \verb@The program opens a screen sized 640@\underline{\tt x}\verb@200 pixels.@ \\* - The program opens a screen sized 640x200 pixels. \\* - \smallskip - \verb@The program opens a screen sized $640\times200$ pixels.@ \\* - The program opens a screen sized $640\times200$ pixels. - \end{errexam} -\end{errdesc} - -\begin{errdesc*}{Multiple spaces detected in output.} - - This warning, intended for the novice, will remind you that even if - you {\em type\/} multiple spaces in your input, only a single space - will come out. Some ways to come around this is listed below. - - \begin{errexam} - \verb@White is a beautiful colour.@ \\* - White is a beautiful colour. \\* - \smallskip - \verb@White~~~~~{ }{ }{ }\ \ \ is a beautiful colour.@ \\* - White~~~~~{ }{ }{ }\ \ \ is a beautiful colour. \\ - \end{errexam} -\end{errdesc*} - -\Keyword{VerbEnvir} -\begin{errdesc}{This text may be ignored.} - Certain implementations of the \verb@verbatim@ environment and - derivations of that, ignore all text on the same line as - \verb@\end{verbatim}@. This will warn you about this. - - -\end{errdesc} - -\fmted{Use ` to begin quotation, not '.}\hfill\\ -\fmted{Use ' to end quotation, not `.}\hfill\\ -\begin{errdesc}{Don't mix quotes.} - - Proper quotations should start with a \verb@`@ and end with a - \verb@'@; anything else isn't very pretty. Both these warnings are - relative to this; look in the example below. - - \begin{errexam} - \verb@There are @\underline{\tt`'}% - \verb@examples'' and there are ``examples@\underline{\tt``}\verb@.@ \\* - There are `'examples'' and there are ``examples``. \\* - \smallskip - \verb@There are ``examples'' and there are ``examples''.@ \\* - There are ``examples'' and there are ``examples''. - \end{errexam} -\end{errdesc} - -\Keyword{MathRoman} -\begin{errdesc}{You should perhaps use `cmd' instead.} - Most mathematical operators should be set as standard roman font, - instead of the math italic \LaTeX\ uses for variables. For many - operators, \LaTeX\ provides a pre-defined command which will typeset - the operator correctly. Look below for an illustration of the point. - - \begin{errexam} - \verb@$@\underline{\tt sin}\verb@^2 x + @\underline{\tt cos}\verb@^2 x = 1$@ \\* - $sin^2 x + cos^2 x= 1$ \\* - \smallskip - \verb@$\sin^2 x + \cos^2 x = 1$@ \\* - $\sin^2 x + \cos^2 x = 1$ - \end{errexam} -\end{errdesc} - -\fmted{You should put a space in front of/after parenthesis.}\hfill\\ -\begin{errdesc}{You should avoid spaces in front of/after parenthesis.} - Outside math mode, you should put a space in front of any group of - opening parenthesis, and no spaces after. If you have several after - each other, you should of course not put a space in between each; - look in the example below. Likewise, there should not be spaces in - front of closing parenthesis, but there should be at least one - after. - - - - \begin{errexam} - \verb@This@\underline{\tt( }\verb@an example@\underline{\tt( }% - \verb@Nuff said@\underline{\tt\ }\verb@)), illustrates@\underline{\tt( }% - \verb@``my''@\underline{\tt\ )}\verb@point.@\\ - This( an example( Nuff said )), illustrates( ``my'' )point. \\ - \smallskip - \verb@This (an example (Nuff said)), illustrates (``my'') point.@\\ - This (an example (Nuff said)), illustrates (``my'') point.\\ - \end{errexam} -\end{errdesc} - -\Keyword{QuoteStyle} -\begin{errdesc}{You should not use punctuation in front of/after - quotes.} - % - For best looking documents, you should decide on how you - wish to put quotes relative to punctuation. \chktex\ recognizes two - styles; you may specify which you use in the \rsrc\ file. A - description on each style follows: - \begin{description} - \item[Traditional:] This style is the most visually pleasing. It - always puts the punctuation {\em in front of\/} the quotes, which - gives a continuous bottom line. - - However, it may in certain cases be ambigious. Consider the - following example from a fictious \Cmd{vi(1)} - tutorial (quote taken from the Jargon file): - \begin{center} - \verb@Then delete a line from the file by typing ``dd.''@ \\* - Then delete a line from the file by typing ``dd.'' - \end{center} - That would be very bad --- because the reader would be prone to - type the string d-d-dot, and it happens that in \Cmd{vi(1)} dot - repeats the last command accepted. The net result would be to - delete {\em two\/} lines! This problem is avoided using logical - style, described below. - \pagebreak[3] - \item[Logical:] This style uses quotes as balanced delimiters like - parentheses. While this is not the most visual pleasing, it is - can't be misunderstood. The above sentence would then become: - \nopagebreak - \begin{center} - \verb@Then delete a line from the file by typing ``dd''.@ \\* - Then delete a line from the file by typing ``dd''. - \end{center} - \nopagebreak - \end{description} - -\end{errdesc} - -\begin{errdesc}{Double space found.} - This warning is triggered whenever \chktex\ finds a space in front - of a hard space, or vice versa. This will be rendered as two spaces - (which you usually don't wish). - - \begin{errexam} - \verb@For output codes, see table@\underline{\tt\ }% - \verb@~@\underline{\tt\ }\verb@\ref{foo}.@ \\* - For output codes, see table ~ 1.1.\\* - \smallskip - \verb@For output codes, see table~\ref{foo}.@ \\* - For output codes, see table~1.1. - \end{errexam} -\end{errdesc} - -\Keyword{MathEnvir} -\begin{errdesc}{You should put punctuation outside inner/inside - display math mode.} - As recommended in the \TeX{}book, you should try to put punctuation - outside inner math mode, as this is gets formatted better. - - Similarily, you should let any final punctuation in display math - mode end up within it. Look at the following example, which was - taken from the \TeX{}book: - \begin{errexam} - \verb@for $x = a@\underline{\tt,}\verb@b$, or $c$.@\\* - for $x = a,b$, or $c$. \\* - \smallskip - \verb@for $x = a$, $b$, or $c$.@\\* - for $x = a$, $b$, or $c$.\\* - \end{errexam} - -\end{errdesc} - -\Keyword{Primitives} -\begin{errdesc*}{You ought to not use primitive TeX in LaTeX code.} - This warning is triggered whenever you use a raw \TeX\ command - which has been replaced by a \LaTeX\ equivalent. If you consider - yourself a purist (or want to be sure your code works under \LaTeX3), - you should use the \LaTeX\ equivalent. -\end{errdesc*} - -\Keyword{NotPreSpaced} -\begin{errdesc}{You should remove spaces in front of `\%s'} - - Some commands should not be prepended by a space character, for cosmetical - reasons. This notes you of this whenever this has happened. - - \begin{errexam} - \verb@This is a footnote@\underline{\tt\ }\verb@\footnotemark[1] mark.@\\* - This is a footnote ${}^1$ mark. \\* - \smallskip - \verb@This is a footnote\footnotemark[1] mark.@\\* - This is a footnote${}^1$ mark. \\* - \end{errexam} -\end{errdesc} - -\Keyword{NoCharNext} -\begin{errdesc}{`\%s' is normally not followed by `\%c'.} - \LaTeX' error message when calling \verb@\left \{@ instead of - \verb@left \{@ is unfortunately rather poor. This warning detects - this and similar errors. -\end{errdesc} - -\section{Future plans} - -In a somewhat prioritized sequence, this is what I'd like to put into the -program --- if I have the time. - -\begin{itemize} -\item Do a final fix for maths mode. Currently, \chktex\ doesn't - recognize embedded math mode (i.e.\ constructions like - \verb@$$a+b\text{for $a \leq 0$}$$@). - -\item Support for regular expressions as user patterns. I'll do it at - once I get the GNU \Cmd{rx} package up and running (it doesn't - produce correct include files). - -\item De-linearize the checker. Currently, it works on a line-by-line - basis, in most respects, at least. I hope to be able to remove this - barrier; as this will reduce the amount of false warnings - somewhat. - -\item Probably some more warnings/errors; just have to think them out - first. Suggestions are appreciated --- I've ``stolen'' most that - similar programs provides, and am running out of ideas, really. - - It would also be nice to investigate the field of ``globally'' - oriented warnings; i.e.\ warnings regarding the document as a - whole. Currently, \chktex\ operates mainly on a local/``greedy'' - basis. - - If you have suggestions/ideas on this topic, they're certainly - welcome, including references to literature. - -\item Fix a few more bugs. \smiley -\end{itemize} - -\section{Notes} - -\subsection{Wish to help?} - -As most other living creatures, I have only a limited amount of time. If -you like \chktex\ and would like to help improving it, here's a few things -I would like to receive. The following ideas are given: - -\begin{itemize} -\item Does anyone have a $\mbox{\LaTeX}\rightarrow \mbox{{\tt troff}}$ - conversion program? It would be really nice if I could extract the - relevant sections from this manual, and present them as a man page. - I will not, however, convert this manual to \TeX{}info in order to - be able to do this; IMHO \TeX{}info documents have far too limited - typographic possibilities. - - This doesn't mean that I'm not willing to restructure the document - at all. This manual already uses some kind of preprocessing in order - to achieve HTML output via \LaTeX2{\tt html}, I'm willing to do the - same in order to produce {\tt troff} output. - -\item Help me port the program! This is a prioritized one. It's no fun - writing ANSI C when people haven't got a C compiler. - - Of course, I'll provide whatever help necessary to modify the sources - to fit to the new platform. Take contact if you're interested. I will - include your compiled binary in the distribution, and give you - credit where appropiate. - - Just one request: If you have to modify the sources in order to make - \chktex\ compile \& work on the new platform, {\em please\/} enclose your - changes in something like \Cmd{\#ifdef \_\_PLATFORM\_\_\dots code\dots\#endif}! - It makes life so much easier later, when we try to merge the two - source trees. - -\item Reports on problems configuring and compiling \chktex\ on supported - (and unsupported) systems are welcomed. - -\item Filters for other file formats. I do believe that there are - several formats using \LaTeX\ for its formatting purposes, combining - that with something else. If you can write a program or script which - filters everything away but the \LaTeX\ code, it will surely be - appreciated (and included). Look at the \verb@deweb@ script to see - what I mean. - -\item Arexx interfaces for other editors are also welcomed; these - should be rather fast to write. They should to the following: - \begin{enumerate} - \item Get the filename of the active file. - \item If possible, save the file to disk if there has been any - changes. - \item Call the program \Cmd{ChkTeX.rexx} with the filename as the - only parameter. - \end{enumerate} - -\item If somebody out there actually possesses (and uses) GoldED, it - would be nice if they checked whether the ARexx script included - actually work. If not, please send me a fixed copy; perhaps also - one which supports point 2 above, too. If it does work, then please - tell me so, so I can remove this item. - - I don't have GoldEd in my possession; the script was just modelled - after Juergen Zeschky's, ({\tt <juergen@sokrates.nbg.de>}) - $\mbox{PGP}\leftrightarrow\mbox{GoldED}$ interface. - -\item If you update the \rsrc\ file in anyway that is not strictly - local, I would appreciate to receive your updated version. - -\item Suggestions for new warnings are always welcomed. Both formal - (i.e.\ regexps or similar) and non-formal (plain English) descriptions - are welcomed. -\end{itemize} - -Of course, people doing any of this will be mentioned in this document, and -thus receive eternal glory and appreciation. - -\subsection{Caps and stuff} - -This program uses the \Cmd{getopt()} routine, as supplied from GNU\@. -The source included in this distribution has been modified slightly. -To make the use of C2LOCAL easier, portions which were -\verb@#ifdef@'ed out, have now been commented out. - -Where trademarks have been used, the author is aware of that they -belong to someone, and has tried to stick to the original caps. - -\section{About the author} - -A quick summary of who I am and what I do: - -I'm 21 years old, and live in Oslo, the capital of Norway. I'm -currently studying maths and computer science at the -University~of~Oslo; planning to get a degree within mathematical -modeling, with a dash of physics and emphazing the computer part of -the study. More precisely, in autumn'96 my studies consist of -mathematical analysis, statistics \& probability calculations plus -studying the relationship between society and computers. - -At home I now possess 4 computers, of which 1 is regular use: A -vanilla Amiga 1200, expanded only by a HD\@. The others are a {\tt - 80286} PC and an Amiga 500, both semi-out-of-order. The last one is -a Commodore VIC-20, which for some peculiar reason never seems to be -used. Plans are to get a Linux-capable PC, though. - -Most of the time in front of these computers (including SGI Indy's and -SPARC stations at our university) is spent on C and shell programming, -plus some text-processing. - - % I am also involved in writing the document - % for {\sc Isaac} --- Interactive Simulation as an Alternative to - % Advanced Calculations. This is planned to help newcomers to physics, - % by providing a computer program which enables one to simulate most - % experiments relating to classical mechanics. - % - -C and shell programming are not my only knowledge areas regarding -computers, however. I write the following languages more or less: -Perl, Motorola {\tt 68000} assembly code, ARexx, Simula, C++, \LaTeX, -HTML, AmigaGuide, Amos Basic and Installer LISP\@. Once I also -mastered Commodore Basic V2, the ``language'' included with my VIC-20. - -However, I also try to not to end up as a computer nerd. Thus, in -addition to the compulsory (?) interest for computers, I am a scout. -Still running into the woods, climbing the trees, falling down and -climbing up once more, in other words. To be more specific, I am a -now a troop leader for `Ulven' scout-group; Norwegian Scouts -Association. I am also a active rover in `V{\aa}lerenga' scout-group. - -Certainly a lot more to tell (I play the piano and like cross-country -skiing, for instance); but I'll stop here before you fall -asleep\dots\smiley - - -\section{Thanks} - -The author wishes to thank the following people (in alphabetical order): - -\def\Name#1#2{% -\item[] - \setbox0=\hbox{ - \begin{tabular}{l} - \bf #1 \\ - \tt #2 \\ - \end{tabular} - } \usebox0\\ } - -\begin{description} - - \Name{Russ Bubley}{russ@scs.leeds.ac.uk} - He has been the main external beta-tester for this program, sending - me loads and loads of understandable and reproducible bug reports. - If you somehow think that \chktex\ is well-behaved and free from - bugs, send warm thoughts to Russ. He has also provided ideas for - enhanced checks and so forth. - - In addition, he sent me a huge list of 238 common English - abbreviations, for inclusion in the \rsrc\ file! Together with the - enhanced abbreviation recognizer, I do now believe most - abbreviations should be catched\dots\smiley - - Finally, he has also given me valuable hints for improving the - program's outputting routine, and given me lots of suggestions for - filtering unnecessary/false warnings away. - - \Name{Gerd B\"ohm}{Gerd.Boehm@physik.uni-regensburg.de} - Improved and bug-fixed the MS-DOS port of \chktex\ v1.4, sending me - ready-to-yank code patches. The original port didn't respect all - the peculiarities of the MS-DOS file-system, unfortunately. - - \Name{Lars Frellesen}{frelle@math-tech.dk} Sent a few bug reports - regarding the filtering of messages. He has also helped me to - expand the \Cmd{SILENT} keyword in the \rsrc\ file. - - \Name{Wolfgang Fritsch}{fritsch@hmi.de} - Author of the OS/2 port, which he did using the emx compiler. - Please direct questions regarding strictly to that port to him (I - would like to receive a carbon copy, though). - - \Name{Stefan Gerberding}{stefan@inferenzsysteme.informatik.th-darmstadt.de} - First one to report the Enforcer hit in v1.2 when using \chktex\ as - a pipe. Also came with suggestions to make \chktex\ more easily - compile on early gcc compilers. - - He has also kept on beta-testing later versions of \chktex, giving - me bug-reports and enhancements requests. - - \Name{Kasper B. Graversen}{kbg2001@internet.dk} Lots of creative - suggestions and improvements. Several of the warnings implemented - were based on his ideas. In addition, he has given advice for - improving the existing warnings. - - Has also provided some OS-oriented code. - - \Name{Frank Luithle}{f\_luithle@outside.sb.sub.de} - Wrote a translation for v1.0. Unfortunately, he remained unreachable - after that\dots:-/ - - \Name{Nat}{nat@nataa.frmug.fr.net} - Reported the same bug as Gerberding. In addition, he taught me a - few tricks regarding the use of gcc + made me understand that the - ANSI standard isn't unambigious; at least the \verb@getenv()@ call - seem to be open for interpretations. Many possible - incompatibilities have been removed due to these lessons. - - \Name{Michael Sanders}{sanders@umich.edu} - Has found some of the bugs in this beast; both obscure and - long-lived. Has also provided motivation to clarify this document. - - \Name{Bj\o rn Ove Thue}{bjort@ifi.uio.no} - Author of the MSDOS port; please direct questions regarding - strictly to that port to him (I would like to receive a carbon - copy, though). - - \Name{Martin Ward}{Martin.Ward@durham.ac.uk} - Sent a few bug-reports; also gave me information upon where to find - regexp code. He also provided a Perl script for checking ordinary - text, which ideas I was able to implement in \chktex. In addition, - he sent me the source code for \verb@lacheck@; which also inspired some - of the warnings. -\end{description} - -%endlatex -\section{Contacting the author} - -If you wish to contact me for any reason or would like to participate in -the development of \chktex, please write to: -%latex -\begin{samepage} -%endlatex - \begin{quote} - Jens Berger \\ - Spektrumvn. 4 \\ - N-0666 Oslo \\ - Norway \\ - E-mail: {\tt <jensthi@ifi.uio.no>} - \end{quote} -%latex -\end{samepage} -%endlatex -Any signs of intelligent life are welcomed; that should exclude piracy. - -\medskip\noindent -Have fun. - -\end{document} - - - diff --git a/Build/source/texk/chktex/FindErrs.c b/Build/source/texk/chktex/FindErrs.c deleted file mode 100644 index 2014e3923cc..00000000000 --- a/Build/source/texk/chktex/FindErrs.c +++ /dev/null @@ -1,1485 +0,0 @@ -/* - * ChkTeX v1.5, error searching & report routines. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - - -#include "ChkTeX.h" -#include "FindErrs.h" -#include "OpSys.h" -#include "Utility.h" -#include "Resource.h" - -/***************************** ERROR MESSAGES ***************************/ - -#undef MSG -#define MSG(num, type, inuse, ctxt, text) {num, type, inuse, ctxt, text}, - -struct ErrMsg LaTeXMsgs [emMaxFault + 1] = -{ - ERRMSGS - {emMaxFault, etErr, iuOK, 0, INTERNFAULT} -}; - -#define istex(c) (isalpha(c) || (AtLetter && (c == '@'))) -#define CTYPE(func) \ -static int my_##func(int c) \ -{ \ - return(func(c)); \ -} - -#define INUSE(c) (LaTeXMsgs[(enum ErrNum) c].InUse == iuOK) - -#define PSERR2(pos,len,err,a,b) \ - PrintError(CurStkName(&InputStack), RealBuf, pos, len, Line, err, a, b) - -#define PSERRA(pos,len,err,a) \ - PrintError(CurStkName(&InputStack), RealBuf, pos, len, Line, err, a) - -#define HEREA(len, err, a) PSERRA(BufPtr - Buf - 1, len, err, a) -#define PSERR(pos,len,err) PSERRA(pos,len,err,"") - -#define HERE(len, err) HEREA(len, err, "") - -#define SKIP_BACK(ptr, c, check) \ - while((c = *ptr--)) \ - { \ - ifn(check) break; \ - } \ - ptr++; - -#define SKIP_AHEAD(ptr, c, check) \ - while((c = *ptr++)) \ - { \ - ifn(check) \ - break; \ - } \ - ptr--; - - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -static ULONG Line; - -static STRPTR RealBuf, LineCpy, BufPtr; - -static int ItFlag = efNone; - -NEWBUF(Buf, BUFSIZ); -NEWBUF(CmdBuffer, BUFSIZ); -NEWBUF(ArgBuffer, BUFSIZ); - -static enum ErrNum PerformCommand(const STRPTR Cmd, STRPTR Arg); - -#ifdef isdigit -CTYPE(isdigit) -#else -# define my_isdigit isdigit -#endif - -#ifdef isalpha -CTYPE(isalpha) -#else -# define my_isalpha isalpha -#endif - -/* - * Reads in a TeX token from Src and puts it in Dest. - * - */ - - -static STRPTR GetLTXToken(STRPTR Src, STRPTR Dest) -{ - int Char; - - if(Src && *Src) - { - if(*Src == '\\') - { - *Dest++ = *Src++; - Char = *Dest++ = *Src++; - - if(istex(Char)) - { - while(istex(Char)) - Char = *Dest++ = *Src++; - - Src--; - Dest--; - } - - } - else - *Dest++ = *Src++; - *Dest = 0; - } - else - Src = NULL; - - return(Src); -} - - -/* - * Scans the `SrcBuf' for a LaTeX arg, and puts that arg into `Dest'. - * `Until' specifies what we'll copy. Assume the text is - * "{foo}bar! qux} baz". - * GET_TOKEN => "{foo}" - * GET_STRIP_TOKEN => "foo" - * '!' => "{foo}bar!" (i.e. till the first "!") - * Returns NULL if we can't find the argument, ptr to the first character - * after the argument in other cases. - * - * If one of the tokens found is in the wl wordlist, and we're in the - * outer most paren, and Until isn't a single character, we'll stop. - * You may pass NULL as wl. - * - * We assume that you've previously skipped over leading spaces. - * - */ - -#define GET_TOKEN 256 -#define GET_STRIP_TOKEN 257 - -static STRPTR GetLTXArg(STRPTR SrcBuf, - const STRPTR OrigDest, - const int Until, - struct WordList *wl) - -{ - STRPTR Retval, TmpPtr, Dest = OrigDest; - ULONG DeliCnt = 0; - - *Dest = 0; - TmpPtr = SrcBuf; - - switch(Until) - { - case GET_STRIP_TOKEN: - case GET_TOKEN: - while((Retval = GetLTXToken(TmpPtr, Dest))) - { - switch(*Dest) - { - case '{': - DeliCnt++; - break; - case '}': - DeliCnt--; - } - Dest += Retval - TmpPtr; - TmpPtr = Retval; - - if(!DeliCnt || ((DeliCnt == 1) && wl && HasWord(Dest, wl))) - break; - } - - if(Retval && (*OrigDest == '{') && (Until == GET_STRIP_TOKEN)) - { - strcpy(OrigDest, OrigDest + 1); - OrigDest[strlen(OrigDest) - 1] = 0; - } - break; - default: - DeliCnt = TRUE; - while((Retval = GetLTXArg(TmpPtr, Dest, GET_TOKEN, NULL))) - { - if(*Dest == Until) - DeliCnt = FALSE; - - Dest += Retval - TmpPtr; - TmpPtr = Retval; - - if(!DeliCnt) - break; - } - break; - } - *Dest = 0; - - return(Retval); -} - - -static STRPTR MakeCpy(void) -{ - if(!LineCpy) - LineCpy = strdup(RealBuf); - - if(!LineCpy) - PrintPrgErr(pmStrDupErr); - - return(LineCpy); -} - -static STRPTR PreProcess(void) -{ - /* First, kill comments. */ - - STRPTR TmpPtr; - - strcpy(Buf, RealBuf); - - TmpPtr = Buf; - - while((TmpPtr = strchr(TmpPtr, '%'))) - { - if(TmpPtr[-1] != '\\') - { - PSERR(TmpPtr - Buf, 1, emComment); - *TmpPtr = 0; - break; - } - TmpPtr++; - } - return(Buf); -} - -/* - * Interpret environments - */ - -static void PerformEnv(STRPTR Env, BOOL Begin) -{ -static - TEXT VBStr [BUFSIZ] = ""; - - if(HasWord(Env, &MathEnvir)) - { - MathMode += Begin ? 1 : -1; - MathMode = max(MathMode, 0); - } - - if(Begin && HasWord(Env, &VerbEnvir)) - { - VerbMode = TRUE; - strcpy(VBStr, "\\end{"); - strcat(VBStr, Env); - strcat(VBStr, "}"); - VerbStr = VBStr; - } -} - -static STRPTR SkipVerb(void) -{ - STRPTR TmpPtr = BufPtr; - int TmpC; - - if(VerbMode && BufPtr) - { - ifn(TmpPtr = strstr(BufPtr, VerbStr)) - BufPtr = &BufPtr[strlen(BufPtr)]; - else - { - VerbMode = FALSE; - BufPtr = &TmpPtr[strlen(VerbStr)]; - SKIP_AHEAD(BufPtr, TmpC, LATEX_SPACE(TmpC)); - if(*BufPtr) - PSERR(BufPtr - Buf, strlen(BufPtr) - 2, emIgnoreText); - } - } - return(TmpPtr); -} - -#define CHECKDOTS(wordlist, dtval) \ -for(i = 0; (i < wordlist.Stack.Used) && !(Back && Front); i++) \ - { if(!strafter(PstPtr, wordlist.Stack.Data[i])) \ - Back = dtval; \ - if(!strinfront(PrePtr, wordlist.Stack.Data[i])) \ - Front = dtval; } - - - -/* - * Checks that the dots are correct - */ - -static enum DotLevel CheckDots(STRPTR PrePtr, STRPTR PstPtr) -{ - ULONG i; - int TmpC; - enum DotLevel Front = dtUnknown, Back = dtUnknown; - - if(MathMode) - { - PrePtr--; -#define SKIP_EMPTIES(macro, ptr) macro(ptr, TmpC, \ -(LATEX_SPACE(TmpC) || (TmpC == '{') || (TmpC == '}'))) - - SKIP_EMPTIES(SKIP_BACK, PrePtr); - SKIP_EMPTIES(SKIP_AHEAD, PstPtr); - - CHECKDOTS(CenterDots, dtCDots); - - ifn(Front && Back) - { - CHECKDOTS(LowDots, dtLDots); - } - return(Front & Back); - } - else - return(dtLDots); - -} - -static STRPTR Dot2Str(enum DotLevel dl) -{ - STRPTR Retval = INTERNFAULT; - switch(dl) - { - case dtUnknown: - Retval = "\\cdots or \\ldots"; - break; - case dtDots: - Retval = "\\dots"; - break; - case dtCDots: - Retval = "\\cdots"; - break; - case dtLDots: - Retval = "\\ldots"; - break; - } - return Retval; -} - -/* - * Wipes a command, according to the definition in WIPEARG - */ - -static void WipeArgument(STRPTR Cmd, STRPTR CmdPtr) -{ - ULONG CmdLen = strlen(Cmd); - STRPTR Format, TmpPtr; - int c, TmpC; - - if(Cmd && *Cmd) - { - TmpPtr = &CmdPtr[CmdLen]; - Format = &Cmd[CmdLen + 1]; - - while(TmpPtr && *TmpPtr && *Format) - { - switch(c = *Format++) - { - case '*': - SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC)); - if(*TmpPtr == '*') - TmpPtr++; - break; - case '[': - SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC)); - if(*TmpPtr == '[') - TmpPtr = GetLTXArg(TmpPtr, ArgBuffer, ']', NULL); - break; - case '{': - SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC)); - TmpPtr = GetLTXArg(TmpPtr, ArgBuffer, GET_TOKEN, NULL); - case '}': - case ']': - break; - default: - PrintPrgErr(pmWrongWipeTemp, &Cmd[strlen(Cmd) + 1]); - break; - } - } - - if(TmpPtr) - strwrite(CmdPtr, VerbClear, TmpPtr - CmdPtr); - else - strxrep(CmdPtr, "()[]{}", *VerbClear); - } -} - -/* - * Checks italic. - * - */ - -static void CheckItal(const STRPTR Cmd) -{ - int TmpC; - STRPTR TmpPtr; - if(HasWord(Cmd, &NonItalic)) - ItState = itOff; - elif(HasWord(Cmd, &Italic)) - ItState = itOn; - elif(HasWord(Cmd, &ItalCmd)) - { - TmpPtr = BufPtr; - SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC)); - if(*TmpPtr == '{') - { - ItFlag = ItState? efItal : efNoItal; - ItState = itOn; - } - } -} - -/* - * Interpret isolated commands. - * - */ - -static void PerformBigCmd(STRPTR CmdPtr) -{ - STRPTR TmpPtr, - ArgEndPtr; - ULONG CmdLen = strlen(CmdBuffer); - int TmpC; - enum ErrNum - ErrNum; - struct ErrInfo *ei; - - enum DotLevel dotlev, realdl = dtUnknown; - - TmpPtr = BufPtr; - SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC)); - - ArgEndPtr = GetLTXArg(TmpPtr, ArgBuffer, GET_STRIP_TOKEN, NULL); - - /* Kill `\verb' commands */ - - if(WipeVerb) - { - if(!strcmp(CmdBuffer, "\\verb")) - { - if(*BufPtr) - { - if((TmpPtr = strchr(&BufPtr[1], *BufPtr))) - strwrite(CmdPtr, VerbClear, (TmpPtr - CmdPtr) + 1); - else - PSERR(CmdPtr - Buf, 5, emNoArgFound); - } - } - } - - if(HasWord(CmdBuffer, &IJAccent)) - { - if(ArgEndPtr) - { - TmpPtr = ArgBuffer; - SKIP_AHEAD(TmpPtr, TmpC, TmpC == '{'); /* } */ - - if((*TmpPtr == 'i') || (*TmpPtr == 'j')) - PrintError(CurStkName(&InputStack), RealBuf, - CmdPtr - Buf, - (LONG) strlen(CmdBuffer), Line, - emAccent, CmdBuffer, - *TmpPtr, MathMode? "math" : ""); - } - else - PSERR(CmdPtr - Buf, CmdLen, emNoArgFound); - } - - if(HasWord(CmdBuffer, &NotPreSpaced) && - isspace(CmdPtr[-1])) - PSERRA(CmdPtr - Buf - 1, 1, emRemPSSpace, CmdBuffer); - - if((TmpPtr = HasWord(CmdBuffer, &NoCharNext))) - { - STRPTR BPtr = BufPtr; - - TmpPtr += strlen(TmpPtr) + 1; - SKIP_AHEAD(BPtr, TmpC, LATEX_SPACE(TmpC)); - - if(strchr(TmpPtr, *BPtr)) - { - PSERR2(CmdPtr - Buf, CmdLen, emNoCharMean, - CmdBuffer, *BPtr); - } - } - - if(!strcmp(CmdBuffer, "\\begin") || - !strcmp(CmdBuffer, "\\end")) - { - if(ArgEndPtr) - { - if(!strcmp(ArgBuffer, "document")) - InHeader = FALSE; - - if(CmdBuffer[1] == 'b') - { - ifn(PushErr(ArgBuffer, Line, CmdPtr - Buf, - CmdLen, MakeCpy(), - &EnvStack)) - PrintPrgErr(pmNoStackMem); - } - else - { - if((ei = PopErr(&EnvStack))) - { - if(strcmp(ei->Data, ArgBuffer)) - PrintError(CurStkName(&InputStack), RealBuf, - CmdPtr - Buf, - (LONG) strlen(CmdBuffer), - Line, emExpectC, ei->Data, ArgBuffer); - - FreeErrInfo(ei); - } - else - PrintError(CurStkName(&InputStack), RealBuf, - CmdPtr - Buf, - (LONG) strlen(CmdBuffer), - Line, emSoloC, ArgBuffer); - } - - PerformEnv(ArgBuffer, (BOOL) CmdBuffer[1] == 'b'); - } else - PSERR(CmdPtr - Buf, CmdLen, emNoArgFound); - } - - CheckItal(CmdBuffer); - - if((ErrNum = PerformCommand(CmdBuffer, BufPtr))) - PSERR(CmdPtr - Buf, CmdLen, ErrNum); - - if(!strcmp(CmdBuffer, "\\cdots")) - realdl = dtCDots; - - if(!strcmp(CmdBuffer, "\\ldots")) - realdl = dtLDots; - - if(!strcmp(CmdBuffer, "\\dots")) - realdl = dtLDots; - - if(realdl != dtUnknown) - { - dotlev = CheckDots(CmdPtr, BufPtr); - if(dotlev && (dotlev != realdl)) - { - TmpPtr = Dot2Str(dotlev); - PSERRA(CmdPtr - Buf, CmdLen, emEllipsis, TmpPtr); - } - } - - if((TmpPtr = HasWord(CmdBuffer, &WipeArg))) - WipeArgument(TmpPtr, CmdPtr); -} - -/* - * Check user abbreviations. Pass a pointer to the `.'; - * also ensure that it's followed by spaces, etc. - * - * Note: We assume that all abbrevs have been transferred from - * AbbrevCase into Abbrev. - */ - -static void CheckAbbrevs(const STRPTR Buffer) -{ - LONG i; - STRPTR TmpPtr, AbbPtr; - - if(INUSE(emInterWord)) - { - TmpPtr = TmpBuffer + Abbrev.MaxLen + 2; - *TmpPtr = 0; - AbbPtr = Buffer; - - for(i = Abbrev.MaxLen; - i >= 0; - i--) - { - *--TmpPtr = *AbbPtr--; - if(!isalpha(*AbbPtr) && HasWord(TmpPtr, &Abbrev)) - PSERR(Buffer - Buf + 1, 1, emInterWord); - if(!*AbbPtr) - break; - } - } -} - - -/* - * Check misc. things which can't be included in the main loop. - * - */ - -static void CheckRest(void) -{ - ULONG Count; - LONG CmdLen; - STRPTR UsrPtr; - - /* Search for user-specified warnings */ - - if(INUSE(emUserWarn)) - { - strcpy(TmpBuffer, Buf); - FORWL(Count, UserWarn) - { - for(UsrPtr = TmpBuffer; - (UsrPtr = strstr(UsrPtr, UserWarn.Stack.Data[Count])); - UsrPtr++) - { - CmdLen = strlen(UserWarn.Stack.Data[Count]); - PSERR(UsrPtr - TmpBuffer, CmdLen, emUserWarn); - } - } - - - strlwr(TmpBuffer); - - FORWL(Count, UserWarnCase) - { - for(UsrPtr = TmpBuffer; - (UsrPtr = strstr(UsrPtr, UserWarnCase.Stack.Data[Count])); - UsrPtr++) - { - CmdLen = strlen(UserWarnCase.Stack.Data[Count]); - PSERR(UsrPtr - TmpBuffer, CmdLen, emUserWarn); - } - } - } -} - - -/* - * Checks that the dash-len is correct. - */ - -static void CheckDash(void) -{ - STRPTR TmpPtr; - int TmpC; - LONG TmpCount, Len; - struct WordList *wl = NULL; - ULONG i; - BOOL Errored; - STRPTR PrePtr = &BufPtr[-2]; - - TmpPtr = BufPtr; - SKIP_AHEAD(TmpPtr, TmpC, TmpC == '-'); - TmpCount = TmpPtr - BufPtr + 1; - - if(MathMode) - { - if(TmpCount > 1) - HERE(TmpCount, emWrongDash); - } - else - { - if(LATEX_SPACE(*PrePtr) && LATEX_SPACE(*TmpPtr)) - wl = &WordDash; - if(isdigit(*PrePtr) && isdigit(*TmpPtr)) - wl = &NumDash; - if(isalpha(*PrePtr) && isalpha(*TmpPtr)) - wl = &HyphDash; - - if(wl) - { - Errored = TRUE; - FORWL(i, *wl) - { - Len = strtol(wl->Stack.Data[i], NULL, 0); - if(TmpCount == Len) - { - Errored = FALSE; - break; - } - } - if(Errored) - HERE(TmpCount, emWrongDash); - } - } -} - -/* - * Pushes and pops nesting characters. - * - */ - -static void HandleBracket(int Char) -{ - ULONG BrOffset; /* Offset into BrOrder array */ - struct ErrInfo *ei; - int TmpC, Match; - TEXT ABuf[2], BBuf[2]; - STRPTR TmpPtr; - - AddBracket(Char); - - if((BrOffset = BrackIndex(Char)) != ~0UL) - { - if(BrOffset & 1) /* Closing bracket of some sort */ - { - if((ei = PopErr(&CharStack))) - { - Match = MatchBracket(*(ei->Data)); - if(ei->Flags & efNoItal) - { - if(ItState == itOn) - { - TmpPtr = BufPtr; - SKIP_AHEAD(TmpPtr, TmpC, TmpC == '}'); - - if(!strchr(LTX_SmallPunc, *TmpPtr)) - HERE(1, emNoItFound); - } - - ItState = FALSE; - } - elif(ei->Flags & efItal) - ItState = TRUE; - FreeErrInfo(ei); - } - else - Match = 0; - - if(Match != Char) - { - ABuf[0] = Match; - BBuf[0] = Char; - ABuf[1] = BBuf[1] = 0; - if(Match) - PrintError(CurStkName(&InputStack), RealBuf, - BufPtr - Buf - 1, 1, Line, - emExpectC, - ABuf, BBuf); - else - HEREA(1, emSoloC, BBuf); - } - - } - else /* Opening bracket of some sort */ - { - if((ei = PushChar(Char, Line, BufPtr - Buf - 1, - &CharStack, MakeCpy()))) - { - if(Char == '{') - { - switch(ItFlag) - { - default: - ei->Flags = ItFlag; - ItFlag = efNone; - break; - case efNone: - ei->Flags |= ItState? - efItal : efNoItal; - } - } - } - - else - PrintPrgErr(pmNoStackMem); - } - } -} - - - -/* - * Searches the `Buf' for possible errors, and prints the errors. `Line' - * is supplied for error printing. - */ - -BOOL FindErr(const STRPTR _RealBuf, const ULONG _Line) -{ - STRPTR - CmdPtr, /* We'll have to copy each command out. */ - PrePtr, /* Ptr to char in front of command, NULL if - * the cmd appears as the first character */ - TmpPtr, /* Temporary pointer */ - ErrPtr; /* Ptr to where an error started */ - - int - TmpC, /* Just a temp var used throughout the proc.*/ - MatchC, - Char; /* Char. currently processed */ - ULONG CmdLen; /* Length of misc. things */ - BOOL MixingQuotes; - -#if defined(_MSC_VER) && (_MSC_VER < 1300) - int (* pstcb)(int c); -#else - int (CDECL * pstcb)(int c); -#endif - - enum DotLevel dotlev; - - LineCpy = NULL; - - if(_RealBuf) - { - RealBuf = _RealBuf; - Line = _Line; - - BufPtr = PreProcess(); - - BufPtr = SkipVerb(); - - while(BufPtr && *BufPtr) - { - PrePtr = BufPtr - 1; - Char = *BufPtr++; - if(isspace(Char)) - Char = ' '; - - switch(Char) - { - case '~': - TmpPtr = NULL; - if(isspace(*PrePtr)) - TmpPtr = PrePtr; - elif(isspace(*BufPtr)) - TmpPtr = BufPtr; - - if(TmpPtr) - PSERR(TmpPtr - Buf, 1, emDblSpace); - break; - - case 'X': - case 'x': - TmpPtr = PrePtr; - - SKIP_BACK(TmpPtr, TmpC, - (LATEX_SPACE(TmpC) || strchr("{}$", TmpC))); - - if(isdigit(*TmpPtr)) - { - TmpPtr = BufPtr; - - SKIP_AHEAD(TmpPtr, TmpC, - (LATEX_SPACE(TmpC) || strchr("{}$", TmpC))); - - if(isdigit(*TmpPtr)) - HERE(1, emUseTimes); - } - /* FALLTHRU */ - /* CTYPE: isalpha() */ - case 'a': case 'b': case 'c': case 'd': - case 'e': case 'f': case 'g': case 'h': - case 'i': case 'j': case 'k': case 'l': - case 'm': case 'n': case 'o': case 'p': - case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': /* case 'x': */ - case 'y': case 'z': - - case 'A': case 'B': case 'C': case 'D': - case 'E': case 'F': case 'G': case 'H': - case 'I': case 'J': case 'K': case 'L': - case 'M': case 'N': case 'O': case 'P': - case 'Q': case 'R': case 'S': case 'T': - case 'U': case 'V': case 'W': /* case 'X': */ - case 'Y': case 'Z': - if(!isalpha(*PrePtr) && (*PrePtr != '\\') && MathMode) - { - TmpPtr = BufPtr; - CmdPtr = CmdBuffer; - do - { - *CmdPtr++ = Char; - Char = *TmpPtr++; - } while(isalpha(Char)); - - *CmdPtr = 0; - - if(HasWord(CmdBuffer, &MathRoman)) - HEREA(strlen(CmdBuffer), emWordCommand, CmdBuffer); - } - - break; - case ' ': - TmpPtr = BufPtr; - SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC)); - - if(*TmpPtr && *PrePtr) - { - if((TmpPtr - BufPtr) > 0) - { - HERE(TmpPtr - BufPtr + 1, emMultiSpace); - strwrite(BufPtr, VerbClear, TmpPtr - BufPtr - 1); - } - } - break; - - case '.': - if((Char == *BufPtr) && (Char == BufPtr[1])) - { - dotlev = CheckDots(&PrePtr[1], &BufPtr[2]); - TmpPtr = Dot2Str(dotlev); - HEREA(3, emEllipsis, TmpPtr); - } - - /* Regexp: "([^A-Z@.])\.[.!?:;]*\s+[a-z]" */ - - TmpPtr = BufPtr; - SKIP_AHEAD(TmpPtr, TmpC, strchr(LTX_GenPunc, TmpC)); - if(LATEX_SPACE(*TmpPtr)) - { - if(!isupper(*PrePtr) && (*PrePtr != '@') && - (*PrePtr != '.')) - { - SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC)); - if(islower(*TmpPtr)) - PSERR(BufPtr - Buf, 1, emInterWord); - else - CheckAbbrevs(&BufPtr[-1]); - } - } - - /* FALLTHRU */ - case ':': case '?': case '!': case ';': - /* Regexp: "[A-Z][A-Z][.!?:;]\s+" */ - - if(isspace(*BufPtr) && isupper(*PrePtr) && - (isupper(PrePtr[-1]) || (Char != '.'))) - HERE(1, emInterSent); - - /* FALLTHRU */ - case ',': - if(isspace(*PrePtr) && - !(isdigit(*BufPtr) && - ((BufPtr[-1] == '.') || (BufPtr[-1] == ',')))) - PSERR(PrePtr - Buf, 1, emSpacePunct); - - if(MathMode && - (((*BufPtr == '$') && (BufPtr[1] != '$')) || - (!strafter(BufPtr, "\\)")))) - HEREA(1, emPunctMath, "outside inner"); - - if(!MathMode && - (((*PrePtr == '$') && (PrePtr[-1] == '$')) || - (!strinfront(PrePtr, "\\]")))) - HEREA(1, emPunctMath, "inside display"); - - break; - case '\'': - case '`': - if((Char == *BufPtr) && (Char == BufPtr[1])) - { - PrintError(CurStkName(&InputStack), RealBuf, - BufPtr - Buf - 1, 3, Line, - emThreeQuotes, - Char, Char, Char, - Char, Char, Char); - } - - if(Char == '\'') - MatchC = '`'; - else - MatchC = '\''; - - TmpPtr = BufPtr; - SKIP_AHEAD(TmpPtr, TmpC, TmpC == Char); - - MixingQuotes = FALSE; - - if((*TmpPtr == MatchC) || (*TmpPtr == '\"') || - (*TmpPtr == '´')) - MixingQuotes = TRUE; - - SKIP_AHEAD(TmpPtr, TmpC, strchr("`\'\"´", TmpC)); - - if(MixingQuotes) - HERE(TmpPtr - BufPtr + 1, emQuoteMix); - - switch(Char) - { - case '\'': - if(isalpha(*TmpPtr) && - (strchr(LTX_GenPunc, *PrePtr) || isspace(*PrePtr))) - HERE(TmpPtr - BufPtr + 1, emBeginQ); - - /* Now check quote style */ -#define ISPUNCT(ptr) (strchr(LTX_GenPunc, *ptr) && (ptr[-1] != '\\')) - - /* We ignore all single words/abbreviations in quotes */ - - { - STRPTR WordPtr = PrePtr; - SKIP_BACK(WordPtr, TmpC, (isalnum(TmpC) || - strchr(LTX_GenPunc, TmpC))); - - if(*WordPtr != '`') - { - if(*PrePtr && (Quote != quTrad) && ISPUNCT(PrePtr)) - PSERRA(PrePtr - Buf, 1, emQuoteStyle, - "in front of"); - - if(*TmpPtr && (Quote != quLogic) && - ISPUNCT(TmpPtr)) - PSERRA(TmpPtr - Buf, 1, emQuoteStyle, "after"); - } - } - - break; - case '`': - if(isalpha(*PrePtr) && - (strchr(LTX_GenPunc, *TmpPtr) || isspace(*TmpPtr))) - HERE(TmpPtr - BufPtr + 1, emEndQ); - break; - } - BufPtr = TmpPtr; - break; - case '"': - HERE(1, emUseQuoteLiga); - break; - - /* One of these are unnecessary, but what the heck... */ - case 180: /* ´. NOTE: '\xb4' gets converted to - something*/ - case ~(0xff &(~180)): /* This yields 0xff...fb4 in */ - /* arbitrary precision. */ - - HERE(1, emUseOtherQuote); - break; - - case '_': - case '^': - if(*PrePtr != '\\') - { - TmpPtr = PrePtr; - SKIP_BACK(TmpPtr, TmpC, LATEX_SPACE(TmpC)); - - CmdLen = 1; - - switch(*TmpPtr) - { - /*{*/ - case '}': - if(PrePtr[-1] != '\\') - break; - - CmdLen++; - PrePtr--; - /* FALLTHRU */ - /*[(*/ - case ')': - case ']': - PSERR(PrePtr - Buf, CmdLen, emEnclosePar); - } - - TmpPtr = BufPtr; - SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC)); - - ErrPtr = TmpPtr; - - if(isalpha(*TmpPtr)) - pstcb = &my_isalpha; - elif(isdigit(*TmpPtr)) - pstcb = &my_isdigit; - else - break; - - while((*pstcb)(*TmpPtr++)) - ; - TmpPtr--; - - if((TmpPtr - ErrPtr) > 1) - PSERR(ErrPtr - Buf, TmpPtr - ErrPtr, emEmbrace); - } - break; - case '-': - CheckDash(); - break; - case '\\': /* Command encountered */ - BufPtr = GetLTXToken(--BufPtr, CmdBuffer); - - if(LATEX_SPACE(*PrePtr)) - { - if(HasWord(CmdBuffer, &Linker)) - PSERR(PrePtr - Buf, 1, emNBSpace); - if(HasWord(CmdBuffer, &PostLink)) - PSERR(PrePtr - Buf, 1, emFalsePage); - } - - if(LATEX_SPACE(*BufPtr) && !MathMode && - (!HasWord(CmdBuffer, &Silent)) && - (strlen(CmdBuffer) != 2)) - { - PSERR(BufPtr - Buf, 1, emSpaceTerm); - } - elif((*BufPtr == '\\') && (!isalpha(BufPtr[1])) && - (!LATEX_SPACE(BufPtr[1]))) - PSERR(BufPtr - Buf, 2, emNotIntended); - - PerformBigCmd(PrePtr + 1); - BufPtr = SkipVerb(); - - break; - - LOOP(bracket, - case '(': - ifn(!*PrePtr || LATEX_SPACE(*PrePtr) || isdigit(*PrePtr) || - strchr("([{`~", *PrePtr)) - { - if(PrePtr[-1] != '\\') /* Short cmds */ - { - TmpPtr = PrePtr; - SKIP_BACK(TmpPtr, TmpC, istex(TmpC)); - if(*TmpPtr != '\\') /* Long cmds */ - PSERRA(BufPtr - Buf - 1, 1, emSpaceParen, - "in front of"); - } - } - if(isspace(*BufPtr)) - PSERRA(BufPtr - Buf, 1, emNoSpaceParen, "after"); - - LAST(bracket); - case ')': - if(isspace(*PrePtr)) - PSERRA(BufPtr - Buf - 1, 1, emNoSpaceParen, - "in front of"); - if(isalpha(*BufPtr)) - PSERRA(BufPtr - Buf, 1, emSpaceParen, "after"); - - LAST(bracket); - ) - - case '}': - case '{': - case '[': - case ']': - HandleBracket(Char); - break; - case '$': - if(*PrePtr != '\\') - { - if(*BufPtr == '$') - BufPtr++; - MathMode ^= TRUE; - } - - break; - } - } - - if(!VerbMode) - { - CheckRest(); - } - } - - return(TRUE); -} - -/* - * Tries to create plural forms for words. Put a '%s' where a - * suffix should be put, e.g. "warning%s". Watch your %'s! - */ - -static void Transit(FILE *fh, ULONG Cnt, STRPTR Str) -{ - switch(Cnt) - { - case 0: - fputs("No ", fh); - fprintf(fh, Str, "s"); - break; - case 1: - fputs("One ", fh); - fprintf(fh, Str, ""); - break; - default: - fprintf(fh, "%ld ", Cnt); - fprintf(fh, Str, "s"); - break; - } -} - -/* - * Prints the status/conclusion after doing all the testing, including - * bracket stack status, math mode, etc. - */ - -void PrintStatus(ULONG Lines) -{ - ULONG Cnt; - struct ErrInfo *ei; - - - while((ei = PopErr(&CharStack))) - { - PrintError(ei->File, ei->LineBuf, ei->Column, - ei->ErrLen, ei->Line, emNoMatchC, - (STRPTR) ei->Data); - FreeErrInfo(ei); - } - - while((ei = PopErr(&EnvStack))) - { - PrintError(ei->File, ei->LineBuf, ei->Column, - ei->ErrLen, ei->Line, emNoMatchC, - (STRPTR) ei->Data); - FreeErrInfo(ei); - } - - if(MathMode) - { - PrintError(CurStkName(&InputStack), "", 0L, 0L, Lines, - emMathStillOn); - } - - for(Cnt = 0L; Cnt < (NUMBRACKETS>>1); Cnt++) - { - if(Brackets[Cnt << 1] != Brackets[(Cnt << 1) + 1]) - { - PrintError(CurStkName(&InputStack), "", 0L, 0L, Lines, - emNoMatchCC, - BrOrder[Cnt<<1], BrOrder[(Cnt<<1) + 1]); - } - } - - if(!Quiet) - { - Transit(stderr, ErrPrint, "error%s printed; "); - Transit(stderr, WarnPrint, "warning%s printed; "); - Transit(stderr, UserSupp, "user suppressed warning%s printed.\n"); - } -} - - - -/* - * Uses OutputFormat. Be sure that `String' - * does not contain tabs, newlines, etc. - * Prints a formatted string. Formatting codes understood: - * %b - string to print Between fields (from -s option) - * %c - Column position of error - * %d - lenght of error (Digit) - * %f - current Filename - * %i - Turn on inverse printing mode. - * %I - Turn off inverse printing mode. - * %k - Kind of error (warning, error, message) - * %l - Line number of error - * %m - warning Message - * %n - warning Number - * %u - an Underlining line (like the one which appears when using -v1) - * %r - part of line in front of error ('S' - 1) - * %s - part of line which contains error (String) * %t - part of line after error ('S' + 1) - */ - - -void PrintError(const STRPTR File, const STRPTR String, - const LONG Position, const LONG Len, - const LONG LineNo, const enum ErrNum Error, ...) -{ - static /* Just to reduce stack usage... */ - TEXT PrintBuffer[BUFSIZ]; - va_list MsgArgs; - - STRPTR LastNorm = OutputFormat, of; - int c; - - enum Context Context; - - if(betw(emMinFault, Error, emMaxFault)) - { - switch(LaTeXMsgs[Error].InUse) - { - case iuOK: - do - { - Context = LaTeXMsgs[Error].Context; - - if(!HeadErrOut) - Context |= ctOutHead; - -#define RGTCTXT(Ctxt, Var) if((Context & Ctxt) && !(Var)) break; - - RGTCTXT(ctInMath, MathMode); - RGTCTXT(ctOutMath, !MathMode); - RGTCTXT(ctInHead, InHeader); - RGTCTXT(ctOutHead, !InHeader); - - switch(LaTeXMsgs[Error].Type) - { - case etWarn: - WarnPrint++; - break; - case etErr: - ErrPrint++; - break; - case etMsg: - break; - } - - while((of = strchr(LastNorm, '%'))) - { - c = *of; - *of = 0; - - fputs(LastNorm, OutputFile); - - *of++ = c; - - switch(c = *of++) - { - case 'b': - fputs(Delimit, OutputFile); - break; - case 'c': - fprintf(OutputFile, "%ld", Position + 1); - break; - case 'd': - fprintf(OutputFile, "%ld", Len); - break; - case 'f': - fputs(File, OutputFile); - break; - case 'i': - fputs(ReverseOn, OutputFile); - break; - case 'I': - fputs(ReverseOff, OutputFile); - break; - case 'k': - switch(LaTeXMsgs[Error].Type) - { - case etWarn: - fprintf(OutputFile, "Warning"); - break; - case etErr: - fprintf(OutputFile, "Error"); - break; - case etMsg: - fprintf(OutputFile, "Message"); - break; - } - break; - case 'l': - fprintf(OutputFile, "%ld", LineNo); - break; - case 'm': - va_start(MsgArgs, Error); - vfprintf(OutputFile, LaTeXMsgs[Error].Message, - MsgArgs); - va_end(MsgArgs); - break; - case 'n': - fprintf(OutputFile, "%d", Error); - break; - case 'u': - sfmemset(PrintBuffer, ' ', (LONG) Position); - - sfmemset(&PrintBuffer[Position], '^', Len); - PrintBuffer[Position + Len] = 0; - fputs(PrintBuffer, OutputFile); - break; - case 'r': - substring(String, PrintBuffer, 0L, Position); - fputs(PrintBuffer, OutputFile); - break; - case 's': - substring(String, PrintBuffer, Position, Len); - fputs(PrintBuffer, OutputFile); - break; - case 't': - substring(String, PrintBuffer, Position + Len, LONG_MAX); - fputs(PrintBuffer, OutputFile); - break; - default: - fputc(c, OutputFile); - break; - } - LastNorm = of; - } - fputs(LastNorm, OutputFile); - } while(FALSE); - break; - case iuNotUser: - UserSupp++; - break; - case iuNotSys: - break; - } - } -} - -/* - * All commands isolated is routed through this command, so we can - * update global statuses like math mode and whether @ is a letter - * or not. - */ - -static enum ErrNum PerformCommand(const STRPTR Cmd, STRPTR Arg) -{ - STRPTR Argument = ""; - enum ErrNum - en = emMinFault; - int TmpC; - - if(!strcmp(Cmd, "\\makeatletter")) - AtLetter = TRUE; - elif(!strcmp(Cmd, "\\makeatother")) - AtLetter = FALSE; - elif(InputFiles && - !(strcmp(Cmd, "\\input") && strcmp(Cmd, "\\include"))) - { - SKIP_AHEAD(Arg, TmpC, LATEX_SPACE(TmpC)); - if(*Arg == '{') /* } */ - { - if(GetLTXArg(Arg, TmpBuffer, GET_STRIP_TOKEN, NULL)) - Argument = TmpBuffer; - } - else - Argument = strip(Arg, STRP_BTH); - - ifn(Argument && PushFileName(Argument, &InputStack)) - en = emNoCmdExec; - } - elif(HasWord(Cmd, &Primitives)) - en = emTeXPrim; - elif(*Cmd == '\\') - { - /* Quicker check of single lettered commands. */ - switch(Cmd[1]) - { - case '(': - case '[': - MathMode = TRUE; - break; - case ']': - case ')': - MathMode = FALSE; - break; - case '/': - switch(ItState) - { - case itOn: - ItState = itCorrected; - Argument = Arg; - - SKIP_AHEAD(Argument, TmpC, TmpC == '{' || TmpC == '}'); - - if(strchr(".,", *Argument)) - en = emItPunct; - - break; - case itCorrected: - en = emItDup; - break; - case itOff: - en = emItInNoIt; - } - break; - } - } - - return(en); -} diff --git a/Build/source/texk/chktex/FindErrs.h b/Build/source/texk/chktex/FindErrs.h deleted file mode 100644 index 4ce4924dec0..00000000000 --- a/Build/source/texk/chktex/FindErrs.h +++ /dev/null @@ -1,195 +0,0 @@ -/* - * ChkTeX v1.5, header file for main program. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - -#ifndef FINDERRS_H -#define FINDERRS_H -#ifndef FINDERRS_H -# include "FindErrs.h" -#endif /* FINDERRS_H */ -#ifndef CHKTEX_H -# include "ChkTeX.h" -#endif /* CHKTEX_H */ - - -#undef ERRMSGS -#undef MSG - -#define ERRMSGS \ - MSG(emMinFault, etErr, iuOK, ctNone,\ - INTERNFAULT)\ - MSG(emSpaceTerm, etWarn, iuOK, ctOutMath,\ - "Command terminated with space.")\ - MSG(emNBSpace, etWarn, iuOK, ctNone,\ - "Non-breaking space (`~') should have been used.")\ - MSG(emEnclosePar, etWarn, iuOK, ctInMath,\ - "You should enclose the previous parenthesis with `{}\'.")\ - MSG(emItInNoIt, etWarn, iuOK, ctNone,\ - "Italic correction (`\\/') found in non-italic buffer.")\ - MSG(emItDup, etWarn, iuOK, ctNone,\ - "Italic correction (`\\/') found more than once.")\ - MSG(emNoItFound, etWarn, iuOK, ctNone,\ - "No italic correction (`\\/') found.")\ - MSG(emAccent, etWarn, iuOK, ctNone,\ - "Accent command `%s' needs use of `\\%c%s'.")\ - MSG(emWrongDash, etWarn, iuOK, ctOutMath,\ - "Wrong length of dash may have been used.")\ - MSG(emExpectC, etWarn, iuOK, ctNone,\ - "`%s' expected, found `%s'.")\ - MSG(emSoloC, etWarn, iuOK, ctNone,\ - "Solo `%s' found.")\ - MSG(emEllipsis, etWarn, iuOK, ctNone,\ - "You should use %s to achieve an ellipsis.")\ - MSG(emInterWord, etWarn, iuOK, ctOutMath,\ - "Interword spacing (`\\ ') should perhaps be used.")\ - MSG(emInterSent, etWarn, iuOK, ctOutMath,\ - "Intersentence spacing (`\\@') should perhaps be used.")\ - MSG(emNoArgFound, etErr, iuOK, ctNone,\ - "Could not find argument for command.")\ - MSG(emNoMatchC, etWarn, iuOK, ctOutMath,\ - "No match found for `%s'.")\ - MSG(emMathStillOn, etWarn, iuOK, ctNone,\ - "Mathmode still on at end of LaTeX file.")\ - MSG(emNoMatchCC, etWarn, iuOK, ctNone,\ - "Number of `%c' doesn't match the number of `%c'!")\ - MSG(emUseQuoteLiga, etWarn, iuOK, ctNone,\ - "Use either `` or '' as an alternative to `\"'.")\ - MSG(emUseOtherQuote, etWarn, iuOK, ctNone,\ - "Use \"'\" (ASCII 39) instead of \"´\" (ASCII 180).")\ - MSG(emUserWarn, etWarn, iuOK, ctNone,\ - "User-specified pattern found.")\ - MSG(emNotIntended, etWarn, iuNotSys, ctNone,\ - "This command might not be intended.")\ - MSG(emComment, etMsg, iuNotSys, ctNone,\ - "Comment displayed.")\ - MSG(emThreeQuotes, etWarn, iuOK, ctNone,\ - "Either %c\\,%c%c or %c%c\\,%c will look better.")\ - MSG(emFalsePage, etWarn, iuOK, ctOutMath,\ - "Delete this space to maintain correct pagereferences.")\ - MSG(emEmbrace, etWarn, iuOK, ctInMath,\ - "You might wish to put this between a pair of `{}'")\ - MSG(emSpacePunct, etWarn, iuOK, ctOutMath,\ - "You ought to remove spaces in front of punctuation.")\ - MSG(emNoCmdExec, etWarn, iuOK, ctNone,\ - "Could not execute LaTeX command.")\ - MSG(emItPunct, etWarn, iuOK, ctNone,\ - "Don't use \\/ in front of small punctuation.")\ - MSG(emUseTimes, etWarn, iuOK, ctNone,\ - "$\\times$ may look prettier here.")\ - MSG(emMultiSpace, etWarn, iuNotSys, ctOutMath,\ - "Multiple spaces detected in input.")\ - MSG(emIgnoreText, etWarn, iuOK, ctNone,\ - "This text may be ignored.")\ - MSG(emBeginQ, etWarn, iuOK, ctOutMath,\ - "Use ` to begin quotation, not '.")\ - MSG(emEndQ, etWarn, iuOK, ctOutMath,\ - "Use ' to end quotation, not `.")\ - MSG(emQuoteMix, etWarn, iuOK, ctNone,\ - "Don't mix quotes.")\ - MSG(emWordCommand, etWarn, iuOK, ctInMath,\ - "You should perhaps use `\\%s' instead.")\ - MSG(emSpaceParen, etWarn, iuOK, ctOutMath,\ - "You should put a space %s parenthesis.")\ - MSG(emNoSpaceParen, etWarn, iuOK, ctOutMath,\ - "You should avoid spaces %s parenthesis.")\ - MSG(emQuoteStyle, etWarn, iuOK, ctOutMath,\ - "You should not use punctuation %s quotes.")\ - MSG(emDblSpace, etWarn, iuOK, ctOutMath,\ - "Double space found.")\ - MSG(emPunctMath, etWarn, iuOK, ctNone,\ - "You should put punctuation %s math mode.")\ - MSG(emTeXPrim, etWarn, iuNotSys, ctNone,\ - "You ought to not use primitive TeX in LaTeX code.")\ - MSG(emRemPSSpace, etWarn, iuOK, ctOutMath,\ - "You should remove spaces in front of `%s'") \ - MSG(emNoCharMean, etWarn, iuOK, ctNone,\ - "`%s' is normally not followed by `%c'.") - -#undef MSG -#define MSG(num, type, inuse, ctxt, text) num, - -enum ErrNum -{ - ERRMSGS - emMaxFault -}; -#undef MSG - -enum Context { - ctNone = 0x00, - ctInMath = 0x01, - ctOutMath = 0x02, - ctInHead = 0x04, - ctOutHead = 0x08 -}; - -struct ErrMsg { - enum ErrNum Number; - enum { - etMsg, - etWarn, - etErr - } Type; - - enum { - iuNotSys, - iuNotUser, - iuOK - } InUse; - - /* Requirements posed upon environment */ - enum Context Context; - - STRPTR Message; -}; - -enum ItState { - itOff, - itOn, - itCorrected -}; - - -enum DotLevel { - dtUnknown = 0x0, - dtCDots = 0x1, - dtLDots = 0x2, - dtDots = 0x4 -}; - -extern struct ErrMsg - LaTeXMsgs [emMaxFault + 1]; - -extern STRPTR OutputFormat; - -BOOL FindErr __PROTO((STRPTR const, ULONG const)); -void PrintError __PROTO((const STRPTR, - const STRPTR, const LONG, const LONG, - const LONG, const enum ErrNum, ...)); -void PrintStatus __PROTO((ULONG Lines)); - -#endif /* FINDERRS */ diff --git a/Build/source/texk/chktex/HashWord.a b/Build/source/texk/chktex/HashWord.a deleted file mode 100644 index 2954f84c766..00000000000 --- a/Build/source/texk/chktex/HashWord.a +++ /dev/null @@ -1,122 +0,0 @@ -* -* ChkTeX v1.5, hashes a NULL-terminated string. -* Copyright (C) 1995-96 Jens T. Berger Thielemann -* -* 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. -* -* Contact the author at: -* Jens Berger -* Spektrumvn. 4 -* N-0666 Oslo -* Norway -* E-mail: <jensthi@ifi.uio.no> -* -* - -******* HashWord() **************************************************** -* -* NAME -* HashWord() - hashes a NULL-terminated string -* -* SYNOPSIS -* -* HashVal = @HashWord(char *String) -* D0.W A0 -* -* HashVal = _HashWord(char *String) -* D0.W 4(SP) -* -* FUNCTION -* Hashes a NULL-terminated string. -* -* Well optimized (I believe), should be near optimal for this -* approach to hashing. Optimized for caches, loops and pipelines. -* Inner loop size: 12 bytes. -* -* -* INPUTS -* String - a NULL-terminated 8-bit C string. May be passed on -* stack or in A0, depending on entry point. -* -* RETURNS -* HashVal - the hashed value of the string. -* -* NOTES -* Registers a0 and d1 are destroyed. -* -* This function works best when there's a slight difference in -* the length of the strings. -* -* On non-Amiga machines a similar routine is implemented in -* "Utility.c" in the ChkTeX distribution. -* -* It should be possible to adopt this to other 680x0 computers, -* too. -* -* BUGS -* None known. -* -*********************************************************************** -* -* -* -* -* - - SECTION text,code - XDEF _HashWord - XDEF @HashWord - -HashShift EQU 5 * Experiments show this to be best; - * reasonable, as most TeX commands - * only use lowercase letters. - -REG_HashVal EQUR d0 -REG_TmpChar EQUR d1 -REG_StrLen EQUR d2 -REG_String EQUR a0 - -Len_Incr EQU 6 - -CLRD MACRO \1 * Clears data reg - moveq #0,\1 - ENDM - -_HashWord * Stack entry - move.l 4(sp),REG_String -@HashWord * Register entry - CLRD REG_HashVal - CLRD REG_TmpChar - - move.b (REG_String)+,REG_TmpChar - beq.b return - - move.l REG_StrLen,-(sp) - CLRD REG_StrLen - -loop - eor.w REG_TmpChar,REG_HashVal - addq.w #Len_Incr,REG_StrLen - ror.w #HashShift,REG_HashVal - eor.w REG_StrLen,REG_HashVal - - move.b (REG_String)+,REG_TmpChar - bne.b loop - - move.l (sp)+,REG_StrLen -return - rts - - END diff --git a/Build/source/texk/chktex/MakeHTML.in b/Build/source/texk/chktex/MakeHTML.in deleted file mode 100644 index 669afc481c9..00000000000 --- a/Build/source/texk/chktex/MakeHTML.in +++ /dev/null @@ -1,20 +0,0 @@ -#! @PERL5@ - -$latexonly = 0; - -while(<>) -{ - $latexonly = 1 if /^%latex/i; - $latexonly = 0 if /^%endlatex/i; - - - if($latexonly) { - if(/^%!(.*)/) - { - print $1; - } - } - else { - print; - } -} diff --git a/Build/source/texk/chktex/Makefile.in b/Build/source/texk/chktex/Makefile.in deleted file mode 100644 index fbdf387a49f..00000000000 --- a/Build/source/texk/chktex/Makefile.in +++ /dev/null @@ -1,346 +0,0 @@ -# @configure_input@ -# -# Makefile for ChkTeX project, creates the stuff. -# Copyright (C) 1996 Jens T. Berger Thielemann -# -# 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. -# -# Contact the author at: -# Jens Berger -# Spektrumvn. 4 -# N-0666 Oslo -# Norway -# E-mail: <jensthi@ifi.uio.no> -# - - -prefix=@prefix@ -exec_prefix=@exec_prefix@ -bindir=@bindir@ -datadir=@datadir@ -srcdir=@srcdir@ -mandir=@mandir@ -INSTALL=@INSTALL@ -INSTALL_PROGRAM=@INSTALL_PROGRAM@ -INSTALL_DATA=@INSTALL_DATA@ -ELISPDIR=@ELISPDIR@ - -CC=@CC@ -CFLAGS=@CFLAGS@ -CPPFLAGS=@CPPFLAGS@ -DEFS=@DEFS@ -LIBS=@LIBS@ -LDFLAGS=@LDFLAGS@ -LN_S=@LN_S@ -LATEX=@LATEX@ -DVIPS=@DVIPS@ -PERL5=@PERL5@ -LATEX2HTML=@LATEX2HTML@ -LYNX=@LYNX@ -GROFF=@GROFF@ -SHELL=/bin/sh - -SCRIPTS=@SCRIPTS@ - -USRDEFS=-DDATADIR=\"$(datadir)\" - -##################################################################### - -INSTALLFILES= configure.in Makefile.in config.h.in chktexrc MakeHTML.in - -WEBFILES= chkweb deweb.in - -DOCFILES= ChkTeX.tex ChkTeX.dvi \ -ChkTeX.readme COPYING WB2Argv.readme deweb.1 deweb.doc - -SOURCEFILES= ChkTeX.c ChkTeX.h FindErrs.c FindErrs.h OpSys.c OpSys.h \ -Resource.c Resource.h Utility.c Utility.h WB2Argv.c WB2Argv.h \ -getopt.c getopt.h getopt1.c HashWord.a chktex.el - -PORTFILES= config.msd ChkTeX.dsk ChkTeX.prj SCOPTIONS SMakefile config.AMIGA - -TESTFILES= Test.tex input.tex Test.out - - -### -# -# OS specific files -# -### - -## AMIGA - -REXXFILES= amiga/ChkTeX.ced amiga/ChkTeX.ged amiga/ChkTeX.scm \ -amiga/ChkTeX.vbr amiga/GotoFile.ced - -AMIGAFILES= amiga/ChkTeX.install amiga/ChkTeX.install.info \ -amiga/ChkTeX amiga/ChkTeX.info amiga/COPYING.info \ -amiga/ChkTeX.readme.info amiga/lacheck $(REXXFILES) - -## MSDOS - -MSDOSFILES= msdos/ChkTeX.exe - -## OS/2 - -OS2FILES= os2/Readme.os2 os2/ChkTeX.exe - -## UNIX - -UNIXFILES= configure install-sh unix/lacheck - -COMMONFILES= $(INSTALLFILES) $(WEBFILES) $(DOCFILES) $(SOURCEFILES) \ -$(TESTFILES) $(PORTFILES) - -ARCHIVES= chktex.lha chktex.tar.gz - -all: chktex - -dist: configure ChkTeX.dvi Test.out ChkTeX.readme deweb.doc - touch chktex $(ARCHIVES) - rm -r chktex $(ARCHIVES) - mkdir chktex chktex/generic chktex/generic/exec - for file in $(COMMONFILES); do \ - cp $$file chktex/generic; \ - done - cp exec/types.h chktex/generic/exec - srcdir=`pwd`; \ - for dir in chktex/amiga/ chktex/msdos/ chktex/os2/ chktex/unix; do \ - cd $$srcdir; \ - mkdir $$dir; \ - cd $$dir; \ - for file in $(COMMONFILES); do \ - $(LN_S) ../generic/$$file .; \ - done; \ - mkdir exec; cd exec; \ - $(LN_S) ../../generic/exec/types.h .; \ - done - for file in $(AMIGAFILES); do\ - cp /hom/jensthi/chktex/source/$$file chktex/amiga; \ - done - for file in $(MSDOSFILES); do\ - cp /hom/jensthi/chktex/source/$$file chktex/msdos; \ - done - for file in $(OS2FILES); do\ - cp /hom/jensthi/chktex/source/$$file chktex/os2; \ - done - for file in $(UNIXFILES); do\ - cp /hom/jensthi/chktex/source/$$file chktex/unix; \ - done - cp README chktex/ - -rm chktex.lha - lha a chktex.lha chktex/amiga/ chktex/README - -rm chktex_unix.tar.gz - tar chf chktex_unix.tar chktex/unix - gzip chktex_unix.tar - -rm chktex_gen.tar.gz - tar chf chktex_gen.tar chktex/generic - gzip chktex_gen.tar - -rm chktex_msdos.zip chktex_os2.zip - zip -r chktex_msdos chktex/msdos - tar cf chktex.tar chktex - gzip chktex.tar - rm -r chktex - -######################################################################## - - -.c.o: - $(CC) $(CFLAGS) -I$(srcdir) -I. $(DEFS) $(USRDEFS) -c $< -o $@ - -###################### MAIN DEPENDENCIES ################################ - -OBJS= ChkTeX.o FindErrs.o getopt.o getopt1.o OpSys.o Resource.o Utility.o - -MAKETEST= ./chktex -mall -r -g0 -lchktexrc Test.tex - -Test.out: chktex Test.tex ChkTeX.tex - touch Test.out - rm -f Test.out - $(MAKETEST) 1> Test.out - -check: chktex - @echo ">>> Testing that checking algorithms work correctly..." - @touch chktest - @rm -f chktest - @$(MAKETEST) 1> chktest - @if cmp -s chktest Test.out; then \ - echo ">>> OK!"; \ - rm -f chktest; \ - else \ - echo "***WARNING***"; \ - echo "Problems when checking compilation. This may or may not"; \ - echo "be a problem; anyway, I'm giving you a diff from what the"; \ - echo "results were *supposed* to be..."; \ - diff -c chktest Test.out; \ - fi - - -chktex: $(OBJS) - touch chktex - rm -r chktex - $(CC) $(LDFLAGS) -o chktex $(OBJS) $(LIBS) - -install: chktex ChkTeX.dvi - $(INSTALL) -d $(bindir) - for program in chktex $(SCRIPTS); do \ - $(INSTALL_PROGRAM) $$program $(bindir); \ - done - $(INSTALL) -d $(datadir) - $(INSTALL_DATA) chktexrc $(datadir) - if (eval echo "$(SCRIPTS)") | egrep deweb >/dev/null 2>&1; then \ - $(INSTALL) -d $(mandir); \ - $(INSTALL) -d $(mandir)/man1; \ - cp deweb.1 $(mandir)/man1; \ - fi - if (eval echo "$(ELISPDIR)") | egrep "/" >/dev/null 2>&1; then \ - $(INSTALL_DATA) chktex.el $(ELISPDIR); \ - fi - - - -uninstall: - -rm -f $(bindir)/chktex - -rm -f $(bindir)/chkweb - -rm -f $(bindir)/deweb - -rm -f $(datadir)/chktexrc - -test: - chktex -v2 -mall Test.tex | less -r - -mostlyclean: clean - -clean: - -rm -r *.o *.aux *.log MakeHTML chktex deweb HTML rme 2> /dev/null - -distclean: clean - -rm -r *.cache *.status *.log *.tar.gz *.lha 2> /dev/null - -maintainer-clean: clean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -rm -r *.rme *.dvi *.ps *.doc Test.out 2> /dev/null - -dvi: ChkTeX.dvi - -html: - touch HTML - rm -r HTML - mkdir HTML - chmod u+x MakeHTML - ./MakeHTML ChkTeX.tex > HTML/ChkTeX.tex - cd HTML; $(LATEX2HTML) ChkTeX.tex - $(PERL5) -i -pe 's%</code> %</code>%gi;s%\s+([.,?!])%$$1%g;' HTML/ChkTeX/*.html - -ChkTeX.readme: ChkTeX.tex - touch rme - rm -r rme - mkdir rme - chmod u+x MakeHTML - ./MakeHTML ChkTeX.tex > rme/ChkTeX.tex - cd rme; $(LATEX2HTML) -split 0 ChkTeX.tex - $(PERL5) -i -pe 's%</code> %</code>%gi;s%\s+([.,?!])%$$1%g;' rme/ChkTeX/*.html - $(LYNX) -dump rme/ChkTeX/ChkTeX.html > ChkTeX.rme - cp Readme.header ChkTeX.readme - $(PERL5) -e 'undef $$/;$$_=<>;($$_)=/(.*INTRODUCTION(.|\n)*?)[ \t]+ABOUT THIS DOCUMENT/i;s/[ \t]+\n/\n/g;s/\n\n\n/\n/g;s/\[\d+\]//g;print;' ChkTeX.rme >> ChkTeX.readme - -###################### INDIVIDUAL DEPENDENCIES ########################## - -deweb.doc: deweb.1 - touch deweb.doc - rm -rf deweb.doc - $(GROFF) deweb.1 > deweb.doc - -configure: configure.in - autoconf - -ChkTeX.dvi: ChkTeX.tex - $(LATEX) ChkTeX.tex - -ChkTeX.ps: ChkTeX.dvi - $(DVIPS) -o ChkTeX.ps ChkTeX.dvi - -ChkTeX: ChkTeX.c - @echo - -ChkTeX.o: ChkTeX.c WB2Argv.h getopt.h ChkTeX.h exec/types.h \ -Utility.h OpSys.h FindErrs.h Resource.h config.h - -FindErrs.o: FindErrs.c ChkTeX.h exec/types.h FindErrs.h \ -Utility.h OpSys.h Resource.h config.h - -getopt.o: getopt.c config.h getopt.h - -getopt1.o: getopt1.c config.h getopt.h - -OpSys.o: OpSys.c ChkTeX.h exec/types.h Utility.h OpSys.h config.h - -Resource.o: Resource.c ChkTeX.h exec/types.h Utility.h OpSys.h Resource.h \ -config.h - -Utility.o: Utility.c ChkTeX.h exec/types.h Utility.h OpSys.h Resource.h \ -config.h - -RegExps.o: RegExps.c RegExps.h config.h - -WB2Argv.o: WB2Argv.c WB2Argv.h - -cover: - chktex -h - chktex Test.tex - chktex -v2 -t -o tmptmptmp <Test.tex - chktex -v2 -t -o tmptmptmp Test.tex - chktex Test.tex -v - chktex Test.tex -v0 - chktex Test.tex -v1 - chktex Test.tex -v2 - chktex Test.tex -v3 - chktex Test.tex -v4 - chktex -t -v0s::: Test.tex -x - chktex -p FOO Test.tex - chktex -t Test.tex - chktex -o tmptmptmp -o tmptmptmptmp Test.tex - chktex -l t:faultrc test.tex - chktex -e30w22n1 Test.tex - chktex -w33e-n1 Test.tex - chktex -i - chktex -v2 -t -o tmptmptmp <Test.tex - chktex -I Test.tex - chktex -rd2 Test.tex - chktex -gd2 Test.tex - chktex -f "*N\ -Between: %b*N\ -Column: %c*N\ -Lenght: %d*N\ -File: %f*N\ -%iInverse%I*N\ -Kind: %k*N\ -Line: %l*N\ -Msg: %m*N\ -Num: %n*N\ -Und: %u*N\ -Pre: %r*N\ -Str: %s*N\ -Post: %t*N\ -*N\ -%k in %f line %l: %m*N\ -%r%i%s%I%t*N\ -%u*N\ -*N" Test.tex - chktex -o tmptmptmp -r -d2 Test.tex - chktex -qv0 Test.tex - chktex -w30 Test.tex - chktex -g --localrc=.testrc -d2 Test.tex - cover diff --git a/Build/source/texk/chktex/OpSys.c b/Build/source/texk/chktex/OpSys.c deleted file mode 100644 index 02589d1c5f1..00000000000 --- a/Build/source/texk/chktex/OpSys.c +++ /dev/null @@ -1,644 +0,0 @@ -/* - * ChkTeX v1.5, operating system specific code for ChkTeX. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - - -/* - * Some functions which have to be made different from OS to OS, - * unfortunately...:\ - * - */ - -#ifdef KPATHSEA -#include <kpathsea/config.h> -#include <kpathsea/lib.h> -#include <kpathsea/expand.h> -#include <kpathsea/tex-file.h> -#endif - -#include "ChkTeX.h" -#include "OpSys.h" -#include "Utility.h" - -#ifdef HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif -#ifdef HAVE_STAT_H -# include <stat.h> -#endif - -#if HAVE_DIRENT_H -# include <dirent.h> -# define NAMLEN(dirent) strlen((dirent)->d_name) -#else -# define dirent direct -# define NAMLEN(dirent) (dirent)->d_namlen -# if HAVE_SYS_NDIR_H -# include <sys/ndir.h> -# endif -# if HAVE_SYS_DIR_H -# include <sys/dir.h> -# endif -# if HAVE_NDIR_H -# include <ndir.h> -# endif -#endif - -#if defined(HAVE_OPENDIR) && defined(HAVE_CLOSEDIR) && \ - defined(HAVE_READDIR) && defined(HAVE_STAT) && \ - defined(S_IFDIR) && defined(SLASH) -# define USE_RECURSE 1 -#else -# define USE_RECURSE 0 -#endif - -#if defined(HAVE_LIBTERMCAP) || defined(HAVE_LIBTERMLIB) -# define USE_TERMCAP 1 -#endif - - -#ifdef USE_TERMCAP -# ifdef HAVE_TERMCAP_H -# include <termcap.h> -# elif HAVE_TERMLIB_H -# include <termlib.h> -# else -int tgetent (char *BUFFER, char *TERMTYPE); -char *tgetstr (char *NAME, char **AREA); -# endif -static char term_buffer[2048]; -#endif - -#ifdef AMIGA -# define __USE_SYSBASE -# include <dos.h> -# include <dos/dos.h> -# include <dos/dosasl.h> -# include <proto/dos.h> -# include <proto/exec.h> -# include <signal.h> -#endif - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - - -#ifdef AMIGA -const char - VersString [] = "$VER: ChkTeX 1.5 " __AMIGADATE__ - " Copyright (c) 1995-96 Jens T. Berger Thielemann " - "<jensthi@ifi.uio.no>", - __stdiowin [] = "CON:0/10/640/180/ChkTeX", - __stdiov37 [] = "/AUTO/CLOSE/WAIT"; - -const ULONG __MemPoolPuddleSize = 16384, - __MemPoolThreshSize = 8192; - -static struct AnchorPath *AnchorPath = NULL; - -static void KillAnchorPath(void); -static STRPTR InitAnchorPath(STRPTR String); -# define V37 (DOSBase->dl_lib.lib_Version > 36) -#endif - - -/* - * This is the name of the global resource file. - */ - -#ifndef DATADIR -# ifdef AMIGA -# define DATADIR "S:" -# elif defined(__unix__) -# define DATADIR "/usr/local/lib/" -# elif defined(__MSDOS__) -# define DATADIR "\\emtex\\data\\" -# else -# define DATADIR -# endif -#endif -#define RCBASENAME "chktexrc" - -#ifdef __MSDOS__ -# define LOCALRCFILE RCBASENAME -#else -# define LOCALRCFILE "." RCBASENAME -#endif - -TEXT ConfigFile [BUFSIZ] = LOCALRCFILE; -STRPTR ReverseOn, ReverseOff; - - -static BOOL HasFile(STRPTR Dir, const STRPTR Filename, const STRPTR App); - -#if USE_RECURSE -static BOOL SearchFile(STRPTR Dir, const STRPTR Filename, const STRPTR App); -#endif /* USE_RECURSE */ - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - - -/* - * Modify this one to suit your needs. In any case, it should fill - * the ConfigFile (sized BUFLEN) buffer above with full name & path - * for the configuration file. The macro RCFILE will give you the - * filename part of the file, if you need that. - * - * Note: This routine will be called several times. Your mission will - * be to look in each location, and see whether a .chktexrc file exist - * there. - * - * If you choose to do nothing, only the current directory will be - * searched. - * - */ - -enum LookIn -{ - liMin, - liSysDir, - liUsrDir, - liEnvir, - liCurDir, - liNFound, - liMax -}; - - -BOOL SetupVars(void) -{ - STRPTR Env; -#ifdef __MSDOS__ - STRPTR Ptr; -#endif - static enum LookIn i = liMin; - static BOOL FoundFile; - - while(++i < liMax) - { - switch(i) - { - case liCurDir: /* Current directory */ - strcpy(ConfigFile, LOCALRCFILE); - break; - case liEnvir: /* Environment defined */ -#ifdef __MSDOS__ - if((Env = getenv("CHKTEXRC")) || - (Env = getenv("CHKTEX_HOME"))) -#else - if((Env = getenv("CHKTEXRC"))) -#endif - { - strcpy(ConfigFile, Env); - tackon(ConfigFile, LOCALRCFILE); - } - else -#ifdef __MSDOS__ - if((Env = getenv("EMTEXDIR"))) - { - strcpy(ConfigFile, Env); - tackon(ConfigFile, "data"); - tackon(ConfigFile, LOCALRCFILE); - } - else -#endif - *ConfigFile = 0; - break; - case liUsrDir: /* User dir for resource files */ -#ifdef KPATHSEA - { - char *f = concat("~/", LOCALRCFILE); - char *p = kpse_path_expand(f); - if (p) { - strcpy(ConfigFile, p); - free(p); - } - else { - *ConfigFile = 0; - } - free(f); - } -#else /* ! KPATHSEA */ -#ifdef AMIGA - if(V37) - strcpy(ConfigFile, "ENV:"); - else - strcpy(ConfigFile, "S:"); - - tackon(ConfigFile, LOCALRCFILE); -#elif defined(__unix__) - if((Env = getenv("HOME")) || - (Env = getenv("LOGDIR"))) - { - strcpy(ConfigFile, Env); - tackon(ConfigFile, LOCALRCFILE); - } - else - *ConfigFile = 0; -#elif defined(__MSDOS__) - strcpy(ConfigFile, PrgName); - if((Ptr = strrchr(ConfigFile, '\\')) || - (Ptr = strchr(ConfigFile, ':'))) - strcpy(++Ptr, RCBASENAME); - else - *ConfigFile = 0; -#endif -#endif /* KPATHSEA */ - break; - case liSysDir: /* System dir for resource files */ -#ifdef KPATHSEA - { - char *f = kpse_find_file(LOCALRCFILE, kpse_program_text_format, TRUE); - if (f) { - strcpy(ConfigFile, f); - } - else { - *ConfigFile = '\0'; - } - } -#else /* ! KPATHSEA */ -#if defined(__unix__) || defined(__MSDOS__) - strcpy(ConfigFile, DATADIR); - tackon(ConfigFile, RCBASENAME); -#else - *ConfigFile = 0; -#endif -#endif /* KPATHSEA */ - break; - case liNFound: - case liMin: - case liMax: - *ConfigFile = 0; - if(!FoundFile) - PrintPrgErr(pmNoRsrc); - } - - if(*ConfigFile && fexists(ConfigFile)) - break; - } - FoundFile |= *ConfigFile; - - return(*ConfigFile); -} - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * This function should initialize the global variables ReverseOn - * and ReverseOff to magic cookies, which when printed, makes the - * text in between stand out. - */ - -void SetupTerm(void) -{ -#ifdef USE_TERMCAP - char *termtype = getenv("TERM"); - int success; - char *buffer; - - ifn(termtype) - PrintPrgErr(pmSpecifyTerm); - - success = tgetent(term_buffer, termtype); - if(success < 0) - PrintPrgErr(pmNoTermData); - if(success == 0) - PrintPrgErr(pmNoTermDefd); - - ifn((buffer = (char *) malloc(strlen(term_buffer))) && - (ReverseOn = tgetstr("so", &buffer)) && - (ReverseOff = tgetstr("se", &buffer))) -#endif - { - ReverseOn = PRE_ERROR_STR; - ReverseOff = POST_ERROR_STR; - } - -} - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * Concatenates the `File' string to the `Dir' string, leaving the result - * in the `Dir' buffer. Takes care of inserting `directory' characters; - * if we've got the strings "/usr/foo" and "bar", we'll get - * "/usr/foo/bar". - * - * Behaviour somewhat controlled by the macros SLASH and DIRCHARS in the - * OpSys.h file. - * - */ - -void tackon(STRPTR Dir, const STRPTR File) -{ - int EndC; - ULONG SLen; - - if(Dir && (SLen = strlen(Dir))) - { - EndC = Dir[SLen -1]; - ifn(strchr(DIRCHARS, EndC)) - { - Dir[SLen++] = SLASH; - Dir[SLen ] = 0L; - } - } - - strcat(Dir, File); -} - -/* - * This function should add the appendix App to the filename Name. - * If the resulting filename gets too long due to this, it may - * overwrite the old appendix. - * - * Name may be assumed to be a legal filename under your OS. - * - * The appendix should contain a leading dot. - */ - -void AddAppendix(STRPTR Name, const STRPTR App) -{ -#ifdef __MSDOS__ - STRPTR p; - - if((p = strrchr(Name, '.'))) - strcpy(p, App); - else - strcat(Name, App); -#else - /* - * NOTE! This may fail if your system has a claustrophobic file - * name length limit. - */ - strcat(Name, App); -#endif - -} - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - - -/* - * Locates a file, given a wordlist containing paths. If a - * dir ends in a double SLASH, we'll search it recursively. - * - * We assume that - * a) a deeper level in the dir. tree. has a longer path than - * one above. - * b) adding a level doesn't change any of the previous levels. - * - * If this function returns TRUE, Dest is guaranteed to contain - * path & name of the found file. - * - * FALSE indicates that the file was not found; Dest is then - * unspecified. - */ - -#ifdef KPATHSEA -BOOL LocateFile(const STRPTR Filename, /* File to search for */ - STRPTR Dest, /* Where to put final file */ - const STRPTR App, /* Extra optional appendix */ - struct WordList *wl) /* Not used with kpathsea. - */ -{ - BOOL ret; - char *fn, *p; - - fn = Filename; - p = kpse_find_file(fn, kpse_tex_format, FALSE); - - if (! p || ! *p) { - fn = concat(Filename, App); - p = kpse_find_file(fn, kpse_tex_format, FALSE); - free(fn); - } - - if (p) { - strcpy(Dest, p); - free(p); - ret = TRUE; - } - else { - fprintf(stderr, "%s: warning, file %s%s not found.\n", kpse_program_name, Filename, App); - ret = FALSE; - } - - return ret; -} -#else -BOOL LocateFile(const STRPTR Filename, /* File to search for */ - STRPTR Dest, /* Where to put final file */ - const STRPTR App, /* Extra optional appendix */ - struct WordList *wl) /* List of paths, entries - * ending in // will be recursed - */ -{ - ULONG i, Len; - - FORWL(i, *wl) - { - strcpy(Dest, wl->Stack.Data[i]); - -#if USE_RECURSE - Len = strlen(Dest); - - if(Len && (Dest[Len - 1] == SLASH) && (Dest[Len - 2] == SLASH)) - { - Dest[Len - 1] = Dest[Len - 2] = 0; - if(SearchFile(Dest, Filename, App)) - return(TRUE); - } - else -#endif /* USE_RECURSE */ - { - if(HasFile(Dest, Filename, App)) - return(TRUE); - } - } - return(FALSE); -} -#endif - -static BOOL HasFile(STRPTR Dir, const STRPTR Filename, const STRPTR App) -{ - int DirLen = strlen(Dir); - - tackon(Dir, Filename); - if(fexists(Dir)) - return(TRUE); - - if(App) - { - AddAppendix(Dir, App); - if(fexists(Dir)) - return(TRUE); - } - - Dir[DirLen] = 0; - return(FALSE); - -} - - -#if USE_RECURSE -static BOOL SearchFile(STRPTR Dir, const STRPTR Filename, const STRPTR App) -{ - struct stat *statbuf; - struct dirent *de; - DIR *dh; - - int DirLen = strlen(Dir); - BOOL Found = FALSE; - - DEBUG(("Searching %s for %s\n", Dir, Filename)); - - if(HasFile(Dir, Filename, App)) - return(TRUE); - else - { - if((statbuf = malloc(sizeof(struct stat)))) - { - if((dh = opendir(Dir))) - { - while(!Found && (de = readdir(dh))) - { - Dir[DirLen] = 0; - if(strcmp(de->d_name, ".") && strcmp(de->d_name, "..")) - { - tackon(Dir, de->d_name); - - if(!stat(Dir, statbuf)) - { - if((statbuf->st_mode & S_IFMT) == S_IFDIR) - Found = SearchFile(Dir, Filename, App); - } - } - } - closedir(dh); - } - else - PrintPrgErr(pmNoOpenDir, Dir); - free(statbuf); - } - } - return(Found); -} -#endif /* USE_RECURSE */ - - - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * This function should be called first with String being a file pattern. - * It should then return the first filename matching that pattern. - * Subsequent calls will be made with String = NULL; it should then return - * any other filenames that matches the same pattern. - * If the first call is made with NULL, you should return NULL. - * It may be called more than once with String != NULL, however, you need - * only to keep track of the last invocation. - * - * If a string doesn't match any pattern at all, return the string itself. - * - * Don't assume that the String passed will live on until the next - * invocation, though. strdup() it if you need it after the first time. - */ - -#ifdef AMIGA - -STRPTR MatchFileName(STRPTR String) -{ - STRPTR Retval = NULL; - - if(AnchorPath || String) /* Is this the first invocation? */ - { - if(V37) - { - ifn(AnchorPath) - { - if(AnchorPath = malloc(sizeof(struct AnchorPath) + FMSIZE)) - { - Retval = InitAnchorPath(String); - atexit(&KillAnchorPath); - } - } - else - { - if(String) - { - MatchEnd(AnchorPath); - Retval = InitAnchorPath(String); - } - else - { - ifn(MatchNext(AnchorPath)) - Retval = AnchorPath->ap_Buf; - } - } - } - else /* ARP support may be added in the future */ - Retval = String; - - if(AnchorPath && AnchorPath->ap_FoundBreak) - raise(SIGINT); - } - - if(!Retval && String) - Retval = String; - - return(Retval); -} - -static void KillAnchorPath(void) -{ - MatchEnd(AnchorPath); -} - -static STRPTR InitAnchorPath(STRPTR String) -{ - STRPTR Retval = NULL; - - AnchorPath->ap_BreakBits = SIGBREAKF_CTRL_C; - AnchorPath->ap_Strlen = FMSIZE; - AnchorPath->ap_FoundBreak = FALSE; - AnchorPath->ap_Flags = 0L; - - ifn(MatchFirst(String, AnchorPath)) - Retval = AnchorPath->ap_Buf; - else - PrintPrgErr(pmNoFileMatch, String); - - AnchorPath->ap_Flags &= ~(APF_DODIR); - return(Retval); -} - -#else -STRPTR MatchFileName(STRPTR String) -{ - return(String); -} -#endif diff --git a/Build/source/texk/chktex/OpSys.h b/Build/source/texk/chktex/OpSys.h deleted file mode 100644 index a7fda5a8e3a..00000000000 --- a/Build/source/texk/chktex/OpSys.h +++ /dev/null @@ -1,217 +0,0 @@ -/* - * ChkTeX v1.5, operating system specific code for ChkTeX. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - -#ifndef OPSYS_H -#define OPSYS_H -#ifndef CHKTEX_H -# include "ChkTeX.h" -#endif /* CHKTEX_H */ -#ifndef UTILITY_H -# include "Utility.h" -#endif /* UTILITY_H */ - -/********************************************************************/ -/**************** START OF USER SETTABLE PREFERENCES ****************/ - -/* - * Note: This file contains most defines you'll wish to change if you - * wish to adopt ChkTeX to a new system. It is, as you might notice, - * heavily documented. If you wish to get into the internals of ChkTeX, - * the interesting stuff is at the bottom of this file, and in the .c - * files. However, you should also take a look at the "config.h.in" file - * in this directory if you haven't got a shell able to run the "configure" - * script. - * - * This program relies heavily on that the system which - * automagically free()'s all malloc()'ed memory, works. The program - * itself does not call free() very much. This is because we're doing - * lots of tiny allocations, and a properly designed pooling system will - * hopefully do a quicker job than we'll be able to do. So there. - * - * To keep things simple, we trust that the fclose()'ing of fopen()'ed - * also happens automagically. - * - * Please use the getopt included, as we will modify optarg during - * command processing. - * - * You may wish to modify the SetupVars() (OpSys.c) to better suit your - * preferences. In any case, it should put the filename (and full path) - * of the `.chktexrc' file into the ConfigFile array. The array is sized - * BUFSIZ bytes. - * - * The program does also assume that AMIGA is defined if the source - * compiled on an Amiga machine, and that __unix__ is defined if the - * source is compiled on a UNIX machine. - * - */ - - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * Here you should define what codes which should be returned to the - * shell upon success/failure. - * - */ - -#ifndef EXIT_FAILURE -# ifdef AMIGA -# define EXIT_FAILURE 20 -# else -# define EXIT_FAILURE 1 -# endif -#endif - -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * SLASH should be defined to the character your computer uses to - * separate files/directories. Most systems use '/', messydos uses - * '\'. - * - * DIRCHARS should be defined to the characters a directory entry - * may end on. On Amigas, this is ":/" (either "FOO:BAR/" or "FOO:"), - * Unix uses only "/", while messydos uses ":\\". - * - * This data will be used to automatically concatenate a directory - * path and a filename. - * - * Adjust both to suit your needs. - */ - - -#if defined(__unix__) || defined(AMIGA) || defined(WIN32) -# define SLASH '/' -#elif defined(__MSDOS__) -# define SLASH '\\' -#endif - -#if defined(AMIGA) -# define DIRCHARS ":/" -#elif defined(__unix__) -# define DIRCHARS "/" -#elif defined(__MSDOS__) -# define DIRCHARS ":\\" -#elif defined(WIN32) -#define DIRCHARS ":\\/" -#endif - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * Here, define what key-combination which is used to abort stdin - * keyboard input. It should be a string, as we we'll type it out as - * information to the user. - */ - -#ifdef AMIGA -# define STDIN_BREAK "Ctrl-\\" -#elif defined(__unix__) -# define STDIN_BREAK "Ctrl-D" -#elif defined(__MSDOS__) -# define STDIN_BREAK "Ctrl-Z + Enter" -#else -# define STDIN_BREAK "stdin break combination" -#endif - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * For fancy printing of commands, we'll use these strings to turn - * on/off the error indication. The codes listed here are ANSI - * compatible; if you don't have that type of terminal, you may wish - * to adjust this. Use "chktex -v2 Test.tex" to check the effects of - * these macros. Note: These strings will be printf()'ed, so watch your - * %'s. - * - * Under UNIX, we'll ignore these values and use termcap instead, where - * that is installed. - * - * If these strings can't be specified statically, you'll have to add - * code in the SetupTerm() function. - * - * PRE_ERROR_STR is of course printed in front of each location we - * wish to show as an error, and POST_ERROR_STR after each location. - * - * The codes #defined here, will switch back- and foreground colours. - * We're using '\033[' as escape character, some terminals may like - * '\233' better. - * - */ - -#ifdef AMIGA -# define PRE_ERROR_STR "\033[43m\033[32m" -# define POST_ERROR_STR "\033[0m" -#else -# define PRE_ERROR_STR "\033[7m" -# define POST_ERROR_STR "\033[0m" -#endif - - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * This macro should contain the appendix for backup files, which - * will be appended onto the original filename. It should contain - * a leading dot. - */ - -#ifdef __MSDOS__ -# define BAKAPPENDIX ".$cl" -#else -# define BAKAPPENDIX ".bak" -#endif - -/***************** END OF USER SETTABLE PREFERENCES *****************/ -/********************************************************************/ - -#ifndef WORDLIST_DEFINED -struct WordList; -#endif - /* Sorry; there are now cyclic dependencies in the - * source tree. :-/ - */ - -extern STRPTR ReverseOn, ReverseOff; -extern TEXT ConfigFile[BUFSIZ]; - -STRPTR MatchFileName __PROTO((STRPTR String)); -BOOL SetupVars __PROTO((void)); -void SetupTerm __PROTO((void)); -void AddAppendix __PROTO((STRPTR Name, const STRPTR App)); -void tackon __PROTO((STRPTR, const STRPTR)); -BOOL LocateFile __PROTO((const STRPTR Filename, STRPTR Dest, - const STRPTR App, struct WordList *wl)); - - -#endif /* OPSYS_H */ - diff --git a/Build/source/texk/chktex/Resource.c b/Build/source/texk/chktex/Resource.c deleted file mode 100644 index 9a79ab9f2a3..00000000000 --- a/Build/source/texk/chktex/Resource.c +++ /dev/null @@ -1,518 +0,0 @@ -/* - * ChkTeX v1.5, resource file reader. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - -#include "ChkTeX.h" -#include "OpSys.h" -#include "Utility.h" -#include "Resource.h" - -#define LNEMPTY(a) struct WordList a = {0, 1, {0}, {0}}; -#define LIST(a) struct WordList a = {0, 0, {0}, {0}}; -#define LCASE(a) LIST(a) LIST(a ## Case) -#define KEY(a,def) STRPTR a = def; - -RESOURCE_INFO - -#undef KEY -#undef LCASE -#undef LNEMPTY -#undef LIST - -struct KeyWord -{ - STRPTR Name; - STRPTR *String; /* Keyword = item */ - struct WordList - *List, /* Case-sensitive strings */ - *CaseList; /* Case-insensitive strings */ -}; - -#define LNEMPTY LIST -#define LIST(name) {#name, NULL, &name, NULL}, -#define LCASE(name) {#name, NULL, &name, &name ## Case}, -#define KEY(name,def) {#name, &name, NULL, NULL}, - -struct KeyWord Keys [] = -{ - RESOURCE_INFO - {NULL, NULL, NULL, NULL} -}; - -#undef KEY -#undef LCASE -#undef LNEMPTY -#undef LIST - - -/***************************** RESOURCE HANDLING **************************/ - -#define TOKENBITS(name) enum name { \ - BIT(Eof), /* End-of-file */ \ - BIT(Open), /* { */ \ - BIT(Close), /* } */ \ - BIT(BrOpen), /* [ */ \ - BIT(BrClose), /* ] */ \ - BIT(Equal), /* = */ \ - BIT(Word), /* Keyword */ \ - BIT(Item) /* List item */ \ -}; - -#undef BIT -#define BIT BITDEF1 -TOKENBITS(Token_BIT) - -#undef BIT -#define BIT BITDEF2 -TOKENBITS(Token) - - -static enum Token Expect; -static ULONG RsrcLine; - -static enum Token ReadWord __PROTO((STRPTR, FILE *)); -static TEXT MapChars __PROTO((STRPTR *String)); - - - -/* - * Parses the contents of a resource file. - * - * Format: - * Keyword { item1 item2 ... } [ item1 item2 ... ] - * Keyword [ item1 item2 ... ] { item1 item2 ... } - * Keyword = { item1 item2 ... } - * Keyword = [ item1 item2 ... ] - * Keyword = item - * - * Returns whether the attempt was a successful one. - */ - -BOOL ReadRC(const STRPTR Filename) -{ - STRPTR String; - BOOL Success = FALSE; - FILE *fh; - enum Token Token; - ULONG Counter; - - struct KeyWord *CurWord = NULL; - - /* Interpret incoming words as ... */ - enum - { - whList, /* List elements */ - whCaseList, /* Case insensitive list elements */ - whEqual, /* Solo elements */ - whNone /* List items not accepted */ - } What = whNone; - - - RsrcLine = 0; - Expect = FLG_Word | FLG_Eof; - - if((fh = fopen(Filename, "r"))) - { - Success = TRUE; - do - { - Token = ReadWord(ReadBuffer, fh); - ifn(Expect & Token) - { - switch(Token) - { - case FLG_Item: - String = "item"; - break; - case FLG_Word: - String = "word"; - break; - case FLG_Equal: - String = "`='"; - break; - case FLG_Open: - String = "`{'"; - break; - case FLG_Close: - String = "`}'"; - break; - case FLG_BrOpen: - String = "`['"; - break; - case FLG_BrClose: - String = "`]'"; - break; - case FLG_Eof: - String = "EOF"; - break; - } - PrintPrgErr(pmFaultFmt, Filename, RsrcLine, String); - Success = FALSE; - Token = FLG_Eof; - } - - switch(Token) - { - case FLG_Word: - for(Counter = 0; - Keys[Counter].Name; - Counter++) - { - if(!strcasecmp(ReadBuffer, Keys[Counter].Name)) - { - CurWord = &Keys[Counter]; - Expect = (CurWord->List? FLG_Open : 0) | - (CurWord->CaseList? FLG_BrOpen : 0) | - FLG_Equal; - break; - } - } - if(!Keys[Counter].Name) - { - PrintPrgErr(pmKeyWord, ReadBuffer, Filename); - Success = FALSE; - Token = FLG_Eof; - } - break; - case FLG_Item: - switch(What) - { - case whEqual: - ifn(*(CurWord->String) = strdup(ReadBuffer)) - { - PrintPrgErr(pmStrDupErr); - Token = FLG_Eof; - Success = FALSE; - } - - What = whNone; - Expect = FLG_Word | FLG_Eof; - break; - case whCaseList: - if(!InsertWord(ReadBuffer, CurWord->CaseList)) - { - Token = FLG_Eof; - Success = FALSE; - } - break; - case whList: - if(!InsertWord(ReadBuffer, CurWord->List)) - { - Token = FLG_Eof; - Success = FALSE; - } - break; - case whNone: - PrintPrgErr(pmAssert); - } - break; - case FLG_Equal: - What = whEqual; - Expect = (CurWord->List? FLG_Open : 0) | - (CurWord->CaseList? FLG_BrOpen : 0) | - (CurWord->String? FLG_Item : 0); - break; - case FLG_BrOpen: - if(What == whEqual) - ClearWord(CurWord->CaseList); - What = whCaseList; - Expect = FLG_Item | FLG_BrClose; - break; - case FLG_Open: - if(What == whEqual) - ClearWord(CurWord->List); - What = whList; - Expect = FLG_Item | FLG_Close; - break; - case FLG_BrClose: - case FLG_Close: - Expect = (CurWord->List? FLG_Open : 0) | - (CurWord->CaseList? FLG_BrOpen : 0) | - FLG_Equal | FLG_Word | FLG_Eof; - What = whNone; - break; - case FLG_Eof: - break; - } - } while(Token != FLG_Eof); - - fclose(fh); - } - else - PrintPrgErr(pmRsrcOpen, Filename); - - return(Success); -} - -/* - * Reads a token from the `.chktexrc' file; if the token is - * FLG_Item or FLG_Word, Buffer will contain the plaintext of the - * token. If not, the contents are undefined. - */ - -static enum Token ReadWord(STRPTR Buffer, FILE *fh) -{ - static - STRPTR String = NULL; - static - TEXT StatBuf[BUFSIZ]; - enum Token Retval = FLG_Eof; - - UWORD Chr; - - STRPTR Ptr; - BOOL OnceMore = TRUE, Cont = TRUE; - - if(Buffer) - { - do - { - if(!(String && *String)) - { - if(fgets(StatBuf, BUFSIZ-1, fh)) - String = strip(StatBuf, STRP_RGT); - RsrcLine++; - } - - Ptr = Buffer; - if(String && (String = strip(String, STRP_LFT))) - { - switch(Chr = *String) - { - case 0: - case CMNT: - String = NULL; - break; - case QUOTE: /* Quoted argument */ - Cont = TRUE; - String++; - - while(Cont) - { - switch(Chr = *String++) - { - case 0: - case QUOTE: - Cont = FALSE; - break; - case ESCAPE: - ifn(Chr = MapChars(&String)) - break; - - /* FALLTHRU */ - default: - *Ptr++ = Chr; - } - } - *Ptr = 0; - Retval = FLG_Item; - OnceMore = FALSE; - break; - -#define DONEKEY (FLG_Open | FLG_Equal | FLG_BrOpen) -#define DONELIST (FLG_Close | FLG_BrClose) -#define TOKEN(c, ctxt, tk) case c: if(Expect & (ctxt)) Retval = tk; LAST(token); - - LOOP(token, - TOKEN('{', DONEKEY, FLG_Open); - TOKEN('[', DONEKEY, FLG_BrOpen); - TOKEN('=', DONEKEY, FLG_Equal); - TOKEN(']', DONELIST, FLG_BrClose); - TOKEN('}', DONELIST, FLG_Close); - ) - - if(Retval != FLG_Eof) - { - OnceMore = FALSE; - String++; - break; - } - - /* FALLTHRU */ - - default: /* Non-quoted argument */ - OnceMore = FALSE; - if(Expect & FLG_Word) - { - while(Cont) - { - Chr = *String++; - if(isalpha(Chr)) - *Ptr++ = Chr; - else - Cont = FALSE; - } - String--; - Retval = FLG_Word; - } - else /* Expect & FLG_Item */ - { - while(Cont) - { - switch(Chr = *String++) - { - case CMNT: - case 0: - String = NULL; - Cont = FALSE; - break; - case ESCAPE: - ifn(Chr = MapChars(&String)) - break; - - *Ptr++ = Chr; - break; - default: - if(!isspace(Chr)) - *Ptr++ = Chr; - else - Cont = FALSE; - } - } - Retval = FLG_Item; - } - - ifn(Buffer[0]) - { - PrintPrgErr(pmEmptyToken); - if(*String) - String++; - } - *Ptr = 0; - break; - } - } - else - OnceMore = FALSE; - } while(OnceMore); - } - return(Retval); -} - - - -/* - * Translates escape codes. Give it a pointer to the char after the - * escape char, and we'll return what it maps to. - */ - -#define MAP(a,b) case a: Tmp = b; break; - -static TEXT MapChars(STRPTR *String) -{ - int Chr, Tmp = 0; - UWORD Cnt; - - Chr = *((STRPTR) (*String)++); - - switch(tolower(Chr)) - { - MAP(QUOTE, QUOTE); - MAP(ESCAPE, ESCAPE); - MAP(CMNT, CMNT); - MAP('n', '\n'); - MAP('r', '\r'); - MAP('b', '\b'); - MAP('t', '\t'); - MAP('f', '\f'); - MAP('{', '{'); - MAP('}', '}'); - MAP('[', '['); - MAP(']', ']'); - MAP('=', '='); - MAP(' ', ' '); - case 'x': - Tmp = 0; - - for(Cnt = 0; Cnt < 2; Cnt++) - { - Chr = *((*String)++); - if(isxdigit(Chr)) - { - Chr = toupper(Chr); - Tmp = (Tmp<<4) + Chr; - - if(isdigit(Chr)) - Tmp -= '0'; - else - Tmp -= 'A' - 10; - } - else - { - if(Chr) - { - PrintPrgErr(pmNotPSDigit, Chr, "hex"); - Tmp = 0; - } - break; - } - } - break; - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': - - Tmp = Chr - '0'; - - for(Cnt = 0; Cnt < 2; Cnt++) - { - Chr = *((*String)++); - if(within('0',Chr,'7')) - Tmp = (Tmp * 8) + Chr - '0'; - else - { - if(Chr) - { - PrintPrgErr(pmNotPSDigit, Chr, "octal"); - Tmp = 0; - } - break; - } - } - break; - case 'd': - for(Cnt = 0; Cnt < 3; Cnt++) - { - if(isdigit(Chr = *((*String)++))) - Tmp = (Tmp * 10) + Chr - '0'; - else - { - if(Chr) - { - PrintPrgErr(pmNotPSDigit, Chr, ""); - Tmp = 0; - } - break; - } - } - break; - default: - PrintPrgErr(pmEscCode, ESCAPE, Chr); - } - return(Tmp); -} - - diff --git a/Build/source/texk/chktex/Resource.h b/Build/source/texk/chktex/Resource.h deleted file mode 100644 index f0e7b9b58e8..00000000000 --- a/Build/source/texk/chktex/Resource.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * ChkTeX v1.5, resource file reader. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - -#ifndef RESOURCE_H -#define RESOURCE_H -#ifndef CHKTEX_H -# include "ChkTeX.h" -#endif /* CHKTEX_H */ - -#define QUOTE '\"' /* Char used to quote text containing blanks */ -#define ESCAPE '!' /* Char used to access special characters */ -#define CMNT '#' /* Char used as comment */ - -#define RESOURCE_INFO \ - LIST(Silent) LIST(Linker) LIST(IJAccent) LIST(Italic)\ - LIST(ItalCmd) LIST(PostLink) LIST(WipeArg) LIST(VerbEnvir)\ - LIST(MathEnvir) LIST(MathRoman) LIST(HyphDash) LIST(NumDash)\ - LIST(WordDash) LIST(CenterDots) LIST(LowDots) LIST(OutFormat)\ - LIST(Primitives) LIST(NotPreSpaced) LIST(NonItalic) LIST(NoCharNext)\ - LNEMPTY(CmdLine) LNEMPTY(TeXInputs)\ - LCASE(Abbrev) LCASE(UserWarn)\ - KEY(VerbClear, "|") KEY(QuoteStyle, "Traditional") KEY(TabSize, "8") - -#define LIST(a) extern struct WordList a; -#define LNEMPTY LIST -#define LCASE(a) LIST(a) LIST(a ## Case) -#define KEY(a,def) extern STRPTR a; - -RESOURCE_INFO - -#undef KEY -#undef LCASE -#undef LNEMPTY -#undef LIST - -BOOL ReadRC __PROTO((STRPTR const)); - - -#endif /* RESOURCE */ diff --git a/Build/source/texk/chktex/Test.out b/Build/source/texk/chktex/Test.out deleted file mode 100644 index 5d7b70d8ba9..00000000000 --- a/Build/source/texk/chktex/Test.out +++ /dev/null @@ -1,408 +0,0 @@ -Message 30 in Test.tex line 2: Multiple spaces detected in input. - o To test the program upon it - ^^^ -Message 30 in Test.tex line 3: Multiple spaces detected in input. - o To show off some of the features - ^^^ -Message 22 in Test.tex line 8: Comment displayed. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -^ -Message 22 in Test.tex line 10: Comment displayed. -% Warning 1 -^ -Message 1 in Test.tex line 12: Command terminated with space. -\foo This is an error. - ^ -Message 22 in Test.tex line 15: Comment displayed. -% Warning 2 -^ -Message 2 in Test.tex line 17: Non-breaking space (`~') should have been used. -This is a faulty reference to \ref{foo} - ^ -Message 22 in Test.tex line 20: Comment displayed. -% Warning 3 -^ -Message 3 in Test.tex line 22: You should enclose the previous parenthesis with `{}'. -$[(ab)^{-1}]^{-2}$ is not beautiful - ^ -Message 3 in Test.tex line 22: You should enclose the previous parenthesis with `{}'. -$[(ab)^{-1}]^{-2}$ is not beautiful - ^ -Message 30 in Test.tex line 22: Multiple spaces detected in input. -$[(ab)^{-1}]^{-2}$ is not beautiful - ^^ -Message 22 in Test.tex line 25: Comment displayed. -% Warning 4-6, 28 -^ -Message 6 in Test.tex line 27: No italic correction (`\/') found. -Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - ^ -Message 42 in Test.tex line 27: You should remove spaces in front of `\/' -Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - ^ -Message 4 in Test.tex line 27: Italic correction (`\/') found in non-italic buffer. -Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - ^^ -Message 28 in Test.tex line 27: Don't use \/ in front of small punctuation. -Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - ^^ -Message 42 in Test.tex line 27: You should remove spaces in front of `\/' -Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - ^ -Message 5 in Test.tex line 27: Italic correction (`\/') found more than once. -Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - ^^ -Message 22 in Test.tex line 30: Comment displayed. -% LaTeX2e -^ -Message 42 in Test.tex line 32: You should remove spaces in front of `\/' -Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - ^ -Message 4 in Test.tex line 32: Italic correction (`\/') found in non-italic buffer. -Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - ^^ -Message 28 in Test.tex line 32: Don't use \/ in front of small punctuation. -Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - ^^ -Message 42 in Test.tex line 32: You should remove spaces in front of `\/' -Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - ^ -Message 4 in Test.tex line 32: Italic correction (`\/') found in non-italic buffer. -Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - ^^ -Message 4 in Test.tex line 32: Italic correction (`\/') found in non-italic buffer. -Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - ^^ -Message 4 in Test.tex line 33: Italic correction (`\/') found in non-italic buffer. -Testing \textem{italic\/} in this \textit{sentence}, as \textem{you see}. - ^^ -Message 22 in Test.tex line 35: Comment displayed. -% Warning 7 -^ -Message 7 in Test.tex line 37: Accent command `\'' needs use of `\i'. -This \'is a test of $\hat{j}$ accents. - ^^ -Message 7 in Test.tex line 37: Accent command `\hat' needs use of `\jmath'. -This \'is a test of $\hat{j}$ accents. - ^^^^ -Message 22 in Test.tex line 40: Comment displayed. -% Warning 8 -^ -Message 8 in Test.tex line 42: Wrong length of dash may have been used. -It wasn't anything - just a 2---3 star--shots. - ^ -Message 8 in Test.tex line 42: Wrong length of dash may have been used. -It wasn't anything - just a 2---3 star--shots. - ^^^ -Message 8 in Test.tex line 42: Wrong length of dash may have been used. -It wasn't anything - just a 2---3 star--shots. - ^^ -Message 22 in Test.tex line 45: Comment displayed. -% Warning 9-10 -^ -Message 22 in Test.tex line 47: Comment displayed. -% Brackets: -^ -Message 10 in Test.tex line 49: Solo `)' found. -)}{[])} }}}]]]))) -^ -Message 10 in Test.tex line 49: Solo `}' found. -)}{[])} }}}]]]))) - ^ -Message 9 in Test.tex line 49: `}' expected, found `)'. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `}' found. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `}' found. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `}' found. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `}' found. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `]' found. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `]' found. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `]' found. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `)' found. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `)' found. -)}{[])} }}}]]]))) - ^ -Message 10 in Test.tex line 49: Solo `)' found. -)}{[])} }}}]]]))) - ^ -Message 22 in Test.tex line 52: Comment displayed. -% Envs: -^ -Message 9 in Test.tex line 54: `baz' expected, found `quux'. -\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} - ^^^^ -Message 9 in Test.tex line 54: `quux' expected, found `baz'. -\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} - ^^^^ -Message 10 in Test.tex line 54: Solo `asoi' found. -\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} - ^^^^ -Message 22 in Test.tex line 58: Comment displayed. -% Warning 11 -^ -Message 11 in Test.tex line 60: You should use \ldots to achieve an ellipsis. -Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - ^^^ -Message 11 in Test.tex line 60: You should use \ldots to achieve an ellipsis. -Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - ^^^ -Message 11 in Test.tex line 60: You should use \cdots to achieve an ellipsis. -Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - ^^^ -Message 11 in Test.tex line 60: You should use \ldots to achieve an ellipsis. -Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - ^^^^^^ -Message 11 in Test.tex line 60: You should use \cdots to achieve an ellipsis. -Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - ^^^^^^ -Message 22 in Test.tex line 63: Comment displayed. -% Warning 12 -^ -Message 12 in Test.tex line 65: Interword spacing (`\ ') should perhaps be used. -1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar - ^ -Message 12 in Test.tex line 65: Interword spacing (`\ ') should perhaps be used. -1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar - ^ -Message 12 in Test.tex line 65: Interword spacing (`\ ') should perhaps be used. -1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar - ^ -Message 22 in Test.tex line 68: Comment displayed. -% Warning 13 -^ -Message 13 in Test.tex line 70: Intersentence spacing (`\@') should perhaps be used. -Look at THIS! It's an error. - ^ -Message 22 in Test.tex line 73: Comment displayed. -% Warning 14 -^ -Message 1 in Test.tex line 75: Command terminated with space. -\hat - ^ -Message 14 in Test.tex line 75: Could not find argument for command. -\hat -^^^^ -Message 22 in Test.tex line 78: Comment displayed. -% Warning 18,19 -^ -Message 18 in Test.tex line 80: Use either `` or '' as an alternative to `"'. -Is this an "example", or is it an ´example´. - ^ -Message 18 in Test.tex line 80: Use either `` or '' as an alternative to `"'. -Is this an "example", or is it an ´example´. - ^ -Message 19 in Test.tex line 80: Use "'" (ASCII 39) instead of "´" (ASCII 180). -Is this an "example", or is it an ´example´. - ^ -Message 19 in Test.tex line 80: Use "'" (ASCII 39) instead of "´" (ASCII 180). -Is this an "example", or is it an ´example´. - ^ -Message 22 in Test.tex line 83: Comment displayed. -% Warning 20 -^ -Message 20 in Test.tex line 85: User-specified pattern found. -That bug is \unknown\ to me. - ^^^^^^^^ -Message 22 in Test.tex line 87: Comment displayed. -% Warning 21 -^ -Message 21 in Test.tex line 89: This command might not be intended. -\LaTeX\ is an extension of \TeX\. Right? - ^^ -Message 22 in Test.tex line 92: Comment displayed. -% Warning 23 -^ -Message 23 in Test.tex line 94: Either `\,`` or ``\,` will look better. -```Hello', I heard him said'', she remembered. -^^^ -Message 22 in Test.tex line 97: Comment displayed. -% Warning 24 -^ -Message 24 in Test.tex line 99: Delete this space to maintain correct pagereferences. -Indexing text \index{text} is fun! - ^ -Message 22 in Test.tex line 102: Comment displayed. -% Warning 25 -^ -Message 25 in Test.tex line 104: You might wish to put this between a pair of `{}' -$5\cdot10^10$ - ^^ -Message 22 in Test.tex line 107: Comment displayed. -% Warning 26 -^ -Message 26 in Test.tex line 109: You ought to remove spaces in front of punctuation. -Do you understand ? - ^ -Message 22 in Test.tex line 112: Comment displayed. -% Warning 27 -^ -Message 1 in input.tex line 1: Command terminated with space. -\this is a test of whether the file is actually inputted... - ^ -Message 11 in input.tex line 1: You should use \ldots to achieve an ellipsis. -\this is a test of whether the file is actually inputted... - ^^^ -Message 1 in input.tex line 1: Command terminated with space. -\this is a test of whether the file is actually inputted... - ^ -Message 11 in input.tex line 1: You should use \ldots to achieve an ellipsis. -\this is a test of whether the file is actually inputted... - ^^^ -Message 22 in Test.tex line 117: Comment displayed. -% Warning 29 -^ -Message 29 in Test.tex line 118: $\times$ may look prettier here. -The program opens a screen sized 640x200 pixels - ^ -Message 22 in Test.tex line 121: Comment displayed. -% Warning 30 -^ -Message 30 in Test.tex line 123: Multiple spaces detected in input. -White is a beautiful colour. - ^^^^^^^^^^^ -Message 22 in Test.tex line 126: Comment displayed. -% Warning 31 -^ -Message 31 in Test.tex line 129: This text may be ignored. -\end{verbatim} foo bar - ^^^^^^^ -Message 22 in Test.tex line 131: Comment displayed. -% Warning 32-34 -^ -Message 32 in Test.tex line 133: Use ` to begin quotation, not '. -This is either an 'example`, an ''example`` or an `"`example'`'. - ^ -Message 33 in Test.tex line 133: Use ' to end quotation, not `. -This is either an 'example`, an ''example`` or an `"`example'`'. - ^ -Message 32 in Test.tex line 133: Use ` to begin quotation, not '. -This is either an 'example`, an ''example`` or an `"`example'`'. - ^^ -Message 33 in Test.tex line 133: Use ' to end quotation, not `. -This is either an 'example`, an ''example`` or an `"`example'`'. - ^^ -Message 34 in Test.tex line 133: Don't mix quotes. -This is either an 'example`, an ''example`` or an `"`example'`'. - ^^^ -Message 34 in Test.tex line 133: Don't mix quotes. -This is either an 'example`, an ''example`` or an `"`example'`'. - ^^^ -Message 22 in Test.tex line 136: Comment displayed. -% Warning 35 -^ -Message 35 in Test.tex line 138: You should perhaps use `\sin' instead. -$sin^2 + cos^2 = 1$ - ^^^ -Message 35 in Test.tex line 138: You should perhaps use `\cos' instead. -$sin^2 + cos^2 = 1$ - ^^^ -Message 22 in Test.tex line 141: Comment displayed. -% Warning 36-37 -^ -Message 36 in Test.tex line 143: You should put a space in front of parenthesis. -This( an example( Nuff said )), illustrates( ``my'' )point. - ^ -Message 37 in Test.tex line 143: You should avoid spaces after parenthesis. -This( an example( Nuff said )), illustrates( ``my'' )point. - ^ -Message 36 in Test.tex line 143: You should put a space in front of parenthesis. -This( an example( Nuff said )), illustrates( ``my'' )point. - ^ -Message 37 in Test.tex line 143: You should avoid spaces after parenthesis. -This( an example( Nuff said )), illustrates( ``my'' )point. - ^ -Message 37 in Test.tex line 143: You should avoid spaces in front of parenthesis. -This( an example( Nuff said )), illustrates( ``my'' )point. - ^ -Message 36 in Test.tex line 143: You should put a space in front of parenthesis. -This( an example( Nuff said )), illustrates( ``my'' )point. - ^ -Message 37 in Test.tex line 143: You should avoid spaces after parenthesis. -This( an example( Nuff said )), illustrates( ``my'' )point. - ^ -Message 37 in Test.tex line 143: You should avoid spaces in front of parenthesis. -This( an example( Nuff said )), illustrates( ``my'' )point. - ^ -Message 36 in Test.tex line 143: You should put a space after parenthesis. -This( an example( Nuff said )), illustrates( ``my'' )point. - ^ -Message 22 in Test.tex line 146: Comment displayed. -% Warning 38 -^ -Message 38 in Test.tex line 147: You should not use punctuation in front of quotes. -``An example,'' he said, ``would be great.'' - ^ -Message 38 in Test.tex line 147: You should not use punctuation in front of quotes. -``An example,'' he said, ``would be great.'' - ^ -Message 22 in Test.tex line 150: Comment displayed. -% Warning 39 -^ -Message 39 in Test.tex line 152: Double space found. -For output codes, see table ~\ref{tab:fmtout}. - ^ -Message 22 in Test.tex line 155: Comment displayed. -% Warning 40 -^ -Message 40 in Test.tex line 156: You should put punctuation outside inner math mode. -$\this,$ and $$this$$. - ^ -Message 40 in Test.tex line 156: You should put punctuation inside display math mode. -$\this,$ and $$this$$. - ^ -Message 22 in Test.tex line 159: Comment displayed. -% Warning 41 -^ -Message 1 in Test.tex line 160: Command terminated with space. -foo \above qux - ^ -Message 41 in Test.tex line 160: You ought to not use primitive TeX in LaTeX code. -foo \above qux - ^^^^^^ -Message 22 in Test.tex line 163: Comment displayed. -% Warning 42 -^ -Message 42 in Test.tex line 164: You should remove spaces in front of `\footnote' -This is a footnote \footnote{foo}. - ^ -Message 22 in Test.tex line 168: Comment displayed. -% Verb check -^ -Message 14 in Test.tex line 171: Could not find argument for command. -\verb# -^^^^^ -Message 31 in Test.tex line 175: This text may be ignored. -\end{verbatim} FOO - ^^^ -Message 22 in Test.tex line 177: Comment displayed. -% Warning 16,15 -^ -Message 16 in Test.tex line 181: Mathmode still on at end of LaTeX file. - - -Message 17 in Test.tex line 181: Number of `(' doesn't match the number of `)'! - - -Message 17 in Test.tex line 181: Number of `[' doesn't match the number of `]'! - - -Message 17 in Test.tex line 181: Number of `{' doesn't match the number of `}'! - - diff --git a/Build/source/texk/chktex/Test.tex b/Build/source/texk/chktex/Test.tex deleted file mode 100644 index 65067b75f16..00000000000 --- a/Build/source/texk/chktex/Test.tex +++ /dev/null @@ -1,181 +0,0 @@ -Note: This file was written with only two purposes in mind: - o To test the program upon it - o To show off some of the features - -Most of the file does thus consist of lots of pseudo-commands, which -are nonsense in a TeXnical manner. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Warning 1 - -\foo This is an error. -\smallskip This is a not. $\foo Neither$ is this. - -% Warning 2 - -This is a faulty reference to \ref{foo} -This is not a faulty reference to~\ref{foo} - -% Warning 3 - -$[(ab)^{-1}]^{-2}$ is not beautiful -${{[{(ab)}^{-1}]}}^{-2}$ is beautiful - -% Warning 4-6, 28 - -Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. -Testing {\it italic\/} in this {\em sentence}, as {\em you see}. - -% LaTeX2e - -Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. -Testing \textem{italic\/} in this \textit{sentence}, as \textem{you see}. - -% Warning 7 - -This \'is a test of $\hat{j}$ accents. -This \'{\i}s a test of $\hat{\jmath}$ accents. - -% Warning 8 - -It wasn't anything - just a 2---3 star--shots. -It wasn't anything --- just a 2--3 star-shots. - -% Warning 9-10 - -% Brackets: - -)}{[])} }}}]]]))) -{[]} ((([[[{{{}}}]]]))) - -% Envs: - -\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} - -\begin{foo} \begin{bar} \end{bar}\end{foo} - -% Warning 11 - -Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. -Foo\dots bar. $1,\ldots,3$. $1+\cdots+3$. $1,\ldots,3$. $1\cdot\cdots\cdot3$. - -% Warning 12 - -1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar -1st.\ foo Inc.\ ab.cd.\ foo ab.cd.\ Foo.\ bar - -% Warning 13 - -Look at THIS! It's an error. -Look at THIS\@! It's an error. D. E. Knuth. - -% Warning 14 - -\hat -\hat{a} - -% Warning 18,19 - -Is this an "example", or is it an ´example´. -Is this an `example', or is it an `example'. - -% Warning 20 - -That bug is \unknown\ to me. - -% Warning 21 - -\LaTeX\ is an extension of \TeX\. Right? -\LaTeX\ is an extension of \TeX. Right? - -% Warning 23 - -```Hello', I heard him said'', she remembered. -``\,`Hello', I heard him said'', she remembered. - -% Warning 24 - -Indexing text \index{text} is fun! -Indexing text\index{text} is fun! - -% Warning 25 - -$5\cdot10^10$ -$5\cdot10^{10}$ - -% Warning 26 - -Do you understand ? -Do you understand? - -% Warning 27 - -\input input.tex -\input input - -% Warning 29 -The program opens a screen sized 640x200 pixels -The program opens a screen sized $640\times200$ pixels - -% Warning 30 - -White is a beautiful colour. -White is a beautiful colour. - -% Warning 31 -\begin{verbatim} -\this is -\end{verbatim} foo bar - -% Warning 32-34 - -This is either an 'example`, an ''example`` or an `"`example'`'. -This is either an `example', an ``example'' or an ``example''. - -% Warning 35 - -$sin^2 + cos^2 = 1$ -$\sin^2 + \cos^2 = 1$ - -% Warning 36-37 - -This( an example( Nuff said )), illustrates( ``my'' )point. -This (an example (Nuff said)), illustrates (``my'') point. - -% Warning 38 -``An example,'' he said, ``would be great.'' -``An example'', he said, ``would be great''. - -% Warning 39 - -For output codes, see table ~\ref{tab:fmtout}. -For output codes, see table~\ref{tab:fmtout}. - -% Warning 40 -$\this,$ and $$this$$. -$\this$, and $$this.$$ - -% Warning 41 -foo \above qux -\frac{foo}{qux} - -% Warning 42 -This is a footnote \footnote{foo}. -This is a footnote\footnote{foo}. - - -% Verb check - -\verb@\this is )() lots of errors, etc. Or what?@ -\verb# - -\begin{verbatim} -\this is -\end{verbatim} FOO - -% Warning 16,15 - -$$( - - diff --git a/Build/source/texk/chktex/Utility.c b/Build/source/texk/chktex/Utility.c deleted file mode 100644 index e5428593b5b..00000000000 --- a/Build/source/texk/chktex/Utility.c +++ /dev/null @@ -1,937 +0,0 @@ -/* - * ChkTeX v1.5, utility functions. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - -#include "ChkTeX.h" -#include "Utility.h" -#include "Resource.h" -#include "OpSys.h" - -#ifdef ASM_HASHWORD -extern UWORD HashWord(STRPTR a); -typedef UWORD HASH_TYPE; -#else -typedef ULONG HASH_TYPE; -#endif - -/***************************** SUPPORT FUNCTIONS ************************/ - - -/* - * Copies a string with a maximum length of `len' starting at `pos' in - * `source' into `dest'. - * Returns -1 if the pos value is beyond the length of the source value, - * else NULL. - */ - - -WORD substring(const STRPTR source, STRPTR dest, ULONG pos, LONG len) -{ - STRPTR Start; - WORD Retval = -1; - - if(len >= 0) - { - if(strlen(source) > pos) - { - Start = &source[pos]; - - while((len-- > 0) && (*dest++ = *Start++)) - ; - - if(len == -1) - Retval = 0; - } - } - else - Retval = 0L; - - *dest = 0; - - return(Retval); -} - - -/* - * Determine whether a file exists. - * - */ - - -BOOL fexists(const STRPTR Filename) -{ - BOOL Retval; - -#if defined(F_OK) && defined(R_OK) && defined(HAVE_ACCESS) - Retval = access(Filename, F_OK|R_OK) == 0; -#else - FILE *fh; - - if(fh = fopen(Filename, "r")) - { - Retval = TRUE; - fclose(fh); - } - else - Retval = FALSE; -#endif - return(Retval); -} - - - -/* - * 'Safe' memset() replacement. - * Just tries to check the parameters, so that the risk of killing - * innocent memory is lowered. - * Please note that the `n' parameter now is an signed longword, not - * an size_t. Won't permit that `n' exceeds BUFLEN, nor negative sizes. - * Returns `to' if some memset()'ing was done, NULL if not. - */ - -APTR sfmemset(APTR to, int c, LONG n) -{ - if(to && (n > 0)) - { - n = min(n, BUFSIZ); - - return(memset(to, c, (size_t) n)); - } - return(NULL); -} - - -/* - * Quick replace function - * Replaces every occurrence of a character in a string with another one. - */ - -void strrep(STRPTR String, /* String to replace within. */ - const TEXT From, /* Character to search for. */ - const TEXT To) /* Character to put instead. */ -{ - register int c; - while((c = *String++)) - { - if(c == From) - String[-1] = To; - } -} - -/* - * Replaces every char not in Prot with To in Buf - */ - -void strxrep(STRPTR Buf, - const STRPTR Prot, - const TEXT To) -{ - int c; - - while((c = *Buf)) - { - if(!strchr(Prot, c)) - *Buf = To; - Buf++; - } -} - -/* - * Strips tail and/or front of a string - * Kills trailing/leading spaces. The macro/function LATEX_SPACE(char c) - * is used to decide whether a space should be skipped. This function - * should return TRUE if the character should be skipped, FALSE if not. - * Returns the string which was passed onto it. - */ - - -STRPTR strip(STRPTR str, /* String to strip */ - const enum Strip flags) - /* One of the following: */ - /* STRP_LFT - Strips leading blanks */ - /* STRP_RGT - Strips trailing blanks */ - /* STRP_BTH - Strips on both sides */ -{ - STRPTR bufptr = str, nlptr; - TEXT c; - - if(bufptr && (c = *bufptr)) - { - if(flags & STRP_LFT) - { - if(LATEX_SPACE(c) && c) - { - do - { - c = *++bufptr; - } while(LATEX_SPACE(c) && c); - } - } - - if(flags & STRP_RGT) - { - if(c && *bufptr) - { - nlptr = bufptr; - - while(*++nlptr); - - do - { - *nlptr = 0; - c = *--nlptr; - } while(LATEX_SPACE(c) && c && (nlptr > bufptr)); - - } - else - *bufptr = 0; - } - } - return(bufptr); -} - - -/* - * Converts all the chars in the string passed into lowercase. - */ - -#ifndef HAVE_STRLWR -STRPTR strlwr(STRPTR String) -{ - STRPTR Bufptr; - TEXT TmpC; - - for(Bufptr = String; - (TmpC = *Bufptr); - Bufptr++) - *Bufptr = tolower(TmpC); - - return(String); -} -#endif - -/* - * Returns a duplicate of the string passed. - */ - -#ifndef HAVE_STRDUP -STRPTR strdup(const STRPTR String) -{ - STRPTR Retval = NULL; - size_t Len; - - if(String) - { - Len = strlen(String) + 1; - if((Retval = malloc(Len))) - memcpy(Retval, String, Len); - } - - return(Retval); -} -#endif - -/* - * Does the same as strdup, but adds a zero-filled padding, length extra bytes. - */ - -STRPTR strdupx(const STRPTR String, int Extra) -{ - STRPTR Retval = NULL; - size_t Len; - - if(String) - { - Len = strlen(String) + 1 + Extra; - if((Retval = malloc(Len))) - strncpy(Retval, String, Len); - } - - return(Retval); -} - -/* - * Case-insensitive comparison of two strings. - */ - -#ifndef HAVE_STRCASECMP -int strcasecmp(const char* a, const char *b) -{ - int aa, bb; - - do - { - aa = *a++; - bb = *b++; - } while(aa && (tolower(aa) == tolower(bb))); - /* bb != 0 is implicit */ - - return(tolower(aa) - tolower(bb)); -} -#endif - -/* - * Not all reallocs are intelligent enough to handle NULL's as - * parameters. This fixes this. - */ - -void *saferealloc(void *b, size_t n) -{ - APTR Retval = NULL; - - if(b) - { - if(n) - Retval = realloc(b, n); - else - free(b); - } - else - Retval = malloc(n); - - return(Retval); -} - -/* - * Repeatedly writes the From string over To so that we overwrite Len bytes. - * Does nothing if passed empty/NULL string. - */ - -void strwrite (STRPTR To, const STRPTR From, ULONG Len) -{ - ULONG i, j; - ULONG FromLen = strlen(From); - - Len = min(Len, BUFSIZ); - - if(To && From) - { - switch(FromLen) - { - case 0: - break; - case 1: - memset(To, *From, Len); - break; - default: - for(i = j = 0; - i < Len; - i++, j++) - { - if(j >= FromLen) - j = 0; - To[i] = From[j]; - } - } - } -} - -/* - * Checks whether Cmp comes after Str. - * - */ - -int strafter(const STRPTR Str, const STRPTR Cmp) -{ - return(strncmp(Str, Cmp, strlen(Cmp))); -} - -/* - * Checks whether Cmp comes before Str. Returns 0 if so, non-zero if not. - * - */ - -int strinfront(STRPTR Str, STRPTR Cmp) -{ - int CmpLen; - - if((CmpLen = strlen(Cmp))) - { - Cmp += CmpLen; - Str++; - - while((*--Cmp == *--Str) && (--CmpLen > 0)) - ; - - return(CmpLen); - } - else - return(1); -} - - -/*************************** HASH INDEX **************************/ - -/* - * Hashes a string. The string ought be rather short. We use an asm - * version the Amiga; note that this returns an UWORD instead. - * - * The algorithm was designed by Peter Weinberger. This version was - * adapted from Dr Dobb's Journal April 1996 page 26. - */ - -#ifndef ASM_HASHWORD -inline static ULONG HashWord(STRPTR str) -{ - register ULONG h = 0, hbit, c; - - while((c = *str++)) - { - h = (h<<4) ^ c; - if((hbit = h & 0xf0000000)) - h ^= hbit>>24; - h &= ~hbit; - } - - return(h); -} -#endif - -/* - * Inserts a string into a hash index. Note: You'll have to - * duplicate the string yourself. - */ - -inline void InsertHash(const STRPTR a, struct Hash *h) -{ - struct HashEntry **he, *newhe; - - if(!h->Index) - { - ifn((h->Index = calloc(HASH_SIZE, sizeof(struct HashEntry *)))) - PrintPrgErr(pmWordListErr); - } - - he = &h->Index[HashWord(a) % HASH_SIZE]; - - if((newhe = malloc(sizeof(struct HashEntry)))) - { - newhe->Next = *he; - newhe->Str = a; - *he = newhe; - } - else - PrintPrgErr(pmWordListErr); -} - -/* - * Checks whether a string previously has been registered in a - * hash index. - */ - -inline STRPTR HasHash(const STRPTR a, const struct Hash *h) -{ - struct HashEntry *he; - HASH_TYPE i; /* Special magic to optimize SAS/C */ - - i = HashWord(a); - i %= HASH_SIZE; - he = h->Index[i]; - - while(he) - { - if(!strcmp(he->Str, a)) - return(he->Str); - else - he = he->Next; - } - return(NULL); -} - -/* - * Clears a hash table. - */ - -void ClearHash(struct Hash *h) -{ - if(h && h->Index) - memset(h->Index, '\0', HASH_SIZE * sizeof(struct HashEntry *)); -} - -/* - * Rehashes a wordlist. If you change any of the elem's, you must - * call this. - * - */ - -static void ReHash(struct WordList *WL) -{ - ULONG i = 0; - - ClearHash(&WL->Hash); - FORWL(i, *WL) - InsertHash(WL->Stack.Data[i], &WL->Hash); -} - -/*************************** WORDLIST HANDLING **************************/ - -/* - * Inserts a duplicate of `Word' into the `Wordlist' structure. You do thus - * not need to make a duplicate of `Word' yourself. - */ - -BOOL InsertWord(const STRPTR Word, struct WordList *WL) -{ - STRPTR WrdCpy; - ULONG Len; - - if((WrdCpy = strdupx(Word, WALLBYTES))) - { - if(StkPush(WrdCpy, &WL->Stack)) - { - Len = strlen(Word); - if(WL->MaxLen < Len) - WL->MaxLen = Len; - - InsertHash(WrdCpy, &WL->Hash); - return(TRUE); - } - - free(WrdCpy); - } - - return(FALSE); -} - -/* - * Clears a WordList; removing all items. - */ - -void ClearWord(struct WordList *WL) -{ - if(WL) - { - WL->Stack.Used = 0; - WL->MaxLen = 0; - ClearHash(&WL->Hash); - if(WL->NonEmpty) - InsertWord("", WL); - } -} - -/* - * Query whether a `Word' is previously InsertWord()'ed into the WL - * structure. Does case-sensitive comparison. - * - * Returns the data in the list. - */ - - -STRPTR HasWord(const STRPTR Word, struct WordList *WL) -{ - return(HasHash(Word, &WL->Hash)); -} - -/* - * Make all the words in a list lower case for later case-insensitive - * comparison. - */ - -void MakeLower(struct WordList *wl) -{ - ULONG i; - FORWL(i, *wl) - strlwr(wl->Stack.Data[i]); - ReHash(wl); -} - -/* - * Calls strrep on each argument in a list. - */ - -void ListRep(struct WordList *wl, const TEXT From, const TEXT To) -{ - ULONG i; - FORWL(i, *wl) - strrep(wl->Stack.Data[i], From, To); - ReHash(wl); -} - - - -/************************** GENERIC STACK ******************************/ - -/* - * Push something onto a stack. Returns TRUE if successful, else FALSE. - * Note: You can not push a NULL Data element. - */ - -BOOL StkPush(const APTR Data, struct Stack *Stack) -{ - ULONG NewSize; - APTR *NewBuf; - - if(Data && Stack) - { - if(Stack->Used >= Stack->Size) - { - NewSize = Stack->Size + MINPUDDLE; - - if((NewBuf = saferealloc(Stack->Data, - (size_t) NewSize * sizeof(APTR)))) - { - Stack->Size = NewSize; - Stack->Data = NewBuf; - } - else - return(FALSE); - } - - Stack->Data[Stack->Used++] = Data; - return(TRUE); - } - - return(FALSE); -} - -/* - * Pops an element from the stack. - * - */ - -inline APTR StkPop(struct Stack *Stack) -{ - APTR Retval = NULL; - - if(Stack && (Stack->Used > 0)) - { - Retval = Stack->Data[--Stack->Used]; - -#ifdef NO_DIRTY_TRICKS - { - APTR *NewBuf; - - if(Stack->Used < (Stack->Size/2)) - { - ULONG NewSize; - NewSize = Stack->Size - MINPUDDLE; - NewSize = max(NewSize, MINPUDDLE); - - if(NewBuf = saferealloc(Stack->Data, - (size_t) NewSize * sizeof(APTR))) - { - Stack->Size = NewSize; - Stack->Data = NewBuf; - } - } - } -#endif - } - return(Retval); -} - -/* - * Returns the topmost element of the stack. - */ - -APTR StkTop(struct Stack *Stack) -{ - if(Stack && (Stack->Used > 0)) - return(Stack->Data[Stack->Used - 1]); - else - return(NULL); -} - -/****************************** INPUT STACK *****************************/ - -BOOL PushFileName(const STRPTR Name, struct Stack *stack) -{ - FILE *fh = NULL; - static - TEXT NameBuf [BUFSIZ]; - - if(Name && stack) - { - if(LocateFile(Name, NameBuf, ".tex", &TeXInputs)) - { - if((fh = fopen(NameBuf, "r"))) - { - return(PushFile(NameBuf, fh, stack)); - } - } - PrintPrgErr(pmNoTeXOpen, Name); - } - return(FALSE); -} - - -BOOL PushFile(STRPTR Name, FILE *fh, struct Stack *stack) -{ - struct FileNode *fn; - - if(Name && fh && stack) - { - if((fn = malloc(sizeof(struct FileNode)))) - { - if((fn->Name = strdup(Name))) - { - fn->fh = fh; - fn->Line = 0L; - if(StkPush(fn, stack)) - return(TRUE); - free(fn->Name); - } - free(fn); - } - PrintPrgErr(pmNoStackMem); - } - - return(FALSE); -} - -STRPTR FGetsStk(STRPTR Dest, ULONG len, struct Stack *stack) -{ - struct FileNode *fn; - STRPTR Retval = NULL; - - if((fn = StkTop(stack))) - { - do - { - if((Retval = fgets(Dest, (int) len, fn->fh))) - { - fn->Line++; - break; - } - - fn = StkPop(stack); - fclose(fn->fh); - free(fn); - - } while(!Retval && (fn = StkTop(stack))); - } - - return(Retval); -} - -STRPTR CurStkName(struct Stack *stack) -{ - struct FileNode *fn; - static - STRPTR LastName = ""; - - if(PseudoInName && (stack->Used <= 1)) - return(PseudoInName); - else - { - if((fn = StkTop(stack))) - return(LastName = fn->Name); - else - return(LastName); - } -} - - -FILE *CurStkFile(struct Stack *stack) -{ - struct FileNode *fn; - - if((fn = StkTop(stack))) - return(fn->fh); - else - return(NULL); -} - -ULONG CurStkLine(struct Stack *stack) -{ - struct FileNode *fn; - static - ULONG LastLine = 0L; - - if((fn = StkTop(stack))) - return(LastLine = fn->Line); - else - return(LastLine); -} - - - -/************************** CHARACTER STACK ******************************/ - -/* - * Pushes the character on the stack. - */ - -struct ErrInfo *PushChar(const TEXT c, const ULONG Line, - const ULONG Column, struct Stack *Stk, - const STRPTR LineCpy) -{ - TEXT Buf[2]; - - Buf[0] = c; Buf[1] = 0; - - return(PushErr( Buf, Line, Column, 1, LineCpy, Stk)); -} - -struct ErrInfo *PushErr(const STRPTR Data, const ULONG Line, - const ULONG Column, const ULONG ErrLen, - const STRPTR LineCpy, struct Stack *Stk) -{ - struct ErrInfo *ci; - - if((ci = malloc(sizeof(struct ErrInfo)))) - { - if((ci->Data = strdup(Data))) - { - ci->File = CurStkName(&InputStack); - ci->Line = Line; - ci->ErrLen = ErrLen; - ci->Column = Column; - ci->LineBuf = LineCpy; - ci->Flags = efNone; - - if(StkPush(ci, Stk)) - return(ci); - } - else - PrintPrgErr(pmStrDupErr); - free(ci); - } - - return(NULL); -} - -/* - * Finds the uppermost entry in the stack with a data matching - * String. - */ - -struct ErrInfo *TopMatch(struct Stack *Stack, STRPTR String) -{ - int i; - struct ErrInfo *retval = NULL; - - if(Stack && String) - { - for(i = Stack->Used - 1; - i >= 0; - i--) - { - if(!strcmp(String, ((struct ErrInfo *) Stack->Data[i])->Data)) - { - retval = (struct ErrInfo *) Stack->Data[i]; - break; - } - } - } - return(retval); -} - -/* - * Returns and removes a character from the stack, returns NULL if - * the stack is empty. - */ - - -struct ErrInfo *PopErr(struct Stack *Stack) -{ - return((struct ErrInfo *) StkPop(Stack)); -} - -/* - * Same as PopChar(), but lets the error alone on the stack. - */ - - -struct ErrInfo *TopErr(struct Stack *Stack) -{ - return((struct ErrInfo *) StkTop(Stack)); -} - -/* - * Free all resources associated with a struct FreeInfo. - */ - -void FreeErrInfo(struct ErrInfo* ei) -{ - if(ei) { - if(ei->Data) - free(ei->Data); - - free(ei); - } -} - - -/************************* OPEN/CLOSE COUNTING **************************/ - -/* - * Returns the index a given bracket (`()[]{}') character has in the - * BrOrder array. Returns ~0 if the character was not a bracket. - */ - -LONG BrackIndex(const TEXT c) -{ - switch(c) - { - case '(': - return(0); - case ')': - return(1); - case '[': - return(2); - case ']': - return(3); - case '{': - return(4); - case '}': - return(5); - default: - return(~0L); - } -} - -/* - * Counts brackets for you. Give it a bracket, and it will update the - * corresponding counter. - */ - -void AddBracket(const TEXT c) -{ - LONG Index; - - if((Index = BrackIndex(c)) != -1) - Brackets[Index]++; - -} - -/* - * Returns the character that matches the given bracket, NULL if `c' - * wasn't a bracket character. - */ - -TEXT MatchBracket(const TEXT c) -{ - ULONG Index; - TEXT Char = 0; - - - if((Index = BrackIndex(c)) != ~0UL) - Char = BrOrder[Index ^ 1]; - - return(Char); -} diff --git a/Build/source/texk/chktex/Utility.h b/Build/source/texk/chktex/Utility.h deleted file mode 100644 index 98acdd444f4..00000000000 --- a/Build/source/texk/chktex/Utility.h +++ /dev/null @@ -1,181 +0,0 @@ -/* - * ChkTeX v1.5, utility functions -- header file. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - -#ifndef UTILITY_H -#define UTILITY_H 1 - -#ifndef CHKTEX_H -# include "ChkTeX.h" -#endif /* CHKTEX_H */ -#ifndef OPSYS_H -# include "OpSys.h" -#endif /* OPSYS_H */ - - -/* - * How many indexes we'll allocate first time - */ -#define MINPUDDLE 256 - -/* - * How many bytes we want in front/end of each TEXT buffer. > 2 - */ -#define WALLBYTES 4 - -#ifndef HASH_SIZE -# define HASH_SIZE 1009 /* A reasonably large prime */ -#endif - -#define FORWL(ind, list) for(ind = 0; ind < (list).Stack.Used; ind++) - - -enum Strip { - STRP_LFT = 0x01, - STRP_RGT = 0x02, - STRP_BTH = 0x03 -}; - -struct HashEntry { - struct HashEntry *Next; - STRPTR Str; -}; - -struct Hash { - struct HashEntry **Index; -}; - -struct Stack { - APTR *Data; - ULONG Size, Used; -}; - -struct WordList { - ULONG MaxLen; - BOOL NonEmpty; - struct Stack Stack; - struct Hash Hash; -}; -#define WORDLIST_DEFINED - -struct FileNode { - STRPTR Name; - FILE *fh; - ULONG Line; -}; - -/* Rotates x n bits left (should be an int, long, etc.) */ -#define ROTATEL(x,n) ((x<<n) | (x>>((CHAR_BIT*sizeof(x)) - n))) - -/* Rotates x n bits right (should be an int, long, etc.) */ -#define ROTATER(x,n) ((x>>n) | (x<<((CHAR_BIT*sizeof(x)) - n))) - -BOOL fexists __PROTO((const STRPTR Filename)); - -APTR sfmemset __PROTO((APTR to, int c, LONG n)); -void * saferealloc __PROTO((void *old, size_t newsize)); - -int strafter __PROTO((const STRPTR Str, const STRPTR Cmp)); -void strrep __PROTO((STRPTR String, const TEXT From, - const TEXT To)); -void strxrep __PROTO((STRPTR Buf, const STRPTR Prot, - const TEXT To)); -STRPTR strip __PROTO((STRPTR String, const enum Strip What)); -void strwrite __PROTO((STRPTR To, const STRPTR From, ULONG Len)); -int strinfront __PROTO((STRPTR Str, STRPTR Cmp)); -STRPTR strdupx __PROTO((const STRPTR String, int Extra)); -void strmove __PROTO((char *a, const char *b)); - -inline void - ClearHash __PROTO((struct Hash *h)); -inline void - InsertHash __PROTO((const STRPTR a, struct Hash *h)); -inline STRPTR - HasHash __PROTO((const STRPTR a, const struct Hash *h)); - -BOOL InsertWord __PROTO((const STRPTR Word, struct WordList *WL)); -STRPTR HasWord __PROTO((const STRPTR Word, struct WordList *WL)); -void MakeLower __PROTO((struct WordList *wl)); -void ListRep __PROTO((struct WordList *wl, const TEXT From, - const TEXT To)); -void ClearWord __PROTO((struct WordList *WL)); - -BOOL StkPush __PROTO((const APTR Data, struct Stack *Stack)); -inline APTR - StkPop __PROTO((struct Stack *Stack)); -APTR - StkTop __PROTO((struct Stack *Stack)); - -FILE * CurStkFile __PROTO((struct Stack *stack)); -STRPTR CurStkName __PROTO((struct Stack *stack)); -ULONG CurStkLine __PROTO((struct Stack *stack)); -STRPTR FGetsStk __PROTO((STRPTR Dest, ULONG len, struct Stack *stack)); -BOOL PushFileName __PROTO((const STRPTR Name, struct Stack *stack)); -BOOL PushFile __PROTO((STRPTR, FILE *, struct Stack *)); - - -void FreeErrInfo __PROTO((struct ErrInfo* ei)); -struct ErrInfo * - PushChar __PROTO((const TEXT c, const ULONG Line, - const ULONG Column, struct Stack *Stk, - const STRPTR LineCpy)); -struct ErrInfo * - PushErr __PROTO((const STRPTR Data, const ULONG Line, - const ULONG Column, const ULONG ErrLen, - const STRPTR LineCpy, struct Stack *Stk)); -struct ErrInfo *TopChar __PROTO((struct Stack *Stack)); -struct ErrInfo *TopErr __PROTO((struct Stack *Stack)); -struct ErrInfo *PopErr __PROTO((struct Stack *Stack)); -struct ErrInfo *TopMatch __PROTO((struct Stack *Stack, STRPTR String)); - -LONG BrackIndex __PROTO((TEXT const c)); -void AddBracket __PROTO((TEXT const c)); -TEXT MatchBracket __PROTO((TEXT const)); - - - -WORD substring __PROTO((const STRPTR source, STRPTR dest, - ULONG pos, LONG len)); - -#ifndef HAVE_STRLWR -# define strlwr mystrlwr -STRPTR mystrlwr __PROTO((STRPTR String)); -#endif - -#ifndef HAVE_STRDUP -# define strdup mystrdup -STRPTR mystrdup __PROTO((const STRPTR String)); -#endif - - -#ifndef HAVE_STRCASECMP -int strcasecmp(char* a, char* b); -#endif - - - -#endif /* UTILITY_H */ diff --git a/Build/source/texk/chktex/chktex.c b/Build/source/texk/chktex/chktex.c deleted file mode 100644 index 62e2d40236c..00000000000 --- a/Build/source/texk/chktex/chktex.c +++ /dev/null @@ -1,1080 +0,0 @@ -/* - * ChkTeX v1.5, finds typographic errors in (La)TeX files. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - - -#ifdef AMIGA -# include <exec/execbase.h> -# include "WB2Argv.h" -#endif - -#ifdef WIN32 -#include <getopt.h> -#else -#include "getopt.h" -#endif -#include "ChkTeX.h" -#include "OpSys.h" -#include "Utility.h" -#include "FindErrs.h" -#include "Resource.h" -#include <string.h> - -#ifdef KPATHSEA -#include <kpathsea/config.h> -#include <kpathsea/progname.h> -#endif - -#undef MSG -#define MSG(num, type, inuse, ctxt, text) {num, type, inuse, ctxt, text}, - -struct ErrMsg PrgMsgs [pmMaxFault + 1] = -{ - PRGMSGS - {pmMaxFault, etErr, TRUE, 0, INTERNFAULT} -}; - -struct Stack - CharStack = {0L}, - InputStack = {0L}, - EnvStack = {0L}; - -/************************************************************************/ - -const TEXT BrOrder [NUMBRACKETS + 1] = "()[]{}"; - -ULONG Brackets [NUMBRACKETS]; - -/************************************************************************/ - - -/* - * Have to do things this way, to ease some checking throughout the - * program. - */ - - -NEWBUF(TmpBuffer, BUFSIZ); -NEWBUF(ReadBuffer, BUFSIZ); - -static const STRPTR - Banner = -"ChkTeX v1.5 - Copyright 1995-96 Jens T. Berger Thielemann.\n" -#ifdef __OS2__ -"OS/2 port generated with emx compiler, by Wolfgang Fritsch, <fritsch@hmi.de>" -#elif defined(__MSDOS__) -"MS-DOS port by Bj\\o rn Ove Thue, <bjort@ifi.uio.no>" -#elif defined(KPATHSEA) -"Kpathsea port by Fabrice Popineau, <Fabrice.Popineau@supelec.fr>" -#endif -"\n", - BigBanner = -"ChkTeX comes with ABSOLUTELY NO WARRANTY; details on this and\n" -"distribution conditions in the GNU General Public License file.\n" -"Type \"ChkTeX -h\" for help, \"ChkTeX -i\" for distribution info.\n" -"Author: Jens Berger, Spektrumvn. 4, N-0666 Oslo, Norway.\n" -"E-mail: <jensthi@ifi.uio.no>\n" -"Press " STDIN_BREAK " to abort stdin input.\n", - GiftBanner = -"\n" -" If you like this program and use it frequently the author\n" -" would like you to send him any gift that you feel would\n" -" be an appropriate `payment' for `ChkTeX' --- thank you!\n" -"\n", -Distrib = -"\n" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n" -, -OnText = -"On", -OffText = -"Off", -HowHelp = -"-h or --help gives usage information. See also ChkTeX.{ps,dvi}.\n", -HelpText = -"\n" -"\n" -" Usage of ChkTeX v1.5\n" -" ~~~~~~~~~~~~~~~~~~~~\n" -"\n" -" Template\n" -" ~~~~~~~~\n" -"chktex [-hiqrW] [-v[0-...]] [-l <rcfile>] [-[wemn] <[1-42]|all>]\n" -" [-d[0-...]] [-p <name>] [-o <outfile>] [-[btxgI][0|1]]\n" -" file1 file2 ...\n" -"\n" -"----------------------------------------------------------------------\n" -" Description of options:\n" -" ~~~~~~~~~~~~~~~~~~~~~~~\n" -"Misc. options\n" -"~~~~~~~~~~~~~\n" -" -h --help : This text.\n" -" -i --license : Show distribution information\n" -" -l --localrc : Read local .chktexrc formatted file.\n" -" -d --debug : Debug information. Give it a number.\n" -" -r --reset : Reset settings to default.\n" -"\n" -"Muting warning messages:\n" -"~~~~~~~~~~~~~~~~~~~~~~~~\n" -" -w --warnon : Makes msg # given a warning and turns it on.\n" -" -e --erroron : Makes msg # given an error and turns it on.\n" -" -m --msgon : Makes msg # given a message and turns it on.\n" -" -n --nowarn : Mutes msg # given.\n" -"\n" -"Output control flags:\n" -"~~~~~~~~~~~~~~~~~~~~~\n" -" -v --verbosity : How errors are displayed.\n" -" Default 1, 0=Less, 2=Fancy, 3=lacheck.\n" -" -V --pipeverb : How errors are displayed when stdout != tty.\n" -" Defaults to the same as -v.\n" -" -s --splitchar : String used to split fields when doing -v0\n" -" -o --output : Redirect error report to a file.\n" -" -q --quiet : Shuts up about version information.\n" -" -p --pseudoname: Input file-name when reporting.\n" -" -f --format : Format to use for output\n" -"\n" -"Boolean switches (1 -> enables / 0 -> disables):\n" -"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" -" -b --backup : Backup output file.\n" -" -x --wipeverb : Ignore contents of `\\verb' commands.\n" -" -g --globalrc : Read global .chktexrc file.\n" -" -I --inputfiles: Execute \\input statements.\n" -" -H --headererr : Show errors found in front of \\begin{document}\n" -"\n" -"Miscellaneous switches:\n" -"~~~~~~~~~~~~~~~~~~~~~~~\n" -" -W --version : Version information\n" -"\n" -"----------------------------------------------------------------------\n" -"If no LaTeX files are specified on the command line, we will read from\n" -"stdin. For explanation of warning/error messages, please consult the\n" -"main document ChkTeX.dvi or ChkTeX.ps.\n"; - - - - -#define CHAR(a) a, - -TEXT LTX_EosPunc[] = {LATEX_EOSPUNC 0}; -TEXT LTX_GenPunc[] = {LATEX_GENPUNC 0}; -TEXT LTX_SmallPunc[] = {LATEX_SMALLPUNC 0}; - -/* - * Options we will set. - * - */ - -enum Quote Quote; - -TEXT VerbNormal [] = - "%k %n in %f line %l: %m\n" - "%r%s%t\n" - "%u\n"; - -#define DEF(type, name, value) type name = value; -OPTION_DEFAULTS -STATE_VARS -#undef DEF - -FILE *OutputFile = NULL; - -STRPTR PrgName; - -BOOL StdInTTY, StdOutTTY; - -/* - * End of config params. - */ - -static int ParseArgs __PROTO((int argc, char **argv)); -static void ShowIntStatus __PROTO((void)); -static BOOL OpenOut __PROTO((void)); -static int ShiftArg __PROTO((STRPTR *Argument)); - - -/* - * Duplicates all arguments, and appends an asterix to each of them. - */ - -static void AddStars(struct WordList *wl) -{ - ULONG Count, CmdLen; - STRPTR Data; - - FORWL(Count, *wl) - { - Data = wl->Stack.Data[Count]; - CmdLen = strlen(Data); - if(Data[CmdLen - 1] != '*') - { - strcpy(TmpBuffer, Data); - strcat(TmpBuffer, "*"); - InsertWord(TmpBuffer, wl); - } - } -} - -/* - * Sets up all the lists. - * - */ - -static void SetupLists(void) -{ - ULONG i; - - AddStars(&VerbEnvir); - AddStars(&MathEnvir); - - MakeLower(&UserWarnCase); - - ListRep(&WipeArg, ':', 0); - ListRep(&NoCharNext, ':', 0); - -#define ThisItem ((STRPTR) AbbrevCase.Stack.Data[i]) - - FORWL(i, AbbrevCase) - { - if(isalpha(ThisItem[0])) - { - ThisItem[0] = toupper(ThisItem[0]); - InsertWord(ThisItem, &Abbrev); - ThisItem[0] = tolower(ThisItem[0]); - } - InsertWord(ThisItem, &Abbrev); - } -} - -#define NOCOMMON(a,b) NoCommon(&a,#a,&b,#b) - -/* - * Checks that two lists don't have any common element. - */ - -static void NoCommon(struct WordList *a, const STRPTR aName, - struct WordList *b, const STRPTR bName) -{ - ULONG i; - - FORWL(i, *a) - { - if(HasWord((STRPTR) a->Stack.Data[i], b)) - PrintPrgErr(pmNoCommon, a->Stack.Data[i], aName, bName); - } -} - -/* - * Expands the tabs in a string to regular intervals sized - * TSize. - */ - -static void ExpandTabs(STRPTR From, STRPTR To, LONG TSize) -{ - STRPTR Next, Orig; - ULONG Diff; - - Next = From; - Orig = To; - - while((Next = strchr(From, '\t'))) - { - if((Diff = Next - From)) - { - strncpy(To, From, Diff); - To += Diff; - Diff = TSize - ((To - Orig) % TSize); - } - else - Diff = TSize; - - memset(To, ' ', Diff); - To += Diff; - - From = ++Next; - } - strcpy(To, From); -} - - -int main(int argc, char **argv) -{ - int retval = EXIT_FAILURE, CurArg; - ULONG Count; - BOOL StdInUse = FALSE; - STRPTR NameMatch = ""; - LONG Tab = 8; - -#ifdef KPATHSEA - extern KPSEDLL char *kpse_bug_address; - - kpse_set_program_name (argv[0], "ChkTeX"); -#endif - -#ifdef __LOCALIZED - InitStrings(); -#endif - -#ifdef AMIGA - if(_WBenchMsg) - { - if(argv = WB2Argv(_WBenchMsg, W2A_LOWER)) - argc = CountArgv(argv); - else - exit(EXIT_FAILURE); - } -#endif - - OutputFile = stdout; - PrgName = argv[0]; - -#undef KEY -#undef LCASE -#undef LIST -#undef LNEMPTY -#define KEY(a, def) -#define LCASE(a) -#define LIST(a) -#define LNEMPTY(a) InsertWord("", &a); - - RESOURCE_INFO; - - while(SetupVars()) - ReadRC(ConfigFile); - - if(CmdLine.Stack.Used) - { - ParseArgs(CmdLine.Stack.Used, (STRPTR *) CmdLine.Stack.Data); - CmdLine.Stack.Used = 1L; - } - - if((CurArg = ParseArgs((ULONG) argc, argv))) - { - if(CmdLine.Stack.Used) - { - ParseArgs(CmdLine.Stack.Used, (STRPTR *) CmdLine.Stack.Data); - CmdLine.Stack.Used = 1L; - } - - if(!Quiet || LicenseOnly) - fprintf(stderr, Banner); - - if(CurArg == argc) - UsingStdIn = TRUE; - -#if defined(HAVE_FILENO) && defined(HAVE_ISATTY) - StdInTTY = isatty(fileno(stdin)); - StdOutTTY = isatty(fileno(stdout)); -#else - StdInTTY = StdOutTTY = TRUE; -#endif - SetupTerm(); - - if((UsingStdIn && StdInTTY && !Quiet) || LicenseOnly) - { - fprintf(stderr, BigBanner); - if(!LicenseOnly) - fprintf(stderr, GiftBanner); - } - - if(!StdOutTTY && PipeOutputFormat) - OutputFormat = PipeOutputFormat; - - if(LicenseOnly) - { - fprintf(stderr, Distrib); - fprintf(stderr, GiftBanner); - } - else - { - SetupLists(); - if(QuoteStyle) - { - if(!strcasecmp(QuoteStyle, "LOGICAL")) - Quote = quLogic; - elif(!strcasecmp(QuoteStyle, "TRADITIONAL")) - Quote = quTrad; - else - { - PrintPrgErr(pmQuoteStyle, QuoteStyle); - Quote = quTrad; - } - } - - if(DebugLevel) - ShowIntStatus(); - - NOCOMMON(Italic, NonItalic); - NOCOMMON(Italic, ItalCmd); - NOCOMMON(LowDots, CenterDots); - - if(TabSize && isdigit(*TabSize)) - Tab = strtol(TabSize, NULL, 10); - - if(OpenOut()) - { - for(;;) - { - for(Count = 0; Count < NUMBRACKETS; Count++) - Brackets[Count] = 0L; - -#define DEF(type, name, value) name = value; - STATE_VARS -#undef DEF - - if(UsingStdIn) { - if(StdInUse) - break; - else { - StdInUse = TRUE; - PushFile("stdin", stdin, &InputStack); - } - } else { - if((CurArg <= argc) || NameMatch) { - ifn(NameMatch = MatchFileName(NULL)) { - if(CurArg < argc) - NameMatch = MatchFileName(argv[CurArg++]); - } - - if(!PushFileName(NameMatch, &InputStack)) - break; - } - } - - if(StkTop(&InputStack) && OutputFile) - { - while(!ferror(OutputFile) && StkTop(&InputStack) && - !ferror(CurStkFile(&InputStack)) && - FGetsStk(ReadBuffer, BUFSIZ-1, &InputStack)) - { - - /* Make all spaces ordinary spaces */ - - strrep(ReadBuffer, '\n', ' '); - strrep(ReadBuffer, '\r', ' '); - ExpandTabs(ReadBuffer, TmpBuffer, Tab); - strcpy(ReadBuffer, TmpBuffer); - - strcat(ReadBuffer, " "); - FindErr(ReadBuffer, CurStkLine(&InputStack)); - } - - PrintStatus(CurStkLine(&InputStack)); - retval = EXIT_SUCCESS; - } - } - } - } - } - exit(retval); - return retval; -} - -/* - * Opens the output file handle & possibly renames - */ - -static BOOL OpenOut(void) -{ -#ifdef __MSDOS__ - char *p; -#endif - BOOL Success = TRUE; - - if(*OutputName) - { - if(BackupOut && fexists(OutputName)) - { - strcpy(TmpBuffer, OutputName); - AddAppendix(TmpBuffer, BAKAPPENDIX); - - if(fexists(TmpBuffer)) - remove(TmpBuffer); - - if(!rename(OutputName, TmpBuffer)) - PrintPrgErr(pmRename, - OutputName, TmpBuffer); - else - { - PrintPrgErr(pmRenameErr, - OutputName, TmpBuffer); - Success = FALSE; - } - - } - - if(Success) - { - ifn(OutputFile = fopen(OutputName, "w")) - { - PrintPrgErr(pmOutOpen); - Success = FALSE; - } - } - } - else - OutputFile = stdout; - - return(Success); -} - -#ifndef STRIP_DEBUG -static void ShowWL(const STRPTR Name, const struct WordList *wl) -{ - ULONG i, j, percent; - - fprintf(stderr, - "Name: %12s", Name); - - if(DebugLevel & FLG_DbgListInfo) - { - fprintf(stderr, ", MaxLen: %3ld, Entries: %3ld, ", - wl->MaxLen, wl->Stack.Used); - - if(wl->Hash.Index && wl->Stack.Used) - { - for(i = j = 0; - i < HASH_SIZE; - i++) - { - if(wl->Hash.Index[i]) - j++; - } - percent = (j * 10000)/wl->Stack.Used; - - - fprintf(stderr, "Hash usage: %3ld.%02ld%%", - percent/100, percent%100); - } - else - fprintf(stderr, "No hash table."); - } - - fputc('\n', stderr); - - if(DebugLevel & FLG_DbgListCont) - { - FORWL(i, *wl) - fprintf(stderr, "\t%s\n", (STRPTR) wl->Stack.Data[i]); - } -} -#endif - -#define BOOLDISP(var) ((var)? OnText : OffText) -#define SHOWSTAT(text, arg) fprintf(stderr, "\t" text ": %s\n", arg) -#define BOOLSTAT(name, var) SHOWSTAT(name, BOOLDISP(var)) -#define SHOWSTR(text, arg) fprintf(stderr, "%s:\n\t%s\n", text, arg); - - -/* - * Prints some of the internal flags; mainly for debugging purposes - */ - -static void ShowIntStatus(void) -{ -#ifndef STRIP_DEBUG - ULONG Cnt; - STRPTR String, iuStr; - - if(DebugLevel & FLG_DbgMsgs) - { - fprintf(stderr, "There are %d warnings/error messages available:\n", - emMaxFault - emMinFault - 1); - - for(Cnt = emMinFault + 1; Cnt < emMaxFault; Cnt++) - { - switch(LaTeXMsgs[Cnt].Type) - { - case etWarn: String = "Warning"; break; - case etErr: String = "Error"; break; - case etMsg: String = "Message"; break; - default: String = ""; break; - } - - switch(LaTeXMsgs[Cnt].InUse) - { - case iuOK: iuStr = "In use"; break; - case iuNotUser: iuStr = "User muted"; break; - case iuNotSys: iuStr = "System muted"; break; - } - - fprintf(stderr, "Number: %2ld, Type: %s, Status: %s\n" - "\tText: %s\n\n", - Cnt, String, - iuStr, LaTeXMsgs[Cnt].Message); - } - } - -#undef KEY -#undef LCASE -#undef LNEMPTY -#undef LIST - -#define LNEMPTY LIST -#define LIST(a) ShowWL(#a, &a); -#define LCASE(a) LIST(a); LIST(a ## Case); -#define KEY(a,def) SHOWSTR(#a, a); - - - if(DebugLevel & (FLG_DbgListInfo | FLG_DbgListCont)) - { - RESOURCE_INFO; - } - - if(DebugLevel & FLG_DbgOtherInfo) - { - SHOWSTR("Outputformat", OutputFormat); - - fprintf(stderr, "Current flags include:\n"); - - BOOLSTAT("Read global resource", GlobalRC); - BOOLSTAT("Wipe verbose commands", WipeVerb); - BOOLSTAT("Backup outfile", BackupOut); - BOOLSTAT("Quiet mode", Quiet); - BOOLSTAT("Show license", LicenseOnly); - BOOLSTAT("Use stdin", UsingStdIn); - BOOLSTAT("\\input files", InputFiles); - BOOLSTAT("Output header errors", HeadErrOut); - } -#endif -} - -/* - * Resets all stacks. - * - */ - -#undef KEY -#undef LCASE -#undef LNEMPTY -#undef LIST - -#define LNEMPTY LIST -#define LIST(a) ClearWord(&a); -#define LCASE(a) LIST(a); LIST(a ## Case); -#define KEY(a,def) a = def; - -static void ResetStacks(void) -{ - RESOURCE_INFO; - -} - -/* - * Resets all flags (not wordlists) to their default values. Sets - * Outputfile to stdout. - * - */ - -static void ResetSettings(void) -{ - -#define DEF(type, name, value) name = value; -OPTION_DEFAULTS -#undef DEF - - if(OutputFile != stdout) - { - fclose(OutputFile); - OutputFile = stdout; - } -} - -/* - * Reads a numerical argument from the argument. Supports concatenation - * of arguments (main purpose) - */ - -static int ParseNumArg(LONG *Dest, /* Where to put the value */ - LONG Default, /* Value to put in if no in argue */ - STRPTR *Argument) /* optarg or similar */ -{ - if(Argument && *Argument && isdigit(**Argument)) - *Dest = strtol(*Argument, Argument, 10); - else - *Dest = Default; - - return(ShiftArg(Argument)); -} - -/* - * Same as above; however, will toggle the boolean if user doesn't - * supply value - */ - -static int ParseBoolArg(BOOL *Dest, /* Boolean value */ - STRPTR *Argument) /* optarg or similar */ -{ - LONG D = *Dest? 1L : 0L; - int Retval; - - Retval = ParseNumArg(&D, *Dest? 0L : 1L, Argument); - - *Dest = D ? TRUE : FALSE; - - return(Retval); -} - -/* - * Returns the first character in the string passed, updates the - * string pointer, if the string is non-empty. - * - * 0 if the string is empty. - */ - -static int ShiftArg(STRPTR *Argument) /* optarg or similar */ -{ - if(Argument && *Argument && **Argument) - return(*((STRPTR) (*Argument)++)); - else - return 0; -} - -/* - * Parses an argv similar array. - */ - -static int ParseArgs(int argc, char **argv) -{ - /* Needed for option parsing. */ - -static const - struct option long_options[] = - { - {"help", no_argument, 0L, 'h'}, - {"localrc", required_argument, 0L, 'l'}, - {"output", required_argument, 0L, 'o'}, - {"warnon", required_argument, 0L, 'w'}, - {"erroron", required_argument, 0L, 'e'}, - {"msgon", required_argument, 0L, 'm'}, - {"nowarn", required_argument, 0L, 'n'}, - {"verbosity", optional_argument, 0L, 'v'}, - {"pipeverb", optional_argument, 0L, 'V'}, - {"debug", required_argument, 0L, 'd'}, - {"reset", no_argument, 0L, 'r'}, - {"quiet", no_argument, 0L, 'q'}, - {"license", no_argument, 0L, 'i'}, - {"splitchar", required_argument, 0L, 's'}, - {"format", required_argument, 0L, 'f'}, - {"pseudoname", required_argument, 0L, 'p'}, - - {"inputfiles", optional_argument, 0L, 'I'}, - {"backup", optional_argument, 0L, 'b'}, - {"globalrc", optional_argument, 0L, 'g'}, - {"wipeverb", optional_argument, 0L, 'x'}, - {"tictoc", optional_argument, 0L, 't'}, - {"headererr", optional_argument, 0L, 'H'}, - {"version", no_argument, 0L, 'W'}, - - {0L, 0L, 0L, 0L} - }; - - int option_index = 0L, c, i, nextc, ErrType; - - int Retval = FALSE, InUse; - BOOL Success, Foo; - LONG Err, Verb = 1, PipeVerb = 1; - - enum - { - aeNoErr = 0, - aeArg, /* missing/bad required argument */ - aeOpt, /* unknown option returned */ - aeHelp, /* just a call for help */ - aeMem /* no memory */ - } ArgErr = aeNoErr; - - optind = 0; - - while(!ArgErr && - ((c = getopt_long((int) argc, argv, - "b::d:e:f:g::hH::I::il:m:n:o:p:qrs:t::v::V::w:Wx::", - long_options, - &option_index)) != EOF)) - { - while(c) { - nextc = 0; - switch(c) - { - case 's': - ifn(Delimit = strdup(optarg)) { - PrintPrgErr(pmStrDupErr); - ArgErr = aeMem; - } - - break; - case 'p': - ifn(PseudoInName = strdup(optarg)) { - PrintPrgErr(pmStrDupErr); - ArgErr = aeMem; - } - - break; - - case 'd': -#ifdef STRIP_DEBUG - PrintPrgErr(pmNoDebugFlag); -#else - nextc = ParseNumArg(&DebugLevel, 0xffff, &optarg); -#endif - break; - case 'i': - LicenseOnly = TRUE; - - nextc = ShiftArg(&optarg); - break; - case 'q': - Quiet = TRUE; - - nextc = ShiftArg(&optarg); - break; - - LOOP(warntype, - case 'w': - ErrType = etWarn; - InUse = iuOK; - LAST(warntype); - case 'e': - ErrType = etErr; - InUse = iuOK; - LAST(warntype); - case 'm': - ErrType = etMsg; - InUse = iuOK; - LAST(warntype); - case 'n': - ErrType = etMsg; - InUse = iuNotUser; - LAST(warntype); - ) - - if(isdigit(*optarg)) - { - nextc = ParseNumArg(&Err, -1, &optarg); - if(betw(emMinFault, Err, emMaxFault)) - { - LaTeXMsgs[Err].Type = ErrType; - LaTeXMsgs[Err].InUse = InUse; - } - else - { - ArgErr = aeOpt; - PrintPrgErr(pmWarnNumErr); - } - } - else if(!strcasecmp(optarg, "all")) - { - for(i = emMinFault + 1; i < emMaxFault; i++) - { - LaTeXMsgs[i].Type = ErrType; - LaTeXMsgs[i].InUse = InUse; - } - } - else - { - ArgErr = aeOpt; - PrintPrgErr(pmWarnNumErr); - } - - break; - - case 'g': - nextc = ParseBoolArg(&GlobalRC, &optarg); - if(!GlobalRC) { - ResetStacks(); - } - break; - - case 'r': - ResetSettings(); - nextc = ShiftArg(&optarg); - break; - - case 'l': - if(optarg) - ReadRC(optarg); - break; - - case 'f': - ifn(OutputFormat = strdup(optarg)) - { - PrintPrgErr(pmStrDupErr); - ArgErr = aeMem; - } - break; - - case 'v': - nextc = ParseNumArg(&Verb, 2, &optarg); - - if(Verb < (LONG) OutFormat.Stack.Used) - OutputFormat = strdup(OutFormat.Stack.Data[Verb]); - else - { - PrintPrgErr(pmVerbLevErr); - ArgErr = aeArg; - } - break; - case 'V': - nextc = ParseNumArg(&PipeVerb, 1, &optarg); - - if(PipeVerb < (LONG) OutFormat.Stack.Used) - PipeOutputFormat = strdup(OutFormat.Stack.Data[PipeVerb]); - else - { - PrintPrgErr(pmVerbLevErr); - ArgErr = aeArg; - } - break; - - case 'o': - if(optarg) - { - if(*OutputName) - { - PrintPrgErr(pmOutTwice); - ArgErr = aeOpt; - } - else - { - ifn(OutputName = strdup(optarg)) - { - PrintPrgErr(pmStrDupErr); - ArgErr = aeMem; - } - } - } - - break; - - case 't': - nextc = ParseBoolArg(&Foo, &optarg); - break; - case 'x': - nextc = ParseBoolArg(&WipeVerb, &optarg); - break; - case 'b': - nextc = ParseBoolArg(&BackupOut, &optarg); - break; - case 'I': - nextc = ParseBoolArg(&InputFiles, &optarg); - break; - case 'H': - nextc = ParseBoolArg(&HeadErrOut, &optarg); - break; - case 'W': - printf(Banner); - exit(EXIT_SUCCESS); - case '?': - default: - fputs(Banner, stderr); - fputs(HowHelp, stderr); - exit(EXIT_FAILURE); - break; - case 'h': - ArgErr = aeHelp; - break; - } - c = nextc; - } - } - - if((argc > optind) && !strcmp(argv[optind], "?")) - ArgErr = aeHelp; - - if(ArgErr) - { - fputs(Banner, stderr); - fputs(BigBanner, stderr); - fputs(HelpText, stderr); - Success = FALSE; - } - else - Success = TRUE; - - if(Success) - Retval = optind; - - return(Retval); -} - -/* - * Outputs a program error. - */ - - -void PrintPrgErr(enum PrgErrNum Error, ...) -{ - STRPTR Type; - va_list MsgArgs; - - if(betw(pmMinFault, Error, pmMaxFault)) { - switch(PrgMsgs[Error].Type) { - case etWarn: - Type = "WARNING"; - break; - case etMsg: - Type = "NOTE"; - break; - default: - case etErr: - Type = "ERROR"; - break; - } - fprintf(stderr, "%s: %s -- ", PrgName, Type); - - va_start(MsgArgs, Error); - vfprintf(stderr, PrgMsgs[Error].Message, MsgArgs); - va_end(MsgArgs); - fputc('\n', stderr); - - if(PrgMsgs[Error].Type == etErr) - exit(EXIT_FAILURE); - } -} - -void ErrPrintf(const char *fmt, ...) -{ - va_list MsgArgs; - - va_start(MsgArgs, fmt); - vfprintf(stderr, fmt, MsgArgs); - va_end(MsgArgs); -} - - - diff --git a/Build/source/texk/chktex/chktex.el b/Build/source/texk/chktex/chktex.el deleted file mode 100644 index 2e50877d8e4..00000000000 --- a/Build/source/texk/chktex/chktex.el +++ /dev/null @@ -1,77 +0,0 @@ -;;; chktex.el --- quick hack to add ChkTeX capability to AUC-TeX mode -;; -;; -;; Keywords: LaTeX, AUC-TeX, ChkTeX -;; -;; ChkTeX v1.5, quick hack to add ChkTeX in LaTeX menu. -;; Copyright (C) 1995-96 Jens T. Berger Thielemann -;; -;; 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. -;; -;; Contact the author at: -;; Jens Berger -;; Spektrumvn. 4 -;; N-0666 Oslo -;; Norway -;; E-mail: <jensthi@ifi.uio.no> -;; -;; -;;; Commentary: -;; -;; This tiny hack will add a "ChkTeX" item to the command menu of -;; AUC-TeX, thus making the use of ChkTeX much more comfortable from -;; within AUC-TeX (`LaTeX-mode'). -;; -;; INSTALLATION -;; -;; 1. Put this file somewhere in your loading path. -;; 2. Add the line -;; (require 'chktex) -;; to your .emacs file -;; -;; It is doubtful whether byte-compiling this file gains anything. -;; -;;; Code: -;; - - - -(require 'tex-site) -(require 'easymenu) - -(setq TeX-command-list - (nconc TeX-command-list - (list (list "ChkTeX" "chktex -v3 %s" 'TeX-run-compile nil t)))) - -(add-hook 'LaTeX-mode-hook - (function (lambda () -(easy-menu-define LaTeX-mode-menu - LaTeX-mode-map - "Menu used in LaTeX mode." - (append '("Command") - '(("Command on" - [ "Master File" TeX-command-select-master - :keys "C-c C-c" :style radio - :selected (eq TeX-command-current 'TeX-command-master) ] - [ "Buffer" TeX-command-select-buffer - :keys "C-c C-b" :style radio - :selected (eq TeX-command-current 'TeX-command-buffer) ] - [ "Region" TeX-command-select-region - :keys "C-c C-r" :style radio - :selected (eq TeX-command-current 'TeX-command-region) ])) - (let ((file 'TeX-command-on-current)) - (mapcar 'TeX-command-menu-entry TeX-command-list))))))) - -(provide 'chktex)
\ No newline at end of file diff --git a/Build/source/texk/chktex/chktex.h b/Build/source/texk/chktex/chktex.h deleted file mode 100644 index 7429b0b2c46..00000000000 --- a/Build/source/texk/chktex/chktex.h +++ /dev/null @@ -1,375 +0,0 @@ -/* - * ChkTeX v1.5, header file for main program. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - -#ifndef CHKTEX_H -#define CHKTEX_H 1 - -#ifdef WIN32 -# include <win32lib.h> -# include "config.h" -#else - -#if defined(HAVE_CONFIG_H) || defined(CONFIG_H_NAME) -# ifndef CONFIG_H_NAME -# define CONFIG_H_NAME "config.h" -# endif -# ifndef HAVE_CONFIG_H -# define HAVE_CONFIG_H 1 -# endif -# include CONFIG_H_NAME -#endif - -#endif - -#include <ctype.h> -#include <math.h> -#include <stdio.h> -#ifdef HAVE_STDARG_H -# include <stdarg.h> -#else -#error Sorry, ChkTeX needs an _ANSI_ compiler w/stdarg.h installed to compile. -#endif -#ifndef HAVE_VPRINTF -#error Sorry, ChkTeX needs an _ANSI_ compiler w/vprintf() to compile. -#endif -#include <stddef.h> -#include <stdlib.h> -#include <string.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif -#ifdef HAVE_LIMITS_H -# include <limits.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#include "chktypes.h" -#ifndef __NOPROTO -# ifndef __PROTO -# define __PROTO(a) a -# endif -#else -# ifndef __PROTO -# define __PROTO(a) () -# endif -#endif -#ifndef LONG_MAX -# define LONG_MAX (0x7fffffff) -#endif -#ifndef CHAR_BIT -# define CHAR_BIT (8) -#endif -#ifndef FINDERRS_H -# include "FindErrs.h" -#endif /* FINDERRS_H */ - -#ifndef CDECL -#define CDECL -#endif - -/* - * Define aliases for preprocessor statements - */ - -#if defined(__unix__) || defined(__unix) || defined(unix) -#undef __unix__ -#define __unix__ 1 -#elif defined(AMIGA) || defined(__AMIGA) || defined(__amigados__) -#undef AMIGA -#define AMIGA 1 -#elif defined(MSDOS) || defined(__MSDOS__) || defined(__msdos__) -#undef __MSDOS__ -#define __MSDOS__ 1 -#endif - -/* - * The next macro should contain a list of characters LaTeX (and you?) - * considers as an end-of-sentence characters, which should be - * detected when whether sentence spacing is correct. - * - */ - -#define LATEX_EOSPUNC CHAR('.') CHAR(':') CHAR('?') CHAR('!') - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * The next macro should contain general punctuation characters - * used on your system. - */ - -#define LATEX_GENPUNC LATEX_EOSPUNC CHAR(',') CHAR(';') - - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * The next macro should contain a list of characters LaTeX (and you?) - * considers as an small punctuation characters, which should not be - * preceded by a \/. - */ - -#define LATEX_SMALLPUNC CHAR('.') CHAR(',') - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - -/* - * NOTE: All macros below should return FALSE (0) if the input - * character is 0. - * - * The next macro should return TRUE if LaTeX (and you?) considers - * the character `c' as a space, which should be detected when - * we're checking whether commands are terminated by spaces. - * - * Note: If you wish to change this macro, you'll have to update - * the main loop in FindErrs.c as well. - */ - -#define LATEX_SPACE(c) (c > 0 && c <= ' ') - -/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ - - - - - - -#define betw(a,b,c) ((a < b) && (b < c)) -#define within(a,b,c) ((a <= b) && (b <= c)) -#define elif else if - -#ifndef NOT -# define NOT(a) (!(a)) -#endif -#define ifn(a) if(NOT(a)) - -#ifndef min -# define min(a,b) ((a)<=(b)?(a):(b)) -#endif - -#ifndef max -# define max(a,b) ((a)>(b)?(a):(b)) -#endif - -#ifndef abs -# define abs(a) (a>=0?a:(-a)) -#endif - -#define LOOP(name, body) {{body} _end__##name:;} -#define LAST(name) goto _end__##name - -#define NUMBRACKETS 6 - -#define NEWBUF(name,len) \ -static TEXT _ ## name [len + (WALLBYTES<<1)] = {0}; \ -const STRPTR name = &_ ## name[WALLBYTES] - -#define INTFAULTMSG "INTERNAL FAULT OCCURED! PLEASE SUBMIT A BUG REPORT!\n" - -#define INTERNFAULT INTFAULTMSG - -#define BITDEF1(a) BIT_ ## a -#define BITDEF2(a) FLG_ ## a = (1<<BIT_ ## a) - -/* - * Debugging info - */ - -#define DEBUGBITS(a) enum a { \ - BIT(DbgMsgs), /* Dump messages */ \ - BIT(DbgListInfo), /* Dump list info */ \ - BIT(DbgListCont), /* Dump list contents */ \ - BIT(DbgOtherInfo), /* Dump misc. other info */ \ - BIT(DbgRunTime) /* Dump runtime info */ \ -}; - -#undef BIT -#define BIT BITDEF1 -DEBUGBITS(Debug_BIT) -#undef BIT -#define BIT BITDEF2 -DEBUGBITS(Debug_FLG) - -#ifdef STRIP_DEBUG -# define DEBUG(a) -#else -# define DEBUG(a) if(DebugLevel & FLG_DbgRunTime) ErrPrintf a -#endif - -#define PRGMSGS \ - MSG(pmMinFault, etWarn, TRUE, 0, INTERNFAULT)\ - MSG(pmNoFileMatch, etWarn, TRUE, 0,\ - "No files matched the pattern `%s'.")\ - MSG(pmNoTeXOpen, etWarn, TRUE, 0,\ - "Unable to open the TeX file `%s'.")\ - MSG(pmRename, etMsg, TRUE, 0,\ - "Renaming `%s' as `%s'.")\ - MSG(pmRenameErr, etErr, TRUE, 0,\ - "Could not rename `%s' to `%s'.")\ - MSG(pmOutOpen, etErr, TRUE, 0,\ - "Unable to open output file.")\ - MSG(pmOutTwice, etErr, TRUE, 0,\ - "You can specify output file only once.")\ - MSG(pmStrDupErr, etErr, TRUE, 0,\ - "Unable to duplicate strings - no memory?")\ - MSG(pmWordListErr, etErr, TRUE, 0,\ - "Unable to create wordlist - no memory?")\ - MSG(pmNoStackMem, etErr, TRUE, 0,\ - "Unable to create stack - no memory?\n")\ - MSG(pmWarnNumErr, etErr, TRUE, 0,\ - "Illegal warning number used.")\ - MSG(pmVerbLevErr, etErr, TRUE, 0,\ - "Illegal verbosity level.")\ - MSG(pmNotPSDigit, etWarn, TRUE, 0,\ - "`%c' is not a %s digit - ignored!")\ - MSG(pmEscCode, etWarn, TRUE, 0,\ - "Unknown escape code `%c%c' - ignored!")\ - MSG(pmKeyWord, etErr, TRUE, 0,\ - "Unsupported control word (`%s') encountered in file `%s'.")\ - MSG(pmFaultFmt, etErr, TRUE, 0,\ - "\"%s\", line %d: Faulty format - unexpected %s found.")\ - MSG(pmRsrcOpen, etWarn, TRUE, 0,\ - "Could not open `%s', may cause unwanted behaviour.")\ - MSG(pmSlowAbbr, etMsg, FALSE, 0,\ - "The abbreviation `%s' requires slow abbreviation searching.")\ - MSG(pmEmptyToken, etWarn, TRUE, 0,\ - "Empty token isolated in `%s' - probably faulty format")\ - MSG(pmAssert, etErr, TRUE, 0,\ - "Assertion failed. Please report bug.")\ - MSG(pmNoRsrc, etWarn, TRUE, 0,\ - "Could not find global resource file.")\ - MSG(pmQuoteStyle, etWarn, TRUE, 0,\ - "Illegal quotestyle `%s'.")\ - MSG(pmWrongWipeTemp, etWarn, TRUE, 0,\ - "Wrong template for wiping arguments, \"%s\"")\ - MSG(pmSpecifyTerm, etErr, TRUE, 0,\ - "Specify a terminal type with `setenv TERM <yourtype>'.")\ - MSG(pmNoTermData, etErr, TRUE, 0,\ - "Could not access the termcap data base.")\ - MSG(pmNoTermDefd, etErr, TRUE, 0,\ - "Terminal type `%s' is not defined.")\ - MSG(pmNoRegExp, etWarn, TRUE, 0,\ - "Regular expressions not compiled in. Please recompile.")\ - MSG(pmNoCommon, etErr, TRUE, 0,\ - "`%s' can't be a member of both `%s' and `%s'.") \ - MSG(pmNoOpenDir, etWarn, TRUE, 0, \ - "Could not open the directory `%s'.") \ - MSG(pmNoDebugFlag, etWarn, TRUE, 0, \ - "This version of doesn't support the -d flag. Please recompile.") - - -#undef MSG -#define MSG(num, type, inuse, ctxt, text) num, - -enum PrgErrNum { - PRGMSGS - pmMaxFault -}; -#undef MSG - -extern struct ErrMsg PrgMsgs [pmMaxFault + 1]; - -struct ErrInfo { - STRPTR Data, LineBuf, File; - ULONG Line, Column, ErrLen; - enum - { - efNone = 0x00, - efNoItal = 0x01, - efItal = 0x02 - } Flags; -}; - -extern const STRPTR - ReadBuffer, - CmdBuffer, - TmpBuffer; - -extern const - TEXT BrOrder[NUMBRACKETS + 1]; - -extern - ULONG Brackets [NUMBRACKETS]; - - -extern FILE *OutputFile, *InputFile; - -#define OPTION_DEFAULTS \ - DEF(BOOL, GlobalRC, TRUE) \ - DEF(BOOL, WipeVerb, TRUE) \ - DEF(BOOL, BackupOut, TRUE) \ - DEF(BOOL, Quiet, FALSE) \ - DEF(BOOL, LicenseOnly, FALSE) \ - DEF(BOOL, UsingStdIn, FALSE) \ - DEF(BOOL, InputFiles, TRUE) \ - DEF(BOOL, HeadErrOut, TRUE) \ - DEF(STRPTR, OutputName, "") \ - DEF(STRPTR, PseudoInName, NULL) \ - DEF(STRPTR, OutputFormat, VerbNormal) \ - DEF(STRPTR, PipeOutputFormat, NULL) \ - DEF(STRPTR, Delimit, ":") \ - DEF(LONG, DebugLevel, 0) - -#define STATE_VARS \ - DEF(enum ItState, ItState, itOff) /* Are we doing italics? */ \ - DEF(BOOL, AtLetter, FALSE) /* Whether `@' is a letter or not. */ \ - DEF(BOOL, InHeader, TRUE) /* Whether we're in the header */ \ - DEF(BOOL, VerbMode, FALSE) /* Whether we're in complete ignore-mode */ \ - DEF(LONG, MathMode, 0) /* Whether we're in math mode or not */ \ - DEF(STRPTR, VerbStr, "") /* String we'll terminate verbmode upon */ \ - DEF(ULONG, ErrPrint, 0) /* # errors printed */ \ - DEF(ULONG, WarnPrint, 0) /* # warnings printed */ \ - DEF(ULONG, UserSupp, 0) /* # user suppressed warnings */ - -#define DEF(type, name, value) extern type name; -OPTION_DEFAULTS -STATE_VARS -#undef DEF - -extern struct Stack - CharStack, - InputStack, - EnvStack; - -enum Quote { - quLogic, - quTrad -}; - -extern enum Quote Quote; -extern BOOL StdInTTY, StdOutTTY, UsingStdIn; - -int main __PROTO((int argc, char **argv)); -void PrintPrgErr __PROTO((enum PrgErrNum , ...)); -void ErrPrintf __PROTO((const char *fmt, ...)); - -extern TEXT LTX_EosPunc[], LTX_GenPunc[], LTX_SmallPunc[]; -extern STRPTR PrgName; - -#endif /* CHKTEX_H */ diff --git a/Build/source/texk/chktex/chktexrc b/Build/source/texk/chktex/chktexrc deleted file mode 100644 index 59b840412d6..00000000000 --- a/Build/source/texk/chktex/chktexrc +++ /dev/null @@ -1,670 +0,0 @@ -## -## ChkTeX v1.5, example resource file for ChkTeX. -## Copyright (C) 1995-96 Jens T. Berger Thielemann -## -## 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. -## -## Contact the author at: -## Jens Berger -## Spektrumvn. 4 -## N-0666 Oslo -## Norway -## E-mail: <jensthi@ifi.uio.no> -## - -##################################################################### -# -# Note: The format has changed slightly (again). The { ... } -# syntax does now mean case-sensitive comparing, while [ ... ] means -# case-insensitive comparing of the keywords. Case-insensitive -# comparing of the keywords is only supported on a few of the -# keywords (it's not meaningful in all contexts, and it slows ChkTeX -# down). Keywords supporting this are marked throughout the file. -# -# You may also reset a list by saying "KEYWORD = { ... }"; it will -# then be set equal to the contents of the list you specify. -# -# Comments begin with `#', and continues for the rest of the line. -# Blank lines plus leading and trailing spaces are of course ignored. -# -# The general format of this file is the following: -# -# KEYWORD { item item ...} [ item item ... ] /* Adds items */ -# -# KEYWORD [ item item ...] { item item ... } /* Adds items */ -# -# KEYWORD = item -# -# KEYWORD = { item item ... } /* Clears list before adding */ -# -# KEYWORD = [ item item ... ] /* Clears list before adding */ -# -# This does _not_ mean that you may alternate the forms; certain -# keywords demands a list, other a single value. You thus have to -# look at the examples of their use. -# -# Please also note that if you specify a list-keyword twice, we'll -# concatenate the lists. If you you specify a item-keyword twice, -# we'll kill the previous value. -# -# We are slightly context-sensitive when detecting tokens like "}" -# and "]"; they have to be preceded by a space. This generally makes -# life easier. -# -# Items are separated by spaces. Newlines are considered as spaces, -# but can't be escaped. You may surround items with quotes (`"') to -# easily put spaces into them. -# -# Escape sequences available: -# -# Sequence Resulting character -# ! A space (type `! ', not just a exclamation mark) -# !" " -# !# # -# !! ! -# !{ { -# !} } -# ![ [ -# !] ] -# != = -# !b Backspace -# !n New line -# !r Carriage return -# !t Tab -# !f Form feed -# !xNN NN must be a hexadecimal number (00 - ff), -# _both_ characters must be included. -# !dNNN DDD must be a decimal number (000 - 255), all -# three characters must be included. Unspecified -# results if DDD > 255. -# !NNN DDD must be a octal number (000 - 377), all -# three characters must be included. Unspecified -# results if DDD > 377. -# -# Minor note: As you can see, most of these escape sequences are -# equal to those in C (with some extensions); however, we use ! -# instead of \ as escape character for obvious reasons. -# -# -# Quick summary of keywords follows. Keywords marked with a * accept -# keywords accepting case-insensitive lists. -# -# Abbrev* - A list of abbreviations not automatically catched. -# CenterDots - Commands/characters which should have \cdots in -# between. -# CmdLine - Default commandline options. These will be -# processed before the ones you give on the command -# line. -# HyphDash \ -# NumDash - No. of dashes allowed in different contexts. -# WordDash / -# IJAccent - Commands which puts an accent _over_ their -# argument. -# Italic - Commands immediately turning on italic mode. -# ItalCmd - Commands putting their argument into italic. -# Linker - Commands which should have a non-breaking space in -# front. -# LowDots - Commands/characters which should have \ldots in -# between. -# MathEnvir - Environments which turn on math mode. -# MathRoman - Mathematical operators with LaTeX replacement -# defined. -# NoCharNext - Insists on that certain commands aren't followed by -# certain characters. -# NonItalic - Commands immediately turning off italic mode. -# NotPreSpaced- Commands which should not have a space in front of -# them. -# Primitives - Primitive TeX commands. -# PostLink - Commands which generates a page reference. -# OutFormat - Formats to use for output. See the -f & -v switch -# in the main doc. -# QuoteStyle - Either "Traditional" or "Logical". See main doc, -# warning 38. -# Silent - These commands do not produce any textual output; -# and are thus allowed to have a space after them. -# TabSize - Tab size you are using. -# TeXInputs - Paths to search \input and \include files for. -# UserWarn* - These strings will be searched for throughout the -# text. -# VerbEnvir - Environments which contents should be ignored. -# VerbClear - String we will overwrite unwanted data with. -# WipeArg - Commands (with arguments) which should be ignored -# in the checking. -# - - -##################################################################### -# -# Enter which type of quote-style you are using here. Currently, we -# support the following styles: -# -# Style Example of use -# Traditional "An example," he said, "would be great." -# Logical "An example", he said, "would be great". -# - -QuoteStyle = Logical - -##################################################################### -# -# Enter here what interval you have between your tabs. Only regular -# intervals are supported. -# - -TabSize = 8 - -##################################################################### -# -# Here, you can put default commandline options; most users would for -# instance like to put -v2 here. -# - -CmdLine -{ - -} - -##################################################################### -# -# These patterns will be searched for through the text; no matter -# whether they appear as normal text, commands or whatever. -# Currently case-sensitive. -# -# I usually define a special command like this: -# -# \def\unknown{\large\bf??} -# -# which I use whenever there is some information I don't have at the -# moment of writing. Thus, it makes sense to search for it. -# -# You should be able to develop your own uses for this. -# - -UserWarn -{ - - \unknown -### -# -# Another example; one should write \chktex or Chk\TeX - never ChkTeX. -# -### - - ChkTeX -} -[ - -### -# -# You may put case-insensitive patterns here. -# -### - -] - -##################################################################### -# -# Here you can list the path of where ChkTeX should look for files it -# \inputs. The // postfix is now supported; if you append a double -# path-separator we'll recursively search that directory directories. -# MS-DOS users must append \\ instead, e.g. "C:\EMTEX\\". -# -# If you under either MS-DOS or UNIX wish to search an entire -# partition or the complete directory tree, you must use *three* -# slashes, e.g. "c:\\\" or "///". This may be considered to be a bug. -# -# By default, we'll search the current directory (not recursively, -# put "//" in the list for this); any paths specified below will be -# searched in addition to this. -# - -TeXInputs -{ - -} - -##################################################################### -# -# Here you may specify more outputformats for use with the -v option, -# it simply indexes into this list. Remember to use ! instead of \, -# though. -# -# For explanation of how % fields expand; look at ChkTeX.{dvi,ps}. -# -# We will by default select entry number _two_ in this list (we count -# from 0), and -v without any parameter selects entry number _three_. -# - -OutFormat -{ - -# -v0; silent mode -%f%b%l%b%c%b%n%b%m!n - -# -v1; normal mode -"%k %n in %f line %l: %m!n%r%s%t!n%u!n" - -# -v2; fancy mode -"%k %n in %f line %l: %m!n%r%i%s%I%t!n!n" - -# -v3; lacheck mode -"!"%f!", line %l: %m!n" - -# -v4; verbose lacheck mode -"!"%f!", line %l: %m!n%r%s%t!n%u!n" - -} - - - -##################################################################### -# -# These commands should be ignored when detecting whether a command -# is ended by a space. -# - -Silent -{ - \rm \em \bf \it \sl \sf \sc \tt \selectfont - \rmfamily \sffamily \ttfamily \mdseries \bfseries - \slshape \scshape \relax - \vskip \pagebreak \nopagebreak - - \textrm \textem \textbf \textit \textsl \textsf \textsc \texttt - - \clearpage \ddots \dotfill \flushbottom \fussy \indent \linebreak - \onecolumn \pagebreak \pushtabs \poptabs \scriptsize \sloppy - \twocolumn \vdots - \today \kill \newline \thicklines \thinlines - - \columnsep \space \item \tiny \footnotesize \small \normalsize - \normal \large \Large \LARGE \huge \Huge \printindex - - \newpage \listoffigures \listoftables \tableofcontents - \maketitle \makeindex - - \hline \hrule \vrule - - \centering - - \bigskip \medskip \smallskip - - \noindent \expandafter - - \makeatletter \makeatother - - \columnseprule - - \textwidth \textheight \hsize \vsize - - \if \fi - - \csname \endcsname - - \z@ \p@ \@warning \typeout - - \dots \ldots \input \endinput \nextline \leavevmode \cdots -- \appendix \listfiles \and \quad - \vfill \vfil \hfill \hfil \topmargin \oddsidemargin - \frenchspacing \nonfrenchspacing - \begingroup \endgroup \par - - \vrefwarning \upshape \headheight \headsep \hoffset \voffset - \cdot \qquad - \left \right -} - -##################################################################### -# -# Here, you can specify the length of various dashes. We sort the -# dash according to which type of characters that are on the left and -# right of of it. We are only conclusive if they are the same. -# -# We associate as follows: -# -# Name Type of character on each side -# HyphDash Alphabetic (foo-bar) -# NumDash Numeric (2--3) -# WordDash Space (like this --- see?) -# -# Below you specify how many dashes which are legal in each case. We -# define 0 as an magic constant which always generates an error. You -# may specify more than one legal dash-length. -# -# Let's look at an example. You use the following dash-syntax: -# -# foo-bar -# 2--3 -# like this---see? -# -# -# HYPHDASH { 1 3 } # Either a hyphen, or inter-word -# NUMDASH { 2 } # Between words -# WORDDASH { 0 } # We never use this -# - -HyphDash -{ - 1 -} - -NumDash -{ - 2 -} - -WordDash -{ - 3 -} - -##################################################################### -# -# This keyword indicates commands which argument isn't LaTeX code, -# and which thus should be ignored. -# -# After the command, you may place arguments that you wish that -# should be wiped in the process; use [] for optional arguments, {} -# for required ones and * if the command supports an alternative -# variant. These should be separated from the command with a colon. -# -# For instance, if you would like to wipe the \newcommand command, -# you would declare it as \newcommand:*[][]{} -# -# These commands may be "executed" before they're wiped, so you will -# typically also wish to list filehandling commands and similar here. -# - -WipeArg -{ - \label:{} \ref:{} \vref:{} \pageref:{} \index:{} \cite:[]{} - \input:{} \verbatiminput:[]{} \listinginput:[]{}{} - \verbatimtabinput:[]{} \include:{} \includeonly:{} - \bibitem:[]{} -} - -##################################################################### -# -# These environments contains material which will be typeset as -# mathematics by LaTeX. This turns on/off some warnings. -# -# We will automagically append a * to each keyword. -# - -MathEnvir -{ - displaymath math eqnarray array equation -} - -##################################################################### -# -# These environments contains material which contents should be -# ignored. -# -# We will automagically append a * to each keyword. -# - -VerbEnvir -{ - verbatim comment listing verbatimtab rawhtml errexam picture texdraw -} - -##################################################################### -# -# ChkTeX does automagically catch most abbreviations; the ones we -# need to list here, are those which are most likely to be followed -# by a word with an upper-case letter (that is not the beginning of a -# new sentence). -# -# The case-insensitive abbreviations are not really case-insensitive, -# it seems to be more practical to only let the first character be -# case-insensitive, while the remaining are case-sensitive. -# -# To speed up the searching process somewhat, we require that these -# end in a `.', this should not be a problem. -# -# Much of this work (both the abbreviations below, and the regexps -# necessary to catch the remaining automatically) have been provided -# by Russ Bubley, <russ@scs.leeds.ac.uk>. -# - - -Abbrev -{ -# Ordinals -1st. 2nd. 3rd. 4th. -# Titles -Mr. Mrs. Miss. Ms. Dr. Prof. St. - -# -# Days -# Mon. Tue. Wed. Thu. Fri. Sat. Sun. -# -# Months -# Jan. Feb. Mar. Apr. May. Jun. Jul. Aug. Sep. Oct. Nov. Dec. -# -# Letters -# Kt. Jr. -# -# Corporate -# Co. Ltd. -# -# Addresses -# Rd. Dr. St. Ave. Cres. Gdns. Sq. Circ. Terr. Pl. Arc. La. Clo. Ho. Est. Gn. -# -# Misc. -# oe. pbab. ps. rsvp. Tx. -} -[ -### -# -# The first letter is case-insensitive in the abbrevs in this -# list. Due to the nature of the checking algorithm used for -# this, entries consisting of only one character will be -# silently ignored. -# -## - -# Latin -# cf. "et al." etc. qed. qv. viz. -# -# Corporate -# inc. plc. -# -# Misc -# fax. pcs. qty. tel. misc. -] - -##################################################################### -# -# Commands which accent characters, meaning that \i or \j (\imath and -# \jmath in mathmode) should be used instead of `i' and `j' -# - -IJAccent -{ - \hat \check \breve \acute \grave \tilde \bar \vec \dot \ddot - - \' \` \^ \" \~ \= \. \u \v \H \t - -### -# -# The remaining accent commands (\c,\d,\b) put their accent _under_ -# the character, not above, and should thus be used with normal i's -# and j's. -# -### - -} - -##################################################################### -# -# Commands which, when the group is terminated, needs italic -# correction. -# - -Italic -{ - \it \em \sl -} - -##################################################################### -# -# Commands which makes the font non-italic. -# - -NonItalic -{ - \bf \rm \sf \tt \sc -} - -##################################################################### -# -# Commands which puts their argument into italic (and thus possibly -# needs italic correction in the end. -# - -ItalCmd -{ - \textit \textsl \emph -} - -##################################################################### -# -# These commands all have in common that a pagebreak right in front -# of them is highly undesirable; thus there should be no space in -# front of them. -# - -PostLink -{ - \index \label -} - -##################################################################### -# -# These commands should not have a space in front of them for various -# reasons. I.e. much the same as POSTLINK, but produces another -# warning. -# - -NotPreSpaced -{ - \footnote \footnotemark \/ -} - -##################################################################### -# -# The commands listed here, should be prepended with a `~', as in -# "look in table~\ref{foo}", to avoid the references being split -# across lines. -# - -Linker -{ - \ref \vref \pageref \cite -} - -##################################################################### -# -# Commands/characters which should have \cdots in between, e.g. -# $1+2+3+\cdots+n$. -# - -CenterDots -{ - = + - \cdot \div & \times \geq \leq < > -} - -##################################################################### -# -# Commands/characters which should have \ldots in between, e.g. -# $1,2,3,\ldots,n$. -# - -LowDots -{ - . , ; -} - -##################################################################### -# -# In maths mode, there are certain aliases for mathematical operators -# like sin, cos, etc. Ignore the leading backslash in the commands, -# and so forth. You should list these below. -# - -MathRoman -{ - log lg ln lim limsup liminf sin arcsin sinh cos arccos cosh tan - arctan tanh cot coth sec csc max min sup inf arg ker dim hom det - exp Pr gcd deg bmod pmod mod -} - -##################################################################### -# -# These TeX commands have become unnecessary, as there are LaTeX cmds -# that does the same. Purists should thus avoid these in their code. -# -# (These are a spell-corrected version of those lacheck uses). -# - -Primitives -{ - \above \advance \catcode \chardef \closein \closeout \copy \count - \countdef \cr \crcr \csname \delcode \dimendef \dimen \divide - \expandafter \font \hskip \vskip \openout -} - -##################################################################### -# -# Format: \command:characters -# -# We'll emit a warning if any of characters are found after the -# command. -# - -NoCharNext -{ - \left:{}$ \right:{}$ -} - -##################################################################### -# -# We're killing \verb@...@ commands and the arguments of the commands -# listed above in WIPEARG by overwriting them with a string or a -# single character. -# -# This should not contain an alphabetic character (in case the user -# writes (\foo\verb@bar@), neither should it contain be one of LaTeX' -# reserved characters (`#$%&~_^\{}'), or any parenthesis character -# ('()[]{}'). If possible, don't use a punctuation character, -# either, or any spacing character. -# -# The asterix is also unsuitable, as some commands behave in another -# way if they are postpended with an asterix. Which more or less -# leaves us with the pipe. -# -# Please note that this may also be a _string_, which will be -# repeated until the proper length is reached. -# - -VerbClear = "|" - -# -# All for now - have fun. -# -##################################################################### - diff --git a/Build/source/texk/chktex/chktypes.h b/Build/source/texk/chktex/chktypes.h deleted file mode 100644 index 2ab6ec4736e..00000000000 --- a/Build/source/texk/chktex/chktypes.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Clone of <exec/types.h>, which could not be included because it's - * (c) Commodore/Escom/Amiga/whatever. - * - */ - -#ifndef EXEC_TYPES_H -#define EXEC_TYPES_H - -#define GLOBAL extern /* the declaratory use of an external */ -#define IMPORT extern /* reference to an external */ -#define STATIC static /* a local static variable */ -#define REGISTER register /* a (hopefully) register variable */ - -#ifndef VOID -# define VOID void -#endif - - -typedef void* APTR; /* Address pointer */ - -#ifndef WIN32 -typedef unsigned long ULONG; -typedef long LONG; -#endif - -#ifdef AMIGA -typedef unsigned long LONGBITS; /* Longword accessed bitwise */ -#endif - -#ifndef WIN32 -typedef short WORD; -#endif -typedef unsigned short UWORD; -typedef unsigned short WORDBITS; - -typedef unsigned char UBYTE; -typedef unsigned char BYTEBITS; - -typedef unsigned short RPTR; /* relative pointer */ - - -#ifndef WIN32 -#if __STDC__ -typedef signed char BYTE; -#else -typedef char BYTE; -#endif -#endif - -#if defined(__cplusplus) || defined(AMIGA) -typedef unsigned char TEXT; -#else -typedef char TEXT; -#endif - -typedef TEXT * STRPTR; /* pointer to a string */ - -#ifndef WIN32 -typedef float FLOAT; -typedef double DOUBLE; -typedef short BOOL; /* Boolean value */ -#endif - -#ifndef TRUE -# define TRUE 1L -#endif -#ifndef FALSE -# define FALSE 0L -#endif -#ifndef NULL -# define NULL (void *) 0L -#endif - - -#endif diff --git a/Build/source/texk/chktex/chkweb b/Build/source/texk/chktex/chkweb deleted file mode 100644 index cbc0caa780d..00000000000 --- a/Build/source/texk/chktex/chkweb +++ /dev/null @@ -1,56 +0,0 @@ -#! /bin/sh - -# ChkWEB v1.0, runs the LaTeX parts of a CWEB file through ChkTeX. -# Copyright (C) 1996 Jens T. Berger Thielemann -# -# 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. -# -# Contact the author at: -# Jens Berger -# Spektrumvn. 4 -# N-0666 Oslo -# Norway -# E-mail: <jensthi@ifi.uio.no> - - -params= - -for p -do - case $p in - --) break - ;; - -*) params="$params $p" - shift - ;; - *) break - ;; - esac -done - - -if test "$1" = ""; then - deweb | chktex -v3 $params -else - for file - do - if test -f $file; then - deweb $file | chktex -p $file -v3 $params - else - deweb $file.w | chktex -p $file.w -v3 $params - fi - done -fi - diff --git a/Build/source/texk/chktex/config.h.in b/Build/source/texk/chktex/config.h.in deleted file mode 100644 index fce5fcaa508..00000000000 --- a/Build/source/texk/chktex/config.h.in +++ /dev/null @@ -1,127 +0,0 @@ -/* - * ChkTeX v1.5, configuration file. - * Copyright (C) 1995-96 Jens T. Berger Thielemann - * - * 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. - * - * Contact the author at: - * Jens Berger - * Spektrumvn. 4 - * N-0666 Oslo - * Norway - * E-mail: <jensthi@ifi.uio.no> - * - * - */ - -/* Define to empty if the keyword does not work. */ -#undef const - -/* Define to `unsigned' if <sys/types.h> doesn't define. */ -#undef size_t - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define as __inline if that's what the C compiler calls it. */ -#undef inline - -/* Define if you don't have vprintf but do have _doprnt. */ -#undef HAVE_DOPRNT - -/* Define if you have the vprintf function. */ -#undef HAVE_VPRINTF - -/* Define if you have the access function. */ -#undef HAVE_ACCESS - -/* Define if you have the closedir function. */ -#undef HAVE_CLOSEDIR - -/* Define if you have the fileno function. */ -#undef HAVE_FILENO - -/* Define if you have the isatty function. */ -#undef HAVE_ISATTY - -/* Define if you have the opendir function. */ -#undef HAVE_OPENDIR - -/* Define if you have the readdir function. */ -#undef HAVE_READDIR - -/* Define if you have the stat function. */ -#undef HAVE_STAT - -/* Define if you have the strcasecmp function. */ -#undef HAVE_STRCASECMP - -/* Define if you have the strdup function. */ -#undef HAVE_STRDUP - -/* Define if you have the strlwr function. */ -#undef HAVE_STRLWR - -/* Define if you have the strtol function. */ -#undef HAVE_STRTOL - -/* Define if you have the <dirent.h> header file. */ -#undef HAVE_DIRENT_H - -/* Define if you have the <sys/ndir.h> header file. */ -#undef HAVE_SYS_NDIR_H - -/* Define if you have the <sys/dir.h> header file. */ -#undef HAVE_SYS_DIR_H - -/* Define if you have the <ndir.h> header file. */ -#undef HAVE_NDIR_H - -/* Define if you have the <limits.h> header file. */ -#undef HAVE_LIMITS_H - -/* Define if you have the <stat.h> header file. */ -#undef HAVE_STAT_H - -/* Define if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define if you have the <stdarg.h> header file. */ -#undef HAVE_STDARG_H - -/* Define if you have the <sys/dir.h> header file. */ -#undef HAVE_SYS_DIR_H - -/* Define if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define if you have the <termcap.h> header file. */ -#undef HAVE_TERMCAP_H - -/* Define if you have the <termlib.h> header file. */ -#undef HAVE_TERMLIB_H - -/* Define if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the termcap library (-ltermcap). */ -#undef HAVE_LIBTERMCAP - -/* Define if you have the termlib library (-ltermlib). */ -#undef HAVE_LIBTERMLIB - -/* Define if you don't want runtime debugging compiled in */ -#undef STRIP_DEBUG - diff --git a/Build/source/texk/chktex/configure b/Build/source/texk/chktex/configure deleted file mode 100755 index bcc0260004c..00000000000 --- a/Build/source/texk/chktex/configure +++ /dev/null @@ -1,6073 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61a. -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no -fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - case $as_dir in - /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - -exec 7<&0 </dev/null 6>&1 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="ChkTeX.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include <stdio.h> -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif -#ifdef STDC_HEADERS -# include <stdlib.h> -# include <stddef.h> -#else -# ifdef HAVE_STDLIB_H -# include <stdlib.h> -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include <memory.h> -# endif -# include <string.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#ifdef HAVE_INTTYPES_H -# include <inttypes.h> -#endif -#ifdef HAVE_STDINT_H -# include <stdint.h> -#endif -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif" - -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -SCRIPTS -ELISPDIR -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -LN_S -PERL5 -GROFF -LATEX -DVIPS -LYNX -LATEX2HTML -CPP -GREP -EGREP -LIBOBJS -LTLIBOBJS' -ac_subst_files='' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { $as_echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { $as_echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute directory names. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { $as_echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - - --enable-lacheck-replace: Installs a lacheck replacement for the - AUC-TeX interface. (Default: no). - - --enable-emacs-hack: Installs a Elisp file, which makes ChkTeX - available in Emacs. Must be followed by - the path of your elisp files (e.g. - "--enable-emacs-hack=/usr/lib/emacs/"). - (Default: no). - - --enable-debug-info: Compile in miscellaneous runtime debugging - information. (Default: yes). - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a - nonstandard directory <lib dir> - LIBS libraries to pass to the linker, e.g. -l<library> - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if - you have headers in a nonstandard directory <include dir> - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -configure -generated by GNU Autoconf 2.61a - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.61a. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" -done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" -else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" -fi -shift -for ac_site_file -do - if test -r "$ac_site_file"; then - { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { $as_echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -$as_echo "$as_me: former value: $ac_old_val" >&2;} - { $as_echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -$as_echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - - - - - - - - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -SCRIPTS= - -ELISPDIR= - - -# Check whether --enable-lacheck-replace was given. -if test "${enable_lacheck_replace+set}" = set; then - enableval=$enable_lacheck_replace; -else - enable_lacheck_replace=no -fi - - -# Check whether --enable-emacs-hack was given. -if test "${enable_emacs_hack+set}" = set; then - enableval=$enable_emacs_hack; -else - enable_emacs_hack=no -fi - - -# Check whether --enable-debug-info was given. -if test "${enable_debug_info+set}" = set; then - enableval=$enable_debug_info; -else - enable_debug_info=yes -fi - - -if test "$silent" != "yes"; then -cat <<EOF - - - ##### ### ### ######## ### ## - ### ## ## ## ## ## #0 - @@ @@ @@@ @@ @@ @@ ####### @@ @ - @@ @@@ @@ @@ @@ @@ ## # @@ - && && && &&&& && @@ & && - &&& && && && && && && @@@@ & && - %%%%% %%% %%% %%% %%% %% && %%% %%% - && & - %%%%%%% - - Welcome to the ChkTeX configuration script! - Before taking the program in use, please read the - COPYING file; it applies to this script as well - as the remaining parts of the package. In short: - - *NO WARRANTIES WHATSOEVER* - - Copyright © 1995-96 - Jens T. Berger Thielemann - <jensthi@ifi.uio.no> -EOF -sleep 1 -cat <<EOF -Supported features: - --enable-lacheck-replace: Installs a lacheck replacement for the - AUC-TeX interface. (Default: no). - --enable-debug-info: Compile in miscellaneous runtime debugging - information. (Default: yes). - --enable-emacs-hack: Installs a Elisp file, which makes ChkTeX - available in Emacs. Must be followed by - the path of your elisp files (e.g. - "--enable-emacs-hack=/usr/lib/emacs/"). - (Default: no). -EOF -sleep 1 -fi - -{ $as_echo "$as_me:$LINENO: checking whether lacheck replacement should be installed" >&5 -$as_echo_n "checking whether lacheck replacement should be installed... " >&6; } -if test "$enable_lacheck_replace" = "yes"; then - SCRIPTS="$SCRIPTS lacheck" - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - SCRIPTS= - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - -{ $as_echo "$as_me:$LINENO: checking whether runtime debug info should be used" >&5 -$as_echo_n "checking whether runtime debug info should be used... " >&6; } -if test "$enable_debug_info" = "yes"; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - cat >>confdefs.h <<\_ACEOF -#define STRIP_DEBUG 1 -_ACEOF - - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - -{ $as_echo "$as_me:$LINENO: checking whether the emacs hack should be installed" >&5 -$as_echo_n "checking whether the emacs hack should be installed... " >&6; } -case $enable_emacs_hack in - no) { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - ;; - /*|*/*) ELISPDIR=$enable_emacs_hack - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - *) echo; - { { $as_echo "$as_me:$LINENO: error: --enable-emacs-hack needs the *full path* of Elisp files" >&5 -$as_echo "$as_me: error: --enable-emacs-hack needs the *full path* of Elisp files" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { (ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi - -{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -if test -z "$ac_file"; then - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done -IFS=$as_save_IFS - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -for ac_prog in perl5 perl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PERL5+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $PERL5 in - [\\/]* | ?:[\\/]*) - ac_cv_path_PERL5="$PERL5" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy="$PATH:/usr/bin:/usr/local/bin" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PERL5="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -PERL5=$ac_cv_path_PERL5 -if test -n "$PERL5"; then - { $as_echo "$as_me:$LINENO: result: $PERL5" >&5 -$as_echo "$PERL5" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$PERL5" && break -done -test -n "$PERL5" || PERL5="no" - -if test "$PERL5" != no; then - { $as_echo "$as_me:$LINENO: checking whether perl is v5 or higher" >&5 -$as_echo_n "checking whether perl is v5 or higher... " >&6; } - if $PERL5 -e 'exit($] >= 5)'; then - PERL5=no - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - fi -fi - -if test "$PERL5" != no; then - { $as_echo "$as_me:$LINENO: checking whether #! works in shell scripts" >&5 -$as_echo_n "checking whether #! works in shell scripts... " >&6; } -if test "${ac_cv_sys_interpreter+set}" = set; then - $as_echo_n "(cached) " >&6 -else - echo '#! /bin/cat -exit 69 -' >conftest -chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) -if test $? -ne 69; then - ac_cv_sys_interpreter=yes -else - ac_cv_sys_interpreter=no -fi -rm -f conftest -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_interpreter" >&5 -$as_echo "$ac_cv_sys_interpreter" >&6; } -interpval=$ac_cv_sys_interpreter - - if test "$ac_cv_sys_interpreter" = "yes"; then - SCRIPTS="$SCRIPTS chkweb deweb" - else - { $as_echo "$as_me:$LINENO: WARNING: deweb will not be installed since your system does" >&5 -$as_echo "$as_me: WARNING: deweb will not be installed since your system does" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: not support the pound-bang notation." >&5 -$as_echo "$as_me: WARNING: not support the pound-bang notation." >&2;} - fi -else - { $as_echo "$as_me:$LINENO: WARNING: deweb will not be installed since you do not have perl5." >&5 -$as_echo "$as_me: WARNING: deweb will not be installed since you do not have perl5." >&2;} -fi - -for ac_prog in 'groff -man -P-bu -Tlatin1' 'nroff -man' -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_GROFF+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$GROFF"; then - ac_cv_prog_GROFF="$GROFF" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_GROFF="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -GROFF=$ac_cv_prog_GROFF -if test -n "$GROFF"; then - { $as_echo "$as_me:$LINENO: result: $GROFF" >&5 -$as_echo "$GROFF" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$GROFF" && break -done -test -n "$GROFF" || GROFF="'nroff -man'" - - -# Extract the first word of "latex", so it can be a program name with args. -set dummy latex; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LATEX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $LATEX in - [\\/]* | ?:[\\/]*) - ac_cv_path_LATEX="$LATEX" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_LATEX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -LATEX=$ac_cv_path_LATEX -if test -n "$LATEX"; then - { $as_echo "$as_me:$LINENO: result: $LATEX" >&5 -$as_echo "$LATEX" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "dvips", so it can be a program name with args. -set dummy dvips; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_DVIPS+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $DVIPS in - [\\/]* | ?:[\\/]*) - ac_cv_path_DVIPS="$DVIPS" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_DVIPS="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -DVIPS=$ac_cv_path_DVIPS -if test -n "$DVIPS"; then - { $as_echo "$as_me:$LINENO: result: $DVIPS" >&5 -$as_echo "$DVIPS" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -# Extract the first word of "lynx", so it can be a program name with args. -set dummy lynx; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LYNX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $LYNX in - [\\/]* | ?:[\\/]*) - ac_cv_path_LYNX="$LYNX" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_LYNX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -LYNX=$ac_cv_path_LYNX -if test -n "$LYNX"; then - { $as_echo "$as_me:$LINENO: result: $LYNX" >&5 -$as_echo "$LYNX" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "latex2html", so it can be a program name with args. -set dummy latex2html; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LATEX2HTML+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $LATEX2HTML in - [\\/]* | ?:[\\/]*) - ac_cv_path_LATEX2HTML="$LATEX2HTML" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_LATEX2HTML="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -LATEX2HTML=$ac_cv_path_LATEX2HTML -if test -n "$LATEX2HTML"; then - { $as_echo "$as_me:$LINENO: result: $LATEX2HTML" >&5 -$as_echo "$LATEX2HTML" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -{ $as_echo "$as_me:$LINENO: checking for tgetent in -ltermlib" >&5 -$as_echo_n "checking for tgetent in -ltermlib... " >&6; } -if test "${ac_cv_lib_termlib_tgetent+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermlib $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_termlib_tgetent=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_termlib_tgetent=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termlib_tgetent" >&5 -$as_echo "$ac_cv_lib_termlib_tgetent" >&6; } -if test $ac_cv_lib_termlib_tgetent = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBTERMLIB 1 -_ACEOF - - LIBS="-ltermlib $LIBS" - -fi - - -{ $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 -$as_echo_n "checking for tgetent in -ltermcap... " >&6; } -if test "${ac_cv_lib_termcap_tgetent+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ltermcap $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tgetent (); -int -main () -{ -return tgetent (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_termcap_tgetent=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_termcap_tgetent=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 -$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } -if test $ac_cv_lib_termcap_tgetent = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBTERMCAP 1 -_ACEOF - - LIBS="-ltermcap $LIBS" - -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # Extract the first word of "grep ggrep" to use in msg output -if test -z "$GREP"; then -set dummy grep ggrep; ac_prog_name=$2 -if test "${ac_cv_path_GREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_path_GREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_GREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - -else - ac_cv_path_GREP=$GREP -fi - - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - # Extract the first word of "egrep" to use in msg output -if test -z "$EGREP"; then -set dummy egrep; ac_prog_name=$2 -if test "${ac_cv_path_EGREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_path_EGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_EGREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - -else - ac_cv_path_EGREP=$EGREP -fi - - - fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <string.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdlib.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ctype.h> -#include <stdlib.h> -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - - - - - - -ac_header_dirent=no -for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 -$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <sys/types.h> -#include <$ac_hdr> - -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 -_ACEOF - -ac_header_dirent=$ac_hdr; break -fi - -done -# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. -if test $ac_header_dirent = dirent.h; then - { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dir; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_search_opendir=$ac_res -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then - break -fi -done -if test "${ac_cv_search_opendir+set}" = set; then - : -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -else - { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' x; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_search_opendir=$ac_res -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then - break -fi -done -if test "${ac_cv_search_opendir+set}" = set; then - : -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -fi - -ac_config_headers="$ac_config_headers config.h" - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - - - -for ac_header in limits.h stat.h strings.h stdarg.h sys/stat.h termcap.h termlib.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if test "${ac_cv_c_const+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_const=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_c_const=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - -{ $as_echo "$as_me:$LINENO: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if test "${ac_cv_c_inline+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_inline=$ac_kw -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } - - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking for size_t" >&5 -$as_echo_n "checking for size_t... " >&6; } -if test "${ac_cv_type_size_t+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -typedef size_t ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_size_t=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_size_t=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -$as_echo "$ac_cv_type_size_t" >&6; } -if test $ac_cv_type_size_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF - -fi - - - -for ac_func in vprintf -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -{ $as_echo "$as_me:$LINENO: checking for _doprnt" >&5 -$as_echo_n "checking for _doprnt... " >&6; } -if test "${ac_cv_func__doprnt+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define _doprnt to an innocuous variant, in case <limits.h> declares _doprnt. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define _doprnt innocuous__doprnt - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char _doprnt (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef _doprnt - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char _doprnt (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub__doprnt || defined __stub____doprnt -choke me -#endif - -int -main () -{ -return _doprnt (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func__doprnt=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func__doprnt=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 -$as_echo "$ac_cv_func__doprnt" >&6; } -if test $ac_cv_func__doprnt = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DOPRNT 1 -_ACEOF - -fi - -fi -done - - - - - - - - - - - - - -for ac_func in access closedir fileno isatty opendir readdir stat strcasecmp strdup strlwr strtol -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -ac_config_files="$ac_config_files Makefile deweb MakeHTML" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 - -# Save the log message, to keep $[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by $as_me, which was -generated by GNU Autoconf 2.61a. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Report bugs to <bug-autoconf@gnu.org>." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.61a, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2006 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - { $as_echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { $as_echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - set X '$SHELL' '$0'$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "deweb") CONFIG_FILES="$CONFIG_FILES deweb" ;; - "MakeHTML") CONFIG_FILES="$CONFIG_FILES MakeHTML" ;; - - *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status -' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || -{ - $as_echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -echo 'BEGIN {' >"$tmp/subs.awk" -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' - echo "_ACEOF" -} >conf$$subs.sh -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` = $ac_delim_num; then - break - elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF -cat >>"\$tmp/subs.awk" <<\CEOF -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\).*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\).*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' <conf$$subs.awk | sed ' -/^[^"]/{ - N - s/\n// -} -' >>$CONFIG_STATUS -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF -CEOF -cat >>"\$tmp/subs.awk" <<CEOF - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -CEOF -_ACEOF - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ -s/:*$// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF -fi # test -n "$CONFIG_FILES" - - -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -$as_echo "$as_me: error: Invalid tag $ac_tag." >&2;} - { (exit 1); exit 1; }; };; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; - esac - ac_file_inputs="$ac_file_inputs $ac_f" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= - -case `sed -n '/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p -' $ac_file_inputs` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" $ac_file_inputs | $AWK -f "$tmp/subs.awk" >$tmp/out - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} - - rm -f "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac - ;; - :H) - # - # CONFIG_HEADER - # -_ACEOF - -# Transform confdefs.h into a sed script `conftest.defines', that -# substitutes the proper values into config.h.in to produce config.h. -rm -f conftest.defines conftest.tail -# First, append a space to every undef/define line, to ease matching. -echo 's/$/ /' >conftest.defines -# Then, protect against being on the right side of a sed subst, or in -# an unquoted here document, in config.status. If some macros were -# called several times there might be several #defines for the same -# symbol, which is useless. But do not sort them, since the last -# AC_DEFINE must be honored. -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -# NAME is the cpp macro being defined, VALUE is the value it is being given. -# PARAMS is the parameter list in the macro definition--in most cases, it's -# just an empty string. -ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -ac_dB='\\)[ (].*,\\1define\\2' -ac_dC=' ' -ac_dD=' ,' - -uniq confdefs.h | - sed -n ' - t rset - :rset - s/^[ ]*#[ ]*define[ ][ ]*// - t ok - d - :ok - s/[\\&,]/\\&/g - s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p - s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p - ' >>conftest.defines - -# Remove the space that was appended to ease matching. -# Then replace #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -# (The regexp can be short, since the line contains either #define or #undef.) -echo 's/ $// -s,^[ #]*u.*,/* & */,' >>conftest.defines - -# Break up conftest.defines: -ac_max_sed_lines=50 - -# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -# et cetera. -ac_in='$ac_file_inputs' -ac_out='"$tmp/out1"' -ac_nxt='"$tmp/out2"' - -while : -do - # Write a here document: - cat >>$CONFIG_STATUS <<_ACEOF - # First, check the format of the line: - cat >"\$tmp/defines.sed" <<\\CEOF -/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -b -:def -_ACEOF - sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS - ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in - sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail - grep . conftest.tail >/dev/null || break - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines conftest.tail - -echo "ac_result=$ac_in" >>$CONFIG_STATUS -cat >>$CONFIG_STATUS <<\_ACEOF - if test x"$ac_file" != x-; then - $as_echo "/* $configure_input */" >"$tmp/config.h" - cat "$ac_result" >>"$tmp/config.h" - if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f $ac_file - mv "$tmp/config.h" $ac_file - fi - else - $as_echo "/* $configure_input */" - cat "$ac_result" - fi - rm -f "$tmp/out12" - ;; - - - esac - -done # for ac_tag - - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - diff --git a/Build/source/texk/chktex/configure.in b/Build/source/texk/chktex/configure.in deleted file mode 100644 index a31397b2920..00000000000 --- a/Build/source/texk/chktex/configure.in +++ /dev/null @@ -1,183 +0,0 @@ -dnl -dnl ChkTeX v1.5, configuration file. -dnl Copyright (C) 1995-96 Jens T. Berger Thielemann -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -dnl -dnl Contact the author at: -dnl Jens Berger -dnl Spektrumvn. 4 -dnl N-0666 Oslo -dnl Norway -dnl E-mail: <jensthi@ifi.uio.no> -dnl -dnl - - -dnl Process this file with autoconf to produce a configure script. -AC_INIT -AC_CONFIG_SRCDIR([ChkTeX.c]) -AC_SUBST(SCRIPTS) -SCRIPTS= -AC_SUBST(ELISPDIR) -ELISPDIR= - - -AC_ARG_ENABLE(lacheck-replace,[ - --enable-lacheck-replace: Installs a lacheck replacement for the - AUC-TeX interface. (Default: no).],, -enable_lacheck_replace=no) - -AC_ARG_ENABLE(emacs-hack,[ - --enable-emacs-hack: Installs a Elisp file, which makes ChkTeX - available in Emacs. Must be followed by - the path of your elisp files (e.g. - "--enable-emacs-hack=/usr/lib/emacs/"). - (Default: no).],, -enable_emacs_hack=no) - -AC_ARG_ENABLE(debug-info,[ - --enable-debug-info: Compile in miscellaneous runtime debugging - information. (Default: yes).],, -enable_debug_info=yes) - -if test "$silent" != "yes"; then -cat <<EOF - - - ##### ### ### ######## ### ## - ### ## ## ## ## ## #0 - @@ @@ @@@ @@ @@ @@ ####### @@ @ - @@ @@@ @@ @@ @@ @@ ## # @@ - && && && &&&& && @@ & && - &&& && && && && && && @@@@ & && - %%%%% %%% %%% %%% %%% %% && %%% %%% - && & - %%%%%%% - - Welcome to the ChkTeX configuration script! - Before taking the program in use, please read the - COPYING file; it applies to this script as well - as the remaining parts of the package. In short: - - *NO WARRANTIES WHATSOEVER* - - Copyright © 1995-96 - Jens T. Berger Thielemann - <jensthi@ifi.uio.no> -EOF -sleep 1 -cat <<EOF -Supported features: - --enable-lacheck-replace: Installs a lacheck replacement for the - AUC-TeX interface. (Default: no). - --enable-debug-info: Compile in miscellaneous runtime debugging - information. (Default: yes). - --enable-emacs-hack: Installs a Elisp file, which makes ChkTeX - available in Emacs. Must be followed by - the path of your elisp files (e.g. - "--enable-emacs-hack=/usr/lib/emacs/"). - (Default: no). -EOF -sleep 1 -fi - -AC_MSG_CHECKING(whether lacheck replacement should be installed) -if test "$enable_lacheck_replace" = "yes"; then - SCRIPTS="$SCRIPTS lacheck" - AC_MSG_RESULT(yes) -else - SCRIPTS= - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(whether runtime debug info should be used) -if test "$enable_debug_info" = "yes"; then - AC_MSG_RESULT(yes) -else - AC_DEFINE(STRIP_DEBUG, 1) - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(whether the emacs hack should be installed) -case $enable_emacs_hack in - no) AC_MSG_RESULT(no) - ;; - /*|*/*) ELISPDIR=$enable_emacs_hack - AC_MSG_RESULT(yes) - ;; - *) echo; - AC_MSG_ERROR(--enable-emacs-hack needs the *full path* of Elisp files) - ;; -esac - -dnl Checks for programs. -AC_PROG_CC -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PATH_PROGS(PERL5, perl5 perl, no, $PATH:/usr/bin:/usr/local/bin) -if test "$PERL5" != no; then - AC_MSG_CHECKING(whether perl is v5 or higher) - if $PERL5 -e 'exit($] >= 5)'; then - PERL5=no - AC_MSG_RESULT(no) - else - AC_MSG_RESULT(yes) - fi -fi - -if test "$PERL5" != no; then - AC_SYS_INTERPRETER - if test "$ac_cv_sys_interpreter" = "yes"; then - SCRIPTS="$SCRIPTS chkweb deweb" - else - AC_MSG_WARN(deweb will not be installed since your system does) - AC_MSG_WARN(not support the pound-bang notation.) - fi -else - AC_MSG_WARN(deweb will not be installed since you do not have perl5.) -fi - -AC_CHECK_PROGS(GROFF, 'groff -man -P-bu -Tlatin1' 'nroff -man', 'nroff -man') - -AC_PATH_PROG(LATEX, latex) -AC_PATH_PROG(DVIPS, dvips) - -AC_PATH_PROG(LYNX, lynx) -AC_PATH_PROG(LATEX2HTML, latex2html) - -dnl Checks for libraries. -AC_CHECK_LIB(termlib, tgetent) -AC_CHECK_LIB(termcap, tgetent) - -dnl Checks for header files. -AC_HEADER_STDC -AC_HEADER_DIRENT -AC_CONFIG_HEADER(config.h) -AC_CHECK_HEADERS(limits.h stat.h strings.h stdarg.h dnl -sys/stat.h termcap.h termlib.h unistd.h) - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_C_INLINE -AC_TYPE_SIZE_T - -dnl Checks for library functions. -AC_FUNC_VPRINTF -AC_CHECK_FUNCS(access closedir fileno isatty opendir readdir stat dnl -strcasecmp strdup strlwr strtol) - -AC_CONFIG_FILES([Makefile deweb MakeHTML]) -AC_OUTPUT diff --git a/Build/source/texk/chktex/deweb.1 b/Build/source/texk/chktex/deweb.1 deleted file mode 100644 index a84036a8466..00000000000 --- a/Build/source/texk/chktex/deweb.1 +++ /dev/null @@ -1,116 +0,0 @@ -.TH deweb 1 "June 8, 1996" -.AT 3 -.SH NAME -deweb \- strips away C & CWEB commands from CWEB sources -.SH SYNOPSIS -.B deweb -[ -.B file1 file2 ... -] -.SH DESCRIPTION -.I deweb -filters away all C & CWEB commands from a CWEB source code. This -leaves only the -.I LaTeX -code. This stripped code, in turn, may then -be passed to a suitable syntax checker for LaTeX, like -.I ChkTeX -and -.I lacheck, -or spell-checkers like -.I ispell. -.PP -The -.I chkweb -tool, included in the -.I ChkTeX -distribution will do just this; writing similar scripts should be -trivial. -.PP -When -.I deweb -strips away the C code from your CWEB source, it tries to preserve line breaks. -This means that the error reports from -.I <your favorite tool> -will be correct regarding to line numbers. In most cases, -the column position -will also be correct. This significantly simplifies -finding the errors in the -.I LaTeX -source (in contrast to the output from -.I cweave, -which output is truly difficult to figure anything out from). -.PP -.I deweb -accepts a list of filenames on the argument line, and will send its output -to -.I stdout. -If no filenames are given, it will read from stdin, acting as -a filter. No options are currently accepted. -.PP -Macho users may try to pipe the output from -.I deweb -directly into -.I LaTeX, -theoretically, this should work. This would ease the debugging -of the -.I LaTeX -code significantly, as when -.I LaTeX -complains about wrong syntax, you'll be able to find the erroneous -line much more easily. Don't expect that the output looks very much -like the final one, though. -.PP -.I deweb -should now understand all correct -.I CWEB -opcodes. If it complains about not understanding a correct opcode, -please inform the author. -.SH DISTRIBUTION -Copyright (C) 1996 Jens T. Berger Thielemann -.PP -This program is free software; you can redistribute it and/or modify -it under the terms of the -.I GNU General Public License -as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. -.PP -This program is distributed in the hope that it will be useful, -but -.B WITHOUT ANY WARRANTY; -without even the implied warranty of -.B MERCHANTABILITY -or -.B FITNESS FOR A PARTICULAR PURPOSE. -See the -.I GNU General Public License -for more details. -.PP -You should have received a copy of the -.B GNU General Public License -along with this program; if not, write to the -.I Free Software Foundation, Inc., -675 Mass Ave, Cambridge, MA 02139, USA. -.SH ENVIRONMENT -No environment variables are used. -.SH FILES -None. -.SH AUTHOR -Jens T. Berger Thielemann, -.I <jensthi@ifi.uio.no> -.SH "SEE ALSO" -.B cweave(1), perl(1), chktex, lacheck(1), ispell(1) -.SH BUGS -Doesn't even -.B compile -under -.I Perl -versions before perl v5. Unfortunately, this means that we can't even -tell the user why we failed; -.I Perl -will just complain about not being able to compile the regexps. -.PP -The program will try to swallow the whole input file at once, instead of -processing it on a line\-by\-line basis. -.ex diff --git a/Build/source/texk/chktex/deweb.doc b/Build/source/texk/chktex/deweb.doc deleted file mode 100644 index 2636687602d..00000000000 --- a/Build/source/texk/chktex/deweb.doc +++ /dev/null @@ -1,132 +0,0 @@ - - - -deweb(1) deweb(1) - - -NAME - deweb - strips away C & CWEB commands from CWEB sources - -SYNOPSIS - deweb [ file1 file2 ... ] - -DESCRIPTION - deweb filters away all C & CWEB commands from a CWEB - source code. This leaves only the LaTeX code. This - stripped code, in turn, may then be passed to a suitable - syntax checker for LaTeX, like ChkTeX and lacheck, or - spell-checkers like ispell. - - The chkweb tool, included in the ChkTeX distribution will - do just this; writing similar scripts should be trivial. - - When deweb strips away the C code from your CWEB source, - it tries to preserve line breaks. This means that the - error reports from <your favorite tool> will be correct - regarding to line numbers. In most cases, the column posi - tion will also be correct. This significantly simplifies - finding the errors in the LaTeX source (in contrast to the - output from cweave, which output is truly difficult to - figure anything out from). - - deweb accepts a list of filenames on the argument line, - and will send its output to stdout. If no filenames are - given, it will read from stdin, acting as a filter. No - options are currently accepted. - - Macho users may try to pipe the output from deweb directly - into LaTeX, theoretically, this should work. This would - ease the debugging of the LaTeX code significantly, as - when LaTeX complains about wrong syntax, you'll be able to - find the erroneous line much more easily. Don't expect - that the output looks very much like the final one, - though. - - deweb should now understand all correct CWEB opcodes. If - it complains about not understanding a correct opcode, - please inform the author. - -DISTRIBUTION - Copyright (C) 1996 Jens T. Berger Thielemann - - 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 - - - - June 8, 1996 1 - - - - - -deweb(1) deweb(1) - - - 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. - -ENVIRONMENT - No environment variables are used. - -FILES - None. - -AUTHOR - Jens T. Berger Thielemann, <jensthi@ifi.uio.no> - -SEE ALSO - cweave(1), perl(1), chktex, lacheck(1), ispell(1) - -BUGS - Doesn't even compile under Perl versions before perl v5. - Unfortunately, this means that we can't even tell the user - why we failed; Perl will just complain about not being - able to compile the regexps. - - The program will try to swallow the whole input file at - once, instead of processing it on a line-by-line basis. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - June 8, 1996 2 - - diff --git a/Build/source/texk/chktex/deweb.in b/Build/source/texk/chktex/deweb.in deleted file mode 100644 index b40f2e0b57b..00000000000 --- a/Build/source/texk/chktex/deweb.in +++ /dev/null @@ -1,122 +0,0 @@ -#! @PERL5@ -# deweb v1.2, kills the C sections of a CWEB file, for passing to ChkTeX. -# Copyright (C) 1996 Jens T. Berger Thielemann -# -# 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. -# -# Contact the author at: -# Jens Berger -# Spektrumvn. 4 -# N-0666 Oslo -# Norway -# E-mail: <jensthi@ifi.uio.no> -# -# -# - -print STDERR "DeWEB v1.2 - Copyright 1996 Jens T. Berger Thielemann\n"; - -undef $/; -$texmode = 1; -$_ = <>; - -while(/\@/) -{ - &out($`); - $_ = $'; - - if(/^@/) { - $_ = $'; - &out('@'); - next; - } - - if(/^([\s\n])/) { - $_ = $'; - print "\n" if $1 eq "\n"; - $texmode = 1; - next; - } - - if(/^[cpd]/i) { - $_ = $'; - $texmode = 0; - next; - } - - if(/^\,/i) { - $_ = $'; - print '\,'; - next; - } - - if(m!^/!) { - $_ = $'; - print '\\\\'; - next; - } - - if(/^[h\&\|\;\#\+]/i || /^i.*/i) { - $_ = $'; - next; - } - - if(/^\*[0-9\*]?((.|\n)*?\.)/) { - $_ = $'; - print $1; - $texmode = 1; - next; - } - - if(/^[<(^.t!]((.|\n)*?)\@\>/i) { - $_ = $'; - print '{'.$1.'}'; - $texmode = 0; - next; - } - - if(/^[=]((.|\n)*?)\@\>/) { - $_ = $'; - print &printnl($1); - next; - } - - if(/^[fsl](\s+\S+\s+\S+)|^\'(.|\n)*?\'|^\[((.|\n)*?)\@\]/i) { - $_ = $'; - print &printnl($+); - next; - } - - @line = split(/\n/, $_, 2); - print STDERR "Unknown opcode, ignored. Buffer:\n$line[0]\n"; - -} - -print $_; - -sub printnl { - my($foo); - if(defined $_[0]) { - $foo = $_[0]; - $foo =~ s/.//g; - } else { - $foo = ""; - } - $foo; -} - -sub out { - print $texmode? $_[0] : &printnl($_[0]); -} diff --git a/Build/source/texk/chktex/getopt.c b/Build/source/texk/chktex/getopt.c deleted file mode 100644 index 6a083c7e9f0..00000000000 --- a/Build/source/texk/chktex/getopt.c +++ /dev/null @@ -1,756 +0,0 @@ -/* Getopt for GNU. - NOTE: getopt is now part of the C library, so if you don't know what - "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu - before changing it! - - Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94 - 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 2, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>. - Ditto for AIX 3.2 and <stdlib.h>. */ -#ifndef _NO_PROTO -#define _NO_PROTO -#endif - -#ifdef HAVE_CONFIG_H -#if defined (emacs) || defined (CONFIG_BROKETS) -/* We use <config.h> instead of "config.h" so that a compilation - using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h - (which it would do because it found this file in $srcdir). */ -#include <config.h> -#else -#include "config.h" -#endif -#endif - -#ifndef __STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif - -#include <stdio.h> - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#if defined (_LIBC) || !defined (__GNU_LIBRARY__) - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -/* Don't include stdlib.h for non-GNU C libraries because some of them - contain conflicting prototypes for getopt. */ -#include <stdlib.h> -#endif /* GNU C library. */ - -/* This version of `getopt' appears to the caller like standard Unix `getopt' - but it behaves differently for the user, since it allows the user - to intersperse the options with the other arguments. - - As `getopt' works, it permutes the elements of ARGV so that, - when it is done, all the options precede everything else. Thus - all application programs are extended to handle flexible argument order. - - Setting the environment variable POSIXLY_CORRECT disables permutation. - Then the behavior is completely standard. - - GNU application programs can use a third alternative mode in which - they can distinguish the relative order of options and other arguments. */ - -#include "getopt.h" - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -char *optarg = NULL; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns EOF, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -/* XXX 1003.2 says this must be 1 before any call. */ -int optind = 0; - -/* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - -static char *nextchar; - -/* Callers store zero here to inhibit the error message - for unrecognized options. */ - -int opterr = 1; - -/* Set to an option character which was unrecognized. - This must be initialized on some systems to avoid linking in the - system's own getopt implementation. */ - -int optopt = '?'; - -/* Describe how to deal with options that follow non-option ARGV-elements. - - If the caller did not specify anything, - the default is REQUIRE_ORDER if the environment variable - POSIXLY_CORRECT is defined, PERMUTE otherwise. - - REQUIRE_ORDER means don't recognize them as options; - stop option processing when the first non-option is seen. - This is what Unix does. - This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character - of the list of option characters. - - PERMUTE is the default. We permute the contents of ARGV as we scan, - so that eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written to - expect this. - - RETURN_IN_ORDER is an option available to programs that were written - to expect options and other ARGV-elements in any order and that care about - the ordering of the two. We describe each non-option ARGV-element - as if it were the argument of an option with character code 1. - Using `-' as the first character of the list of option characters - selects this mode of operation. - - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return EOF with `optind' != ARGC. */ - -static enum -{ - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER -} ordering; - -/* Value of POSIXLY_CORRECT environment variable. */ -static char *posixly_correct; - -#ifdef __GNU_LIBRARY__ -/* We want to avoid inclusion of string.h with non-GNU libraries - because there are many ways it can cause trouble. - On some systems, it contains special magic macros that don't work - in GCC. */ -#include <string.h> -#define my_index strchr -#else - -/* Avoid depending on library functions or files - whose names are inconsistent. */ - -char *getenv (); - -static char * -my_index (str, chr) - const char *str; - int chr; -{ - while (*str) - { - if (*str == chr) - return (char *) str; - str++; - } - return 0; -} - -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -#ifndef __STDC__ -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -#endif /* not __STDC__ */ -#endif /* __GNUC__ */ - -#endif /* not __GNU_LIBRARY__ */ - -/* Handle permutation of arguments. */ - -/* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first of them; - `last_nonopt' is the index after the last of them. */ - -static int first_nonopt; -static int last_nonopt; - -/* Exchange two adjacent subsequences of ARGV. - One subsequence is elements [first_nonopt,last_nonopt) - which contains all the non-options that have been skipped so far. - The other is elements [last_nonopt,optind), which contains all - the options processed since those non-options were skipped. - - `first_nonopt' and `last_nonopt' are relocated so that they describe - the new indices of the non-options in ARGV after they are moved. */ - -static void -exchange (argv) - char **argv; -{ - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; - char *tem; - - /* Exchange the shorter segment with the far end of the longer segment. - That puts the shorter segment into the right place. - It leaves the longer segment in the right place overall, - but it consists of two parts that need to be swapped next. */ - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - register int i; - - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } - else - { - /* Top segment is the short one. */ - int len = top - middle; - register int i; - - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } - } - - /* Update records for the slots the non-options now occupy. */ - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/* Initialize the internal data when the first call is made. */ - -static const char * -_getopt_initialize (optstring) - const char *optstring; -{ - /* Start processing options with ARGV-element 1 (since ARGV-element 0 - is the program name); the sequence of previously skipped - non-option ARGV-elements is empty. */ - - first_nonopt = last_nonopt = optind = 1; - - nextchar = NULL; - - posixly_correct = getenv ("POSIXLY_CORRECT"); - - /* Determine how to handle the ordering of options and nonoptions. */ - - if (optstring[0] == '-') - { - ordering = RETURN_IN_ORDER; - ++optstring; - } - else if (optstring[0] == '+') - { - ordering = REQUIRE_ORDER; - ++optstring; - } - else if (posixly_correct != NULL) - ordering = REQUIRE_ORDER; - else - ordering = PERMUTE; - - return optstring; -} - -/* Scan elements of ARGV (whose length is ARGC) for option characters - given in OPTSTRING. - - If an element of ARGV starts with '-', and is not exactly "-" or "--", - then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' - is called repeatedly, it returns successively each of the option characters - from each of the option elements. - - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can - resume the scan with the following option character or ARGV-element. - - If there are no more option characters, `getopt' returns `EOF'. - Then `optind' is the index in ARGV of the first ARGV-element - that is not an option. (The ARGV-elements have been permuted - so that those that are not options now come last.) - - OPTSTRING is a string containing the legitimate option characters. - If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to - zero, the error message is suppressed but we still return '?'. - - If a char in OPTSTRING is followed by a colon, that means it wants an arg, - so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that - wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. - - If OPTSTRING starts with `-' or `+', it requests different methods of - handling the non-option ARGV-elements. - See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - - Long-named options begin with `--' instead of `-'. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. - - The elements of ARGV aren't really const, because we permute them. - But we pretend they're const in the prototype to be compatible - with other systems. - - LONGOPTS is a vector of `struct option' terminated by an - element containing a name which is zero. - - LONGIND returns the index in LONGOPT of the long-named option found. - It is only valid when a long-named option has been found by the most - recent call. - - If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. */ - -int -_getopt_internal (argc, argv, optstring, longopts, longind, long_only) - int argc; - char *const *argv; - const char *optstring; - const struct option *longopts; - int *longind; - int long_only; -{ - optarg = NULL; - - if (optind == 0) - optstring = _getopt_initialize (optstring); - - if (nextchar == NULL || *nextchar == '\0') - { - /* Advance to the next ARGV-element. */ - - if (ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ - - while (optind < argc - && (argv[optind][0] != '-' || argv[optind][1] == '\0')) - optind++; - last_nonopt = optind; - } - - /* The special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ - - if (optind != argc && !strcmp (argv[optind], "--")) - { - optind++; - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; - - optind = argc; - } - - /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ - - if (optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; - return EOF; - } - - /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ - - if ((argv[optind][0] != '-' || argv[optind][1] == '\0')) - { - if (ordering == REQUIRE_ORDER) - return EOF; - optarg = argv[optind++]; - return 1; - } - - /* We have found another option-ARGV-element. - Skip the initial punctuation. */ - - nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); - } - - /* Decode the current option-ARGV-element. */ - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - - if (longopts != NULL - && (argv[optind][1] == '-' - || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound; - int option_index; - - for (nameend = nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if (nameend - nextchar == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - - if (ambig && !exact) - { - if (opterr) - fprintf (stderr, "%s: option `%s' is ambiguous\n", - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - return '?'; - } - - if (pfound != NULL) - { - option_index = indfound; - optind++; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (opterr) - { - if (argv[optind - 1][1] == '-') - /* --option */ - fprintf (stderr, - "%s: option `--%s' doesn't allow an argument\n", - argv[0], pfound->name); - else - /* +option or -option */ - fprintf (stderr, - "%s: option `%c%s' doesn't allow an argument\n", - argv[0], argv[optind - 1][0], pfound->name); - } - nextchar += strlen (nextchar); - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, "%s: option `%s' requires an argument\n", - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ - if (!long_only || argv[optind][1] == '-' - || my_index (optstring, *nextchar) == NULL) - { - if (opterr) - { - if (argv[optind][1] == '-') - /* --option */ - fprintf (stderr, "%s: unrecognized option `--%s'\n", - argv[0], nextchar); - else - /* +option or -option */ - fprintf (stderr, "%s: unrecognized option `%c%s'\n", - argv[0], argv[optind][0], nextchar); - } - nextchar = (char *) ""; - optind++; - return '?'; - } - } - - /* Look at and handle the next short option-character. */ - - { - char c = *nextchar++; - char *temp = my_index (optstring, c); - - /* Increment `optind' when we start to process its last character. */ - if (*nextchar == '\0') - ++optind; - - if (temp == NULL || c == ':') - { - if (opterr) - { - if (posixly_correct) - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c); - else - fprintf (stderr, "%s: invalid option -- %c\n", argv[0], c); - } - optopt = c; - return '?'; - } - if (temp[1] == ':') - { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') - { - optarg = nextchar; - optind++; - } - else - optarg = NULL; - nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, "%s: option requires an argument -- %c\n", - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; - } - } - return c; - } -} - -int -getopt (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); -} - -#endif /* _LIBC or not __GNU_LIBRARY__. */ - -/* - -#ifdef TEST - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - - c = getopt (argc, argv, "abc:d:0123456789"); - if (c == EOF) - break; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif - -*/ diff --git a/Build/source/texk/chktex/getopt.h b/Build/source/texk/chktex/getopt.h deleted file mode 100644 index 45541f5ac0f..00000000000 --- a/Build/source/texk/chktex/getopt.h +++ /dev/null @@ -1,129 +0,0 @@ -/* Declarations for getopt. - Copyright (C) 1989, 1990, 1991, 1992, 1993 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 2, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#ifndef _GETOPT_H -#define _GETOPT_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns EOF, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message `getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of `struct option' terminated by an element containing a name which is - zero. - - The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field `flag' is not NULL, it points to a variable that is set - to the value given in the field `val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an `int' to - a compiled-in constant, such as set a value from `optarg', set the - option's `flag' field to zero and its `val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero `flag' field, `getopt' - returns the contents of the `val' field. */ - -struct option -{ -#if __STDC__ - const char *name; -#else - char *name; -#endif - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the `has_arg' field of `struct option'. */ - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -#if __STDC__ -#if defined(__GNU_LIBRARY__) -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ -extern int getopt (int argc, char *const *argv, const char *shortopts); -#else /* not __GNU_LIBRARY__ */ -extern int getopt (); -#endif /* not __GNU_LIBRARY__ */ -extern int getopt_long (int argc, char *const *argv, const char *shortopts, - const struct option *longopts, int *longind); -extern int getopt_long_only (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind); - -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind, - int long_only); -#else /* not __STDC__ */ -extern int getopt (); -extern int getopt_long (); -extern int getopt_long_only (); - -extern int _getopt_internal (); -#endif /* not __STDC__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* _GETOPT_H */ diff --git a/Build/source/texk/chktex/getopt1.c b/Build/source/texk/chktex/getopt1.c deleted file mode 100644 index 4e9b7ca9b2b..00000000000 --- a/Build/source/texk/chktex/getopt1.c +++ /dev/null @@ -1,189 +0,0 @@ -/* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987, 88, 89, 90, 91, 92, 1993 - 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 2, 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#ifdef HAVE_CONFIG_H -#if defined (emacs) || defined (CONFIG_BROKETS) -/* We use <config.h> instead of "config.h" so that a compilation - using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h - (which it would do because it found this file in $srcdir). */ -#include <config.h> -#else -#include "config.h" -#endif -#endif - -#include "getopt.h" - -#ifndef __STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif - -#include <stdio.h> - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#if defined (_LIBC) || !defined (__GNU_LIBRARY__) - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -#include <stdlib.h> -#else -char *getenv (); -#endif - -#ifndef NULL -#define NULL 0 -#endif - -int -getopt_long (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 0); -} - -/* Like getopt_long, but '-' as well as '--' can indicate a long option. - If an option that starts with '-' (not '--') doesn't match a long option, - but does match a short option, it is parsed as a short option - instead. */ - -int -getopt_long_only (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 1); -} - - -#endif /* _LIBC or not __GNU_LIBRARY__. */ - -/* -#ifdef TEST - -#include <stdio.h> - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - int option_index = 0; - static struct option long_options[] = - { - {"add", 1, 0, 0}, - {"append", 0, 0, 0}, - {"delete", 1, 0, 0}, - {"verbose", 0, 0, 0}, - {"create", 0, 0, 0}, - {"file", 1, 0, 0}, - {0, 0, 0, 0} - }; - - c = getopt_long (argc, argv, "abc:d:0123456789", - long_options, &option_index); - if (c == EOF) - break; - - switch (c) - { - case 0: - printf ("option %s", long_options[option_index].name); - if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case 'd': - printf ("option d with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif -*/ diff --git a/Build/source/texk/chktex/input.tex b/Build/source/texk/chktex/input.tex deleted file mode 100644 index 76bc301ff25..00000000000 --- a/Build/source/texk/chktex/input.tex +++ /dev/null @@ -1 +0,0 @@ -\this is a test of whether the file is actually inputted... |