diff options
Diffstat (limited to 'Build/source')
-rw-r--r-- | Build/source/texk/detex/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/texk/detex/Makefile.am | 3 | ||||
-rw-r--r-- | Build/source/texk/detex/Makefile.in | 5 | ||||
-rwxr-xr-x | Build/source/texk/detex/configure | 4 | ||||
-rw-r--r-- | Build/source/texk/detex/configure.ac | 3 | ||||
-rw-r--r-- | Build/source/texk/detex/detex-2.7-PATCHES/TL-Changes | 6 | ||||
-rw-r--r-- | Build/source/texk/detex/detex-2.7/README | 189 | ||||
-rw-r--r-- | Build/source/texk/detex/detex-2.7/detex.h | 44 | ||||
-rw-r--r-- | Build/source/texk/detex/detex-2.7/detex.l | 740 | ||||
-rw-r--r-- | Build/source/texk/detex/detex-2.7/detex.man | 126 | ||||
-rw-r--r-- | Build/source/texk/detex/detex-2.7/states.sed | 17 |
11 files changed, 7 insertions, 1135 deletions
diff --git a/Build/source/texk/detex/ChangeLog b/Build/source/texk/detex/ChangeLog index 685bd71977b..d836e489b14 100644 --- a/Build/source/texk/detex/ChangeLog +++ b/Build/source/texk/detex/ChangeLog @@ -1,3 +1,8 @@ +2010-09-24 Peter Breitenlohner <peb@mppmu.mpg.de> + + * Remove detex-2.7/ and detex-2.7-PATCHES/. + * Makefile.am, configure.ac: Adapted. + 2010-06-10 Peter Breitenlohner <peb@mppmu.mpg.de> * Import detex-2.8, patches in detex-2.8-PATCHES. diff --git a/Build/source/texk/detex/Makefile.am b/Build/source/texk/detex/Makefile.am index 8383abffe4b..f24df275862 100644 --- a/Build/source/texk/detex/Makefile.am +++ b/Build/source/texk/detex/Makefile.am @@ -10,9 +10,6 @@ EXTRA_DIST = $(DETEX_TREE) ## Patches applied to the original source tree EXTRA_DIST += $(DETEX_TREE)-PATCHES -## Prepare for switch detex-2.7 -> detex-2.8 -EXTRA_DIST += $(OTHER_TREE) $(OTHER_TREE)-PATCHES - # in case of an SVN repository dist-hook: rm -rf `find $(distdir) -name .svn` diff --git a/Build/source/texk/detex/Makefile.in b/Build/source/texk/detex/Makefile.in index 19da098de0e..6768556da2c 100644 --- a/Build/source/texk/detex/Makefile.in +++ b/Build/source/texk/detex/Makefile.in @@ -188,7 +188,6 @@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ -OTHER_TREE = @OTHER_TREE@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ @@ -259,8 +258,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I ../../m4 -EXTRA_DIST = $(DETEX_TREE) $(DETEX_TREE)-PATCHES $(OTHER_TREE) \ - $(OTHER_TREE)-PATCHES test.lout test.tex test.tout +EXTRA_DIST = $(DETEX_TREE) $(DETEX_TREE)-PATCHES test.lout test.tex \ + test.tout INCLUDES = -I$(top_srcdir)/$(DETEX_TREE) $(KPATHSEA_INCLUDES) AM_CPPFLAGS = -DNO_MALLOC_DECL -DKPATHSEA -Dlint AM_CFLAGS = $(WARNING_CFLAGS) diff --git a/Build/source/texk/detex/configure b/Build/source/texk/detex/configure index 592304eb3dd..8cbdf867da8 100755 --- a/Build/source/texk/detex/configure +++ b/Build/source/texk/detex/configure @@ -616,7 +616,6 @@ ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS -OTHER_TREE DETEX_TREE KPATHSEA_RULE KPATHSEA_DEPEND @@ -14219,9 +14218,6 @@ fi DETEX_TREE=detex-2.8 -OTHER_TREE=`echo $DETEX_TREE | tr 78 87` - - ac_config_files="$ac_config_files Makefile" diff --git a/Build/source/texk/detex/configure.ac b/Build/source/texk/detex/configure.ac index 7436cbac282..1ea938e5080 100644 --- a/Build/source/texk/detex/configure.ac +++ b/Build/source/texk/detex/configure.ac @@ -26,9 +26,6 @@ KPSE_KPATHSEA_FLAGS DETEX_TREE=detex-[]detex_version AC_SUBST([DETEX_TREE]) -OTHER_TREE=`echo $DETEX_TREE | tr 78 87` -AC_SUBST([OTHER_TREE]) - AC_CONFIG_FILES([Makefile]) AC_OUTPUT diff --git a/Build/source/texk/detex/detex-2.7-PATCHES/TL-Changes b/Build/source/texk/detex/detex-2.7-PATCHES/TL-Changes deleted file mode 100644 index 2ad134b8998..00000000000 --- a/Build/source/texk/detex/detex-2.7-PATCHES/TL-Changes +++ /dev/null @@ -1,6 +0,0 @@ -Changes applied to the detex-2.7 tree as obtained from: - http://www.cs.purdue.edu/homes/trinkle/detex/ ??? - -Renamed: - detex.1l -> detex.man - diff --git a/Build/source/texk/detex/detex-2.7/README b/Build/source/texk/detex/detex-2.7/README deleted file mode 100644 index 59fb6b558c4..00000000000 --- a/Build/source/texk/detex/detex-2.7/README +++ /dev/null @@ -1,189 +0,0 @@ -Detex - Version 2.7 - -Detex is a program to remove TeX constructs from a text file. It recognizes -the \input command. - -This program assumes it is dealing with LaTeX input if it sees the string -"\begin{document}" in the text. It recognizes the \include and \includeonly -commands. - -This directory contains the following files: - -README - you're looking at it. - -Makefile - makefile for generating detex on a 4.2BSD Unix system. - -detex.1l - troff source for the detex manual page. - Assuming you have the -man macros, use "make man-page" to - generate it. - -detex.h - Various global definitions. These should be modified to suit - the local installation. - -detex.l - Lex and C source for the detex program. - -lexout.c - C code generated from detex.l using lex on a Sun (SunOS 4.1.1) - This can be useful for DOS, OS/2 or systems that don't have - lex. - -states.sed - sed(1) script to munge the state names in detex.l so that - reasonable names can be used in the source without causing - lex(1) to overflow. - -os2 - subdirectory containing support for compilation on - OS/2 and DOS systems - - -Feel free to redistribute this program, but distribute the complete contents -of this directory. The latest version is available at -http://www.cs.purdue.edu/homes/trinkle/detex/ Send comments and fixes -to me via email. - -Daniel Trinkle <trinkle@cs.purdue.edu> -Department of Computer Sciences -Purdue University -West Lafayette, IN 47907-1398 - -April 26, 1986 - -Modified -- June 4, 1986 -Changed so that it automatically recognizes LaTeX source and ignores several -environment modes such as array. - - -Modified (Version 2.0) -- June 30, 1984 -Now handles white space in sequences like "\begin { document }". Detex is not -as easily confused by such things as display mode ends and begins that don't -match up. - - -Modified -- September 19, 1986 -Added the "-e <environment-list>" option to ignore specified LaTeX -environments. - - -Modified -- June 30, 1987 -Added the "-n" no-follow option, to allow detex to ignore \input and \include -commands. Also changed the algorithm for locating the input files. It now -interprets the "." more reasonably (i.e. it is not always the beginning of an -extension). - - -Modified -- December 15, 1988 -Added handling of verbatim environment in LaTeX mode and added it to the list -of modes ignored by default. Because of limitations with lex, it was -necessary to shorten the names of some of the existing start states before -adding a new one (ugh). - - -Modified -- January 3, 1988 -Added ignore of \$ inside $$ (math) pair. - - -Modified (Version 2.2) -- June 25, 1990 -Control sequences are no longer replaced by space, but just removed. This -means accents no longer cause output words to be broken. The "-c" option was -added to show the arguments of \cite, \ref, and \pageref macros. This is -useful when using something like style on the output. - - -Modified (Version 2.3) -- September 7, 1990 -Fixed the handling of Ctl mode a little better and added an exception -for \index on suggestions from kcb@hss.caltech.edu (KC Border). Also -changed the value for DEFAULTINPUTS to coincide with a local change. - - -Modified -- February 10, 1991 -Added -t option to force TeX mode even when seeing the "\begin{document}" -string in the input. - - -Modified -- February 23, 1991 -Based on suggestions from pinard@iro.umontreal.ca (Francois Pinard), I -added support for the SysV string routines (-DUSG), added defines for -the flex lexical scanner (-DFLEX_SCANNER), changed NULL to '\0' when -using it as a character (his sys defined NULL as (void *)0), changed -the Makefile to use ${CC} instead of cc, and added comments about the -new compile time options. - - -Modified (Version 2.4) -- September 2, 1992 -Corrected the way CITEBEGIN worked. Due to serious braindeath I had -the condition wrong in the if test. It should be (fLatex && !fCite). -This solves the problem a couple people reported with amstex style -\ref entries. - -Added a preprocessing sed(1) command to replace all the long, easy to -read state names with short two letter state names (SA-S?) so that lex -won't overflow and I don't have to keep shortening the state names -every time I add one. If a state is added, it must also be added to -states.sed (order is important) along with its unique S? replacement. - -Added \pagestyle, \setcounter, and \verb handling from -K.Sattar@cs.exeter.ac.uk (Khalid Sattar). Also allows invocation as -"delatex" to force LaTeX mode. - -Applied patches from queinnec@cenatls.cena.dgac.fr (Philippe Queinnec) -to handle nested {}s in state <LaMacro2> (\bibitem, \cite, \index). - -Added special ligature handling (\aa, \ae, \oe, \l, \o, \i, \j, \ss) -at the suggestion of gwp@dido.caltech.edu (G. W. Pigman II). - -Cleaned up the comments on detex.h, added mathmatica to DEFAULTENV. - - -Modified (Version 2.5) -- January 28, 1993 -Leading spaces in macros are no longer stripped. This means -"foo\footnote{ bar}" comes out as "foo bar" instead of "foobar". - -Fixed special ligature handling so it works in cases line {\ss} instead of -just when followed by a space. - - -Modified (Version 2.6) -- July 30, 1993 -Added OS/2 port from hankedr@mail.auburn.edu (Darrel R Hankerson). - -Added handling of leading and trailing ':' in TEXINPUTS per the latest -TeX as suggested by jnp@tfl.dk (J|rgen N|rgaard). - -Changed the way the input path is constructed in SetInputPaths() so we -never try to modify a constant string. - -Changed the way the the ignore environment list is contructed in -SetEnvIgnore() so we never try to modify a constant string. - -Changed the USG define to HAVE_STRING_H. - -Fixed the states.sed script so it only replaces "Input" in the correct -places. I would like to use the \< \> word separator patterns but -they are not supported by all versions of sed. This as least works. - -Changed the detex.c target in the Makefile to use a temporary file -because I experienced problems (segmentation fault) with lex on -Solaris 2.1 when input was from stdin. - - -Modified (Version 2.7) -- September 10, 1997 -Removed line breaks in detex.l between a few patterns and actions. It -appears that flex is no longer able to handle this. Thanks to Anthony -Harris <harris@hebb.neurology.pitt.edu> and Marty Leisner -<leisner@sdsp.mc.xerox.com> for reporting this. - - -Porting notes -- March 30, 1992 -When using gcc, or compiling on a NeXT, you should compile with --fwritable-strings. With the change to SetInputPaths() in 2.6 this -should no longer be necessary. - -On a NeXT, it has been reported that lex replaces the '\0' with NULL, -and then the compiler complains about it. I think this is an old bug -that is no longer applicable. - -July 30, 1993 -The flex scanner generator does not work because it does not handle -input buffering the same way as lex. I don't know of any reasonable -way to rewrite detex to get around this problem. - -May 25, 1995 -According to alain@ia1.u-strasbg.fr (Alain Ketterlin), using flex -allows 8-bit characters to be handled correctly. diff --git a/Build/source/texk/detex/detex-2.7/detex.h b/Build/source/texk/detex/detex-2.7/detex.h deleted file mode 100644 index 2ed7fbf1eb0..00000000000 --- a/Build/source/texk/detex/detex-2.7/detex.h +++ /dev/null @@ -1,44 +0,0 @@ -/****** -** The following parameters should be modified as necessary -** MAXINCLIST - maximum number of files allowed in an \includeonly list -** -** DEFAULTINPUTS - this should be the same as the default TEXINPUTS -** CHPATHSEP - the path separator character in TEXINPUTS -** MAXINPUTPATHS - (arbitrary) number of separate paths in TEXINPUTS -** -** DEFAULTENV - list of LaTeX environments ignored -** CHENVSEP - the list separator character in the ignore envronment list -** MAXENVS - maximum number of environments listed in the ignore list -** CCHMAXENV - maximum count of characters in an environment name (LaTex) -******/ - -#define MAXINCLIST 40 - -#ifdef OS2 -#define DEFAULTINPUTS ".;/emtex/texinput" -#define CHPATHSEP ';' -#else -#define DEFAULTINPUTS ".:/usr/local/tex/inputs" -#define CHPATHSEP ':' -#endif -#define MAXINPUTPATHS 10 - -#define DEFAULTENV "array,eqnarray,equation,figure,mathmatica,picture,table,verbatim" -#define CHENVSEP ',' -#define MAXENVS 10 -#define CCHMAXENV 100 - -/****** -** These probably should not be changed -******/ - -#define CHOPT '-' -#define CHCITEOPT 'c' -#define CHENVOPT 'e' -#define CHLATEXOPT 'l' -#define CHNOFOLLOWOPT 'n' -#define CHSPACEOPT 's' -#define CHTEXOPT 't' -#define CHWORDOPT 'w' - -#define ERROR -1 diff --git a/Build/source/texk/detex/detex-2.7/detex.l b/Build/source/texk/detex/detex-2.7/detex.l deleted file mode 100644 index 3d9a961dfa6..00000000000 --- a/Build/source/texk/detex/detex-2.7/detex.l +++ /dev/null @@ -1,740 +0,0 @@ -%{ -#ifndef lint -static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.19 1997/09/10 18:12:37 trinkle Exp $"; -#endif - -/* - * detex [-e environment-list] [-c] [-l] [-n] [-s] [-t] [-w] [file[.tex] ] - * - * This program is used to remove TeX or LaTeX constructs from a text - * file. - * - * Written by: - * Daniel Trinkle - * Department of Computer Science - * Purdue University - * - */ - -#ifdef FPTEX -#include <win32lib.h> -#undef ERROR -#endif - -#include "detex.h" -#ifndef KPATHSEA - -#ifdef HAVE_STRING_H -#include <string.h> -#define index strchr -#define rindex strrchr -#else -#include <strings.h> -#endif -#ifndef MAXPATHLEN -#include <sys/param.h> -#endif -#define PATH_MAX MAXPATHLEN -#ifdef OS2 -#include <stdlib.h> -#endif -#ifndef NO_MALLOC_DECL -char *malloc(); -#endif - -#else - -#include "c-auto.h" -#include "kpathsea/c-auto.h" -#include "kpathsea/config.h" -#include "kpathsea/c-memstr.h" -#include "kpathsea/c-pathmx.h" -#include "kpathsea/c-std.h" -#include "kpathsea/tex-file.h" - -#ifdef HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif - -#endif - -#undef IGNORE - -void SetEnvIgnore(const char *sbEnvList); -int BeginEnv(const char *sbEnv); -int EndEnv(const char *sbEnv); -void InputFile(char *sbFile); -void IncludeFile(char *sbFile); -void AddInclude(char *sbFile); -int InList(char *sbFile); -void SetInputPaths(void); -int SeparateList(char *sbList, char **rgsbList ,char chSep,int csbMax); -FILE * TexOpen(char *sbFile); -char * SafeMalloc(int cch, const char *sbMessage); -void Warning(const char *sb1, const char *sb2); -void ErrorExit(const char *sb1); - -#define LaBEGIN if (fLatex) BEGIN -#define CITEBEGIN if (fLatex && !fCite) BEGIN -#define IGNORE if (fSpace && !fWord) putchar(' ') -#define SPACE if (!fWord) putchar(' ') -#define NEWLINE if (!fWord) putchar('\n') - -#ifdef OS2 -void yyless(int); -void OS2UsageExit(void); -#endif - -char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ -char *rgsbIncList[MAXINCLIST]; /* list of includeonly files */ -char *rgsbInputPaths[MAXINPUTPATHS]; /* list of input paths in order */ -char sbCurrentEnv[CCHMAXENV]; /* current environment being ignored */ -char *sbProgName; /* name we were invoked with */ -#ifndef NOFILE /* might be defined in <sys/param.h> */ -#define NOFILE 256 -#endif -FILE *rgfp[NOFILE+1]; /* stack of input/include files */ -int cfp = 0; /* count of files in stack */ -int cOpenBrace = 0; /* count of `{' in <LaMacro2> */ -int csbEnvIgnore; /* count of environments ignored */ -int csbIncList = 0; /* count of includeonly files */ -int csbInputPaths; /* count of input paths */ -int fLatex = 0; /* flag to indicated delatex */ -int fWord = 0; /* flag for -w option */ -int fFollow = 1; /* flag to follow input/include */ -int fCite = 0; /* flag to echo \cite and \ref args */ -int fSpace = 0; /* flag to replace \cs with space */ -int fForcetex = 0; /* flag to inhibit latex mode */ -%} - -S [ \t\n]* -W [a-zA-Z]+ - -%Start Define Display IncludeOnly Input Math Normal Control -%Start LaBegin LaDisplay LaEnd LaEnv LaFormula LaInclude -%Start LaMacro LaMacro2 LaVerbatim - -%% -<Normal>"%".* /* ignore comments */ ; - -<Normal>"\\begin"{S}"{"{S}"document"{S}"}" {fLatex = !fForcetex; IGNORE;} - -<Normal>"\\begin" /* environment start */ {LaBEGIN LaBegin; IGNORE;} - -<LaBegin>{S}"{"{S}"verbatim"{S}"}" { if (BeginEnv("verbatim")) - BEGIN LaEnv; - else - BEGIN LaVerbatim; - IGNORE; - } - -<LaVerbatim>"\\end"{S}"{"{S}"verbatim"{S}"}" /* verbatim mode */ {BEGIN Normal; IGNORE;} -<LaVerbatim>. ECHO; - -<LaBegin>{W} { if (BeginEnv(yytext)) - BEGIN LaEnv; - else - BEGIN LaMacro; - IGNORE; - } -<LaBegin>"\n" NEWLINE; -<LaBegin>. ; - -<LaEnv>"\\end" /* absorb some environments */ {LaBEGIN LaEnd; IGNORE;} -<LaEnv>"\n" NEWLINE; -<LaEnv>. ; - -<LaEnd>{W} /* end environment */ { if (EndEnv(yytext)) - BEGIN Normal; - IGNORE; - } -<LaEnd>"}" {BEGIN LaEnv; IGNORE;} -<LaEnd>"\n" NEWLINE; -<LaEnd>. ; - -<Normal>"\\bibitem" /* ignore args */ {LaBEGIN LaMacro2; IGNORE;} -<Normal>"\\bibliography" /* of these \cs */ {LaBEGIN LaMacro; IGNORE;} -<Normal>"\\bibstyle" {LaBEGIN LaMacro; IGNORE;} -<Normal>"\\cite" {CITEBEGIN LaMacro2; IGNORE;} -<Normal>"\\documentstyle" {LaBEGIN LaMacro; IGNORE;} -<Normal>"\\end" {LaBEGIN LaMacro; IGNORE;} -<Normal>"\\footnote" {SPACE;} -<Normal>"\\index" {LaBEGIN LaMacro2; SPACE;} -<Normal>"\\label" {LaBEGIN LaMacro; IGNORE;} -<Normal>"\\pageref" {CITEBEGIN LaMacro; IGNORE;} -<Normal>"\\pagestyle" {LaBEGIN LaMacro; IGNORE;} -<Normal>"\\ref" {CITEBEGIN LaMacro; IGNORE;} -<Normal>"\\setcounter" {LaBEGIN LaMacro; IGNORE;} -<Normal>"\\verb" /* ignore \verb<ch>...<ch> */ { if (fLatex) { - char verbchar, c; - verbchar = input(); - while ((c = input()) != verbchar) - if (c == '\n') - NEWLINE; - } - IGNORE; - } -<LaMacro>"}" BEGIN Normal; -<LaMacro>"\n" NEWLINE; -<LaMacro>. ; -<LaMacro2>"{" { cOpenBrace++; } -<LaMacro2>"}" { cOpenBrace--; - if (cOpenBrace == 0) - BEGIN Normal; - } -<LaMacro2>"\n" NEWLINE; -<LaMacro2>. ; - -<Normal>"\\def" /* ignore def begin */ {BEGIN Define; IGNORE;} -<Define>"{" BEGIN Normal; -<Define>"\n" NEWLINE; -<Define>. ; - -<Normal>"\\(" /* formula mode */ {LaBEGIN LaFormula; IGNORE;} -<LaFormula>"\\)" BEGIN Normal; -<LaFormula>"\n" NEWLINE; -<LaFormula>. ; - -<Normal>"\\[" /* display mode */ {LaBEGIN LaDisplay; IGNORE;} -<LaDisplay>"\\]" BEGIN Normal; -<LaDisplay>"\n" NEWLINE; -<LaDisplay>. ; - -<Normal>"$$" /* display mode */ {BEGIN Display; IGNORE;} -<Display>"$$" BEGIN Normal; -<Display>"\n" NEWLINE; -<Display>. ; - -<Normal>"$" /* math mode */ {BEGIN Math; IGNORE;} -<Math>"$" BEGIN Normal; -<Math>"\n" NEWLINE; -<Math>"\\$" ; -<Math>. ; - -<Normal>"\\include" /* process files */ {LaBEGIN LaInclude; IGNORE;} -<LaInclude>[^{ \t\n}]+ { IncludeFile(yytext); - BEGIN Normal; - } -<LaInclude>"\n" NEWLINE; -<LaInclude>. ; - -<Normal>"\\includeonly" {BEGIN IncludeOnly; IGNORE;} -<IncludeOnly>[^{ \t,\n}]+ AddInclude(yytext); -<IncludeOnly>"}" { if (csbIncList == 0) - rgsbIncList[csbIncList++] = '\0'; - BEGIN Normal; - } -<IncludeOnly>"\n" NEWLINE; -<IncludeOnly>. ; - -<Normal>"\\input" {BEGIN Input; IGNORE;} -<Input>[^{ \t\n}]+ { InputFile(yytext); - BEGIN Normal; - } -<Input>"\n" NEWLINE; -<Input>. ; - -<Normal>\\(aa|AA|ae|AE|oe|OE|ss)[ \t]*[ \t\n}] /* handle ligatures */ {(void)printf("%.2s", yytext+1);} -<Normal>\\[OoijLl][ \t]*[ \t\n}] {(void)printf("%.1s", yytext+1);} - -<Normal>\\[a-zA-Z@]+ /* ignore other \cs */ {BEGIN Control; IGNORE;} -<Normal>"\\ " SPACE; -<Normal>\\. IGNORE; -<Control>\\[a-zA-Z@]+ IGNORE; -<Control>[a-zA-Z@0-9]*[-'=`][^ \t\n{]* IGNORE; -<Control>"\n" {BEGIN Normal; NEWLINE;} -<Control>[ \t]*[{]* {BEGIN Normal; IGNORE;} -<Control>. {yyless(0);BEGIN Normal;} - -<Normal>[{}\\|] /* special characters */ IGNORE; -<Normal>[!?]"`" IGNORE; -<Normal>~ SPACE; - -<Normal>{W}[']*{W} { if (fWord) - (void)printf("%s\n", yytext); - else - ECHO; - } -<Normal>[0-9]+ if (!fWord) ECHO; -<Normal>(.|\n) if (!fWord) ECHO; -%% -/****** -** main -- -** Set sbProgName to the base of arg 0. -** Set the input paths. -** Check for options -** -c echo LaTeX \cite, \ref, and \pageref values -** -e <env-list> list of LaTeX environments to ignore -** -l force latex mode -** -n do not follow \input and \include -** -s replace control sequences with space -** -t force tex mode -** -w word only output -** Set the list of LaTeX environments to ignore. -** Process each input file. -** If no input files are specified on the command line, process stdin. -******/ - -int -main(int cArgs, char *rgsbArgs[]) -{ - char *pch, sbBadOpt[2]; - const char *sbEnvList = DEFAULTENV; - int fSawFile = 0, iArgs = 1; - - /* get base name and decide what we are doing, detex or delatex */ -#ifdef OS2 - char drive[_MAX_DRIVE], dir[_MAX_DIR]; - char fname[_MAX_FNAME], ext[_MAX_EXT]; -#ifdef __EMX__ - _wildcard(&cArgs, &rgsbArgs); - _response(&cArgs, &rgsbArgs); -#endif - _splitpath (rgsbArgs[0], drive, dir, fname, ext); - sbProgName = strlwr(fname); -#else -#ifdef KPATHSEA - kpse_set_program_name (rgsbArgs[0], NULL); -#endif - if ((sbProgName = strrchr(rgsbArgs[0], '/')) != NULL) - sbProgName++; - else - sbProgName = rgsbArgs[0]; -#endif - if (strcmp("delatex",sbProgName) == 0) - fLatex = 1; - -#ifndef KPATHSEA - /* set rgsbInputPaths for use with TexOpen() */ - SetInputPaths(); -#endif - - /* process command line options */ - while (iArgs < cArgs && *(pch = rgsbArgs[iArgs]) == CHOPT) { - while (*++pch) - switch (*pch) { - case CHCITEOPT: - fCite = 1; - break; - case CHENVOPT: - sbEnvList = rgsbArgs[++iArgs]; - break; - case CHLATEXOPT: - fLatex = 1; - break; - case CHNOFOLLOWOPT: - fFollow = 0; - break; - case CHSPACEOPT: - fSpace = 1; - break; - case CHTEXOPT: - fForcetex = 1; - break; - case CHWORDOPT: - fWord = 1; - break; - default: -#ifdef OS2 - OS2UsageExit(); -#else - sbBadOpt[0] = *pch; - sbBadOpt[1] = '\0'; - Warning("unknown option ignored -", sbBadOpt); -#endif - } - iArgs++; - } - SetEnvIgnore(sbEnvList); - - /* process input files */ - for (; iArgs < cArgs; iArgs++) { - fSawFile++; - if ((yyin = TexOpen(rgsbArgs[iArgs])) == NULL) { - Warning("can't open file", rgsbArgs[iArgs]); - continue;; - } - BEGIN Normal; - (void)yylex(); - } - - /* if there were no input files, assume stdin */ - if (!fSawFile) { - yyin = stdin; -#ifdef OS2 - if (isatty(fileno(stdin))) - OS2UsageExit(); -#endif - BEGIN Normal; - (void)yylex(); - } -#ifndef FLEX_SCANNER - if (YYSTATE != Normal) - ErrorExit("input contains an unterminated mode or environment"); -#endif - return(0); -} - -#ifdef FLEX_SCANNER -#undef yywrap -#endif - -/****** -** yywrap -- handles EOF for lex. Check to see if the stack of open files -** has anything on it. If it does, set yyin to the to value. If not -** return the termination signal for lex. -******/ - -int -yywrap(void) -{ - (void)fclose(yyin); - if (cfp > 0) { - yyin = rgfp[--cfp]; - return(0); - } - return(1); -} - -#ifdef OS2 - -/****** -** yyless -- return characters to the input stream. Some systems don't have -** a yyless routine -******/ - -void -yyless(int n) -{ - int i = strlen(yytext); - - while (i > n) unput(yytext[--i]); - yytext[yyleng = n] = '\0'; -} -#endif - -/****** -** SetEnvIgnore -- sets rgsbEnvIgnore to the values indicated by the -** sbEnvList. -******/ - -void -SetEnvIgnore(const char *sbEnvList) -{ - char *sb; - - sb = SafeMalloc(strlen(sbEnvList) + 1, "malloc for SetEnvIgnore failed"); - (void) strcpy(sb, sbEnvList); - csbEnvIgnore = SeparateList(sb, rgsbEnvIgnore, CHENVSEP, MAXENVS); - if (csbEnvIgnore == ERROR) - ErrorExit("The environtment list contains too many environments"); -} - -/****** -** BeginEnv -- checks to see if sbEnv is in the list rgsbEnvIgnore. If it -** is, sbCurrentEnv is set to sbEnv. -******/ - -int -BeginEnv(const char *sbEnv) -{ - int i; - - if (!fLatex) return(0); - for (i = 0; i < csbEnvIgnore; i++) - if (strcmp(sbEnv, rgsbEnvIgnore[i]) == 0) { - (void)strcpy(sbCurrentEnv, sbEnv); - return(1); - } - return(0); -} - -/****** -** EndEnv -- checks to see if sbEnv is the current environment being ignored. -******/ - -int -EndEnv(const char *sbEnv) -{ - if (!fLatex) return(0); - if (strcmp(sbEnv, sbCurrentEnv) == 0) - return(1); - return(0); -} - -/****** -** InputFile -- push the current yyin and open sbFile. If the open fails, -** the sbFile is ignored. -******/ - -void -InputFile(char *sbFile) -{ - if (!fFollow) - return; - rgfp[cfp++] = yyin; - if ((yyin = TexOpen(sbFile)) == NULL) { - Warning("can't open \\input file", sbFile); - yyin = rgfp[--cfp]; - } -} - -/****** -** IncludeFile -- if sbFile is not in the rgsbIncList, push current yyin -** and open sbFile. If the open fails, the sbFile is ignored. -******/ - -void -IncludeFile(char *sbFile) -{ - if (!fFollow) - return; - if (!InList(sbFile)) - return; - rgfp[cfp++] = yyin; - if ((yyin = TexOpen(sbFile)) == NULL) { - Warning("can't open \\include file", sbFile); - yyin = rgfp[--cfp]; - } -} - -/****** -** AddInclude -- adds sbFile to the rgsbIncList and increments csbIncList. -** If the include list is too long, sbFile is ignored. -******/ - -void -AddInclude(char *sbFile) -{ - if (!fFollow) - return; - if (csbIncList >= MAXINCLIST) - Warning("\\includeonly list is too long, ignoring", sbFile); - rgsbIncList[csbIncList] = SafeMalloc(strlen(sbFile) + 1, "malloc for AddInclude failed"); - (void)strcpy(rgsbIncList[csbIncList++], sbFile); -} - -/****** -** InList -- checks to see if sbFile is in the rgsbIncList. If there is -** no list, all files are assumed to be "in the list". -******/ - -int -InList(char *sbFile) -{ - char *pch, sbBase[PATH_MAX]; - int i; - - if (csbIncList == 0) /* no list */ - return(1); - (void)strcpy(sbBase, sbFile); - if ((pch = strrchr(sbBase, '.')) != NULL) - *pch = '\0'; - i = 0; - while ((i < csbIncList) && rgsbIncList[i]) - if (strcmp(rgsbIncList[i++], sbBase) == 0) - return(1); - return(0); -} - -/****** -** SetInputPaths -- sets rgsbInputPaths to the values indicated by the -** TEXINPUTS environment variable if set or else DEFAULTINPUTS. If -** the user's TEXINPUTS has a leading ':' prepend the DEFAULTINPUTS -** to the path, if there is a trailing ':' append the DEFAULTINPUTS. -** This is consistent with the most recent TeX. However, this -** routine does not honor the '//' construct (expand subdirs). -******/ - -void -SetInputPaths(void) -{ - const char *sb; - char *sbPaths; -#ifndef WIN32 - char *getenv(); -#endif - int cchDefaults, cchPaths; - - cchDefaults = strlen(DEFAULTINPUTS); -#ifdef OS2 - if ((sb = getenv("TEXINPUT")) == NULL) -#endif - if ((sb = getenv("TEXINPUTS")) == NULL) - sb = DEFAULTINPUTS; - cchPaths = strlen(sb); - if (sb[0] == CHPATHSEP) - cchPaths += cchDefaults; - if (sb[strlen(sb) - 1] == CHPATHSEP) - cchPaths += cchDefaults; - sbPaths = SafeMalloc(cchPaths + 1, "malloc for SetInputPaths failed"); - sbPaths[0] = '\0'; - if (sb[0] == CHPATHSEP) - (void)strcat(sbPaths, DEFAULTINPUTS); - (void)strcat(sbPaths, sb); - if (sb[strlen(sb) - 1] == CHPATHSEP) - (void)strcat(sbPaths, DEFAULTINPUTS); - - csbInputPaths = SeparateList(sbPaths, rgsbInputPaths, CHPATHSEP, MAXINPUTPATHS); - if (csbInputPaths == ERROR) -#ifdef OS2 - ErrorExit("TEXINPUT(S) environment variable has too many paths"); -#else - ErrorExit("TEXINPUTS environment variable has too many paths"); -#endif -} - -/****** -** SeparateList -- takes a chSep separated list sbList, replaces the -** chSep's with NULLs and sets rgsbList[i] to the beginning of -** the ith word in sbList. The number of words is returned. A -** ERROR is returned if there are more than csbMax words. -******/ - -int -SeparateList(char *sbList, char **rgsbList, char chSep, int csbMax) -{ - int csbList = 0; - - while (sbList && *sbList && csbList < csbMax) { - rgsbList[csbList++] = sbList; - if ((sbList = strchr(sbList, chSep))) - *sbList++ = '\0'; - } - return(sbList && *sbList ? ERROR : csbList); -} - -/****** -** TexOpen -- tries to open sbFile in each of the rgsbInputPaths in turn. -** For each input path the following order is used: -** file.tex - must be as named, if not there go to the next path -** file.ext - random extension, try it -** file - base name, add .tex and try it -** file - try it as is -** Notice that if file exists in the first path and file.tex exists in -** one of the other paths, file in the first path is what is opened. -** If the sbFile begins with a '/', no paths are searched. -******/ - -FILE * -TexOpen(char *sbFile) -{ - char *sbNew; -#ifndef KPATHSEA - char *pch; - FILE *fp; - int iPath; - static char sbFullPath[PATH_MAX]; - - for (iPath = 0; iPath < csbInputPaths; iPath++) { -#ifdef OS2 - if (*sbFile == '/' || *sbFile == '\\' || strchr(sbFile, ':')) /* absolute path */ -#else - if (*sbFile == '/') /* absolute path */ -#endif - { - (void)sprintf(sbFullPath, "%s", sbFile); - iPath = csbInputPaths; /* only check once */ - } else - (void)sprintf(sbFullPath, "%s/%s", rgsbInputPaths[iPath], sbFile); -#ifdef OS2 - pch = sbFullPath; - while (pch = strchr(pch, '\\')) - *pch = '/'; -#endif - - /* If sbFile ends in .tex then it must be there */ - if ((pch = strrchr(sbFullPath, '.')) != NULL - && (strcmp(pch, ".tex") == 0)) - if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - else - continue; - - /* if .<ext> then try to open it. the '.' represents */ - /* the beginning of an extension if it is not the first */ - /* character and it does not follow a '.' or a '/' */ - if (pch != NULL && pch > &(sbFullPath[0]) - && *(pch - 1) != '.' && *(pch - 1) != '/' - && (fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - - /* just base name, add .tex to the name */ - sbNew = SafeMalloc(strlen(sbFullPath) + 5, "malloc for TexOpen failed"); - (void)strcpy(sbNew, sbFullPath); - (void)strcat(sbNew, ".tex"); - if ((fp = fopen(sbNew, "r")) != NULL) - return(fp); - - /* try sbFile regardless */ - if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - } - return((FILE *)NULL); -#else - sbNew = kpse_find_file (sbFile, kpse_tex_format, false); - - if (sbNew == NULL) - return (FILE *)NULL; - - return fopen (sbNew, "r"); -#endif -} - -/****** -** SafeMalloc -- wrapper around malloc() to check for failure. -******/ - -char * -SafeMalloc(int cch, const char *sbMessage) -{ - char *sb; - - if ((sb = (char *)malloc((unsigned)cch)) == NULL) - ErrorExit(sbMessage); - return(sb); -} - -/****** -** Warning -- print a warning message preceded by the program name. -******/ - -void -Warning(const char *sb1, const char *sb2) -{ - (void)fprintf(stderr, "%s: warning: %s %s\n", sbProgName, sb1, sb2); -} - -/****** -** ErrorExit -- print an error message preceded by the program name. -** Stdout is flushed and detex exits. -******/ - -void -ErrorExit(const char *sb1) -{ - (void)fflush(stdout); - (void)fprintf(stderr, "%s: error: %s\n", sbProgName, sb1); - exit(1); -} -#ifdef OS2 - -/****** -** OS2UsageExit -- print OS/2 usage message and exit. -******/ - -void -OS2UsageExit(void) -{ - (void)printf("\n%s [ -clnstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", - sbProgName); - puts(" -c echo LaTeX \\cite, \\ref, and \\pageref values\n \ --e <env-list> list of LaTeX environments to ignore\n \ --l force latex mode\n \ --n do not follow \\input and \\include\n \ --s replace control sequences with space\n \ --t force tex mode\n \ --w word only output"); - exit(0); -} -#endif diff --git a/Build/source/texk/detex/detex-2.7/detex.man b/Build/source/texk/detex/detex-2.7/detex.man deleted file mode 100644 index 93e71005746..00000000000 --- a/Build/source/texk/detex/detex-2.7/detex.man +++ /dev/null @@ -1,126 +0,0 @@ -.TH DETEX 1L "12 August 1993" "Purdue University" -.SH NAME -detex \- a filter to strip \fITeX\fP commands from a .tex file. -.SH SYNOPSIS -.B detex -[ \fB\-clnstw\fR ] [ \fB\-e\fI environment-list\fR ] [ \fIfilename\fR[.tex] ... ] -.SH DESCRIPTION -.I Detex -(Version 2.6) -reads each file in sequence, removes all comments and -.I TeX -control sequences -and writes the remainder on the standard output. -All text in math mode and display mode is removed. -By default, -.I detex -follows \\input commands. -If a file cannot be opened, a warning message is -printed and the command is ignored. -If the -.B \-n -option is used, no \\input or \\include commands will be processed. -This allows single file processing. -If no input file is given on the command line, -.I detex -reads from standard input. -.PP -If the magic sequence ``\\begin{document}'' appears in the text, -.I detex -assumes it is dealing with -.I LaTeX -source and -.I detex -recognizes additional constructs used in -.IR LaTeX . -These include the \\include and \\includeonly commands. -The -.B \-l -option can be used to force -.I LaTeX -mode and the -.B \-t -option can be used to force -.I TeX -mode regardless of input content. -.PP -Text in various environment modes of -.I LaTeX -is ignored. The default modes are array, eqnarray, equation, figure, -mathmatica, picture, table and verbatim. The -.B \-e -option can be used to specify a comma separated -.I environment-list -of environments to ignore. The list replaces the defaults so specifying an -empty list effectively causes no environments to be ignored. -.PP -The -.B \-c -option can be used in -.I LaTeX -mode to have detex echo the arguments to \\cite, -\\ref, and \\pageref macros. This can be useful when sending the output to -a style checker. -.PP -.I Detex -assumes the standard character classes are being used for -.IR TeX . -.I Detex -allows white space between control sequences -and magic characters like `{' when recognizing things like -.I LaTeX -environments. -.PP -If the -.B \-w -flag is given, the output is a word list, one `word' (string of two or more -letters and apostrophes beginning with a letter) -per line, and all other characters ignored. -Without \fB\-w\fR the output follows the original, -with the deletions mentioned above. Newline characters are -preserved where possible -so that the lines of output match the input as closely as possible. -.PP -The TEXINPUTS environment variable is used to find \\input and \\include -files. Like \fITeX\fP, it interprets a leading or trailing `:' as the default -TEXINPUTS. It does \fInot\fP support the `//' directory expansion magic sequence. -.PP -Detex now handles the basic \fITeX\fP ligatures as a special case, replacing the -ligatures with acceptable charater substitutes. This eliminates -spelling errors introduced by merely removing them. The ligatures are -\\aa, \\ae, \\oe, \\ss, \\o, \\l (and their upper-case -equivalents). The special "dotless" characters \\i and \\j are also -replaced with i and j respectively. -.PP -Note that previous versions of -.I detex -would replace control sequences with a space character to prevent words -from running together. -However, this caused accents in the middle of words to break words, generating -"spelling errors" that were not desirable. -Therefore, the new version merely removes these accents. -The old functionality can be essentially duplicated by using the -.B \-s -option. -.SH SEE ALSO -tex(1L) -.SH DIAGNOSTICS -Nesting of \\input is allowed but the number of opened files must not -exceed the system's limit on the number of simultaneously opened files. -.I Detex -ignores unrecognized option characters after printing a warning message. -.SH AUTHOR -Daniel Trinkle, Computer Science Department, Purdue University -.SH BUGS -.I Detex -is not a complete -.I TeX -interpreter, so it can be confused by some constructs. -Most errors result in too much rather than too little output. -.PP -Running \fILaTeX\fR -source without a ``\\begin{document}'' -through \fIdetex\fR may produce -errors. -.PP -Suggestions for improvements are (mildly) encouraged. diff --git a/Build/source/texk/detex/detex-2.7/states.sed b/Build/source/texk/detex/detex-2.7/states.sed deleted file mode 100644 index 1c99ebabe9e..00000000000 --- a/Build/source/texk/detex/detex-2.7/states.sed +++ /dev/null @@ -1,17 +0,0 @@ -# convert long labels to a shorter form so lex(1) won't overflow -s/LaBegin/SA/g -s/LaDisplay/SB/g -s/LaEnd/SC/g -s/LaEnv/SD/g -s/LaFormula/SE/g -s/LaInclude/SF/g -s/LaMacro2/SG/g -s/LaMacro/SH/g -s/LaVerbatim/SI/g -s/Define/SJ/g -s/Display/SK/g -s/IncludeOnly/SL/g -s/\([ <]\)Input\([ >;]\)/\1SM\2/g -s/Math/SN/g -s/Normal/SO/g -s/Control/SP/g |