summaryrefslogtreecommitdiff
path: root/Build/source/texk/chktex/chktex-1.7.3
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/chktex/chktex-1.7.3')
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/COPYING357
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/ChkTeX.c1083
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/ChkTeX.h359
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/ChkTeX.pdfbin226751 -> 0 bytes
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/ChkTeX.tex.in1827
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/ChkTeX.texrc6
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/FindErrs.c2043
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/FindErrs.h196
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/MakeHTML.pl20
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/NEWS166
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/OpSys.c492
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/OpSys.h207
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/README22
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/Resource.c514
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/Resource.h67
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/Test.nore.out489
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/Test.pcre.out504
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/Test.posix-ere.out507
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/Test.tex227
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/Utility.c972
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/Utility.h184
-rwxr-xr-xBuild/source/texk/chktex/chktex-1.7.3/autogen.sh49
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/chktex.1143
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/chktex.el56
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/chktexrc800
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/chkweb.1132
-rwxr-xr-xBuild/source/texk/chktex/chktex-1.7.3/chkweb.sh56
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/configure.in193
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/deweb.1116
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/deweb.in122
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/input.tex1
-rwxr-xr-xBuild/source/texk/chktex/chktex-1.7.3/lacheck27
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/m4/ax_cflags_strict_prototypes.m4170
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/m4/vl_prog_cc_warnings.m4111
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/rmeheader.in19
-rw-r--r--Build/source/texk/chktex/chktex-1.7.3/types.h17
36 files changed, 0 insertions, 12254 deletions
diff --git a/Build/source/texk/chktex/chktex-1.7.3/COPYING b/Build/source/texk/chktex/chktex-1.7.3/COPYING
deleted file mode 100644
index d4e8cec1128..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/COPYING
+++ /dev/null
@@ -1,357 +0,0 @@
- 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- The GNU General Public License version 2 is included below for your reference.
-
-------------------------------------------------------------------------
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
-
- 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- 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/chktex-1.7.3/ChkTeX.c b/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.c
deleted file mode 100644
index c83c0d84208..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.c
+++ /dev/null
@@ -1,1083 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Contact the author at:
- * Jens Berger
- * Spektrumvn. 4
- * N-0666 Oslo
- * Norway
- * E-mail: <jensthi@ifi.uio.no>
- *
- *
- */
-
-
-#include "ChkTeX.h"
-#ifdef KPATHSEA
-#include <kpathsea/getopt.h>
-#else
-#include <getopt.h>
-#endif
-#include "OpSys.h"
-#include "Utility.h"
-#include "FindErrs.h"
-#include "Resource.h"
-#include <string.h>
-
-#undef MSG
-#define MSG(num, type, inuse, ctxt, text) {(enum ErrNum)num, type, inuse, ctxt, text},
-
-struct ErrMsg PrgMsgs[pmMaxFault + 1] = {
- PRGMSGS {(enum ErrNum)pmMaxFault, etErr, TRUE, 0, INTERNFAULT}
-};
-
-struct Stack CharStack = {
- 0L
-}, InputStack =
-
-{
-0L}, EnvStack =
-
-{
-0L};
-
-/************************************************************************/
-
-const char BrOrder[NUMBRACKETS + 1] = "()[]{}";
-
-unsigned long Brackets[NUMBRACKETS];
-
-/************************************************************************/
-
-
-/*
- * Have to do things this way, to ease some checking throughout the
- * program.
- */
-
-
-NEWBUF(TmpBuffer, BUFSIZ);
-NEWBUF(ReadBuffer, BUFSIZ);
-
-static const char *Banner =
- "ChkTeX v" PACKAGE_VERSION " - Copyright 1995-96 Jens T. Berger Thielemann.\n"
-#ifdef __OS2__
- "OS/2 port generated with emx compiler, by Wolfgang Fritsch, <fritsch@hmi.de>\n"
-#elif defined(__MSDOS__)
- "MS-DOS port by Bj\\o rn Ove Thue, <bjort@ifi.uio.no>\n"
-#endif
-#if HAVE_PCRE
- "Compiled with PCRE regex support."
-#else
-#if HAVE_POSIX_ERE
- "Compiled with POSIX extended regex support."
-#else
- "Compiled with no regex support."
-#endif
-#endif
- "\n";
-
-static const char *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 terminate stdin input.\n";
-
-static const char *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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n";
-
-static const char *OnText = "On";
-
-static const char *OffText = "Off";
-
-static const char *HowHelp =
- "-h or --help gives usage information. See also ChkTeX.{ps,dvi}.\n";
-
-static const char *HelpText =
- "\n"
- "\n"
- " Usage of ChkTeX v" PACKAGE_VERSION "\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"
- " -L --nolinesupp: Disables per-line suppressions.\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 documentation ChkTeX.dvi, ChkTeX.ps or ChkTeX.pdf.\n";
-
-
-
-
-/*
- * Options we will set.
- *
- */
-
-enum Quote Quote;
-
-char 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;
-
-char *PrgName;
-
-int StdInTTY, StdOutTTY;
-
-/*
- * End of config params.
- */
-
-static int ParseArgs(int argc, char **argv);
-static void ShowIntStatus(void);
-static int OpenOut(void);
-static int ShiftArg(char **Argument);
-
-
-/*
- * Duplicates all arguments, and appends an asterix to each of them.
- */
-
-static void AddStars(struct WordList *wl)
-{
- unsigned long Count, CmdLen;
- char *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)
-{
- unsigned long i;
-
- AddStars(&VerbEnvir);
- AddStars(&MathEnvir);
-
- MakeLower(&UserWarnCase);
-
- ListRep(&WipeArg, ':', 0);
- ListRep(&NoCharNext, ':', 0);
-
-#define ThisItem ((char *) AbbrevCase.Stack.Data[i])
-
- FORWL(i, AbbrevCase)
- {
- if (isalpha((unsigned char)ThisItem[0]))
- {
- ThisItem[0] = toupper((unsigned char)ThisItem[0]);
- InsertWord(ThisItem, &Abbrev);
- ThisItem[0] = tolower((unsigned char)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 char *aName,
- struct WordList *b, const char *bName)
-{
- unsigned long i;
-
- FORWL(i, *a)
- {
- if (HasWord((char *) 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(char *From, char *To, long TSize, long MaxDiff)
-{
- char *Next;
- char *Orig;
- unsigned long Diff;
- static short HasExpandedTooLong = 0;
-
- 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;
-
- /* Make sure we don't expand this buffer out of the memory we
- * have allocated for it. */
- if ( Diff > MaxDiff+1 )
- {
- Diff = MaxDiff+1;
- if ( !HasExpandedTooLong )
- {
- PrintPrgErr(pmTabExpands, BUFSIZ);
- }
- HasExpandedTooLong = 1;
- }
- MaxDiff -= (Diff-1);
-
- memset(To, ' ', Diff);
- To += Diff;
-
- From = ++Next;
- }
- strcpy(To, From);
-}
-
-
-int main(int argc, char **argv)
-{
- int retval = EXIT_FAILURE, CurArg;
- unsigned long Count;
- int StdInUse = FALSE;
- long Tab = 8;
-
-#ifdef __LOCALIZED
-
- InitStrings();
-#endif
-
- OutputFile = stdout;
-#ifdef KPATHSEA
- kpse_set_program_name(argv[0], "chktex");
- PrgName = kpse_program_name;
-#ifdef WIN32
- setmode(fileno(stdout), _O_BINARY);
-#endif
-#else
- PrgName = argv[0];
-#endif
-
-#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, (char **) CmdLine.Stack.Data);
- CmdLine.Stack.Used = 1L;
- }
-
- if ((CurArg = ParseArgs((unsigned long) argc, argv)))
- {
- if (CmdLine.Stack.Used)
- {
- ParseArgs(CmdLine.Stack.Used, (char **) CmdLine.Stack.Data);
- CmdLine.Stack.Used = 1L;
- }
-
- if (!Quiet || LicenseOnly)
- fprintf(stderr, "%s", 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, "%s", BigBanner);
- }
-
- if (!StdOutTTY && PipeOutputFormat)
- OutputFormat = PipeOutputFormat;
-
- if (LicenseOnly)
- {
- fprintf(stderr, "%s", Distrib);
- }
- else
- {
- SetupLists();
- if (QuoteStyle)
- {
- if (!strcasecmp(QuoteStyle, "LOGICAL"))
- Quote = quLogic;
- else if (!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((unsigned char)*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)
- {
- const char *filename = NULL;
- if (CurArg < argc)
- filename = argv[CurArg++];
-
- if (!PushFileName(filename, &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, BUFSIZ - 1 - strlen(ReadBuffer) );
- strcpy(ReadBuffer, TmpBuffer);
-
- strcat(ReadBuffer, " ");
- FindErr(ReadBuffer, CurStkLine(&InputStack));
- }
-
- PrintStatus(CurStkLine(&InputStack));
- retval = EXIT_SUCCESS;
- }
- }
- }
- }
- }
- return retval;
-}
-
-/*
- * Opens the output file handle & possibly renames
- */
-
-static int OpenOut(void)
-{
- int 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)
- {
-#ifdef KPATHSEA
- if (!(OutputFile = fopen(OutputName, "wb")))
-#else
- if (!(OutputFile = fopen(OutputName, "w")))
-#endif
- {
- PrintPrgErr(pmOutOpen);
- Success = FALSE;
- }
- }
- }
- else
- OutputFile = stdout;
-
- return (Success);
-}
-
-#ifndef STRIP_DEBUG
-static void ShowWL(const char *Name, const struct WordList *wl)
-{
- unsigned long 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", (char *) 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
- unsigned long Cnt;
- const char *String;
- const char *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);
- BOOLSTAT("No line suppressions", NoLineSupp);
- }
-#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 */
- char **Argument) /* optarg or similar */
-{
- if (Argument && *Argument && isdigit((unsigned char)**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(int *Dest, /* Boolean value */
- char **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(char **Argument) /* optarg or similar */
-{
- if (Argument && *Argument && **Argument)
- return (*((char *) (*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'},
- {"nolinesupp", no_argument, 0L, 'L'},
- {"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;
- int 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:Lo:p:qrs:t::v::V::w:Wx::",
- long_options, &option_index)) != EOF))
- {
- while (c)
- {
- nextc = 0;
- switch (c)
- {
- case 's':
- if (!(Delimit = strdup(optarg)))
- {
- PrintPrgErr(pmStrDupErr);
- ArgErr = aeMem;
- }
-
- break;
- case 'p':
- if (!(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 'L':
- NoLineSupp = 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((unsigned char)*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':
- if (!(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
- {
- if (!(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("%s", 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, ...)
-{
- const char *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-1.7.3/ChkTeX.h b/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.h
deleted file mode 100644
index a5865d6695a..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
-#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
-
-/* For TeX Live */
-#ifdef KPATHSEA
-#include <kpathsea/config.h>
-#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
-
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-
-#include "types.h"
-
-#ifndef LONG_MAX
-# define LONG_MAX (0x7fffffff)
-#endif
-
-#ifndef CHAR_BIT
-# define CHAR_BIT (8)
-#endif
-
-#include "FindErrs.h"
-
-#if defined(HAVE_FILENO) && defined(HAVE_ISATTY)
-# include <stdio.h>
-#endif
-
-/*
- * Define aliases for preprocessor statements
- */
-
-#if defined(__unix__) || defined(__unix) || defined(unix)
-#undef __unix__
-#define __unix__ 1
-#elif defined(MSDOS) || defined(__MSDOS__) || defined(__msdos__)
-#undef __MSDOS__
-#define __MSDOS__ 1
-#endif
-
-/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */
-
-/*
- * 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))
-
-#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 char _ ## name [len + (WALLBYTES<<1)] = {0}; \
-char *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.")\
- MSG(pmNoRegexMem, etErr, TRUE, 0,\
- "Unable to allocate regular expressions - no memory?\n")\
- MSG(pmRegexCompileFailed, etWarn, TRUE, 0,\
- "Compilation of regular expression %s failed with error %s.\n")\
- MSG(pmRegexMatchingError, etErr, TRUE, 0,\
- "PCRE matching error %d.\n") \
- MSG(pmSuppTooHigh, etWarn, TRUE, 0,\
- "Warning %d is numbered too high (max %d) and won't be suppressed.\n") \
-MSG(pmLongLines, etWarn, TRUE, 0,\
- "ChkTeX does not handle lines over %d bytes correctly. Some errors and line numbers may be wrong in this file.") \
-MSG(pmTabExpands, etWarn, TRUE, 0,\
- "ChkTeX could not fully expand tabs because the resulting line would be more than %d bytes. Some errors and line numbers may be wrong in this file.")
-
-#undef MSG
-#define MSG(num, type, inuse, ctxt, text) num,
-enum PrgErrNum
-{
- PRGMSGS pmMaxFault
-};
-#undef MSG
-
-extern struct ErrMsg PrgMsgs[pmMaxFault + 1];
-
-struct ErrInfo
-{
- char *Data;
- const char *LineBuf;
- const char *File;
- unsigned long Line, Column, ErrLen;
- enum
- {
- efNone = 0x00,
- efNoItal = 0x01,
- efItal = 0x02,
- efNoMath = 0x04,
- efMath = 0x08
- } Flags;
-};
-
-extern char *ReadBuffer;
-extern char *CmdBuffer;
-extern char *TmpBuffer;
-
-extern const char BrOrder[NUMBRACKETS + 1];
-
-extern unsigned long Brackets[NUMBRACKETS];
-
-
-extern FILE *OutputFile, *InputFile;
-
-/* We include semicolons on all but the last so that we can include a
- * semicolon where it's called. This helps with indentation at the
- * calling location. It also means that DEF must never have a
- * semicolon. The reason for the care is that isolated semicolons
- * have been known to break some compilers. */
-/* See also RESOURCE_INFO where the same trick doesn't work, and we
- * cannot include semicolons at the calling site, regardless of
- * indentation concerns. */
-#define OPTION_DEFAULTS \
- DEF(int, GlobalRC, TRUE); \
- DEF(int, WipeVerb, TRUE); \
- DEF(int, BackupOut, TRUE); \
- DEF(int, Quiet, FALSE); \
- DEF(int, LicenseOnly, FALSE); \
- DEF(int, UsingStdIn, FALSE); \
- DEF(int, InputFiles, TRUE); \
- DEF(int, HeadErrOut, TRUE); \
- DEF(const char *, OutputName, ""); \
- DEF(const char *, PseudoInName, NULL); \
- DEF(char *, OutputFormat, VerbNormal); \
- DEF(char *, PipeOutputFormat, NULL); \
- DEF(const char *, Delimit, ":"); \
- DEF(long, DebugLevel, 0); \
- DEF(int, NoLineSupp, FALSE)
-
-#define STATE_VARS \
- DEF(enum ItState, ItState, itOff); /* Are we doing italics? */ \
- DEF(int, AtLetter, FALSE); /* Whether `@' is a letter or not. */ \
- DEF(int, InHeader, TRUE); /* Whether we're in the header */ \
- DEF(int, VerbMode, FALSE); /* Whether we're in complete ignore-mode */ \
- DEF(long, MathMode, 0); /* Whether we're in math mode or not */ \
- DEF(const char *, VerbStr, ""); /* String we'll terminate verbmode upon */ \
- DEF(unsigned long, ErrPrint, 0); /* # errors printed */ \
- DEF(unsigned long, WarnPrint, 0); /* # warnings printed */ \
- DEF(unsigned long, UserSupp, 0); /* # user suppressed warnings */ \
- DEF(unsigned long, LineSupp, 0); /* # warnings suppressed on a single line */ \
- DEF(uint64_t, FileSuppressions, 0); /* # warnings suppressed in a file */ \
- DEF(uint64_t, UserFileSuppressions, 0) /* # User warnings suppressed in a file */
-
-#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 int StdInTTY, StdOutTTY, UsingStdIn;
-
-int main(int argc, char **argv);
-void PrintPrgErr(enum PrgErrNum, ...);
-void ErrPrintf(const char *fmt, ...);
-
-extern char *PrgName;
-
-#endif /* CHKTEX_H */
diff --git a/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.pdf b/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.pdf
deleted file mode 100644
index 246c2a502a1..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.pdf
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.tex.in b/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.tex.in
deleted file mode 100644
index 3f68e866ca7..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.tex.in
+++ /dev/null
@@ -1,1827 +0,0 @@
-%%
-%% ChkTeX v@PACKAGE_VERSION@, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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.
-%%
-
-
-
-\documentclass[a4paper]{article}
-%latex
-\usepackage{array, tabularx, verbatim, multicol}
-\usepackage[T1]{fontenc}
-\nonfrenchspacing
-\newcounter{errornum}
-\setcounter{errornum}{1}
-%endlatex
-\newcommand{\jtbt}{Jens~T. Berger~Thielemann}
-\newcommand{\Cmd}[1]{``\texttt{#1}''}
-\newcommand{\rsrc}{``\texttt{chktexrc}''}
-\newcommand{\chktex}{Chk\TeX}
-
-%latex
-\newcolumntype{Y}{>{\raggedright\arraybackslash}X}
-\newcommand{\fmted}[1]{%
- {\noindent\large%
- \begin{tabularx}{\linewidth}{lY}%
- \bf Warning \theerrornum: & \texttt{#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}}
-\makeatother
-
-
-\newenvironment{errexam}
-{
-\vskip 0pt plus 5pt
-\begin{center}
-}
-{\end{center}}
-\columnseprule 0.1pt
-
-%!\newcommand{\BS}{\verb@\@}
-%!\newcommand{\chktex}{ChkTeX}
-%!\newcommand{\slash}{/}
-%endlatex
-
-
-\title{\chktex\ v@PACKAGE_VERSION@}
-\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
-\emph{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.
-For example, recent versions of AUC\TeX\ (the Emacs mode) interface
-beautifully with \chktex.
-
-The program itself does not have any machine requirements; However compiling
-for other platforms has not been done for a long time now so the code has been
-removed. If interest rises it can be resurrected.
-
-
-\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.
-
-\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.
- \item Ability to suppress warnings on a single line.
- \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
- systems which only support lacheck.
-\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 \emph{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. \\
- 51 Franklin Street \\
- Fifth Floor \\
- Boston \\
- MA 02110-1301 \\
- USA
-\end{quote}
-
-
-\section{Availability}
-
-This program is on CTAN\@; thus it can be found at any mirrors of those.
-It is also part of TeX Live 2011.
-
-\section{Installation}
-
-A few words on installation on various platforms:
-
-\begin{description}
-\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.
-
- 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-pcre}:] Allows using PCRE (perl compatible
- regular expressions) for use defined warnings. The default is
- to use PCRE if it is installed on your system as determined by
- \Cmd{pcre-config}. You can use \Cmd{-{}-disable-pcre} if you
- plan to distribute this for systems in which you cannot ensure
- PCRE will be installed.
-
- User defined regular expressions are defined using
- \texttt{UserWarnRegex} in the \rsrc\ file. See warning~44 for
- more information.
-
- \item[\Cmd{-{}-enable-lacheck-replace}] This enables a quick
- hack for using \chktex\ instead of lacheck. This is done by
- installing a stub script which ``overrides'' the original
- lacheck executable. In this way, tools which support lacheck
- can be easily made to support chktex instead.
-
- \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. Do not
- forget to 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}
-\paragraph{Note:} You \emph{must} install the new \rsrc\ file; \chktex\ will
-fail to function otherwise!
-
- After doing this, you may enhance \chktex' behaviour by
-reading/editing the \rsrc\ file.
-
-%latex
-\section{Usage}
-
-\subsection{\chktex}
-
-\subsubsection{Synopsis}
-
-A UNIX-compliant template format follows:
-
-\newcommand{\Group}[1]{\mbox{[#1]}}
-\begin{tabularx}{.95\linewidth}{lY}
- \texttt{chktex} & \ttfamily \Group{-hiqrW} \Group{-v[0-\dots]} \Group{-l
- <rcfile>} \Group{-[wemn] <[1-42]|all>} \Group{-d[0-\ldots]} \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[\texttt{-h [-{}-help]}] Gives you a command summary.
- \item[\texttt{-i [-{}-license]}] Shows distribution information.
- \item[\texttt{-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 \texttt{-g}.
- \item[\texttt{-r [-{}-reset]}] This will reset all settings to their
- defaults. This may be useful if you use the \texttt{CMDLINE}
- directive in your \rsrc\ file, and wish to do something
- unusual.
- \item[\texttt{-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[\texttt{-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 \emph{all} warnings.
- \begin{description}
- \item[\texttt{-w [-{}-warnon]}] Makes the message number passed as
- parameter a warning and turns it on.
- \item[\texttt{-e [-{}-erroron]}] Makes the message number passed as
- parameter an error and turns it on.
- \item[\texttt{-m [-{}-msgon]}] Makes the message number passed as
- parameter a message and turns it on. Messages are not counted.
- \item[\texttt{-n [-{}-nowarn]}] Turns the warning/error number passed
- as a parameter off.
- \item[\texttt{-L [-{}-nolinesupp]}] Turns off suppression of messages
- on a per line basis. This is meant to be used to ensure that no new
- errors have crept into a document while editing.
- \end{description}
-\item[Output control flags:] Determines the appearance and
- destination of the error reports.
- \begin{description}
- \item[\texttt{-q [-{}-quiet]}] Shuts up about copyright information.
- \item[\texttt{-o [-{}-output]}] Normally, all errors are piped to \texttt{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 \texttt{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[\texttt{-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 \emph{second} entry in the
- \rsrc\ file), using \texttt{-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 \texttt{awk}, \texttt{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 \texttt{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[\texttt{-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]{\texttt{\%#1} &}
- \begin{tabularx}{\linewidth}{cX}
- \bf Code & \bf Description \\
- \Pf{b} String to print \textbf{b}etween fields (from \texttt{-s}
- option).\\
- \Pf{c} \textbf{C}olumn position of error. \\
- \Pf{d} Length of error (\textbf{d}igit). \\
- \Pf{f} Current \textbf{f}ilename.\\
- \Pf{i} Turn on \textbf{i}nverse printing mode.\\
- \Pf{I} Turn off \textbf{i}nverse printing mode.\\
- \Pf{k} \textbf{k}ind of error (warning, error, message).\\
- \Pf{l} \textbf{l}ine number of error.\\
- \Pf{m} Warning \textbf{m}essage.\\
- \Pf{n} Warning \textbf{n}umber.\\
- \Pf{u} An \textbf{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 (\textbf{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 \emph{not} support field lengths (yet).
- This may come in the future, if I get the time\dots
-
- The \texttt{-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[\texttt{-V [-{}-pipeverb]}] Which entry we'll use in the \rsrc\
- file whenever \texttt{stdout} isn't a terminal.
-
- The default is to use the same mode as specified with the
- \texttt{-v} switch; using \texttt{-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[\texttt{-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[\texttt{-s [-{}-splitchar]}] String to use instead of the
- colons when doing \texttt{-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 \texttt{0}, the feature will
- be disabled, if it is \texttt{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[\texttt{-b [-{}-backup]}] If you use the \texttt{-o} switch, and the
- named outputfile exists, it will be renamed to \texttt{filename.bak}.
- \item[\texttt{-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[\texttt{-H [-{}-headererr]}] Show errors found in front of the
- \verb@\begin{document}@ line. Some people keep \emph{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[\texttt{-g [-{}-globalrc]}] Read in the global resource file. This
- switch may be useful together with the \texttt{-l} option.
- \item[\texttt{-t [-{}-tictoc]}] Display a twirling baton, to show that
- we're working. \texttt{-v0} does an \texttt{-t0}, too, as it assumes
- that the user then uses the program non-interactively. This is
- now a no-op.
- \item[\texttt{-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 \texttt{stdin}. To abort \texttt{stdin} input, press the
-following keycombinations:
-
-\smallskip
-\begin{tabular}{ll}
- \bf Machine & \bf Key-combination \\
- UNIX & $\fbox{\texttt{Ctrl}} + \fbox{\texttt{D}}$ \\
- MS-DOS & $\fbox{\texttt{Ctrl}} + \fbox{Z}$, followed by return.
-\end{tabular}
-\smallskip
-
-By default, we use GNU's \Cmd{getopt()} routine.
-
-\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 it is
-self-documenting, you should be able to get the meaning of each
-keyword by simply reading the file. In fact, since not all options
-are described in this documentation it is necessary that you read
-the \rsrc\ file in order to understand them all. The method for
-\emph{finding it} has grown rather complex. An outline is given below.
-
-If \chktex\ finds multiple files when searching, each and every one
-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. On UNIX boxes, this usually
- evaluates to something similar to
- \Cmd{/usr/local/share/chktexrc}, 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 \\
- 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 \\
- 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 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{Per Line and File Suppressions}
-
-There are many cases in which \chktex{} will give a warning about a
-construct which, although it usually indicates a mistake, is
-intentional. In these cases it can be extremely annoying to have
-this message appear everytime \chktex{} is run. For this reason you
-can use \LaTeX{} comments to suppress a certain message on a single
-line. This can be done by adding a (case-insensitive) comment at the
-end of the line of the form
-\begin{center}
- \verb+% chktex ##+
-\end{center}
-where \verb+##+ is the number of the message to be suppressed.
-For example the line
-\begin{center}
- \verb+$[0,\infty)$+\\*
-\end{center}
-will produce a warning (number 9) about mismatched \verb+]+ and \verb+)+.
-However the lines
-\begin{center}
- \verb+$[0,\infty)$ % chktex 9+\\*
- \verb+$[0,\infty)$ % ChkTeX 9+\\*
-\end{center}
-will not produce such a message. In this case, message number 17 will
-still appear at the end, stating that the numbers of \verb+]+ and
-\verb+)+ don't match for the entire file.
-
-To suppress two different errors on the same line you will need two
-instances of \verb+chktex+ in the comment. This format is a little
-cumbersome, but it shouldn't be needed often, and hopefully will help
-avoid accidental suppressions.
-\begin{center}
- \verb+Jordan--H\"older on $[0,\infty)$ % chktex 8 chktex 9+\\*
-\end{center}
-
-One problem inherent in line-by-line suppressions is that during editing
-another error of the same type may creep into the same line. Therefore,
-I suggest using the \texttt{-L} or \texttt{-{}-nolinesupp} option to
-disallow line based suppressions once just before the document is finished.
-At that point you should go back over all the warnings and decide if they
-should be fixed.
-
-In addition to line-specific suppressions, you can create a suppression which will be in effect for the remainder of the file.
-This can be used, for example, to turn off warning 18 (about \verb+"+) in a file which uses a package (like \Cmd{babel}) where \verb+"+ is an active character.
-The syntax is nearly the same, namely
-\begin{center}
- \verb+% chktex-file ##+
-\end{center}
-
-\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} or several of \Cmd{babel} languages
- which use \verb+"+ as an active character; 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. Alternately, you can put
- \verb+% chktex-file 18+ in your files which use one of these packages so
- that other files will still have these checks performed.
-\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.
-
-Long lines are broken up into chunks and handled separately. The exact
-length is platform dependent, though is guaranteed to be at least 256 bytes.
-The first portions of the line will have line numbers that are 1 less than
-they should be. Some errors can be missed and some can be added erroneously.
-A warning will be issued if lines are too long.
-
-Before submitting a bug report, please first see whether the problem can be
-solved by editing the \rsrc\ file appropriately.
-
-
-
-\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
-\texttt{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 \texttt{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}
-
-\texttt{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 \texttt{lacheck}, or spell-checkers like \texttt{ispell}.
-
-When \texttt{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 \texttt{cweave}, which output is truly difficult to figure
-anything out from).
-
-\texttt{deweb} accepts a list of filenames on the argument line, and will send
-its output to \texttt{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 \texttt{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.
-
-\texttt{deweb} should now understand all correct \texttt{CWEB} opcodes. If it
-complains about not understanding a correct opcode, please inform the
-author.
-
-\subsubsection{Bugs}
-
-\texttt{deweb} will not even \emph{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{\texttt{\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.
-
- You can also specify regular expressions to match commands which can
- safely be terminated with a space. They are specified in the
- \rsrc\ file in \texttt{[]}, which in some other cases is used to
- indicate case-insensitive matching. This is used for example to
- support the \verb+\startXXX+ macros of Con\TeX t.
-
- \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\\DashExcpt}
-\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 & \texttt{WordDash} \\*
- Number & \texttt{NumDash} \\*
- Alphabetic character & \texttt{HyphDash} \\*
- \end{tabular}
-
- This is more or less correct, according to my references. One
- complication is that most often a hyphen (single dash) is desired
- between letters, but occasionally an n-dash (double dash) is
- required. This is the case for theorems named after two people
- e.g.\ Jordan--H\"older. A hyphen would indicate that it was one
- person with a hyphenated name e.g.\ Gregorio Ricci-Curbastro.
- If this is rare enough, it can be dealt with via line based suppressions.
- However, exceptions can also be handled by adding them to the
- \texttt{DashExcpt} list. The ``words'' in this list are
- considered to be correct regardless of any other settings.
- Adding \verb+Jordan--H\"older+ to this list will cause no warning
- to be issued. There is still the problem that no warning will be
- raised for Jordan-H\"older (unless added explicitly via regular
- expression), so care must still be taken.
-
- Some manuals---particularly American manuals---also suggest
- \emph{not} adding space around an m-dash (triple dash).
- Hopefully this check can be improved even more (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.}
- Either brackets or environments don't match.
- \chktex\ expects 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
- between the dots. The \verb@\ldots@ is much more suitable for this.
- Similar problems are noted for two periods in a row (instead of three)
- since lacheck does.
-
- 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.
-
- You can also specify case-insensitive abbreviations in \texttt{[]}, though
- only the first letter is actually case-insensitive.
-
- \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
- \emph{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, \emph{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, \emph{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: \%s.}
- A substring you've specified using \texttt{UserWarn} in the \rsrc\ file,
- has been found. See also warning~44 which allows using regular
- expressions. You can also specify case-insensitive versions in
- \texttt{[]}.
- % Normally I would use a ref here, but if the numbers change that would be
- % hugely backwards incompatible. Also it would require adding special label code.
-\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. Setting
- this warning allows you to see notes you have left in comments.
-\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.
-
- Warning~42 is similar in that it warns about spaces in front of footnotes.
- The difference is that the warning text makes more sense for that case.
-
- \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 numeric 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 requires that the input file exist\dots
-
-\end{errdesc}
-
-\Keyword{Italic\\ItalCmd\\NonItalic}
-\begin{errdesc}{Don't use \BS/ in front of small punctuation.}
- Italic correction should generally \emph{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 \emph{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 \emph{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 \emph{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}
-
-\Keyword{UserWarnRegex}
-\begin{errdesc}{User Regex:\ \%s.}
- A pattern you've specified using \texttt{UserWarnRegex} in the \rsrc\ file,
- has been found. See also warning~20 which allows specification of simple
- string matching.
-
- Depending on how \chktex\ was configured, you can use either PCRE regular
- expressions, POSIX extended regular expressions, or none at all.
- A warning will be issued if \chktex\ was built without regular expression
- support, but you try to use one.
-
- By default the matching portion of the line is printed to help distinguish
- between user specified regular expressions. However, if the regular
- expression begins with a PCRE comment (which has a syntax of
- \verb+(?#+~\dots~\verb+)+), then that comment will be printed instead.
- This can be used to remind yourself why you were searching for the problem
- or how to fix it. This applies even if POSIX regular expressions are used
- since \chktex\ itself parses a single initial PCRE-style comment.
-
- \emph{Note:} If a regular expression (not a comment) starts with
- \texttt{PCRE:} or \texttt{POSIX:} it will be used only if support for that
- regular expression engine has been compiled in. It is primarily meant to
- make testing easier but, can be used to allow better regular expressions
- if PCRE is available. If you want a regular expression that starts with
- \texttt{PCRE:} or \texttt{POSIX:} then you can enclose one of the
- characters in brackets like \texttt{[P]CRE:}.
-
- An example, included in the \rsrc\ file, is given below. Remember that you
- have to escape (with~\verb+!+) spaces and \verb+#+ as well as a few other
- characters. One should always use \verb+\nmid+ instead of \verb+\not\mid+
- because the results are much better.
- \begin{errexam}
- \verb+\\not! *(\||\\mid)+\\*
- \verb+User Regex: \not\mid.+\\*
- \end{errexam}
- or with an initial comment
- \begin{errexam}
- \verb+(?!#Always! use! \nmid)\\not! *(\||\\mid)+\\*
- \verb+User Regex: Always use \nmid.+
- \end{errexam}
-
- You can use \verb+% chktex 44+ to suppress user regular expression
- warnings on a given line, but this is often undesirable since all such
- warnings are suppressed this way. For this reason you can ``name'' user
- regular expression warnings with negative numbers. For example
- \verb+% chktex 4+ will suppress the system warning number 4, but
- \verb+% chktex -4+ will suppress the user regular expression warning
- number 4. Since one might wish to add, remove, or rearrange user warnings
- in the \rsrc\ file, you must explicitly name particular warnings rather
- than relying on position in that file.
-
- In order to name one, include an initial PCRE-style comment with the first
- characters being a number (positive or negative---the absolute value will
- be used). The numbers are limited by the number of bits in a \texttt{long},
- usually giving 1--63 as possible names. You can give more than one regular
- expression the same name, and suppressing that name will suppress all
- regular expressions with that name.
-
- Using the example from before, all of the following will be suppressed with
- \verb+% chktex -4+. Note that the name \emph{will} be printed as written
- so that you know which number to suppress.
- \begin{errexam}
- \verb+(?!#4:Always! use! \nmid)\\not! *(\||\\mid)+\\*
- \verb+(?!#-4Always! use! \nmid)\\not! *(\||\\mid)+\\*
- \verb+(?!#-4! Always! use! \nmid)\\not! *(\||\\mid)+\\*
- \end{errexam}
-\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 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.
-\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{\texttt{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\texttt{html}, I'm willing to do the
- same in order to produce \texttt{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, \emph{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 Interfaces for other editors are also welcomed.
-
-\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}
-
-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
-\texttt{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 \texttt{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
-
-
-\section{Thanks}
-
-The author wishes to thank the following people (in alphabetical order):
-
-\def\Name#1#2{%
-\item[]
- \setbox0=\hbox{
- \begin{tabular}{l}
- \textbf{#1} \\
- \texttt{#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 caught\dots
-
- 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{Antonio DiCesare}{dicesare@vodafone.it}
- He provided many feature requests and bug reports for the 1.7.1
- version making it a much better release than it would have otherwise
- been. He also helped expand several keywords in the \rsrc\ file.
-
- \Name{Mojca Miklavec}{mojca.miklavec.lists@gmail.com}
- Found and helped debug a problem (fixed in 1.7.2) occurring only on
- some platforms, 32 bit Macs for one.
-
- \Name{Baruch Even}{chktex@ev-en.org}
- Maintainer of \chktex\ for about a decade.
-
- \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: \texttt{<jensthi@ifi.uio.no>}
- \end{quote}
-%latex
-\end{samepage}
-%endlatex
-Any signs of intelligent life are welcomed; that should exclude piracy.
-
-Since the original author is unreachable, the maintainer these days is:
-%latex
-\begin{samepage}
-%endlatex
- \begin{quote}
- Ivan Andrus \\
- E-mail: \texttt{<darthandrus@gmail.com>}
- \end{quote}
-%latex
-\end{samepage}
-%endlatex
-
-\medskip\noindent
-Have fun.
-
-\end{document}
-
-% The "Make" target is my own.
-% Local Variables:
-% TeX-command-default: "Make"
-% TeX-master: "ChkTeX.tex"
-% End:
diff --git a/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.texrc b/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.texrc
deleted file mode 100644
index e990c71d1be..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.texrc
+++ /dev/null
@@ -1,6 +0,0 @@
-# Ignore file for ChkTeX.tex, since it shows many errors in its examples
-# it raises many errors when checking ChkTeX.tex with chktex itself.
-
-VerbEnvir { errexam errdesc }
-
-WipeArg { \Cmd:{} }
diff --git a/Build/source/texk/chktex/chktex-1.7.3/FindErrs.c b/Build/source/texk/chktex/chktex-1.7.3/FindErrs.c
deleted file mode 100644
index 36cd2f77184..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/FindErrs.c
+++ /dev/null
@@ -1,2043 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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"
-
-#if HAVE_PCRE || HAVE_POSIX_ERE
-
-#if HAVE_PCRE
-#include <pcreposix.h>
-#else
-#include <regex.h>
-#endif
-
-#define REGEX_FLAGS REG_EXTENDED
-#define NUM_MATCHES 10
-#define ERROR_STRING_SIZE 100
-
-regex_t* RegexArray = NULL;
-regex_t* SilentRegex = NULL;
-int NumRegexes = 0;
-
-#endif
-
-/***************************** 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((unsigned char)c) || (AtLetter && (c == '@')))
-#define CTYPE(func) \
-static int my_##func(int c) \
-{ \
- return(func(c)); \
-}
-
-#define SUPPRESSED_ON_LINE(c) (LineSuppressions & ((uint64_t)1<<c))
-
-#define INUSE(c) \
- ((LaTeXMsgs[(enum ErrNum) c].InUse == iuOK) && !SUPPRESSED_ON_LINE(c))
-
-#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--)) \
- { \
- if (!(check)) break; \
- } \
- ptr++;
-
-#define SKIP_AHEAD(ptr, c, check) \
- while((c = *ptr++)) \
- { \
- if (!(check)) \
- break; \
- } \
- ptr--;
-
-
-/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */
-
-/*
- * A list of characters LaTeX considers as an end-of-sentence characters, which
- * should be detected when whether sentence spacing is correct.
- *
- */
-static const char LTX_EosPunc[] = { '.', ':', '?', '!', 0 };
-
-/*
- * General punctuation characters used on your system.
- */
-static const char LTX_GenPunc[] = { ',', ';', 0 };
-
-/*
- * A list of characters LaTeX considers as an small punctuation characters,
- * which should not be preceded by a \/.
- */
-static const char LTX_SmallPunc[] = { '.', ',', 0 };
-
-/*
- * String used to delimit a line suppression. This string must be
- * followed immediately by the number of the warning to be suppressed.
- * If more than one warning is to be suppressed, then multiple copies
- * of LineSuppDelim+number must be used.
- */
-const char LineSuppDelim[] = "chktex ";
-
-/*
- * String used to delimit a file suppression. This string must be
- * followed immediately by the number of the warning to be suppressed.
- * If more than one warning is to be suppressed, then multiple copies
- * of FileSuppDelim+number must be used.
- */
-const char FileSuppDelim[] = "chktex-file ";
-
-/*
- * A bit field used to hold the suppressions for the current line.
- */
-static uint64_t LineSuppressions;
-/*
- * A bit field used to hold the suppressions of numbered user warnings
- * for the current line.
- */
-static uint64_t UserLineSuppressions;
-
-static unsigned long Line;
-
-static const char *RealBuf;
-static char *LineCpy = NULL;
-static char *BufPtr;
-
-static int ItFlag = efNone;
-static int MathFlag = efNone;
-
-NEWBUF(Buf, BUFSIZ);
-NEWBUF(CmdBuffer, BUFSIZ);
-NEWBUF(ArgBuffer, BUFSIZ);
-
-static enum ErrNum PerformCommand(const char *Cmd, char *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 char *GetLTXToken(char *Src, char *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 char *GetLTXArg(char *SrcBuf, char *OrigDest, const int Until,
- struct WordList *wl)
-{
- char *Retval;
- char *TmpPtr;
- char *Dest = OrigDest;
- unsigned long 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))
- {
- int len = strlen(OrigDest+1);
- memmove(OrigDest, OrigDest + 1, len + 1);
- /* Strip the last '}' off */
- OrigDest[len-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 char *MakeCpy(void)
-{
- if (!LineCpy)
- LineCpy = strdup(RealBuf);
-
- if (!LineCpy)
- PrintPrgErr(pmStrDupErr);
-
- return (LineCpy);
-}
-
-static char *PreProcess(void)
-{
- char *TmpPtr;
-
- /* Reset any line suppressions */
-
- LineSuppressions = FileSuppressions;
- UserLineSuppressions = UserFileSuppressions;
-
- /* Kill comments. */
- strcpy(Buf, RealBuf);
-
- TmpPtr = Buf;
-
- while ((TmpPtr = strchr(TmpPtr, '%')))
- {
- char *EscapePtr = TmpPtr;
- int NumBackSlashes = 0;
- while (EscapePtr != Buf && EscapePtr[-1] == '\\')
- {
- ++NumBackSlashes;
- --EscapePtr;
- }
-
- /* If there is an even number of backslashes, then it's a comment. */
- if ((NumBackSlashes % 2) == 0)
- {
- PSERR(TmpPtr - Buf, 1, emComment);
- *TmpPtr = 0;
- /* Check for line suppressions */
- if (!NoLineSupp)
- {
- int error;
- const int MaxSuppressionBits = 63;
-
- /* Convert to lowercase to compare with LineSuppDelim */
- EscapePtr = ++TmpPtr; /* move past NUL terminator */
- while ( *EscapePtr )
- {
- *EscapePtr = tolower((unsigned char)*EscapePtr);
- ++EscapePtr;
- }
-
- EscapePtr = TmpPtr; /* Save it for later */
- while ((TmpPtr = strstr(TmpPtr, FileSuppDelim))) {
- TmpPtr += STRLEN(FileSuppDelim);
- error = atoi(TmpPtr);
-
- if (abs(error) > MaxSuppressionBits)
- {
- PrintPrgErr(pmSuppTooHigh, error, MaxSuppressionBits);
- }
- if (error > 0)
- {
- FileSuppressions |= ((uint64_t)1 << error);
- LineSuppressions |= ((uint64_t)1 << error);
- }
- else
- {
- UserFileSuppressions |= ((uint64_t)1 << (-error));
- UserLineSuppressions |= ((uint64_t)1 << (-error));
- }
- }
- TmpPtr = EscapePtr;
-
- while ((TmpPtr = strstr(TmpPtr, LineSuppDelim))) {
-
- TmpPtr += STRLEN(LineSuppDelim);
- error = atoi(TmpPtr);
-
- if (abs(error) > MaxSuppressionBits)
- {
- PrintPrgErr(pmSuppTooHigh, error, MaxSuppressionBits);
- }
-
- if (error > 0)
- {
- LineSuppressions |= ((uint64_t)1 << error);
- }
- else
- {
- UserLineSuppressions |= ((uint64_t)1 << (-error));
- }
- }
- }
- break;
- }
- TmpPtr++;
- }
- return (Buf);
-}
-
-/*
- * Interpret environments
- */
-
-static void PerformEnv(char *Env, int Begin)
-{
- static char 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 char *SkipVerb(void)
-{
- char *TmpPtr = BufPtr;
- int TmpC;
-
- if (VerbMode && BufPtr)
- {
- if (!(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(char *PrePtr, char *PstPtr)
-{
- unsigned long 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);
-
- if (!(Front && Back))
- {
- CHECKDOTS(LowDots, dtLDots);
- }
- return (Front & Back);
- }
- else
- return (dtLDots);
-
-}
-
-static const char *Dot2Str(enum DotLevel dl)
-{
- const char *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(const char *Cmd, char *CmdPtr)
-{
- unsigned long CmdLen = strlen(Cmd);
- const char *Format;
- char *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));
- 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 ']':
- case ')':
- break;
- default:
- PrintPrgErr(pmWrongWipeTemp, &Cmd[strlen(Cmd) + 1]);
- break;
- }
- }
-
- if (TmpPtr)
- strwrite(CmdPtr+CmdLen, VerbClear, TmpPtr - CmdPtr - CmdLen);
- else
- strxrep(CmdPtr+CmdLen, "()[]{}", *VerbClear);
- }
-}
-
-/*
- * Checks italic.
- *
- */
-
-static void CheckItal(const char *Cmd)
-{
- int TmpC;
- char *TmpPtr;
- if (HasWord(Cmd, &NonItalic))
- ItState = itOff;
- else if (HasWord(Cmd, &Italic))
- ItState = itOn;
- else if (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(char *CmdPtr)
-{
- char *TmpPtr;
- const char *ArgEndPtr;
- unsigned long 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 && (*BufPtr != '*' || BufPtr[1]))
- {
- if (*BufPtr == '*')
- TmpPtr = strchr(&BufPtr[2], BufPtr[1]);
- else
- TmpPtr = strchr(&BufPtr[1], *BufPtr);
- if (TmpPtr)
- 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((unsigned char)CmdPtr[-1]))
- PSERRA(CmdPtr - Buf - 1, 1, emRemPSSpace, CmdBuffer);
-
- if ((TmpPtr = HasWord(CmdBuffer, &NoCharNext)))
- {
- char *BPtr = BufPtr;
-
- TmpPtr += strlen(TmpPtr) + 1;
- SKIP_AHEAD(BPtr, TmpC, LATEX_SPACE(TmpC));
-
- if (strchr(TmpPtr, *BPtr))
- {
- PSERR2(CmdPtr - Buf, CmdLen, emNoCharMean, CmdBuffer, *BPtr);
- }
- }
-
- /* LaTeX environment tracking */
- if (!strcmp(CmdBuffer, "\\begin") || !strcmp(CmdBuffer, "\\end"))
- {
- if (ArgEndPtr)
- {
- if (!strcmp(ArgBuffer, "document"))
- InHeader = FALSE;
-
- if (CmdBuffer[1] == 'b')
- {
- if (!(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, (int) CmdBuffer[1] == 'b');
- }
- else
- PSERR(CmdPtr - Buf, CmdLen, emNoArgFound);
- }
-
- /* ConTeXt \start \stop tracking */
- if (!strncmp(CmdBuffer, "\\start", 6) || !strncmp(CmdBuffer, "\\stop", 5))
- {
- if (CmdBuffer[3] == 'a') /* start */
- {
- TmpPtr = CmdBuffer + 6;
- if (!(PushErr(TmpPtr, Line, CmdPtr - Buf + 6,
- CmdLen - 6, MakeCpy(), &EnvStack)))
- PrintPrgErr(pmNoStackMem);
- }
- else
- {
- TmpPtr = CmdBuffer + 5;
- if ((ei = PopErr(&EnvStack)))
- {
- if (strcmp(ei->Data, TmpPtr))
- PrintError(CurStkName(&InputStack), RealBuf,
- CmdPtr - Buf + 5,
- (long) strlen(TmpPtr),
- Line, emExpectC, ei->Data, TmpPtr);
-
- FreeErrInfo(ei);
- }
- else
- {
- PrintError(CurStkName(&InputStack), RealBuf,
- CmdPtr - Buf,
- (long) strlen(CmdBuffer),
- Line, emSoloC, TmpPtr);
- }
- }
- /* TODO: Do I need to call PerformEnv? */
- /* It handles math and verbatim environments */
- }
-
- 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))
- {
- const char *cTmpPtr = Dot2Str(dotlev);
- PSERRA(CmdPtr - Buf, CmdLen, emEllipsis, cTmpPtr);
- }
- }
-
- 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 char *Buffer)
-{
- long i;
- char *TmpPtr;
- const char *AbbPtr;
-
- if (INUSE(emInterWord))
- {
- TmpPtr = TmpBuffer + Abbrev.MaxLen + 2;
- *TmpPtr = 0;
- AbbPtr = Buffer;
-
- for (i = Abbrev.MaxLen; i >= 0; i--)
- {
- *--TmpPtr = *AbbPtr--;
- if (!isalpha((unsigned char)*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)
-{
- unsigned long Count;
- long CmdLen;
- char *UsrPtr;
-
- /* Search for user-specified warnings */
-
-#if ! (HAVE_PCRE || HAVE_POSIX_ERE)
-
- if (INUSE(emUserWarnRegex) && UserWarnRegex.Stack.Used > 0)
- {
- PrintPrgErr(pmNoRegExp);
- ClearWord( &UserWarnRegex );
- }
- else if (INUSE(emUserWarn))
- {
- strcpy(TmpBuffer, Buf);
- }
-
-#else
-
- if (INUSE(emUserWarnRegex) && UserWarnRegex.Stack.Used > 0)
- {
- static char error[ERROR_STRING_SIZE];
- static regmatch_t MatchVector[NUM_MATCHES];
- int rc;
- int len = strlen(TmpBuffer);
- strcpy(TmpBuffer, Buf);
-
- /* Compile all regular expressions if not already compiled. */
- if ( !RegexArray && UserWarnRegex.Stack.Used > 0 )
- {
- RegexArray = (regex_t*)malloc( sizeof(regex_t) * UserWarnRegex.Stack.Used );
- if (!RegexArray)
- {
- /* Allocation failed. */
- PrintPrgErr(pmNoRegexMem);
- ClearWord(&UserWarnRegex);
- NumRegexes = 0;
- }
- else
- {
- NumRegexes = 0;
- FORWL(Count, UserWarnRegex)
- {
- char *pattern = UserWarnRegex.Stack.Data[Count];
- char *CommentEnd = NULL;
-
- /* See if it's got a special name that it goes by.
- Only use the comment if it's at the very beginning. */
- if ( strncmp(pattern,"(?#",3) == 0 )
- {
- CommentEnd = strchr(pattern, ')');
- /* TODO: check for PCRE/POSIX only regexes */
- *CommentEnd = '\0';
- /* We're leaking a little here, but this was never freed until exit anyway... */
- UserWarnRegex.Stack.Data[NumRegexes] = pattern+3;
-
- /* Compile past the end of the comment so that it works with POSIX too. */
- pattern = CommentEnd + 1;
- }
-
- /* Ignore PCRE and POSIX specific regexes.
- * This is mostly to make testing easier. */
- if ( strncmp(pattern,"PCRE:",5) == 0 )
- {
- #if HAVE_PCRE
- pattern += 5;
- #else
- continue;
- #endif
- }
- if ( strncmp(pattern,"POSIX:",6) == 0 )
- {
- #if HAVE_POSIX_ERE
- pattern += 6;
- #else
- continue;
- #endif
- }
-
- rc = regcomp((regex_t*)(&RegexArray[NumRegexes]),
- pattern, REGEX_FLAGS);
-
- /* Compilation failed: print the error message */
- if (rc != 0)
- {
- /* TODO: decide whether a non-compiling regex should completely stop, or just be ignored */
- regerror(rc,(regex_t*)(&RegexArray[NumRegexes]),
- error, ERROR_STRING_SIZE);
- PrintPrgErr(pmRegexCompileFailed, pattern, error);
- }
- else
- {
- if ( !CommentEnd )
- {
- ((char*)UserWarnRegex.Stack.Data[NumRegexes])[0] = '\0';
- }
- ++NumRegexes;
- }
- }
- }
- }
-
- for (Count = 0; Count < NumRegexes; ++Count)
- {
- int offset = 0;
- char *ErrMessage = UserWarnRegex.Stack.Data[Count];
- const int NamedWarning = strlen(ErrMessage) > 0;
-
- while (offset < len)
- {
- /* Check if this warning should be suppressed. */
- if (UserLineSuppressions && NamedWarning)
- {
- /* The warning can be named with positive or negative numbers. */
- int UserWarningNumber = abs(atoi(ErrMessage));
- if (UserLineSuppressions & ((uint64_t)1 << UserWarningNumber))
- {
- break;
- }
- }
-
- rc = regexec( (regex_t*)(&RegexArray[Count]), TmpBuffer+offset,
- NUM_MATCHES, MatchVector, 0);
- /* Matching failed: handle error cases */
- if (rc != 0)
- {
- switch(rc)
- {
- case REG_NOMATCH:
- /* no match, no problem */
- break;
- default:
- regerror(rc, (regex_t*)(&RegexArray[Count]),
- error, ERROR_STRING_SIZE);
- PrintPrgErr(pmRegexMatchingError, error);
- break;
- }
-
- offset = len; /* break out of loop */
- }
- else
- {
-#define MATCH (MatchVector[0])
- if ( NamedWarning )
- {
- /* User specified error message */
- PSERR2(offset + MATCH.rm_so, MATCH.rm_eo - MATCH.rm_so,
- emUserWarnRegex,
- strlen(ErrMessage), ErrMessage);
- }
- else
- {
- /* Default -- show the match */
- PSERR2(offset + MATCH.rm_so, MATCH.rm_eo - MATCH.rm_so,
- emUserWarnRegex,
- /* The format specifier expects an int */
- (int)(MATCH.rm_eo - MATCH.rm_so),
- TmpBuffer + offset + MATCH.rm_so);
- }
- offset += MATCH.rm_eo;
-#undef MATCH
- }
- }
- }
- }
- else if (INUSE(emUserWarn))
- {
- strcpy(TmpBuffer, Buf);
- }
-
-#endif
-
-
- if (INUSE(emUserWarn))
- {
- FORWL(Count, UserWarn)
- {
- for (UsrPtr = TmpBuffer;
- (UsrPtr = strstr(UsrPtr, UserWarn.Stack.Data[Count]));
- UsrPtr++)
- {
- CmdLen = strlen(UserWarn.Stack.Data[Count]);
- PSERRA(UsrPtr - TmpBuffer, CmdLen, emUserWarn, UserWarn.Stack.Data[Count]);
- }
- }
-
- strlwr(TmpBuffer);
-
- FORWL(Count, UserWarnCase)
- {
- for (UsrPtr = TmpBuffer;
- (UsrPtr = strstr(UsrPtr, UserWarnCase.Stack.Data[Count]));
- UsrPtr++)
- {
- CmdLen = strlen(UserWarnCase.Stack.Data[Count]);
- PSERRA(UsrPtr - TmpBuffer, CmdLen, emUserWarn, UserWarnCase.Stack.Data[Count]);
- }
- }
- }
-}
-
-
-/*
- * Checks that the dash-len is correct.
- */
-
-static void CheckDash(void)
-{
- char *TmpPtr;
- int TmpC;
- long TmpCount, Len;
- struct WordList *wl = NULL;
- unsigned long i;
- int Errored;
- char *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((unsigned char)*PrePtr) && isdigit((unsigned char)*TmpPtr))
- wl = &NumDash;
- if (isalpha((unsigned char)*PrePtr) && isalpha((unsigned char)*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)
- {
- struct WordList *el = &DashExcpt;
-
- FORWL(i, *el)
- {
- char *exception = el->Stack.Data[i];
-
- char *e = exception;
- while ( *e )
- {
- if ( *e == '-' && 0 == strncmp( BufPtr, e, strlen(e) ) )
- {
- TmpPtr = BufPtr;
- char *f = e;
- while ( f > exception && *(--f) == *(--TmpPtr) )
- {
- /* Nothing */
- }
-
- if ( f <= exception && *f == *TmpPtr )
- {
- Errored = FALSE;
- break;
- }
- }
-
- ++e;
- }
-
- if ( !Errored )
- break;
- }
- }
-
- if (Errored)
- HERE(TmpCount, emWrongDash);
- }
- }
-}
-
-/*
- * Pushes and pops nesting characters.
- *
- */
-
-static void HandleBracket(char Char)
-{
- unsigned long BrOffset; /* Offset into BrOrder array */
- struct ErrInfo *ei;
- char TmpC, Match;
- char ABuf[2], BBuf[2];
- char *TmpPtr;
-
- AddBracket(Char);
-
- if ((BrOffset = BrackIndex(Char)) != ~0UL)
- {
- if (BrOffset & 1) /* Closing bracket of some sort */
- {
- if ((ei = PopErr(&CharStack)))
- {
- Match = MatchBracket(*(ei->Data));
- /* Return italics to proper state */
- if (ei->Flags & efNoItal)
- {
- if (ItState == itOn)
- {
- TmpPtr = BufPtr;
- SKIP_AHEAD(TmpPtr, TmpC, TmpC == '}');
-
- /* If the next character is a period or comma,
- * or the last character is, then it's not an
- * error. */
- /* Checking 2 characters back seems dangerous,
- * but it's already done in CheckDash. */
- if ( !strchr(LTX_SmallPunc, *TmpPtr) &&
- !strchr(LTX_SmallPunc, *(TmpPtr-2)) )
- HERE(1, emNoItFound);
- }
-
- ItState = FALSE;
- }
- else if (ei->Flags & efItal)
- ItState = TRUE;
-
- /* Same for math mode */
- if (ei->Flags & efMath)
- {
- MathMode = 1;
- }
- else if (ei->Flags & efNoMath)
- {
- MathMode = 0;
- }
-
- 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;
- }
-
- switch (MathFlag)
- {
- default:
- ei->Flags |= MathFlag;
- MathFlag = efNone;
- break;
- case efNone:
- ei->Flags |= MathMode ? efMath : efNoMath;
- }
- }
- }
-
- else
- PrintPrgErr(pmNoStackMem);
- }
- }
-}
-
-
-/*
- * Checks to see if CmdBuffer matches any of the words in Silent, or
- * any of the regular expressions in SilentCase.
- *
- */
-
-int CheckSilentRegex(void)
-{
-
-#if ! (HAVE_PCRE || HAVE_POSIX_ERE)
-
- return HasWord(CmdBuffer, &Silent) != NULL;
-
-#else
-
- static char error[ERROR_STRING_SIZE];
- char *pattern;
- char *tmp;
- int i;
- int rc;
- int len = 4; /* Enough for the (?:) */
-
- /* Initialize regular expression */
- if (INUSE(emSpaceTerm) && SilentCase.Stack.Used > 0)
- {
- /* Find the total length we need */
- /* There is 1 for | and the final for null terminator */
- FORWL(i, SilentCase)
- {
- len += strlen( SilentCase.Stack.Data[i] ) + 1;
- }
-
- /* (A|B|...) */
- tmp = (pattern = (char*)malloc( sizeof(char) * len ));
-
- #if HAVE_PCRE
- tmp = stpcpy(tmp,"(?:");
- #else
- tmp = stpcpy(tmp,"(");
- #endif
-
- FORWL(i, SilentCase)
- {
- tmp = stpcpy(tmp, SilentCase.Stack.Data[i]);
- *tmp++ = '|';
- }
- tmp = stpcpy(tmp - 1, ")");
-
- SilentRegex = malloc( sizeof(regex_t) );
- rc = regcomp(SilentRegex, pattern, REGEX_FLAGS);
-
- /* Compilation failed: print the error message */
- if (rc != 0)
- {
- regerror(rc, SilentRegex, error, ERROR_STRING_SIZE);
- PrintPrgErr(pmRegexCompileFailed, pattern, error);
- SilentRegex = NULL;
- }
- /* Ensure we won't initialize it again */
- SilentCase.Stack.Used = 0;
- free(pattern);
- }
-
- /* Check against the normal */
- if ( HasWord(CmdBuffer, &Silent) )
- return 1;
- if (!SilentRegex)
- return 0;
-
- /* Check against the regexes */
- rc = regexec(SilentRegex, CmdBuffer, 0, NULL, 0);
- if (rc == 0)
- return 1;
-
- /* Matching failed: handle error cases */
- switch(rc)
- {
- case REG_NOMATCH:
- return 0;
- break;
- default:
- regerror(rc, SilentRegex, error, ERROR_STRING_SIZE);
- PrintPrgErr(pmRegexMatchingError, error);
- break;
- }
- return 0;
-
-#endif
-}
-
-/*
- * Searches the `Buf' for possible errors, and prints the errors. `Line'
- * is supplied for error printing.
- */
-
-int FindErr(const char *_RealBuf, const unsigned long _Line)
-{
- char *CmdPtr; /* We'll have to copy each command out. */
- char *PrePtr; /* Ptr to char in front of command, NULL if
- * the cmd appears as the first character */
- char *TmpPtr; /* Temporary pointer */
- char *ErrPtr; /* Ptr to where an error started */
-
- char TmpC, /* Just a temp var used throughout the proc. */
- MatchC, Char; /* Char. currently processed */
- unsigned long CmdLen; /* Length of misc. things */
- int MixingQuotes;
-
- int (*pstcb) (int c);
-
- enum DotLevel dotlev;
-
- if (_RealBuf)
- {
- RealBuf = _RealBuf;
- Line = _Line;
-
- BufPtr = PreProcess();
-
- BufPtr = SkipVerb();
-
- while (BufPtr && *BufPtr)
- {
- PrePtr = BufPtr - 1;
- Char = *BufPtr++;
- if (isspace((unsigned char)Char))
- Char = ' ';
-
- switch (Char)
- {
- case '~':
- TmpPtr = NULL;
- if (isspace((unsigned char)*PrePtr))
- TmpPtr = PrePtr;
- else if (isspace((unsigned char)*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((unsigned char)*TmpPtr))
- {
- TmpPtr = BufPtr;
-
- SKIP_AHEAD(TmpPtr, TmpC,
- (LATEX_SPACE(TmpC) || strchr("{}$", TmpC)));
-
- if (isdigit((unsigned char)*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((unsigned char)*PrePtr) && (*PrePtr != '\\') && MathMode)
- {
- TmpPtr = BufPtr;
- CmdPtr = CmdBuffer;
- do
- {
- *CmdPtr++ = Char;
- Char = *TmpPtr++;
- }
- while (isalpha((unsigned char)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]))
- {
- const char *cTmpPtr;
- dotlev = CheckDots(&PrePtr[1], &BufPtr[2]);
- cTmpPtr = Dot2Str(dotlev);
- HEREA(3, emEllipsis, cTmpPtr);
- }
-
- /* Regexp: "([^A-Z@.])\.[.!?:]*\s+[a-z]" */
-
- TmpPtr = BufPtr;
- SKIP_AHEAD(TmpPtr, TmpC, strchr(LTX_EosPunc, TmpC));
- if (LATEX_SPACE(*TmpPtr))
- {
- if (!isupper((unsigned char)*PrePtr) && (*PrePtr != '@') &&
- (*PrePtr != '.'))
- {
- SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
- if (islower((unsigned char)*TmpPtr))
- PSERR(BufPtr - Buf, 1, emInterWord);
- else
- CheckAbbrevs(&BufPtr[-1]);
- }
- }
-
- /* FALLTHRU */
- case ':':
- case '?':
- case '!':
- case ';':
- /* Regexp: "[A-Z][A-Z][.!?:;]\s+" */
-
- if (isspace((unsigned char)*BufPtr) && isupper((unsigned char)*PrePtr) &&
- (isupper((unsigned char)PrePtr[-1]) || (Char != '.')))
- HERE(1, emInterSent);
-
- /* FALLTHRU */
- case ',':
- if (isspace((unsigned char)*PrePtr) &&
- !(isdigit((unsigned char)*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 == '\xB4')) /* xB4 = latin1 acute accent */
- MixingQuotes = TRUE;
-
- SKIP_AHEAD(TmpPtr, TmpC, strchr("`\'\"\xB4", TmpC)); /* xB4 = latin1 acute accent */
-
- if (MixingQuotes)
- HERE(TmpPtr - BufPtr + 1, emQuoteMix);
-
- switch (Char)
- {
- case '\'':
- if (isalpha((unsigned char)*TmpPtr) &&
- (strchr(LTX_GenPunc, *PrePtr) || isspace((unsigned char)*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 */
-
- {
- char *WordPtr = PrePtr;
- SKIP_BACK(WordPtr, TmpC, (isalnum((unsigned char)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((unsigned char)*PrePtr) &&
- (strchr(LTX_GenPunc, *TmpPtr) || isspace((unsigned char)*TmpPtr)))
- HERE(TmpPtr - BufPtr + 1, emEndQ);
- break;
- }
- BufPtr = TmpPtr;
- break;
- case '"':
- HERE(1, emUseQuoteLiga);
- break;
-
- case '\264': /* ´ (in Latin-1) */
- 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((unsigned char)*TmpPtr))
- pstcb = &my_isalpha;
- else if (isdigit((unsigned char)*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 &&
- !CheckSilentRegex() &&
- (strlen(CmdBuffer) != 2))
- {
- PSERR(BufPtr - Buf, 1, emSpaceTerm);
- }
- else if ((*BufPtr == '\\') && (!isalpha((unsigned char)BufPtr[1])) &&
- (!LATEX_SPACE(BufPtr[1])))
- PSERR(BufPtr - Buf, 2, emNotIntended);
-
- PerformBigCmd(PrePtr + 1);
- BufPtr = SkipVerb();
-
- break;
-
- case '(':
- if (*PrePtr && !LATEX_SPACE(*PrePtr) && !isdigit((unsigned char)*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((unsigned char)*BufPtr))
- PSERRA(BufPtr - Buf, 1, emNoSpaceParen, "after");
- HandleBracket(Char);
- break;
-
- case ')':
- if (isspace((unsigned char)*PrePtr))
- PSERRA(BufPtr - Buf - 1, 1, emNoSpaceParen,
- "in front of");
- if (isalpha((unsigned char)*BufPtr))
- PSERRA(BufPtr - Buf, 1, emSpaceParen, "after");
- HandleBracket(Char);
- break;
-
- case '}':
- case '{':
- case '[':
- case ']':
- HandleBracket(Char);
- break;
- case '$':
- if (*PrePtr != '\\')
- {
- if (*BufPtr == '$')
- BufPtr++;
- MathMode ^= TRUE;
- }
-
- break;
- }
- }
-
- if (!VerbMode)
- {
- CheckRest();
- }
-
- }
-
- /* Free and reset LineCpy if it was used */
- if ( LineCpy != NULL )
- {
- free(LineCpy);
- LineCpy = NULL;
- }
- 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, unsigned long Cnt, const char *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(unsigned long Lines)
-{
- unsigned long Cnt;
- struct ErrInfo *ei;
-
-
- while ((ei = PopErr(&CharStack)))
- {
- PrintError(ei->File, ei->LineBuf, ei->Column,
- ei->ErrLen, ei->Line, emNoMatchC, (char *) ei->Data);
- FreeErrInfo(ei);
- }
-
- while ((ei = PopErr(&EnvStack)))
- {
- PrintError(ei->File, ei->LineBuf, ei->Column,
- ei->ErrLen, ei->Line, emNoMatchC, (char *) 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; ");
- Transit(stderr, LineSupp, "line suppressed warning%s.\n");
-
- /* Print how to suppress warnings. */
- if ( ErrPrint + WarnPrint > 0 ) {
- fprintf(stderr, "See the manual for how to suppress some or all of these warnings/errors.\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 char *File, const char *String,
- const long Position, const long Len,
- const long LineNo, const enum ErrNum Error, ...)
-{
- static /* Just to reduce stack usage... */
- char PrintBuffer[BUFSIZ];
- va_list MsgArgs;
-
- char *LastNorm = OutputFormat;
- char *of;
- int c;
-
- enum Context Context;
-
- if (betw(emMinFault, Error, emMaxFault))
- {
- switch (LaTeXMsgs[Error].InUse)
- {
- case iuOK:
- if (SUPPRESSED_ON_LINE(Error))
- {
- LineSupp++;
- }
- else
- {
- 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':
- /* TODO: need to add the offset of the column
- * here when long lines are broken. */
- 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);
- }
- 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 char *Cmd, char *Arg)
-{
- const char *Argument = "";
- enum ErrNum en = emMinFault;
- int TmpC;
-
- if (!strcmp(Cmd, "\\makeatletter"))
- AtLetter = TRUE;
- else if (!strcmp(Cmd, "\\makeatother"))
- AtLetter = FALSE;
- else if (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);
-
- if (!(Argument && PushFileName(Argument, &InputStack)))
- en = emNoCmdExec;
- }
- else if (HasWord(Cmd, &Primitives))
- en = emTeXPrim;
- else if (HasWord(Cmd, &MathCmd))
- {
- SKIP_AHEAD(Arg, TmpC, LATEX_SPACE(TmpC));
- if (*Arg == '{')
- {
- MathFlag = MathMode ? efMath : efNoMath;
- MathMode = 1;
- }
- }
- else if (HasWord(Cmd, &TextCmd))
- {
- SKIP_AHEAD(Arg, TmpC, LATEX_SPACE(TmpC));
- if (*Arg == '{')
- {
- MathFlag = MathMode ? efMath : efNoMath;
- MathMode = 0;
- }
- }
- else if (*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/chktex-1.7.3/FindErrs.h b/Build/source/texk/chktex/chktex-1.7.3/FindErrs.h
deleted file mode 100644
index 9932d93e861..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/FindErrs.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
-#include "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, iuNotSys, ctNone,\
- "Use \"'\" (ASCII 39) instead of \"\xB4\" (ASCII 180).")\
- MSG(emUserWarn, etWarn, iuOK, ctNone,\
- "User-specified pattern found: %s.")\
- 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'.")\
- MSG(emUserWarnRegex, etWarn, iuOK, ctNone,\
- "User Regex: %.*s.")
-
-#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;
-
- const char *Message;
-};
-
-enum ItState
-{
- itOff,
- itOn,
- itCorrected
-};
-
-
-enum DotLevel
-{
- dtUnknown = 0x0,
- dtCDots = 0x1,
- dtLDots = 0x2,
- dtDots = 0x4
-};
-
-extern struct ErrMsg LaTeXMsgs[emMaxFault + 1];
-
-extern char *OutputFormat;
-
-int CheckSilentRegex(void);
-int FindErr(const char *, const unsigned long);
-void PrintError(const char *, const char *, const long, const long,
- const long, const enum ErrNum, ...);
-void PrintStatus(unsigned long Lines);
-
-#endif /* FINDERRS */
diff --git a/Build/source/texk/chktex/chktex-1.7.3/MakeHTML.pl b/Build/source/texk/chktex/chktex-1.7.3/MakeHTML.pl
deleted file mode 100644
index 6bdbadcf127..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/MakeHTML.pl
+++ /dev/null
@@ -1,20 +0,0 @@
-# Remove parts of code enclosed in %latex/%endlatex tags
-
-$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/chktex-1.7.3/NEWS b/Build/source/texk/chktex/chktex-1.7.3/NEWS
deleted file mode 100644
index f3999f4f9e9..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/NEWS
+++ /dev/null
@@ -1,166 +0,0 @@
-Development of ChkTeX is now in a maintainance mode. All versions
-1.6.x are essentially bug fixes. Version 1.7 added some new features.
-
-1.7.3 (2015-04-09), released by Ivan Andrus <darthandrus@gmail.com>
-
- * Fixed memory leaks and a crashing bug #42813
- * Added ConTeXt \start... \stop... tracking #44517
- * Added DashExcpt list for exceptions to dash rules #42237
- * Support \cite with two optional arguments (biblatex) #44413
- * Removed warning about using \dots instead of .. #40731
- This incorrectly warns about relative paths
- * Removed check for intro since it's common in file names #43013
- * Turn off warning 19 by default #44226
- Warning 19 is about Latin-1 quotes, but gives false positives
- for some utf-8 characters.
-
-1.7.2 (2013-04-17), released by Ivan Andrus <darthandrus@gmail.com>
-
- * Fixed display bug on platforms where sizeof(int) != sizeof(regoff_t)
- * Warn that .. should be \dots like lacheck does
- * Fixed warnings under clang
- * Incorporated several build related patches from TeX Live
-
-1.7.1 (2012-08-22), released by Ivan Andrus <darthandrus@gmail.com>
-
- * Improvements for TeX Live and CTAN
- * Fixed bug when checking for interword spacing
- * Added warning when a file has lines that are too long which can cause problems
- * Added ability to suppress user regular expression warnings by "naming" them
- * Added ability to suppress warnings for the rest of the file
- * Allow using PCRE or POSIX ERE or neither (at configure time).
- Regular expressions can be marked as PCRE or POSIX only.
- * Allow () to specify an optional argument in WipeArg to support \cmidrule[](){}
- * Allow regular expressions for Silent keyword, specified in [] for "case insensitive"
- * Added warning about \hline and vertical rules in tabular environments
- * I changed user warnings to be post WipeArg (like they were pre
- 1.7.0). I had changed them in 1.7.0 to be pre WipeArg so that I
- could match things like \label{...}, but this caused many false
- positives by matching in comments, etc.
-
-1.7.0 (2012-05-28), released by Ivan Andrus <darthandrus@gmail.com>
-
- * Added support for user defined regular expression based warnings
- * Added support for macros like \ensuremath and \text
- * Added support for suppressing messages on a single line
-
-1.6.6 (2012-04-07), released by Ivan Andrus <darthandrus@gmail.com>
-
- * Fixed some memory issues
- * Do not increase line number when the line was very long
- * Some fixes for TexLive
-
-1.6.5 (??), released by Jean-Marc Lasgouttes <lasgouttes@lyx.org>
-
- * Fix bug where ChkTeX generates a warning about missing space before
- parenthesis when the parenthesis is at start of line.
- * Update ChkTeX.tex.in to use proper LaTeX2e markup.
- * Update the build machinery a bit.
-
-1.6.4 (2007-10-20), released by Baruch Even
-
- * For some reason 1.6.3 did not include all the changes it was supposed to
- have, this release should fix it. One such issue is the MacOS X
- compilation.
- * Include some updates to the default chktexrc from Jean-Marc Lasgouttes.
-
-1.6.3, released by Baruch Even
-
- * Support DESTDIR for installation to help distributions.
- * Apply old standing patch from Jean-Marc Lasgouttes to compile outside the
- directory.
- * Enable compilation on MacOS X.
- * Fix various coding issues.
-
-
-Original versions from Jens T. Berger Thielemann:
-=================================================
-
-Modifications and additions since v1.6:
-
- * Improved the build system
- * Better fixes for memory access errors
-
-Modifications and additions since v1.5:
-
- * Fixed a crash when running from emacs
- * Fixed a crash when checking our own manual
- * Added \verb* support
-
-Modifications and additions since v1.4:
-
- ** New 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.
-
- ** Program
-
- * 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 Boehm.
- * 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
-
- * 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.
- * You can now specify how many optional or required arguments
- WIPEARG should wipe; it also behaves somewhat more intelligently
- 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
-
- * 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.
diff --git a/Build/source/texk/chktex/chktex-1.7.3/OpSys.c b/Build/source/texk/chktex/chktex-1.7.3/OpSys.c
deleted file mode 100644
index 7d055b72284..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/OpSys.c
+++ /dev/null
@@ -1,492 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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...:\
- *
- */
-
-#include "ChkTeX.h"
-#include "OpSys.h"
-#include "Utility.h"
-
-#ifdef KPATHSEA
-#include <kpathsea/variable.h>
-#endif
-
-#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
-
-/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */
-
-/*
- * This is the name of the global resource file.
- */
-
-#ifndef SYSCONFDIR
-# if defined(__unix__)
-# define SYSCONFDIR "/usr/local/lib/"
-# elif defined(__MSDOS__)
-# define SYSCONFDIR "\\emtex\\data\\"
-# else
-# define SYSCONFDIR
-# endif
-#endif
-#define RCBASENAME "chktexrc"
-
-#ifdef __MSDOS__
-# define LOCALRCFILE RCBASENAME
-#elif defined(WIN32)
-# define LOCALRCFILE RCBASENAME
-#else
-# define LOCALRCFILE "." RCBASENAME
-#endif
-
-char ConfigFile[BUFSIZ] = LOCALRCFILE;
-const char *ReverseOn;
-const char *ReverseOff;
-
-
-static int HasFile(char *Dir, const char *Filename, const char *App);
-
-#if USE_RECURSE
-static int SearchFile(char *Dir, const char *Filename, const char *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
-};
-
-
-int SetupVars(void)
-{
- char *Env;
-#ifdef __MSDOS__
-
- char *Ptr;
-#endif
-
- static enum LookIn i = liMin;
- static int 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")))
-#elif defined(TEX_LIVE)
- if ((Env = kpse_var_value("CHKTEXRC")))
-#else
-
- if ((Env = getenv("CHKTEXRC")))
-#endif
-
- {
- strcpy(ConfigFile, Env);
- tackon(ConfigFile, LOCALRCFILE);
-#ifdef TEX_LIVE
- free(Env);
-#endif
- }
- 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 */
-#if defined(__unix__)
-
- if ((Env = getenv("HOME")) || (Env = getenv("LOGDIR")))
- {
- strcpy(ConfigFile, Env);
- tackon(ConfigFile, LOCALRCFILE);
- }
- else
-#elif defined(__MSDOS__)
-
- strcpy(ConfigFile, PrgName);
- if ((Ptr = strrchr(ConfigFile, '\\')) ||
- (Ptr = strchr(ConfigFile, ':')))
- strcpy(++Ptr, RCBASENAME);
- else
-#endif
- *ConfigFile = 0;
-
- break;
- case liSysDir: /* System dir for resource files */
-#ifdef TEX_LIVE
- if ((Env = kpse_var_value("CHKTEX_CONFIG")))
- {
- strcpy(ConfigFile, Env);
- free(Env);
- }
- else if ((Env = kpse_var_value("TEXMFMAIN")))
- {
- strcpy(ConfigFile, Env);
- tackon(ConfigFile, "chktex");
- tackon(ConfigFile, RCBASENAME);
- free(Env);
- }
- else
- *ConfigFile = 0;
-#else /* TEX_LIVE */
-#if defined(__unix__) || defined(__MSDOS__)
- strcpy(ConfigFile, SYSCONFDIR);
- tackon(ConfigFile, RCBASENAME);
-#else
- *ConfigFile = 0;
-#endif
-#endif /* TEX_LIVE */
-
- 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;
- static char str_so[3] = "so", str_se[3] = "se";
-
- if (termtype)
- {
-
- success = tgetent(term_buffer, termtype);
- if (success < 0)
- PrintPrgErr(pmNoTermData);
- if (success == 0)
- PrintPrgErr(pmNoTermDefd);
-
- buffer = (char *) malloc(sizeof(term_buffer));
- ReverseOn = tgetstr(str_so, &buffer);
- ReverseOff = tgetstr(str_se, &buffer);
-
- if (ReverseOn && ReverseOff)
- return;
- }
-#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(char *Dir, const char *File)
-{
- int EndC;
- unsigned long SLen;
-
- if (Dir && (SLen = strlen(Dir)))
- {
- EndC = Dir[SLen - 1];
- if (!(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(char *Name, const char *App)
-{
-#ifdef __MSDOS__
- char *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.
- */
-
-
-int LocateFile(const char *Filename, /* File to search for */
- char *Dest, /* Where to put final file */
- const char *App, /* Extra optional appendix */
- struct WordList *wl) /* List of paths, entries
- * ending in // will be recursed
- */
-{
- unsigned long i;
-#if USE_RECURSE
-
- unsigned long Len;
-#endif
-
- 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);
-}
-
-static int HasFile(char *Dir, const char *Filename, const char *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 int SearchFile(char *Dir, const char *Filename, const char *App)
-{
- struct stat *statbuf;
- struct dirent *de;
- DIR *dh;
-
- int DirLen = strlen(Dir);
- int 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 */
diff --git a/Build/source/texk/chktex/chktex-1.7.3/OpSys.h b/Build/source/texk/chktex/chktex-1.7.3/OpSys.h
deleted file mode 100644
index 7ce3f1b5270..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/OpSys.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
-
-#include "ChkTeX.h"
-#include "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 __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
-# define EXIT_FAILURE 1
-#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.
- */
-
-
-#ifdef TEX_LIVE
-#if defined(__MSDOS__) || defined(WIN32)
-# define SLASH '\\'
-# define DIRCHARS ":\\"
-#else
-# define SLASH '/'
-# define DIRCHARS "/"
-#endif
-#else /* TEX_LIVE */
-#if defined(__unix__)
-# define SLASH '/'
-#elif defined(__MSDOS__)
-# define SLASH '\\'
-#endif
-
-#if defined(__unix__)
-# define DIRCHARS "/"
-#elif defined(__MSDOS__)
-# define DIRCHARS ":\\"
-#endif
-#endif /* TEX_LIVE */
-
-/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */
-
-/*
- * 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.
- */
-
-#if 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.
- *
- */
-
-# define PRE_ERROR_STR "\033[7m"
-# define POST_ERROR_STR "\033[0m"
-
-
-/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */
-
-/*
- * 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 const char *ReverseOn;
-extern const char *ReverseOff;
-extern char ConfigFile[BUFSIZ];
-
-char *MatchFileName(char *String);
-int SetupVars(void);
-void SetupTerm(void);
-void AddAppendix(char *Name, const char *App);
-void tackon(char *, const char *);
-int LocateFile(const char *Filename, char *Dest, const char *App,
- struct WordList *wl);
-
-#endif /* OPSYS_H */
diff --git a/Build/source/texk/chktex/chktex-1.7.3/README b/Build/source/texk/chktex/chktex-1.7.3/README
deleted file mode 100644
index ba098014666..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/README
+++ /dev/null
@@ -1,22 +0,0 @@
-ChkTeX
-======
-
-ChkTeX is a tool to check for common errors in LaTeX files. It also
-supports checking CWEB files (uses a perl5 script). It is highly
-customizable allowing you turn off any warnings you don't like, as
-well as add your own warnings. It works easily with Emacs and AUCTeX,
-but should also be easy to interface with other editors. If you have
-interfaced ChkTeX with another editor, please contribute how you did
-it.
-
-It is important to remember that ChkTeX is only intended as a *guide*
-to fixing faults. 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. If you have ideas for
-new warnings or ways in which current warnings could be improved,
-please report them on the
-[bug tracker](https://savannah.nongnu.org/bugs/?group=chktex).
-
-For complete documentation see [the manual](http://www.nongnu.org/chktex/ChkTeX.pdf).
-
-ChkTeX is released under the GNU Public License version 2 or greater.
diff --git a/Build/source/texk/chktex/chktex-1.7.3/Resource.c b/Build/source/texk/chktex/chktex-1.7.3/Resource.c
deleted file mode 100644
index f301c6aff27..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/Resource.c
+++ /dev/null
@@ -1,514 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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) const char *a = def;
-
-RESOURCE_INFO
-#undef KEY
-#undef LCASE
-#undef LNEMPTY
-#undef LIST
-struct KeyWord
-{
- const char *Name;
- const char **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 **************************/
-
-/* We don't include a trailing semicolon here, so that we can add it
- * at the calling site, thereby preserving proper indentation. Double
- * semicolons are undesirable since they have been known to break some
- * compilers. */
-#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 unsigned long RsrcLine;
-
-static enum Token ReadWord(char *, FILE *);
-static char MapChars(char **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.
- */
-
-int ReadRC(const char *Filename)
-{
- const char *String = NULL;
- int Success = FALSE;
- FILE *fh;
- enum Token Token;
- unsigned long 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);
- if (!(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:
- if (!(*(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(char *Buffer, FILE * fh)
-{
- static char *String = NULL;
- static char StatBuf[BUFSIZ];
- enum Token Retval = FLG_Eof;
-
- unsigned short Chr;
-
- char *Ptr;
- int 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:
- if (!(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((unsigned char)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:
- if (!(Chr = MapChars(&String)))
- break;
-
- *Ptr++ = Chr;
- break;
- default:
- if (!isspace((unsigned char)Chr))
- *Ptr++ = Chr;
- else
- Cont = FALSE;
- }
- }
- Retval = FLG_Item;
- }
-
- if (!(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 char MapChars(char **String)
-{
- int Chr, Tmp = 0;
- unsigned short Cnt;
-
- Chr = *((char *) (*String)++);
-
- switch (tolower((unsigned char)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((unsigned char)Chr))
- {
- Chr = toupper((unsigned char)Chr);
- Tmp = (Tmp << 4) + Chr;
-
- if (isdigit((unsigned char)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((unsigned char)(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/chktex-1.7.3/Resource.h b/Build/source/texk/chktex/chktex-1.7.3/Resource.h
deleted file mode 100644
index c0ebed0bd17..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/Resource.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
-
-#include "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 */
-
-/* We cannot put semicolons here as with OPTION_DEFAULTS, since
- * sometimes LIST etc. will be defined to be empty. Thus we must
- * never put a semicolon after RESOURCE_INFO where it's called since
- * such isolated semicolons can break certain compilers. This can
- * mess with indentation a bit, but we just have to deal with it. */
-#define RESOURCE_INFO \
- LCASE(Silent) LIST(Linker) LIST(IJAccent) LIST(Italic)\
- LIST(ItalCmd) LIST(PostLink) LIST(WipeArg) LIST(VerbEnvir)\
- LIST(MathEnvir) LIST(MathCmd) LIST(TextCmd) LIST(MathRoman)\
- LIST(HyphDash) LIST(NumDash) LIST(WordDash) LIST(DashExcpt)\
- LIST(CenterDots) LIST(LowDots) LIST(OutFormat)\
- LIST(Primitives) LIST(NotPreSpaced) LIST(NonItalic) LIST(NoCharNext)\
- LNEMPTY(CmdLine) LNEMPTY(TeXInputs)\
- LCASE(Abbrev) LCASE(UserWarn) LIST(UserWarnRegex)\
- 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 const char *a;
-
-RESOURCE_INFO
-#undef KEY
-#undef LCASE
-#undef LNEMPTY
-#undef LIST
-int ReadRC(const char *);
-
-
-#endif /* RESOURCE */
diff --git a/Build/source/texk/chktex/chktex-1.7.3/Test.nore.out b/Build/source/texk/chktex/chktex-1.7.3/Test.nore.out
deleted file mode 100644
index 2bb60c76992..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/Test.nore.out
+++ /dev/null
@@ -1,489 +0,0 @@
-Message 30 in Test.tex: Multiple spaces detected in input.
- o To test the program upon it
- ^^^
-Message 30 in Test.tex: Multiple spaces detected in input.
- o To show off some of the features
- ^^^
-Message 22 in Test.tex: Comment displayed.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 1
-^
-Message 1 in Test.tex: Command terminated with space.
-\foo This is an error.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 2
-^
-Message 2 in Test.tex: Non-breaking space (`~') should have been used.
-This is a faulty reference to \ref{foo}
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 3
-^
-Message 3 in Test.tex: You should enclose the previous parenthesis with `{}'.
-$[(ab)^{-1}]^{-2}$ is not beautiful
- ^
-Message 3 in Test.tex: You should enclose the previous parenthesis with `{}'.
-$[(ab)^{-1}]^{-2}$ is not beautiful
- ^
-Message 30 in Test.tex: Multiple spaces detected in input.
-$[(ab)^{-1}]^{-2}$ is not beautiful
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 4-6, 28
-^
-Message 6 in Test.tex: No italic correction (`\/') found.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^^
-Message 28 in Test.tex: Don't use \/ in front of small punctuation.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^
-Message 5 in Test.tex: Italic correction (`\/') found more than once.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% LaTeX2e
-^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic\/} in this \textit{sentence}, as \textem{you see}.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 7
-^
-Message 7 in Test.tex: Accent command `\'' needs use of `\i'.
-This \'is a test of $\hat{j}$ accents.
- ^^
-Message 7 in Test.tex: Accent command `\hat' needs use of `\jmath'.
-This \'is a test of $\hat{j}$ accents.
- ^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 8
-^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-It wasn't anything - just a 2---3 star--shots.
- ^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-It wasn't anything - just a 2---3 star--shots.
- ^^^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-It wasn't anything - just a 2---3 star--shots.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% From Knuths TeXbook Chapter 14
-^
-Message 22 in Test.tex: Comment displayed.
-% "How TeX Breaks Paragraphs into Lines", fourth paragraph:
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 9-10
-^
-Message 22 in Test.tex: Comment displayed.
-% Brackets:
-^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
-^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 9 in Test.tex: `}' expected, found `)'.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `]' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `]' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `]' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
- ^
-Message 22 in Test.tex: Comment displayed.
-% Envs:
-^
-Message 9 in Test.tex: `baz' expected, found `quux'.
-\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
- ^^^^
-Message 9 in Test.tex: `quux' expected, found `baz'.
-\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
- ^^^^
-Message 10 in Test.tex: Solo `asoi' found.
-\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
- ^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 11
-^
-Message 11 in Test.tex: 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: 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: 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: 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: 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: Comment displayed.
-% Warning 12
-^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 11 in Test.tex: You should use \ldots to achieve an ellipsis.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 11 in Test.tex: You should use \ldots to achieve an ellipsis.
-1st.\ foo Inc.\ ab.cd.\ foo ab.cd.\ Foo.\ bar baz., billy.; bob.:\ joe.!\ frank.?\ james..\ george
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 13
-^
-Message 13 in Test.tex: Intersentence spacing (`\@') should perhaps be used.
-Look at THIS! It's an error.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 14
-^
-Message 1 in Test.tex: Command terminated with space.
-\hat
- ^
-Message 14 in Test.tex: Could not find argument for command.
-\hat
-^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 18,19
-^
-Message 18 in Test.tex: Use either `` or '' as an alternative to `"'.
-Is this an "example", or is it an ´example´.
- ^
-Message 18 in Test.tex: Use either `` or '' as an alternative to `"'.
-Is this an "example", or is it an ´example´.
- ^
-Message 19 in Test.tex: Use "'" (ASCII 39) instead of "´" (ASCII 180).
-Is this an "example", or is it an ´example´.
- ^
-Message 19 in Test.tex: Use "'" (ASCII 39) instead of "´" (ASCII 180).
-Is this an "example", or is it an ´example´.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 20
-^
-Message 20 in Test.tex: User-specified pattern found: \unknown.
-That bug is \unknown\ to me.
- ^^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% That bug is \unknown\ to me.
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 21
-^
-Message 21 in Test.tex: This command might not be intended.
-\LaTeX\ is an extension of \TeX\. Right?
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 23
-^
-Message 23 in Test.tex: Either `\,`` or ``\,` will look better.
-```Hello', I heard him said'', she remembered.
-^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 24
-^
-Message 24 in Test.tex: Delete this space to maintain correct pagereferences.
-Indexing text \index{text} is fun!
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 25
-^
-Message 25 in Test.tex: You might wish to put this between a pair of `{}'
-$5\cdot10^10$
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 26
-^
-Message 26 in Test.tex: You ought to remove spaces in front of punctuation.
-Do you understand ?
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 27
-^
-Message 1 in input.tex: Command terminated with space.
-\this is a test of whether the file is actually inputted...
- ^
-Message 11 in input.tex: You should use \ldots to achieve an ellipsis.
-\this is a test of whether the file is actually inputted...
- ^^^
-Message 1 in input.tex: Command terminated with space.
-\this is a test of whether the file is actually inputted...
- ^
-Message 11 in input.tex: You should use \ldots to achieve an ellipsis.
-\this is a test of whether the file is actually inputted...
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 29
-^
-Message 29 in Test.tex: $\times$ may look prettier here.
-The program opens a screen sized 640x200 pixels
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 30
-^
-Message 30 in Test.tex: Multiple spaces detected in input.
-White is a beautiful colour.
- ^^^^^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 31
-^
-Message 31 in Test.tex: This text may be ignored.
-\end{verbatim} foo bar
- ^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 32-34
-^
-Message 32 in Test.tex: Use ` to begin quotation, not '.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^
-Message 33 in Test.tex: Use ' to end quotation, not `.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^
-Message 32 in Test.tex: Use ` to begin quotation, not '.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^
-Message 33 in Test.tex: Use ' to end quotation, not `.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^
-Message 34 in Test.tex: Don't mix quotes.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^^
-Message 34 in Test.tex: Don't mix quotes.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 35
-^
-Message 35 in Test.tex: You should perhaps use `\sin' instead.
-$sin^2 + cos^2 = 1$
- ^^^
-Message 35 in Test.tex: You should perhaps use `\cos' instead.
-$sin^2 + cos^2 = 1$
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 36-37
-^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 36 in Test.tex: You should put a space after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 38
-^
-Message 38 in Test.tex: You should not use punctuation in front of quotes.
-``An example,'' he said, ``would be great.''
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 39
-^
-Message 39 in Test.tex: Double space found.
-For output codes, see table ~\ref{tab:fmtout}.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 40
-^
-Message 40 in Test.tex: You should put punctuation outside inner math mode.
-$\this,$ and $$this$$.
- ^
-Message 40 in Test.tex: You should put punctuation inside display math mode.
-$\this,$ and $$this$$.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 41
-^
-Message 1 in Test.tex: Command terminated with space.
-foo \above qux
- ^
-Message 41 in Test.tex: You ought to not use primitive TeX in LaTeX code.
-foo \above qux
- ^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 42
-^
-Message 42 in Test.tex: You should remove spaces in front of `\footnote'
-This is a footnote \footnote{foo}.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 43
-^
-Message 43 in Test.tex: `\left' is normally not followed by `{'.
-Here is a mistake $\left{x\right}$.
- ^^^^^
-Message 43 in Test.tex: `\right' is normally not followed by `}'.
-Here is a mistake $\left{x\right}$.
- ^^^^^^
-Message 21 in Test.tex: This command might not be intended.
-This one triggers warning 22 $\left\{x\right\}$.
- ^^
-Message 21 in Test.tex: This command might not be intended.
-This one triggers warning 22 $\left\{x\right\}$.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 44 -- user regex -- default message
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 44 -- user regex -- user message
-^
-Message 22 in Test.tex: Comment displayed.
-% Math mode check
-^
-Message 35 in Test.tex: You should perhaps use `\sin' instead.
-\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
- ^^^
-Message 35 in Test.tex: You should perhaps use `\sin' instead.
-\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
- ^^^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-Also, $x(3)\text{ is not x(3) but it is $x(3)$}$
- ^
-Message 22 in Test.tex: Comment displayed.
-This is\\% a comment. Nothing here should be checked(right)?
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-But this is not a \% comment, so we should find this error(right)?
- ^
-Message 22 in Test.tex: Comment displayed.
-Here(on this line only)is a warning $sin(x)$ suppressed. % chktex 36 chktex 35
- ^
-Message 22 in Test.tex: Comment displayed.
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
- ^
-Message 36 in Test.tex: You should put a space after parenthesis.
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
- ^
-Message 22 in Test.tex: Comment displayed.
-In section~\ref{sec:4} it is suppressed. % chktex -1
- ^
-Message 22 in Test.tex: Comment displayed.
-% In section~\ref{sec:5} we don't have a warning.
-^
-Message 22 in Test.tex: Comment displayed.
-% Verb check
-^
-Message 14 in Test.tex: Could not find argument for command.
-\verb#
-^^^^^
-Message 31 in Test.tex: This text may be ignored.
-\end{verbatim} FOO
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 16,15
-^
-Message 16 in Test.tex: Mathmode still on at end of LaTeX file.
-
-
-Message 17 in Test.tex: Number of `(' doesn't match the number of `)'!
-
-
-Message 17 in Test.tex: Number of `[' doesn't match the number of `]'!
-
-
-Message 17 in Test.tex: Number of `{' doesn't match the number of `}'!
-
-
diff --git a/Build/source/texk/chktex/chktex-1.7.3/Test.pcre.out b/Build/source/texk/chktex/chktex-1.7.3/Test.pcre.out
deleted file mode 100644
index cb785daa16c..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/Test.pcre.out
+++ /dev/null
@@ -1,504 +0,0 @@
-Message 30 in Test.tex: Multiple spaces detected in input.
- o To test the program upon it
- ^^^
-Message 30 in Test.tex: Multiple spaces detected in input.
- o To show off some of the features
- ^^^
-Message 22 in Test.tex: Comment displayed.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 1
-^
-Message 1 in Test.tex: Command terminated with space.
-\foo This is an error.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 2
-^
-Message 2 in Test.tex: Non-breaking space (`~') should have been used.
-This is a faulty reference to \ref{foo}
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 3
-^
-Message 3 in Test.tex: You should enclose the previous parenthesis with `{}'.
-$[(ab)^{-1}]^{-2}$ is not beautiful
- ^
-Message 3 in Test.tex: You should enclose the previous parenthesis with `{}'.
-$[(ab)^{-1}]^{-2}$ is not beautiful
- ^
-Message 30 in Test.tex: Multiple spaces detected in input.
-$[(ab)^{-1}]^{-2}$ is not beautiful
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 4-6, 28
-^
-Message 6 in Test.tex: No italic correction (`\/') found.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^^
-Message 28 in Test.tex: Don't use \/ in front of small punctuation.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^
-Message 5 in Test.tex: Italic correction (`\/') found more than once.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% LaTeX2e
-^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic\/} in this \textit{sentence}, as \textem{you see}.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 7
-^
-Message 7 in Test.tex: Accent command `\'' needs use of `\i'.
-This \'is a test of $\hat{j}$ accents.
- ^^
-Message 7 in Test.tex: Accent command `\hat' needs use of `\jmath'.
-This \'is a test of $\hat{j}$ accents.
- ^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 8
-^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-It wasn't anything - just a 2---3 star--shots.
- ^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-It wasn't anything - just a 2---3 star--shots.
- ^^^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-It wasn't anything - just a 2---3 star--shots.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% From Knuths TeXbook Chapter 14
-^
-Message 22 in Test.tex: Comment displayed.
-% "How TeX Breaks Paragraphs into Lines", fourth paragraph:
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 9-10
-^
-Message 22 in Test.tex: Comment displayed.
-% Brackets:
-^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
-^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 9 in Test.tex: `}' expected, found `)'.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `]' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `]' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `]' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
- ^
-Message 22 in Test.tex: Comment displayed.
-% Envs:
-^
-Message 9 in Test.tex: `baz' expected, found `quux'.
-\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
- ^^^^
-Message 9 in Test.tex: `quux' expected, found `baz'.
-\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
- ^^^^
-Message 10 in Test.tex: Solo `asoi' found.
-\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
- ^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 11
-^
-Message 11 in Test.tex: 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: 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: 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: 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: 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: Comment displayed.
-% Warning 12
-^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 11 in Test.tex: You should use \ldots to achieve an ellipsis.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 11 in Test.tex: You should use \ldots to achieve an ellipsis.
-1st.\ foo Inc.\ ab.cd.\ foo ab.cd.\ Foo.\ bar baz., billy.; bob.:\ joe.!\ frank.?\ james..\ george
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 13
-^
-Message 13 in Test.tex: Intersentence spacing (`\@') should perhaps be used.
-Look at THIS! It's an error.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 14
-^
-Message 1 in Test.tex: Command terminated with space.
-\hat
- ^
-Message 14 in Test.tex: Could not find argument for command.
-\hat
-^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 18,19
-^
-Message 18 in Test.tex: Use either `` or '' as an alternative to `"'.
-Is this an "example", or is it an ´example´.
- ^
-Message 18 in Test.tex: Use either `` or '' as an alternative to `"'.
-Is this an "example", or is it an ´example´.
- ^
-Message 19 in Test.tex: Use "'" (ASCII 39) instead of "´" (ASCII 180).
-Is this an "example", or is it an ´example´.
- ^
-Message 19 in Test.tex: Use "'" (ASCII 39) instead of "´" (ASCII 180).
-Is this an "example", or is it an ´example´.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 20
-^
-Message 20 in Test.tex: User-specified pattern found: \unknown.
-That bug is \unknown\ to me.
- ^^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% That bug is \unknown\ to me.
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 21
-^
-Message 21 in Test.tex: This command might not be intended.
-\LaTeX\ is an extension of \TeX\. Right?
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 23
-^
-Message 23 in Test.tex: Either `\,`` or ``\,` will look better.
-```Hello', I heard him said'', she remembered.
-^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 24
-^
-Message 24 in Test.tex: Delete this space to maintain correct pagereferences.
-Indexing text \index{text} is fun!
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 25
-^
-Message 25 in Test.tex: You might wish to put this between a pair of `{}'
-$5\cdot10^10$
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 26
-^
-Message 26 in Test.tex: You ought to remove spaces in front of punctuation.
-Do you understand ?
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 27
-^
-Message 1 in input.tex: Command terminated with space.
-\this is a test of whether the file is actually inputted...
- ^
-Message 11 in input.tex: You should use \ldots to achieve an ellipsis.
-\this is a test of whether the file is actually inputted...
- ^^^
-Message 1 in input.tex: Command terminated with space.
-\this is a test of whether the file is actually inputted...
- ^
-Message 11 in input.tex: You should use \ldots to achieve an ellipsis.
-\this is a test of whether the file is actually inputted...
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 29
-^
-Message 29 in Test.tex: $\times$ may look prettier here.
-The program opens a screen sized 640x200 pixels
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 30
-^
-Message 30 in Test.tex: Multiple spaces detected in input.
-White is a beautiful colour.
- ^^^^^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 31
-^
-Message 31 in Test.tex: This text may be ignored.
-\end{verbatim} foo bar
- ^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 32-34
-^
-Message 32 in Test.tex: Use ` to begin quotation, not '.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^
-Message 33 in Test.tex: Use ' to end quotation, not `.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^
-Message 32 in Test.tex: Use ` to begin quotation, not '.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^
-Message 33 in Test.tex: Use ' to end quotation, not `.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^
-Message 34 in Test.tex: Don't mix quotes.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^^
-Message 34 in Test.tex: Don't mix quotes.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 35
-^
-Message 35 in Test.tex: You should perhaps use `\sin' instead.
-$sin^2 + cos^2 = 1$
- ^^^
-Message 35 in Test.tex: You should perhaps use `\cos' instead.
-$sin^2 + cos^2 = 1$
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 36-37
-^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 36 in Test.tex: You should put a space after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 38
-^
-Message 38 in Test.tex: You should not use punctuation in front of quotes.
-``An example,'' he said, ``would be great.''
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 39
-^
-Message 39 in Test.tex: Double space found.
-For output codes, see table ~\ref{tab:fmtout}.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 40
-^
-Message 40 in Test.tex: You should put punctuation outside inner math mode.
-$\this,$ and $$this$$.
- ^
-Message 40 in Test.tex: You should put punctuation inside display math mode.
-$\this,$ and $$this$$.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 41
-^
-Message 1 in Test.tex: Command terminated with space.
-foo \above qux
- ^
-Message 41 in Test.tex: You ought to not use primitive TeX in LaTeX code.
-foo \above qux
- ^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 42
-^
-Message 42 in Test.tex: You should remove spaces in front of `\footnote'
-This is a footnote \footnote{foo}.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 43
-^
-Message 43 in Test.tex: `\left' is normally not followed by `{'.
-Here is a mistake $\left{x\right}$.
- ^^^^^
-Message 43 in Test.tex: `\right' is normally not followed by `}'.
-Here is a mistake $\left{x\right}$.
- ^^^^^^
-Message 21 in Test.tex: This command might not be intended.
-This one triggers warning 22 $\left\{x\right\}$.
- ^^
-Message 21 in Test.tex: This command might not be intended.
-This one triggers warning 22 $\left\{x\right\}$.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 44 -- user regex -- default message
-^
-Message 44 in Test.tex: User Regex: intro.
-You should always write a good intro.
- ^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 44 -- user regex -- user message
-^
-Message 44 in Test.tex: User Regex: Always use \nmid.
-For every $p\not|n$ you have an ugly prime which doesn't divide $n$.
- ^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Math mode check
-^
-Message 35 in Test.tex: You should perhaps use `\sin' instead.
-\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
- ^^^
-Message 35 in Test.tex: You should perhaps use `\sin' instead.
-\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
- ^^^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-Also, $x(3)\text{ is not x(3) but it is $x(3)$}$
- ^
-Message 22 in Test.tex: Comment displayed.
-This is\\% a comment. Nothing here should be checked(right)?
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-But this is not a \% comment, so we should find this error(right)?
- ^
-Message 22 in Test.tex: Comment displayed.
-Here(on this line only)is a warning $sin(x)$ suppressed. % chktex 36 chktex 35
- ^
-Message 22 in Test.tex: Comment displayed.
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
- ^
-Message 36 in Test.tex: You should put a space after parenthesis.
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
- ^
-Message 44 in Test.tex: User Regex: -1:Capitalize before references.
-In section~\ref{sec:3} we have a warning.
- ^^^^^^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-In section~\ref{sec:4} it is suppressed. % chktex -1
- ^
-Message 22 in Test.tex: Comment displayed.
-% In section~\ref{sec:5} we don't have a warning.
-^
-Message 44 in Test.tex: User Regex: -2:Vertical rules in tables are ugly.
-\begin{tabular*}{1.0\linewidth}[h]{|c|cc|}
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Message 44 in Test.tex: User Regex: -2:Use \toprule, midrule, or \bottomrule from booktabs.
- \hline
- ^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Verb check
-^
-Message 14 in Test.tex: Could not find argument for command.
-\verb#
-^^^^^
-Message 31 in Test.tex: This text may be ignored.
-\end{verbatim} FOO
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 16,15
-^
-Message 16 in Test.tex: Mathmode still on at end of LaTeX file.
-
-
-Message 17 in Test.tex: Number of `(' doesn't match the number of `)'!
-
-
-Message 17 in Test.tex: Number of `[' doesn't match the number of `]'!
-
-
-Message 17 in Test.tex: Number of `{' doesn't match the number of `}'!
-
-
diff --git a/Build/source/texk/chktex/chktex-1.7.3/Test.posix-ere.out b/Build/source/texk/chktex/chktex-1.7.3/Test.posix-ere.out
deleted file mode 100644
index 6cdc394ef55..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/Test.posix-ere.out
+++ /dev/null
@@ -1,507 +0,0 @@
-Message 30 in Test.tex: Multiple spaces detected in input.
- o To test the program upon it
- ^^^
-Message 30 in Test.tex: Multiple spaces detected in input.
- o To show off some of the features
- ^^^
-Message 22 in Test.tex: Comment displayed.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 1
-^
-Message 1 in Test.tex: Command terminated with space.
-\foo This is an error.
- ^
-Message 9 in Test.tex: `section' expected, found `text'.
-\stoptext
- ^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 2
-^
-Message 2 in Test.tex: Non-breaking space (`~') should have been used.
-This is a faulty reference to \ref{foo}
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 3
-^
-Message 3 in Test.tex: You should enclose the previous parenthesis with `{}'.
-$[(ab)^{-1}]^{-2}$ is not beautiful
- ^
-Message 3 in Test.tex: You should enclose the previous parenthesis with `{}'.
-$[(ab)^{-1}]^{-2}$ is not beautiful
- ^
-Message 30 in Test.tex: Multiple spaces detected in input.
-$[(ab)^{-1}]^{-2}$ is not beautiful
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 4-6, 28
-^
-Message 6 in Test.tex: No italic correction (`\/') found.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^^
-Message 28 in Test.tex: Don't use \/ in front of small punctuation.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^
-Message 5 in Test.tex: Italic correction (`\/') found more than once.
-Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% LaTeX2e
-^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 42 in Test.tex: You should remove spaces in front of `\/'
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
- ^^
-Message 4 in Test.tex: Italic correction (`\/') found in non-italic buffer.
-Testing \textem{italic\/} in this \textit{sentence}, as \textem{you see}.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 7
-^
-Message 7 in Test.tex: Accent command `\'' needs use of `\i'.
-This \'is a test of $\hat{j}$ accents.
- ^^
-Message 7 in Test.tex: Accent command `\hat' needs use of `\jmath'.
-This \'is a test of $\hat{j}$ accents.
- ^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 8
-^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-It wasn't anything - just a 2---3 star--shots.
- ^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-It wasn't anything - just a 2---3 star--shots.
- ^^^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-It wasn't anything - just a 2---3 star--shots.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% From Knuths TeXbook Chapter 14
-^
-Message 22 in Test.tex: Comment displayed.
-% "How TeX Breaks Paragraphs into Lines", fourth paragraph:
-^
-Message 22 in Test.tex: Comment displayed.
-% Using DashExcpt
-^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-The Birch--Swinnerton--Dyer conjecture is not correct.
- ^^
-Message 8 in Test.tex: Wrong length of dash may have been used.
-The Birch--Swinnerton--Dyer conjecture is not correct.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 9-10
-^
-Message 22 in Test.tex: Comment displayed.
-% Brackets:
-^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
-^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 9 in Test.tex: `}' expected, found `)'.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `}' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `]' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `]' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `]' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
- ^
-Message 10 in Test.tex: Solo `)' found.
-)}{[])} }}}]]])))
- ^
-Message 22 in Test.tex: Comment displayed.
-% Envs:
-^
-Message 9 in Test.tex: `baz' expected, found `quux'.
-\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
- ^^^^
-Message 9 in Test.tex: `quux' expected, found `baz'.
-\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
- ^^^^
-Message 10 in Test.tex: Solo `asoi' found.
-\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
- ^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 11
-^
-Message 11 in Test.tex: 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: 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: 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: 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: 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: Comment displayed.
-% Warning 12
-^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used.
-1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 13
-^
-Message 13 in Test.tex: Intersentence spacing (`\@') should perhaps be used.
-Look at THIS! It's an error.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 14
-^
-Message 1 in Test.tex: Command terminated with space.
-\hat
- ^
-Message 14 in Test.tex: Could not find argument for command.
-\hat
-^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 18,19
-^
-Message 18 in Test.tex: Use either `` or '' as an alternative to `"'.
-Is this an "example", or is it an ´example´.
- ^
-Message 18 in Test.tex: Use either `` or '' as an alternative to `"'.
-Is this an "example", or is it an ´example´.
- ^
-Message 19 in Test.tex: Use "'" (ASCII 39) instead of "´" (ASCII 180).
-Is this an "example", or is it an ´example´.
- ^
-Message 19 in Test.tex: Use "'" (ASCII 39) instead of "´" (ASCII 180).
-Is this an "example", or is it an ´example´.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 20
-^
-Message 20 in Test.tex: User-specified pattern found: \unknown.
-That bug is \unknown\ to me.
- ^^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% That bug is \unknown\ to me.
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 21
-^
-Message 21 in Test.tex: This command might not be intended.
-\LaTeX\ is an extension of \TeX\. Right?
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 23
-^
-Message 23 in Test.tex: Either `\,`` or ``\,` will look better.
-```Hello', I heard him said'', she remembered.
-^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 24
-^
-Message 24 in Test.tex: Delete this space to maintain correct pagereferences.
-Indexing text \index{text} is fun!
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 25
-^
-Message 25 in Test.tex: You might wish to put this between a pair of `{}'
-$5\cdot10^10$
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 26
-^
-Message 26 in Test.tex: You ought to remove spaces in front of punctuation.
-Do you understand ?
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 27
-^
-Message 1 in input.tex: Command terminated with space.
-\this is a test of whether the file is actually inputted...
- ^
-Message 11 in input.tex: You should use \ldots to achieve an ellipsis.
-\this is a test of whether the file is actually inputted...
- ^^^
-Message 1 in input.tex: Command terminated with space.
-\this is a test of whether the file is actually inputted...
- ^
-Message 11 in input.tex: You should use \ldots to achieve an ellipsis.
-\this is a test of whether the file is actually inputted...
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 29
-^
-Message 29 in Test.tex: $\times$ may look prettier here.
-The program opens a screen sized 640x200 pixels
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 30
-^
-Message 30 in Test.tex: Multiple spaces detected in input.
-White is a beautiful colour.
- ^^^^^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 31
-^
-Message 31 in Test.tex: This text may be ignored.
-\end{verbatim} foo bar
- ^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 32-34
-^
-Message 32 in Test.tex: Use ` to begin quotation, not '.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^
-Message 33 in Test.tex: Use ' to end quotation, not `.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^
-Message 32 in Test.tex: Use ` to begin quotation, not '.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^
-Message 33 in Test.tex: Use ' to end quotation, not `.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^
-Message 34 in Test.tex: Don't mix quotes.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^^
-Message 34 in Test.tex: Don't mix quotes.
-This is either an 'example`, an ''example`` or an `"`example'`'.
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 35
-^
-Message 35 in Test.tex: You should perhaps use `\sin' instead.
-$sin^2 + cos^2 = 1$
- ^^^
-Message 35 in Test.tex: You should perhaps use `\cos' instead.
-$sin^2 + cos^2 = 1$
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 36-37
-^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 37 in Test.tex: You should avoid spaces in front of parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 36 in Test.tex: You should put a space after parenthesis.
-This( an example( Nuff said )), illustrates( ``my'' )point.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 38
-^
-Message 38 in Test.tex: You should not use punctuation in front of quotes.
-``An example,'' he said, ``would be great.''
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 39
-^
-Message 39 in Test.tex: Double space found.
-For output codes, see table ~\ref{tab:fmtout}.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 40
-^
-Message 40 in Test.tex: You should put punctuation outside inner math mode.
-$\this,$ and $$this$$.
- ^
-Message 40 in Test.tex: You should put punctuation inside display math mode.
-$\this,$ and $$this$$.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 41
-^
-Message 1 in Test.tex: Command terminated with space.
-foo \above qux
- ^
-Message 41 in Test.tex: You ought to not use primitive TeX in LaTeX code.
-foo \above qux
- ^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 42
-^
-Message 42 in Test.tex: You should remove spaces in front of `\footnote'
-This is a footnote \footnote{foo}.
- ^
-Message 22 in Test.tex: Comment displayed.
-% Warning 43
-^
-Message 43 in Test.tex: `\left' is normally not followed by `{'.
-Here is a mistake $\left{x\right}$.
- ^^^^^
-Message 43 in Test.tex: `\right' is normally not followed by `}'.
-Here is a mistake $\left{x\right}$.
- ^^^^^^
-Message 21 in Test.tex: This command might not be intended.
-This one triggers warning 22 $\left\{x\right\}$.
- ^^
-Message 21 in Test.tex: This command might not be intended.
-This one triggers warning 22 $\left\{x\right\}$.
- ^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 44 -- user regex -- default message
-^
-Message 22 in Test.tex: Comment displayed.
-% Warning 44 -- user regex -- user message
-^
-Message 44 in Test.tex: User Regex: Always use \nmid.
-For every $p\not|n$ you have an ugly prime which doesn't divide $n$.
- ^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Math mode check
-^
-Message 35 in Test.tex: You should perhaps use `\sin' instead.
-\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
- ^^^
-Message 35 in Test.tex: You should perhaps use `\sin' instead.
-\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
- ^^^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-Also, $x(3)\text{ is not x(3) but it is $x(3)$}$
- ^
-Message 22 in Test.tex: Comment displayed.
-This is\\% a comment. Nothing here should be checked(right)?
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-But this is not a \% comment, so we should find this error(right)?
- ^
-Message 22 in Test.tex: Comment displayed.
-Here(on this line only)is a warning $sin(x)$ suppressed. % chktex 36 chktex 35
- ^
-Message 22 in Test.tex: Comment displayed.
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
- ^
-Message 36 in Test.tex: You should put a space in front of parenthesis.
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
- ^
-Message 36 in Test.tex: You should put a space after parenthesis.
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
- ^
-Message 44 in Test.tex: User Regex: 1:Capitalize before references.
-In section~\ref{sec:3} we have a warning.
- ^^^^^^^^^^^^^
-Message 22 in Test.tex: Comment displayed.
-In section~\ref{sec:4} it is suppressed. % chktex -1
- ^
-Message 22 in Test.tex: Comment displayed.
-% In section~\ref{sec:5} we don't have a warning.
-^
-Message 44 in Test.tex: User Regex: -2:Vertical rules in tables are ugly.
-\begin{tabular*}{1.0\linewidth}[h]{|c|cc|}
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Message 44 in Test.tex: User Regex: -2:Use \toprule, midrule, or \bottomrule from booktabs.
- \hline
- ^^^^^^
-Message 22 in Test.tex: Comment displayed.
-% Verb check
-^
-Message 14 in Test.tex: Could not find argument for command.
-\verb#
-^^^^^
-Message 31 in Test.tex: This text may be ignored.
-\end{verbatim} FOO
- ^^^
-Message 22 in Test.tex: Comment displayed.
-% Warning 16,15
-^
-Message 16 in Test.tex: Mathmode still on at end of LaTeX file.
-
-
-Message 17 in Test.tex: Number of `(' doesn't match the number of `)'!
-
-
-Message 17 in Test.tex: Number of `[' doesn't match the number of `]'!
-
-
-Message 17 in Test.tex: Number of `{' doesn't match the number of `}'!
-
-
diff --git a/Build/source/texk/chktex/chktex-1.7.3/Test.tex b/Build/source/texk/chktex/chktex-1.7.3/Test.tex
deleted file mode 100644
index 376ea0d5e0c..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/Test.tex
+++ /dev/null
@@ -1,227 +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.
-
-\startsection[title={Testing ConTeXt}]
-These should now be an error.
-\stoptext
-
-% 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.
-It's just a start-shot.
-is also used to send cross-calls (xc) and cross-traps (xt) to other
-% From Knuths TeXbook Chapter 14
-% "How TeX Breaks Paragraphs into Lines", fourth paragraph:
-in plain TeX---are the key
-
-% Using DashExcpt
-The Birch--Swinnerton-Dyer conjecture is correct.
-The Birch--Swinnerton--Dyer conjecture is not correct.
-The Birch-Swinnerton-Dyer conjecture is not correct (but not caught).
-
-% 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 baz., billy.; bob.: joe.! frank.? james.. george
-1st.\ foo Inc.\ ab.cd.\ foo ab.cd.\ Foo.\ bar baz., billy.; bob.:\ joe.!\ frank.?\ james..\ george
-
-% 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.
-% 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}.
-
-% Warning 43
-Here is a mistake $\left{x\right}$.
-This one triggers warning 22 $\left\{x\right\}$.
-Here \chktex\ doesn't complain $\left\lbrace x\right\rbrace$.
-
-% Warning 44 -- user regex -- default message
-You should always write a good intro.
-You should always write a good introduction.
-
-% Warning 44 -- user regex -- user message
-For every $p\not|n$ you have an ugly prime which doesn't divide $n$.
-For every $p\nmid n$ you have a cute prime which doesn't divide $n$.
-
-% Math mode check
-\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
-Also, $x(3)\text{ is not x(3) but it is $x(3)$}$
-
-This is\\% a comment. Nothing here should be checked(right)?
-a broken line.
-But this is not a \% comment, so we should find this error(right)?
-
-Here(on this line only)is a warning $sin(x)$ suppressed. % chktex 36 chktex 35
-Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
-
-In section~\ref{sec:3} we have a warning.
-In section~\ref{sec:4} it is suppressed. % chktex -1
-% In section~\ref{sec:5} we don't have a warning.
-
-\begin{tabular*}{1.0\linewidth}[h]{|c|cc|}
- a & b \\
- \hline
- c & d
-\end{tabular*}
-
-% 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/chktex-1.7.3/Utility.c b/Build/source/texk/chktex/chktex-1.7.3/Utility.c
deleted file mode 100644
index 0f7c6c073df..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/Utility.c
+++ /dev/null
@@ -1,972 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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"
-
-typedef unsigned long HASH_TYPE;
-
-/***************************** 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.
- */
-
-
-short substring(const char *source, char *dest, unsigned long pos, long len)
-{
- const char *Start;
- short 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.
- *
- */
-
-
-int fexists(const char *Filename)
-{
- int 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.
- */
-
-void *sfmemset(void *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(char *String, /* String to replace within. */
- const char From, /* Character to search for. */
- const char 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(char *Buf, const char *Prot, const char 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.
- */
-
-
-char *strip(char *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 */
-{
- char *bufptr = str;
- char *nlptr;
- char 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
-char *strlwr(char *String)
-{
- char *Bufptr;
- char TmpC;
-
- for (Bufptr = String; (TmpC = *Bufptr); Bufptr++)
- *Bufptr = tolower((unsigned char)TmpC);
-
- return (String);
-}
-#endif
-
-/*
- * Returns a duplicate of the string passed.
- */
-
-#ifndef HAVE_STRDUP
-char *strdup(const char *String)
-{
- char *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.
- */
-
-char *strdupx(const char *String, int Extra)
-{
- char *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((unsigned char)aa) == tolower((unsigned char)bb)));
- /* bb != 0 is implicit */
-
- return (tolower((unsigned char)aa) - tolower((unsigned char)bb));
-}
-#endif
-
-/*
- * Not all reallocs are intelligent enough to handle NULL's as
- * parameters. This fixes this.
- */
-
-void *saferealloc(void *b, size_t n)
-{
- void *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(char *To, const char *From, unsigned long Len)
-{
- unsigned long i, j;
- unsigned long 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 char *Str, const char *Cmp)
-{
- return (strncmp(Str, Cmp, strlen(Cmp)));
-}
-
-/*
- * Checks whether Cmp comes before Str. Returns 0 if so, non-zero if not.
- *
- */
-
-int strinfront(const char *Str, const char *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.
- *
- * The algorithm was designed by Peter Weinberger. This version was
- * adapted from Dr Dobb's Journal April 1996 page 26.
- */
-
-static unsigned long HashWord(const char *str)
-{
- register unsigned long h = 0, hbit, c;
-
- while ((c = *str++))
- {
- h = (h << 4) ^ c;
- if ((hbit = h & 0xf0000000))
- h ^= hbit >> 24;
- h &= ~hbit;
- }
-
- return (h);
-}
-
-/*
- * Inserts a string into a hash index. Note: You'll have to
- * duplicate the string yourself.
- */
-
-void InsertHash(char *a, struct Hash *h)
-{
- struct HashEntry **he, *newhe;
-
- if (!h->Index)
- {
- if (!((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.
- */
-
-char *HasHash(const char *a, const struct Hash *h)
-{
- struct HashEntry *he;
- HASH_TYPE i; /* Special magic to optimize SAS/C */
-
- /* Do we have a hash? */
- if (!h->Index)
- return NULL;
-
- /* Find entry in hash */
- i = HashWord(a);
- i %= HASH_SIZE;
- he = h->Index[i];
-
- /* Search in the entry for the item */
- 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)
-{
- int i;
- struct HashEntry *he, *next;
- if (h && h->Index)
- {
- /* Free all the memory */
- for ( i = 0; i < HASH_SIZE; ++i )
- {
- he = h->Index[i];
- while ( he )
- {
- next = he->Next;
- free( he );
- he = next;
- }
- }
- /* Reset the hash table */
- 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)
-{
- unsigned long 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.
- */
-
-int InsertWord(const char *Word, struct WordList *WL)
-{
- char *WrdCpy;
- unsigned long 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)
-{
- char *Word;
- if (WL)
- {
- while ( (Word = StkPop( &WL->Stack )) )
- {
- free(Word);
- }
- 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.
- */
-
-
-char *HasWord(const char *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)
-{
- unsigned long 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 char From, const char To)
-{
- unsigned long 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.
- */
-
-int StkPush(void *Data, struct Stack *Stack)
-{
- unsigned long NewSize;
- void **NewBuf;
-
- if (Data && Stack)
- {
- if (Stack->Used >= Stack->Size)
- {
- NewSize = Stack->Size + MINPUDDLE;
-
- if ((NewBuf = saferealloc(Stack->Data,
- (size_t) NewSize * sizeof(void *))))
- {
- Stack->Size = NewSize;
- Stack->Data = NewBuf;
- }
- else
- return (FALSE);
- }
-
- Stack->Data[Stack->Used++] = Data;
- return (TRUE);
- }
-
- return (FALSE);
-}
-
-/*
- * Pops an element from the stack.
- *
- */
-
-void *StkPop(struct Stack *Stack)
-{
- void *Retval = NULL;
-
- if (Stack && (Stack->Used > 0))
- {
- Retval = Stack->Data[--Stack->Used];
-
-#ifdef NO_DIRTY_TRICKS
-
- {
- void **NewBuf;
-
- if (Stack->Used < (Stack->Size / 2))
- {
- unsigned long NewSize;
- NewSize = Stack->Size - MINPUDDLE;
- NewSize = max(NewSize, MINPUDDLE);
-
- if (NewBuf = saferealloc(Stack->Data,
- (size_t) NewSize * sizeof(void *)))
- {
- Stack->Size = NewSize;
- Stack->Data = NewBuf;
- }
- }
- }
-#endif
-
- }
- return (Retval);
-}
-
-/*
- * Returns the topmost element of the stack.
- */
-
-void *StkTop(struct Stack *Stack)
-{
- if (Stack && (Stack->Used > 0))
- return (Stack->Data[Stack->Used - 1]);
- else
- return (NULL);
-}
-
-/****************************** INPUT STACK *****************************/
-
-int PushFileName(const char *Name, struct Stack *stack)
-{
- FILE *fh = NULL;
- static char 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);
-}
-
-
-int PushFile(const char *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);
-}
-
-char *FGetsStk(char *Dest, unsigned long len, struct Stack *stack)
-{
- static short HasSeenLong = 0;
- struct FileNode *fn;
- char *Retval = NULL;
-
- if ((fn = StkTop(stack)))
- {
- do
- {
- Retval = fgets(Dest, (int)len, fn->fh);
- if (Retval) {
- if (Retval[strlen(Retval)-1] == '\n')
- fn->Line++;
- /* We only want the long lines warning once per file */
- else if (!HasSeenLong)
- {
- PrintPrgErr(pmLongLines, BUFSIZ);
- HasSeenLong = 1;
- }
- break;
- }
-
- fn = StkPop(stack);
- fclose(fn->fh);
- if ( fn->Name != NULL )
- free(fn->Name);
- free(fn);
- HasSeenLong = 0;
- }
- while (!Retval && (fn = StkTop(stack)));
- }
-
- return (Retval);
-}
-
-const char *CurStkName(struct Stack *stack)
-{
- struct FileNode *fn;
- static const char *LastName = "";
-
- if (PseudoInName && (stack->Used <= 1))
- return (PseudoInName);
- else
- {
- if ((fn = StkTop(stack)))
- {
- if ( stack->Used == 1 && strlen(LastName) == 0 && fn->Name )
- {
- LastName = strdup(fn->Name);
- }
- return (fn->Name);
- }
- else
- return (LastName);
- }
-}
-
-
-FILE *CurStkFile(struct Stack * stack)
-{
- struct FileNode *fn;
-
- if ((fn = StkTop(stack)))
- return (fn->fh);
- else
- return (NULL);
-}
-
-unsigned long CurStkLine(struct Stack *stack)
-{
- struct FileNode *fn;
- static unsigned long 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 char c, const unsigned long Line,
- const unsigned long Column, struct Stack *Stk,
- const char *LineCpy)
-{
- char Buf[2];
-
- Buf[0] = c;
- Buf[1] = 0;
-
- return (PushErr(Buf, Line, Column, 1, LineCpy, Stk));
-}
-
-struct ErrInfo *PushErr(const char *Data, const unsigned long Line,
- const unsigned long Column,
- const unsigned long ErrLen, const char *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, char *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 char 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 char 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.
- */
-
-char MatchBracket(const char c)
-{
- unsigned long Index;
- char Char = 0;
-
-
- if ((Index = BrackIndex(c)) != ~0UL)
- Char = BrOrder[Index ^ 1];
-
- return (Char);
-}
diff --git a/Build/source/texk/chktex/chktex-1.7.3/Utility.h b/Build/source/texk/chktex/chktex-1.7.3/Utility.h
deleted file mode 100644
index b1b31ec7739..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/Utility.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
-
-#include "ChkTeX.h"
-#include "OpSys.h"
-
-/*
- * How many indexes we'll allocate first time
- */
-#define MINPUDDLE 256
-
-/*
- * How many bytes we want in front/end of each char 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;
- char *Str;
-};
-
-struct Hash
-{
- struct HashEntry **Index;
-};
-
-struct Stack
-{
- void **Data;
- unsigned long Size, Used;
-};
-
-struct WordList
-{
- unsigned long MaxLen;
- int NonEmpty;
- struct Stack Stack;
- struct Hash Hash;
-};
-#define WORDLIST_DEFINED
-
-struct FileNode
-{
- char *Name;
- FILE *fh;
- unsigned long 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)))
-
-/* Subtract 1 because sizeof includes the null terminator.
- * WARNING: To use this on a variable, the type should be char[]
- * rather than char*, since for some versions of gcc these give
- * different values. */
-#define STRLEN(x) (sizeof(x)/sizeof(x[0]) - 1)
-
-int fexists(const char *Filename);
-
-void *sfmemset(void *to, int c, long n);
-void *saferealloc(void *old, size_t newsize);
-
-int strafter(const char *Str, const char *Cmp);
-void strrep(char *String, const char From, const char To);
-void strxrep(char *Buf, const char *Prot, const char To);
-char *strip(char *String, const enum Strip What);
-void strwrite(char *To, const char *From, unsigned long Len);
-int strinfront(const char *Str, const char *Cmp);
-char *strdupx(const char *String, int Extra);
-void strmove(char *a, const char *b);
-
-void ClearHash(struct Hash *h);
-void InsertHash(char *a, struct Hash *h);
-char *HasHash(const char *a, const struct Hash *h);
-
-int InsertWord(const char *Word, struct WordList *WL);
-char *HasWord(const char *Word, struct WordList *WL);
-void MakeLower(struct WordList *wl);
-void ListRep(struct WordList *wl, const char From, const char To);
-void ClearWord(struct WordList *WL);
-
-int StkPush(void *Data, struct Stack *Stack);
-void *StkPop(struct Stack *Stack);
-void *StkTop(struct Stack *Stack);
-
-FILE *CurStkFile(struct Stack *stack);
-const char *CurStkName(struct Stack *stack);
-unsigned long CurStkLine(struct Stack *stack);
-char *FGetsStk(char *Dest, unsigned long len, struct Stack *stack);
-int PushFileName(const char *Name, struct Stack *stack);
-int PushFile(const char *, FILE *, struct Stack *);
-
-
-void FreeErrInfo(struct ErrInfo *ei);
-struct ErrInfo *PushChar(const char c, const unsigned long Line,
- const unsigned long Column, struct Stack *Stk,
- const char *LineCpy);
-struct ErrInfo *PushErr(const char *Data, const unsigned long Line,
- const unsigned long Column,
- const unsigned long ErrLen, const char *LineCpy,
- struct Stack *Stk);
-struct ErrInfo *TopChar(struct Stack *Stack);
-struct ErrInfo *TopErr(struct Stack *Stack);
-struct ErrInfo *PopErr(struct Stack *Stack);
-struct ErrInfo *TopMatch(struct Stack *Stack, char *String);
-
-long BrackIndex(const char c);
-void AddBracket(const char c);
-char MatchBracket(const char c);
-
-
-
-short substring(const char *source, char *dest, unsigned long pos, long len);
-
-#ifndef HAVE_STRLWR
-# define strlwr mystrlwr
-char *mystrlwr(char *String);
-#endif
-
-#ifndef HAVE_STRDUP
-# define strdup mystrdup
-char *mystrdup(const char *String);
-#endif
-
-
-#ifndef HAVE_STRCASECMP
-int strcasecmp(char *a, char *b);
-#endif
-
-#if !(defined HAVE_DECL_STPCPY && HAVE_DECL_STPCPY)
-static inline char * stpcpy(char *dest, const char *src)
-{
- return strcpy(dest, src) + strlen(src);
-}
-#endif
-
-
-#endif /* UTILITY_H */
diff --git a/Build/source/texk/chktex/chktex-1.7.3/autogen.sh b/Build/source/texk/chktex/chktex-1.7.3/autogen.sh
deleted file mode 100755
index 0982233b129..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/autogen.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-ACLOCAL="aclocal -I m4"
-AUTOHEADER="autoheader"
-AUTOMAKE="automake --add-missing --copy --foreign"
-AUTOCONF="autoconf"
-
-# Delete old cache directories.
-# automake will stop if their contents was created by an earlier version.
-rm -rf autom4te.cache
-
-# Generate the Makefiles and configure files
-echo "Building macros..."
-if ( $ACLOCAL --version ) < /dev/null > /dev/null 2>&1; then
- $ACLOCAL
-else
- echo "aclocal not found -- aborting"
- exit 1
-fi
-
-echo "Building config header template..."
-if ( $AUTOHEADER --version ) < /dev/null > /dev/null 2>&1; then
- $AUTOHEADER
- echo timestamp > stamp-h.in
-else
- echo "autoheader not found -- aborting"
- exit 1
-fi
-
-# We do not really need automake, but want to install programs like install-sh.
-echo "Installing some useful programs..."
-if ( $AUTOMAKE --version ) < /dev/null > /dev/null 2>&1; then
- $AUTOMAKE 2>/dev/null
-else
- echo "automake not found -- aborting"
- exit 1
-fi
-
-echo "Building configure..."
-if ( $AUTOCONF --version ) < /dev/null > /dev/null 2>&1; then
- $AUTOCONF
-else
- echo "autoconf not found -- aborting"
- exit 1
-fi
-
-echo
-echo 'run "./configure ; make"'
-echo
diff --git a/Build/source/texk/chktex/chktex-1.7.3/chktex.1 b/Build/source/texk/chktex/chktex-1.7.3/chktex.1
deleted file mode 100644
index a3dcc13e3dc..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/chktex.1
+++ /dev/null
@@ -1,143 +0,0 @@
-.TH chktex 1 "March 30, 2001"
-.AT 3
-.SH NAME
-chktex \- finds typographic errors in LaTeX.
-.SH SYNOPSIS
-.B chktex
-.I [-hiqrW] [-v[0-...]] [-l <rcfile>] [-[wemn] <[1-42]|all>]
-.I [-d[0-...]] [-p <name>] [-o <outfile>] [-[btxgI][0|1]]
-.B file1 file2 ...
-.SH DESCRIPTION
-.I chktex
-finds typographic errors in
-.I LaTeX
-.
-.SH OPTIONS
-.PP
-Miscellaneous options:
-.TP
-.B "-h --help"
-Print a help screen.
-.TP
-.B "-i --license"
-Show distribution information.
-.TP
-.B "-l --localrc"
-Read local .chktexrc formatted file.
-.TP
-.B "-d --debug"
-Debug information. Give it a number.
-.TP
-.B "-r --reset"
-Reset settings to default.
-.PP
-Muting warning messages:
-.TP
-.B "-w --warnon"
-Makes msg # given a warning and turns it on.
-.TP
-.B "-e --erroron"
-Makes msg # given an error and turns it on.
-.TP
-.B "-m --msgon"
-Makes msg # given a message and turns it on.
-.TP
-.B "-n --nowarn"
-Mutes msg # given.
-.TP
-.B "-L --nolinesupp"
-Do not allow per-line suppressions. These are TeX comments of the form
-.I "% chktex ##".
-
-.PP
-Output control flags:
-.TP
-.B "-v --verbosity"
-How errors are displayed.
-Default 1, 0=Less, 2=Fancy, 3=lacheck.
-.TP
-.B "-V --pipeverb"
-How errors are displayed when stdout != tty.
-Defaults to the same as -v.
-.TP
-.B "-s --splitchar"
-String used to split fields when doing -v0
-.TP
-.B "-o --output"
-Redirect error report to a file.
-.TP
-.B "-q --quiet"
-Shuts up about version information.
-.TP
-.B "-p --pseudoname"
-Input file-name when reporting.
-.TP
-.B "-f --format"
-Format to use for output
-
-.PP
-Boolean switches (1 -> enables / 0 -> disables):
-.TP
-.B "-b --backup"
-Backup output file.
-.TP
-.B "-x --wipeverb"
-Ignore contents of `\\verb' commands.
-.TP
-.B "-g --globalrc"
-Read global .chktexrc file.
-.TP
-.B "-I --inputfiles"
-Execute \\input statements.
-.TP
-.B "-H --headererr"
-Show errors found in front of \\begin{document}
-.PP Miscellaneous switches:
-.TP
-.B "-W --version"
-Version information
-
-.PP
-If no LaTeX files are specified on the command line, we will read from
-stdin. For explanation of warning/error messages, please consult the
-main document /usr/share/doc/chktex/ChkTeX.dvi.gz.
-
-.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.,
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-.SH ENVIRONMENT
-No environment variables are used.
-.SH FILES
-None.
-.SH AUTHOR
-Jens T. Berger Thielemann,
-.I <jensthi@ifi.uio.no>
-.PP
-This manual page was cobbled together by Clint Adams <schizo@debian.org>,
-based on the output of "chktex --help" and deweb(1).
-.SH "SEE ALSO"
-.B deweb(1), chkweb(1)
diff --git a/Build/source/texk/chktex/chktex-1.7.3/chktex.el b/Build/source/texk/chktex/chktex-1.7.3/chktex.el
deleted file mode 100644
index e61334796ca..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/chktex.el
+++ /dev/null
@@ -1,56 +0,0 @@
-;;; chktex.el --- quick hack to add ChkTeX capability to AUC-TeX mode
-;;
-;;
-;; Keywords: LaTeX, AUC-TeX, ChkTeX
-;;
-;; ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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:
-;;
-
-(eval-after-load 'tex
- '(progn
- (add-to-list 'TeX-command-list
- '("ChkTeX" "chktex -v6 %s" TeX-run-compile nil t))))
-
-(provide 'chktex)
-
-;;; chktex.el ends here
diff --git a/Build/source/texk/chktex/chktex-1.7.3/chktexrc b/Build/source/texk/chktex/chktex-1.7.3/chktexrc
deleted file mode 100644
index da28a5dcfad..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/chktexrc
+++ /dev/null
@@ -1,800 +0,0 @@
-##
-## ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 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 caught.
-# 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 - Number 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.
-# MathCmd - Commands which turn on math mode.
-# TextCmd - Commands which turn off 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. They are not found in comments.
-#
-# 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.
-#
-###
-
-]
-
-
-###
-#
-# These patterns will be searched for, no matter whether they appear
-# as normal text, commands or arguments. However, they will _not_
-# match in verbatim environments.
-#
-# Remember that you have to escape (with a !) the following
-# characters: "#!= as well as spaces and {}[] if they are proceeded by
-# a space.
-#
-# Since these are PCRE regular expressions, you can use (?i) to make
-# the expression case insensitive. See the man pages (man pcresyntax)
-# or the nicely formatted http://perldoc.perl.org/perlre.html for
-# documentation on the regular expression syntax. Note however that
-# some the features of perl regular expression are not available such
-# as running code (callouts), and replacing.
-#
-# An initial PCRE comment (?# ... ) can be used change what is
-# displayed, thereby reminding yourself how to fix the problem.
-#
-###
-UserWarnRegex
-{
-
- (?!#Always! use! \nmid)\\not! *(\||\\mid)
-
- # capitalize section when saying Section 6.
- (?!#-1:Capitalize! before! references)PCRE:\b(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref
- (?!#1:Capitalize! before! references)POSIX:([^[:alnum:]]|^)(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref
-
- # spell it out.
- # PCRE:(?i)\bintro\b(?!#Spell! it! out.! This! comment! is! not! used.)
- # POSIX:([^[:alnum:]]|^)intro([^[:alnum:]]|$)
-
- # Pretty tables--see http://texdoc.net/texmf-dist/doc/latex/booktabs/booktabs.pdf
- (?!#-2:Use! \toprule,! midrule,! or! \bottomrule! from! booktabs)\\hline
- # This relies on it being on a single line, and not having anything
- # else on that line. With PCRE we could match balanced [] and {},
- # but I wonder if it's worth the complexity...
- (?!#-2:Vertical! rules! in! tables! are! ugly)\\begin\{(array|tabularx?\*?)\}(\[.*\])?\{.*\|.*\}
-
-}
-
-
-#####################################################################
-#
-# 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 output formats 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,pdf}.
-#
-# 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"
-
-# -v5; no line number, ease auto-test
-"%k %n in %f: %m!n%r%s%t!n%u!n"
-
-# -v6; emacs compilation mode
-"!"%f!", line %l.%c:(#%n) %m!n"
-
-}
-
-
-
-#####################################################################
-#
-# These commands should be ignored when detecting whether a command
-# is ended by a space. You can specify regular expressions in the []
-# section in case you have many custom macros that can be safely
-# terminated with 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 \else
-
- \csname \endcsname
-
- \z@ \p@ \@warning \typeout
-
- \dots \ldots \input \endinput \nextline \leavevmode \cdots
- \appendix \listfiles \and \quad
- \hskip \vfill \vfil \hfill \hfil \topmargin \oddsidemargin
- \frenchspacing \nonfrenchspacing
- \begingroup \endgroup \par
-
- \vrefwarning \upshape \headheight \headsep \hoffset \voffset
- \cdot \qquad
- \left \right
- \qedhere
-
- \xspace
-
- \addlinespace \cr \fill \frontmatter
- \toprule \midrule \bottomrule
-
-}[
-# Here you can put regular expressions to match Silent macros. It was
-# designed for the case where you have many custom macros sharing a
-# common prefix, but can of course be used for other things.
-
-# Support ConTeXt to at least some extent
-\\start.* \\stop.*
-
-]
-
-#####################################################################
-#
-# 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 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 a 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 3
-}
-
-NumDash
-{
- 2
-}
-
-WordDash
-{
- 3
-}
-
-#####################################################################
-#
-# Here are exceptions to the dash rules above. For example, an
-# n-dash -- between words is usually wrong, but in some cases it is
-# correct, such as when naming a theorem. The Birch--Swinnerton-Dyer
-# conjecture is one example where the difference matters. You can
-# tell that Birch is one person and Swinnerton-Dyer is another.
-#
-# Adding line suppressions for these is possible, but can quickly
-# become tedious if a certain theorem is referenced often. For this
-# reason exceptions can be specified here. They are case-sensitive.
-#
-
-DashExcpt
-{
- Birch--Swinnerton-Dyer
-}
-
-#####################################################################
-#
-# This keyword indicates commands whose argument isn't LaTeX code,
-# and 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.
-# Some commands (e.g. \cmidrule) use () to delimit and optional
-# argument and so this syntax is supported as well.
-#
-# 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:{} \eqref:{} \vref:{} \pageref:{} \index:[]{}
- \cite:[][]{} \nocite:{}
- \input:{} \verbatiminput:[]{} \listinginput:[]{}{}
- \verbatimtabinput:[]{} \include:{} \includeonly:{}
- \bibitem:[]{}
- \cline:{} \cmidrule:[](){}
- \href:{}{}
- # Cleveref -- there are many others that could be here as well...
- \cref:*{} \cpageref:*{} \crefrange:*{}{} \cpagerefrange:*{}{}
- \Cref:*{} \Cpageref:*{} \Crefrange:*{}{} \Cpagerefrange:*{}{}
- # natbib
- \citet:*[][]{} \citep:*[][]{} \citealt:*{} \citealp:*[]{} \citeauthor:*{}
- \Citet:*[][]{} \Citep:*[][]{} \Citealt:*{} \Citealp:*[]{} \Citeauthor:{}
- \citetext:{} \citeyear:*{} \citeyearpar:{}
-}
-
-#####################################################################
-#
-# These environments contain 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
- align alignat gather flalign multline
-}
-
-#####################################################################
-#
-# These commands contain material which will be typeset as mathematics
-# by LaTeX. The commands are assumed to have one mandatory argument
-# which is in math mode. This turns on/off some warnings.
-#
-
-MathCmd
-{
- \ensuremath
-}
-
-#####################################################################
-#
-# These commands contain material which will _not_ be typeset as
-# mathematics by LaTeX even if it would otherwise be in mathmode. The
-# commands are assumed to have one mandatory argument which is in text
-# mode. This turns on/off some warnings.
-#
-
-TextCmd
-{
- \text \intertext \shortintertext \mbox
-}
-
-#####################################################################
-#
-# 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
- filecontents pgfpicture tikzpicture
-}
-
-#####################################################################
-#
-# 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
- \itshape \slshape
-}
-
-#####################################################################
-#
-# Commands which makes the font non-italic.
-#
-
-NonItalic
-{
- \bf \rm \sf \tt \sc
- \upshape
-}
-
-#####################################################################
-#
-# Commands which put their argument into italic (and thus possibly
-# needs italic correction in the end).
-#
-# This is currently empty, since \textit, \textsl and \emph do that
-# automatically.
-#
-
-ItalCmd
-{
-}
-
-#####################################################################
-#
-# 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 \eqref \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
-# commands 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's reserved characters (`#$%&~_^\{}'), or any parenthesis
-# character ('()[]{}'). If possible, don't use a punctuation
-# character, either, or any spacing character.
-#
-# The asterisk is also unsuitable, as some commands behave in another
-# way if they are appended with an asterisk. 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/chktex-1.7.3/chkweb.1 b/Build/source/texk/chktex/chktex-1.7.3/chkweb.1
deleted file mode 100644
index 5cb7063f786..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/chkweb.1
+++ /dev/null
@@ -1,132 +0,0 @@
-.TH chkweb 1 "March 30, 2001"
-.AT 3
-.SH NAME
-chkweb \- runs the LaTeX parts of a CWEB file through chktex
-.SH SYNOPSIS
-.B chkweb
-.I [-hiqrW] [-l <rcfile>] [-[wemn] <[1-42]|all>]
-.I [-d[0-...]] [-o <outfile>] [-[btxgI][0|1]]
-.B file1 file2 ...
-.SH DESCRIPTION
-.I chkweb
-runs the
-.I LaTeX
-parts of a CWEB file through chktex.
-.SH OPTIONS
-.PP
-Miscellaneous options:
-.TP
-.B "-h --help"
-Print a help screen.
-.TP
-.B "-i --license"
-Show distribution information.
-.TP
-.B "-l --localrc"
-Read local .chktexrc formatted file.
-.TP
-.B "-d --debug"
-Debug information. Give it a number.
-.TP
-.B "-r --reset"
-Reset settings to default.
-.PP
-Muting warning messages:
-.TP
-.B "-w --warnon"
-Makes msg # given a warning and turns it on.
-.TP
-.B "-e --erroron"
-Makes msg # given an error and turns it on.
-.TP
-.B "-m --msgon"
-Makes msg # given a message and turns it on.
-.TP
-.B "-n --nowarn"
-Mutes msg # given.
-
-.PP
-Output control flags:
-.TP
-.B "-V --pipeverb"
-How errors are displayed when stdout != tty.
-Defaults to the same as -v.
-.TP
-.B "-s --splitchar"
-String used to split fields when doing -v0
-.TP
-.B "-o --output"
-Redirect error report to a file.
-.TP
-.B "-q --quiet"
-Shuts up about version information.
-.TP
-.B "-f --format"
-Format to use for output
-
-.PP
-Boolean switches (1 -> enables / 0 -> disables):
-.TP
-.B "-b --backup"
-Backup output file.
-.TP
-.B "-x --wipeverb"
-Ignore contents of `\\verb' commands.
-.TP
-.B "-g --globalrc"
-Read global .chktexrc file.
-.TP
-.B "-I --inputfiles"
-Execute \\input statements.
-.TP
-.B "-H --headererr"
-Show errors found in front of \\begin{document}
-.PP Miscellaneous switches:
-.TP
-.B "-W --version"
-Version information
-
-.PP
-If no LaTeX files are specified on the command line, we will read from
-stdin. For explanation of warning/error messages, please consult the
-main document /usr/share/doc/chktex/ChkTeX.dvi.gz.
-
-.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.,
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-.SH ENVIRONMENT
-No environment variables are used.
-.SH FILES
-None.
-.SH AUTHOR
-Jens T. Berger Thielemann,
-.I <jensthi@ifi.uio.no>
-.PP
-This manual page was cobbled together by Clint Adams <schizo@debian.org>,
-based on the output of "chktex --help" and deweb(1).
-.SH "SEE ALSO"
-.B deweb(1), chktex(1)
diff --git a/Build/source/texk/chktex/chktex-1.7.3/chkweb.sh b/Build/source/texk/chktex/chktex-1.7.3/chkweb.sh
deleted file mode 100755
index 8d6361d1097..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/chkweb.sh
+++ /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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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/chktex-1.7.3/configure.in b/Build/source/texk/chktex/chktex-1.7.3/configure.in
deleted file mode 100644
index 085f81e1877..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/configure.in
+++ /dev/null
@@ -1,193 +0,0 @@
-dnl
-dnl ChkTeX, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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(ChkTeX, 1.7.3)
-AC_SUBST(SCRIPTS)
-AC_SUBST(BUILT_SCRIPTS)
-AC_SUBST(CLEAN)
-CLEAN=
-
-AC_ARG_ENABLE(pcre,[
- --enable-pcre: Use PCRE to allow regular expressions in
- user warnings. (Default: yes, if available).],,
-enable_pcre=yes)
-
-AC_ARG_ENABLE(posixre,[
- --enable-posixre: Use POSIX extended regular expressions in
- user warnings. (Default: yes, unless using PCRE).],,
-enable_posixre=yes)
-
-AC_ARG_ENABLE(lacheck-replace,[
- --enable-lacheck-replace: Installs a lacheck replacement. (Default: no).],,
-enable_lacheck_replace=no)
-
-AC_ARG_ENABLE(debug-info,[
- --enable-debug-info: Compile in miscellaneous runtime debugging
- information. (Default: yes).],,
-enable_debug_info=yes)
-
-AC_ARG_ENABLE(coverage-testing,[
- --enable-coverage-testing: Activate coverage testing with gcov. (Default: no)],,
-enable_coverage_testing=no)
-
-AC_MSG_CHECKING(whether lacheck replacement should be installed)
-if test "$enable_lacheck_replace" = "yes"; then
- SCRIPTS="$SCRIPTS lacheck"
- AC_MSG_RESULT(yes)
-else
- 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, Strip debug info)
- AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING(whether coverage testing is enabled)
-if test "$enable_coverage_testing" = "yes"; then
- AC_MSG_RESULT(yes)
- CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage -O0"
- CLEAN="${CLEAN} \$(wildcard *.bb *.bbg *.da *.gcov)"
-else
- AC_MSG_RESULT(no)
-fi
-
-
-dnl Check compiler and flags
-AC_PROG_CC
-AX_CFLAGS_STRICT_PROTOTYPES
-VL_PROG_CC_WARNINGS
-
-dnl Checks for programs.
-AC_PROG_INSTALL
-AC_PROG_LN_S
-AC_PROG_MKDIR_P
-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
- BUILT_SCRIPTS="$BUILT_SCRIPTS deweb"
- SCRIPTS="$SCRIPTS chkweb"
-else
- AC_MSG_WARN(chkweb 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, no)
-dnl if test "$LATEX" = no; then
-dnl AC_MSG_ERROR([No LaTeX on the system, cannot find latex program.])
-dnl fi
-
-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_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
-AC_TYPE_UINT64_T
-
-dnl Checks for library functions.
-AC_FUNC_VPRINTF
-AC_CHECK_FUNCS(access closedir fileno isatty opendir readdir stat dnl
-strcasecmp strdup strlwr strtol)
-
-dnl Checks for declarations.
-AC_CHECK_DECLS([stpcpy])
-
-dnl Check for PCRE regular expression support
-AC_MSG_CHECKING(whether PCRE regular expressions are enabled)
-AC_MSG_RESULT($enable_pcre)
-if test "$enable_pcre" = "yes"; then
- AC_CHECK_PROG(WITH_PCRE, pcre-config, yes, no)
- if test "$WITH_PCRE" = "yes"; then
- AC_DEFINE(HAVE_PCRE, 1, Whether PCRE can be used for user warnings.)
- CFLAGS="${CFLAGS} $(pcre-config --cflags-posix)"
- LDFLAGS="${LDFLAGS} $(pcre-config --libs-posix)"
- else
- AC_DEFINE(HAVE_PCRE, 0)
- AC_MSG_WARN(PCRE library not found.)
- fi
-else
- AC_DEFINE(HAVE_PCRE, 0)
- AC_MSG_WARN(PCRE regular expressions not enabled.)
-fi
-
-dnl Check for POSIX extended regular expression support
-AC_MSG_CHECKING(for POSIX extended regular expressions)
-AC_EGREP_CPP([yes],
- [#include <regex.h>
- #ifdef REG_EXTENDED
- yes
- # endif
- ], posix_ere=yes, posix_ere=no)
-AC_MSG_RESULT($posix_ere)
-if test "$WITH_PCRE" = "yes"; then
- AC_DEFINE(HAVE_POSIX_ERE, 0, Whether POSIX ERE can be used for user warnings.)
-else
- if test "$enable_posixre" = "yes"; then
- if test "$posix_ere" = "yes"; then
- AC_DEFINE(HAVE_POSIX_ERE, 1)
- else
- AC_DEFINE(HAVE_POSIX_ERE, 0)
- fi
- else
- AC_DEFINE(HAVE_POSIX_ERE, 0)
- AC_MSG_WARN(Regular expressions not enabled.)
- fi
-fi
-
-
-AC_CONFIG_HEADER(config.h)
-AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h])
-AC_OUTPUT(Makefile deweb rmeheader ChkTeX.tex)
diff --git a/Build/source/texk/chktex/chktex-1.7.3/deweb.1 b/Build/source/texk/chktex/chktex-1.7.3/deweb.1
deleted file mode 100644
index 43770aa1fd3..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/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.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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/chktex-1.7.3/deweb.in b/Build/source/texk/chktex/chktex-1.7.3/deweb.in
deleted file mode 100644
index 91750e636a2..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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/chktex-1.7.3/input.tex b/Build/source/texk/chktex/chktex-1.7.3/input.tex
deleted file mode 100644
index 76bc301ff25..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/input.tex
+++ /dev/null
@@ -1 +0,0 @@
-\this is a test of whether the file is actually inputted...
diff --git a/Build/source/texk/chktex/chktex-1.7.3/lacheck b/Build/source/texk/chktex/chktex-1.7.3/lacheck
deleted file mode 100755
index da75d360dee..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/lacheck
+++ /dev/null
@@ -1,27 +0,0 @@
-#! /bin/sh
-
-# lacheck replacement 1.0, lacheck <-> ChkTeX interface (UNIX).
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# Contact the author at:
-# Jens Berger
-# Spektrumvn. 4
-# N-0666 Oslo
-# Norway
-# E-mail: <jensthi@ifi.uio.no>
-
-chktex -v3 $*
diff --git a/Build/source/texk/chktex/chktex-1.7.3/m4/ax_cflags_strict_prototypes.m4 b/Build/source/texk/chktex/chktex-1.7.3/m4/ax_cflags_strict_prototypes.m4
deleted file mode 100644
index 06ec9e2f27b..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/m4/ax_cflags_strict_prototypes.m4
+++ /dev/null
@@ -1,170 +0,0 @@
-# ===========================================================================
-# http://autoconf-archive.cryp.to/ax_cflags_strict_prototypes.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_CFLAGS_STRICT_PROTOTYPES [(shellvar [,default, [A/NA]]
-#
-# DESCRIPTION
-#
-# Try to find a compiler option that requires strict prototypes.
-#
-# The sanity check is done by looking at sys/signal.h which has a set of
-# macro-definitions SIG_DFL and SIG_IGN that are cast to the local
-# signal-handler type. If that signal-handler type is not fully qualified
-# then the system headers are not seen as strictly prototype clean.
-#
-# For the GNU CC compiler it will be -fstrict-prototypes
-# -Wstrict-prototypes The result is added to the shellvar being CFLAGS by
-# default.
-#
-# DEFAULTS:
-#
-# - $1 shell-variable-to-add-to : CFLAGS
-# - $2 add-value-if-not-found : nothing
-# - $3 action-if-found : add value to shellvariable
-# - $4 action-if-not-found : nothing
-#
-# LAST MODIFICATION
-#
-# 2008-04-12
-#
-# COPYLEFT
-#
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-#
-# 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, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Macro Archive. When you make and
-# distribute a modified version of the Autoconf Macro, you may extend this
-# special exception to the GPL to apply to your modified version as well.
-
-AC_DEFUN([AX_CFLAGS_STRICT_PROTOTYPES],[dnl
-AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
-AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_strict_prototypes])dnl
-AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for strict prototypes],
-VAR,[VAR="no, unknown"
- AC_LANG_SAVE
- AC_LANG_C
- ac_save_[]FLAGS="$[]FLAGS"
-for ac_arg dnl
-in "-pedantic % -fstrict-prototypes -Wstrict-prototypes" dnl GCC
- "-pedantic % -Wstrict-prototypes" dnl try to warn atleast
- "-pedantic % -Wmissing-prototypes" dnl or another warning
- "-pedantic % -Werror-implicit-function-declaration" dnl
- "-pedantic % -Wimplicit-function-declaration" dnl
- #
-do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
- AC_TRY_COMPILE([],[return 0;],
- [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
-done
-case ".$VAR" in
- .|.no|.no,*) ;;
- *) # sanity check with signal() from sys/signal.h
- cp config.log config.tmp
- AC_TRY_COMPILE([#include <signal.h>],[
- if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1;
- if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;],
- dnl the original did use test -n `$CC testprogram.c`
- [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0
-then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1
-then VAR="no, suppressed, signal.h," ; fi ; fi],
- [VAR="no, suppressed, signal.h"])
- rm config.tmp
- ;;
-esac
- FLAGS="$ac_save_[]FLAGS"
- AC_LANG_RESTORE
-])
-case ".$VAR" in
- .ok|.ok,*) m4_ifvaln($3,$3) ;;
- .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
- AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
- *) m4_ifvaln($3,$3,[
- if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
- then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
- else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
- fi ]) ;;
-esac
-AS_VAR_POPDEF([VAR])dnl
-AS_VAR_POPDEF([FLAGS])dnl
-])
-
-dnl the only difference - the LANG selection... and the default FLAGS
-
-AC_DEFUN([AX_CXXFLAGS_STRICT_PROTOTYPES],[dnl
-AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
-AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_strict_prototypes])dnl
-AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for strict prototypes],
-VAR,[VAR="no, unknown"
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_[]FLAGS="$[]FLAGS"
-for ac_arg dnl
-in "-pedantic -Werror % -fstrict-prototypes -Wstrict-prototypes" dnl GCC
- "-pedantic -Werror % -Wstrict-prototypes" dnl try to warn atleast
- "-pedantic -Werror % -Wmissing-prototypes" dnl try to warn atleast
- "-pedantic -Werror % -Werror-implicit-function-declaration" dnl
- "-pedantic -Werror % -Wimplicit-function-declaration" dnl
- "-pedantic % -Wstrict-prototypes %% no, unsupported in C++" dnl oops
- #
-do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
- AC_TRY_COMPILE([],[return 0;],
- [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
-done
-case ".$VAR" in
- .|.no|.no,*) ;;
- *) # sanity check with signal() from sys/signal.h
- cp config.log config.tmp
- AC_TRY_COMPILE([#include <signal.h>],[
- if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1;
- if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;],
- dnl the original did use test -n `$CC testprogram.c`
- [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0
-then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1
-then VAR="no, suppressed, signal.h," ; fi ; fi],
- [VAR="no, suppressed, signal.h"])
- rm config.tmp
- ;;
-esac
- FLAGS="$ac_save_[]FLAGS"
- AC_LANG_RESTORE
-])
-case ".$VAR" in
- .ok|.ok,*) m4_ifvaln($3,$3) ;;
- .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
- AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
- *) m4_ifvaln($3,$3,[
- if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
- then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
- else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
- fi ]) ;;
-esac
-AS_VAR_POPDEF([VAR])dnl
-AS_VAR_POPDEF([FLAGS])dnl
-])
diff --git a/Build/source/texk/chktex/chktex-1.7.3/m4/vl_prog_cc_warnings.m4 b/Build/source/texk/chktex/chktex-1.7.3/m4/vl_prog_cc_warnings.m4
deleted file mode 100644
index fe2f6145450..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/m4/vl_prog_cc_warnings.m4
+++ /dev/null
@@ -1,111 +0,0 @@
-AC_DEFUN([VL_PROG_CC_WARNINGS], [
- ansi=$1
- if test -z "$ansi"; then
- msg="for C compiler warning flags"
- else
- msg="for C compiler warning and ANSI conformance flags"
- fi
- AC_CACHE_CHECK($msg, vl_cv_prog_cc_warnings, [
- if test -n "$CC"; then
- cat > conftest.c <<EOF
-int main(int argc, char **argv) { return 0; }
-EOF
-
- dnl GCC
- if test "$GCC" = "yes"; then
- if test -z "$ansi"; then
- vl_cv_prog_cc_warnings="-Wall"
- else
- vl_cv_prog_cc_warnings="-Wall -ansi -pedantic"
- fi
-
- dnl Most compilers print some kind of a version string with some command
- dnl line options (often "-V"). The version string should be checked
- dnl before doing a test compilation run with compiler-specific flags.
- dnl This is because some compilers (like the Cray compiler) only
- dnl produce a warning message for unknown flags instead of returning
- dnl an error, resulting in a false positive. Also, compilers may do
- dnl erratic things when invoked with flags meant for a different
- dnl compiler.
-
- dnl Solaris C compiler
- elif $CC -V 2>&1 | grep -i "WorkShop" > /dev/null 2>&1 &&
- $CC -c -v -Xc conftest.c > /dev/null 2>&1 &&
- test -f conftest.o; then
- if test -z "$ansi"; then
- vl_cv_prog_cc_warnings="-v"
- else
- vl_cv_prog_cc_warnings="-v -Xc"
- fi
-
- dnl Digital Unix C compiler
- elif $CC -V 2>&1 | grep -i "Digital UNIX Compiler" > /dev/null 2>&1 &&
- $CC -c -verbose -w0 -warnprotos -std1 conftest.c > /dev/null 2>&1 &&
- test -f conftest.o; then
- if test -z "$ansi"; then
- vl_cv_prog_cc_warnings="-verbose -w0 -warnprotos"
- else
- vl_cv_prog_cc_warnings="-verbose -w0 -warnprotos -std1"
- fi
-
- dnl C for AIX Compiler
- elif $CC 2>&1 | grep -i "C for AIX Compiler" > /dev/null 2>&1 &&
- $CC -c -qlanglvl=ansi -qinfo=all conftest.c > /dev/null 2>&1 &&
- test -f conftest.o; then
- if test -z "$ansi"; then
- vl_cv_prog_cc_warnings="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd"
- else
- vl_cv_prog_cc_warnings="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd -qlanglvl=ansi"
- fi
-
- dnl IRIX C compiler
- elif $CC -version 2>&1 | grep -i "MIPSpro Compilers" > /dev/null 2>&1 &&
- $CC -c -fullwarn -ansi -ansiE conftest.c > /dev/null 2>&1 &&
- test -f conftest.o; then
- if test -z "$ansi"; then
- vl_cv_prog_cc_warnings="-fullwarn"
- else
- vl_cv_prog_cc_warnings="-fullwarn -ansi -ansiE"
- fi
-
- dnl HP-UX C compiler
- elif what $CC 2>&1 | grep -i "HP C Compiler" > /dev/null 2>&1 &&
- $CC -c -Aa +w1 conftest.c > /dev/null 2>&1 &&
- test -f conftest.o; then
- if test -z "$ansi"; then
- vl_cv_prog_cc_warnings="+w1"
- else
- vl_cv_prog_cc_warnings="+w1 -Aa"
- fi
-
- dnl The NEC SX-5 (Super-UX 10) C compiler
- elif $CC -V 2>&1 | grep "/SX" > /dev/null 2>&1 &&
- $CC -c -pvctl[,]fullmsg -Xc conftest.c > /dev/null 2>&1 &&
- test -f conftest.o; then
- if test -z "$ansi"; then
- vl_cv_prog_cc_warnings="-pvctl[,]fullmsg"
- else
- vl_cv_prog_cc_warnings="-pvctl[,]fullmsg -Xc"
- fi
-
- dnl The Cray C compiler (Unicos)
- elif $CC -V 2>&1 | grep -i "Cray" > /dev/null 2>&1 &&
- $CC -c -h msglevel 2 conftest.c > /dev/null 2>&1 &&
- test -f conftest.o; then
- if test -z "$ansi"; then
- vl_cv_prog_cc_warnings="-h msglevel 2"
- else
- vl_cv_prog_cc_warnings="-h msglevel 2 -h conform"
- fi
-
- fi
- rm -f conftest.*
- fi
- if test -n "$vl_cv_prog_cc_warnings"; then
- CFLAGS="$CFLAGS $vl_cv_prog_cc_warnings"
- else
- vl_cv_prog_cc_warnings="unknown"
- fi
- ])
-])dnl
-
diff --git a/Build/source/texk/chktex/chktex-1.7.3/rmeheader.in b/Build/source/texk/chktex/chktex-1.7.3/rmeheader.in
deleted file mode 100644
index 56ca58ae76e..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/rmeheader.in
+++ /dev/null
@@ -1,19 +0,0 @@
-Short: v@PACKAGE_VERSION@. Finds typographic errors in LaTeX
-Author: <chktex@ev-en.org> (Baruch Even)
-Uploader: <chktex@ev-en.org> (Baruch Even)
-Type: text/tex
-Replaces: text/tex/ChkTeX.lha
-Version: @PACKAGE_VERSION@
-URL: http://www.freesoftware.fsf.org/chktex
-
-
- ##### ### ### ######## ### ##
- ### ## ## ## ## ## #
- @@ @@ @@@ @@ @@ @@ ####### @@ @
- @@ @@@ @@ @@ @@ @@ ## # @@
- && && && &&&& && @@ & &&
- &&& && && && && && && @@@@ & &&
- %%%%% %%% %%% %%% %%% %% && %%% %%% v@PACKAGE_VERSION@
- && &
- %%%%%%%
-
diff --git a/Build/source/texk/chktex/chktex-1.7.3/types.h b/Build/source/texk/chktex/chktex-1.7.3/types.h
deleted file mode 100644
index a26b95295e4..00000000000
--- a/Build/source/texk/chktex/chktex-1.7.3/types.h
+++ /dev/null
@@ -1,17 +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
-
-#ifndef TRUE
-# define TRUE 1L
-#endif
-#ifndef FALSE
-# define FALSE 0L
-#endif
-
-#endif