diff options
Diffstat (limited to 'Build/source/texk/chktex/chktex-1.7.3')
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 Binary files differdeleted file mode 100644 index 246c2a502a1..00000000000 --- a/Build/source/texk/chktex/chktex-1.7.3/ChkTeX.pdf +++ /dev/null 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 |