Mercurial > hg > octave-max
changeset 2999:faa5d0421460
[project @ 1997-05-23 03:02:09 by jwe]
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/kpathsea/AUTHORS @@ -0,0 +1,10 @@ +Karl Berry wrote all files not otherwise marked, with help from Kathryn +Hargreaves on some of the original versions. + +Thomas Esser originated most of the MakeTeX... scripts. + +The brace expansion code in expand.c was written by Brian Fox and Chet +Ramey for Bash, the GNU shell. + +The implementation of the link trick in pathsearch.c is taken from GNU +find, implemented by David MacKenzie from Matthew Farwell's suggestion.
new file mode 100644 --- /dev/null +++ b/kpathsea/BUGS @@ -0,0 +1,486 @@ +Contents: + + Reporting bugs + Bug checklist + Mailing lists + Debugging + Logging + Common problems + Unable to find files + Slow path searching + Unable to generate fonts + TeX or Metafont failing + `XtStrings' + `dlopen' + `ShellWidgetClass' + Pointer combination warnings + + +Reporting bugs +============== + + If you have problems or suggestions, please report them to +<tex-k@mail.tug.org> using the bug checklist below. + + Please report bugs in the documentation; not only factual errors or +inconsistent behavior, but unclear or incomplete explanations, typos, +wrong fonts, ... + +Bug checklist +------------- + + Before reporting a bug, please check below to be sure it isn't already +known (*note Common problems::.). + + Bug reports should be sent via electronic mail to +<tex-k@mail.tug.org>, or by postal mail to 135 Center Hill Road / +Plymouth, MA 02360 / USA. + + The general principle is that a good bug report includes all the +information necessary for reproduction. Therefore, to enable +investigation, your report should include the following: + + * The version number(s) of the program(s) involved, and of Kpathsea + itself. You can get the former by giving a sole option `--version' + to the program, and the latter by running `kpsewhich --version'. + The `NEWS' and `ChangeLog' files also contain the version number. + + * The hardware, operating system (including version number), + compiler, and `make' program you are using (the output of `uname + -a' is a start on the first two, though often incomplete). If the + bug involves the X window system, include X version and supplier + information as well (examples: X11R6 from MIT; X11R4 from HP; + OpenWindows 3.3 bundled with SunOS 4.1.4). + + * Any options you gave to `configure'. This is recorded in the + `config.status' files. + + If you are reporting a bug in `configure' itself, it's probably + system-dependent, and it will be unlikely the maintainers can do + anything useful if you merely report that thus-and-such is broken. + Therefore, you need to do some additional work: for some bugs, you + can look in the file `config.log' where the test that failed should + appear, along with the compiler invocation and source program in + question. You can then compile it yourself by hand, and discover + why the test failed. Other `configure' bugs do not involve the + compiler; in that case, the only recourse is to inspect the + `configure' shell script itself, or the Autoconf macros that + generated `configure'. + + * The log of all debugging output, if the bug is in path searching. + You can get this by setting the environment variable + `KPATHSEA_DEBUG' to `-1' before running the program. Please look + at the log yourself to make sure the behavior is really a bug + before reporting it; perhaps "old" environment variable settings + are causing files not to be found, for example. + + * The contents of any input files necessary to reproduce the bug. + For bugs in DVI-reading programs, for example, this generally + means a DVI file (and any EPS or other files it uses)--TeX source + files are helpful, but the DVI file is necessary, because that's + the actual program input. + + GNU `shar', available from `ftp://prep.ai.mit.edu/pub/gnu' is a + convenient way of packaging multiple (possibly binary) files for + electronic mail. If you feel your input files are too big to send + by email, you can ftp them to `ftp://ftp.tug.org/incoming' (that + directory is writable, but not readable). + + * If you are sending a patch (do so if you can!), please do so in + the form of a context diff (`diff -c') against the original + distribution source. Any other form of diff is either not as + complete or harder for me to understand. Please also include a + `ChangeLog' entry. + + * If the bug involved is an actual crash (i.e., core dump), it is + easy and useful to include a stack trace from a debugger (I + recommend the GNU debugger GDB, available from + `ftp://prep.ai.mit.edu/pub/gnu'). If the cause is apparent (a + `NULL' value being dereferenced, for example), please send the + details along. If the program involved is TeX or Metafont, and + the crash is happening at apparently-sound code, however, the bug + may well be in the compiler, rather than in the program or the + library (*note TeX or Metafont failing: TeX or Metafont failing.). + + * Any additional information that will be helpful in reproducing, + diagnosing, or fixing the bug. + +Mailing lists +------------- + + Web2c and Kpathsea in general are discussed on the mailing list +<tex-k@mail.tug.org>. To join, email <tex-k-request@mail.tug.org> with +a line consisting of + + subscribe YOU@YOUR.PREFERRED.EMAIL.ADDRESS + +in the body of the message. + + You do not need to join to submit a report, nor will it affect whether +you get a response. There is no Usenet newsgroup equivalent (if you can +be the one to set this up, email `tex-k-request'). Traffic on the list +is fairly light, and is mainly bug reports and enhancement requests to +the software. The best way to decide if you want to join or not is +read some of the archives from `ftp://ftp.tug.org/mail/archives/tex-k/'. + + Be aware that large data files are sometimes included in bug reports. +If this is a problem for you, do not join the list. + + If you only want announcements of new releases, not bug reports and +discussion, join <tex-archive@math.utah.edu> (via mail to +<tex-archive-request@math.utah.edu>). + + If you are looking for general TeX help, such as how to use LaTeX, +please use the mailing list <info-tex@shsu.edu> mailing list, which is +gatewayed to the `comp.text.tex' Usenet newsgroup (or post to the +newsgroup; the gateway is bidirectional). + +Debugging +--------- + + Kpathsea provides a number of runtime debugging options, detailed +below by their names and corresponding numeric values. When the files +you expect aren't being found, the thing to do is enable these options +and examine the output. + + You can set these with some runtime argument (e.g., `-d') to the +program; in that case, you should use the numeric values described in +the program's documentation (which, for Dvipsk and Xdvik, are different +than those below). It's best to give the `-d' (or whatever) option +first, for maximal output. Dvipsk and Xdvik have additional +program-specific debugging options as well. + + You can also set the environment variable `KPATHSEA_DEBUG'; in this +case, you should use the numbers below. Also, if you run the program +under a debugger and set the variable `kpathsea_debug', Also use the +numbers below + + In any case, by far the simplest value to use is `-1', which will +turn on all debugging output. This is usually better than guessing +which particular values will yield the output you need. + + Debugging output always goes to standard error, so you can redirect it +easily. For example, in Bourne-compatible shells: + dvips -d -1 ... 2>/tmp/debug + + It is sometimes helpful to run the standalone Kpsewhich utility +(*note Invoking kpsewhich::.), instead of the original program. + + In any case, you can *not* use the *names* below; you must always use +somebody's numbers. (Sorry.) To set more than one option, just sum +the corresponding numbers. + +`KPSE_DEBUG_STAT (1)' + Report `stat'(2) calls. This is useful for verifying that your + directory structure is not forcing Kpathsea to do many additional + file tests (*note Slow path searching::., and *note Subdirectory + expansion::.). If you are using an up-to-date `ls-R' database + (*note Filename database::.), this should produce no output unless + a nonexistent file that must exist is searched for. + +`KPSE_DEBUG_HASH (2)' + Report lookups in all hash tables: `ls-R' and `aliases' (*note + Filename database::.); font aliases (*note Fontmap::.); and config + file values (*note Config files::.). Useful when expected values + are not being found, e.g.., file searches are looking at the disk + instead of using `ls-R'. + +`KPSE_DEBUG_FOPEN (4)' + Report file openings and closings. Especially useful when your + system's file table is full, for seeing which files have been + opened but never closed. In case you want to set breakpoints in a + debugger: this works by redefining `fopen' (`fclose') to be + `kpse_fopen_trace' (`kpse_fclose_trace'). + +`KPSE_DEBUG_PATHS (8)' + Report general path information for each file type Kpathsea is + asked to search. This is useful when you are trying to track down + how a particular path got defined--from `texmf.cnf', `config.ps', + an environment variable, the compile-time default, etc. This is + the contents of the `kpse_format_info_type' structure defined in + `tex-file.h'. + +`KPSE_DEBUG_EXPAND (16)' + Report the directory list corresponding to each path element + Kpathsea searches. This is only relevant when Kpathsea searches + the disk, since `ls-R' searches don't look through directory lists + in this way. + +`KPSE_DEBUG_SEARCH (32)' + Report on each file search: the name of the file searched for, the + path searched in, whether or not the file must exist (when drivers + search for `cmr10.vf', it need not exist), and whether or not we + are collecting all occurrences of the file in the path (as with, + e.g., `texmf.cnf' and `texfonts.map'), or just the first (as with + most lookups). This can help you correlate what Kpathsea is doing + with what is in your input file. + + Debugging output from Kpathsea is always written to standard error, +and begins with the string `kdebug:'. (Except for hash table buckets, +which just start with the number, but you can only get that output +running under a debugger. See comments at the `hash_summary_only' +variable in `kpathsea/db.c'.) + +Logging +------- + + Kpathsea can record the time and filename found for each successful +search. This may be useful in finding good candidates for deletion when +your filesystem is full, or in discovering usage patterns at your site. + + To do this, define the environment or config file variable +`TEXMFLOG'. The value is the name of the file to append the +information to. The file is created if it doesn't exist, and appended +to if it does. + + Each successful search turns into one line in the log file: two words +separated by a space. The first word is the time of the search, as the +integer number of seconds since "the epoch", i.e., UTC midnight 1 +January 1970 (more precisely, the result of the `time' system call). +The second word is the filename. + + For example, after `setenv TEXMFLOG /tmp/log', running Dvips on +`story.dvi' appends the following lines: + + 774455887 /usr/local/share/texmf/dvips/config.ps + 774455887 /usr/local/share/texmf/dvips/psfonts.map + 774455888 /usr/local/share/texmf/dvips/texc.pro + 774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk + 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk + 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk + 774455889 /usr/local/share/texmf/dvips/texc.pro + +Only filenames that are absolute are recorded, to preserve some +semblance of privacy. + +Common problems +--------------- + + Here are some common problems with configuration, compilation, +linking, execution, ... + +Unable to find files +.................... + + If a program complains it cannot find fonts (or other input files), +any of several things might be wrong. In any case, you may find the +debugging options helpful. *Note Debugging::. + + * Perhaps you simply haven't installed all the necessary files; the + basic fonts and input files are distributed separately from the + programs. *Note unixtex.ftp::. + + * You have (perhaps unknowingly) told Kpathsea to use search paths + that don't reflect where the files actually are. One common cause + is having environment variables set from a previous installation, + thus overriding what you carefully set in `texmf.cnf' (*note + Supported file formats::.). System `/etc/profile' or other files + such may be the culprit. + + * Your files reside in a directory that is only pointed to via a + symbolic link, in a leaf directory and is not listed in `ls-R'. + + Unfortunately, Kpathsea's subdirectory searching has an + irremediable deficiency: If a directory D being searched for + subdirectories contains plain files and symbolic links to other + directories, but no true subdirectories, D will be considered a + leaf directory, i.e., the symbolic links will not be followed. + *Note Subdirectory expansion::. + + You can work around this problem by creating an empty dummy + subdirectory in D. Then D will no longer be a leaf, and the + symlinks will be followed. + + The directory immediately followed by the `//' in the path + specification, however, is always searched for subdirectories, + even if it is a leaf. Presumably you would not have asked for the + directory to be searched for subdirectories if you didn't want it + to be. + + * If the fonts (or whatever) don't already exist, `MakeTeXPK' (or + `MakeTeXMF' or `MakeTeXTFM') will try to create them. If these + rather complicated shell scripts fail, you'll eventually get an + error message saying something like `Can't find font FONTNAME'. + The best solution is to fix (or at least report) the bug in + `MakeTeXPK'; the workaround is to generate the necessary fonts by + hand with Metafont, or to grab them from a CTAN site (*note + unixtex.ftp::.). + + * There is a bug in the library. *Note Reporting bugs::. + +Slow path searching +................... + + If your program takes an excessively long time to find fonts or other +input files, but does eventually succeed, here are some possible +culprits: + + * Most likely, you just have a lot of directories to search, and that + takes a noticeable time. The solution is to create and maintain a + separate `ls-R' file that lists all the files in your main TeX + hierarchy. *Note Filename database::. Kpathsea always uses `ls-R' + if it's present; there's no need to recompile or reconfigure any + of the programs. + + * Your recursively-searched directories (e.g., + `/usr/local/share/texmf/fonts//'), contain a mixture of files and + directories. This prevents Kpathsea from using a useful + optimization (*note Subdirectory expansion::.). + + It is best to have only directories (and perhaps a `README') in the + upper levels of the directory structure, and it's very important + to have *only* files, and no subdirectories, in the leaf + directories where the dozens of TFM, PK, or whatever files reside. + + In any case, you may find the debugging options helpful in determining +precisely when the disk or network is being pounded. *Note Debugging::. + +Unable to generate fonts +........................ + + This can happen if either `MakeTeXPK' hasn't been installed properly, +or if the local installation of Metafont isn't correct. + + If `mf' is a command not found by `MakeTeXPK', then you need to +install Metafont (*note unixtex.ftp::.). + + If Metafont runs, but generates fonts at the wrong resolution, you +need to be sure the `M' and `D' lines in your Dvips configuration file +match (*note Config files: (dvips)Config files.). For example, if +`MakeTeXPK' is generating 300dpi fonts, but you need 600dpi fonts, you +should have: + M ljfour + D 600 + + If Metafont runs but generates fonts at a resolution of 2602dpi (and +prints out the name of each character as well as just a character +number, and maybe tries to display the characters), then your Metafont +base file probably hasn't been made properly. (It's using the default +`proof' mode, instead of an actual device mode.) To make a proper +`plain.base', assuming the local mode definitions are contained in a +file `modes.mf', run the following command (assuming Unix): + + inimf "plain; input modes; dump" + +Then copy the `plain.base' file from the current directory to where the +base files are stored on your system (`/usr/local/share/texmf/web2c' by +default), and make a link (either hard or soft) from `plain.base' to +`mf.base' in that directory. *Note inimf invocation: (web2c)inimf +invocation. + +TeX or Metafont failing +....................... + + If TeX or Metafont get a segmentation fault or otherwise fail while +running a normal input file, the problem is usually a compiler bug +(unlikely as that may sound). Even if the trip and trap tests are +passed, problems may lurk. Optimization occasionally causes trouble in +programs other than TeX and Metafont themselves, too. + + Insufficient swap space may also cause core dumps or other erratic +behavior. + + For a workaround, if you enabled any optimization flags, it's best to +omit optimization entirely. In any case, the way to find the facts is +to run the program under the debugger and see where it's failing. + + Also, if you have trouble with a system C compiler, I advise trying +the GNU C compiler. And vice versa, unfortunately; but in that case I +also recommend reporting a bug to the GCC mailing list; *note Bugs: +(gcc)Bugs.. + + To report compiler bugs effectively requires perseverance and +perspicacity: you must find the miscompiled line, and that usually +involves delving backwards in time from the point of error, checking +through TeX's (or whatever program's) data structures. Things are not +helped by all-too-common bugs in the debugger itself. Good luck. + +`XtStrings' +........... + + You may find that linking X programs results in an error from the +linker that `XtStrings' is undefined, something like this: + + gcc -o virmf ... + .../x11.c:130: undefined reference to `XtStrings' + + This generally happens because of a mismatch between the X include +files with which you compiled and the X libraries with which you linked; +often, the include files are from MIT and the libraries from Sun. + + The solution is to use the same X distribution for compilation and +linking. Probably `configure' was unable to guess the proper +directories from your installation. You can use the `configure' +options `--x-includes=PATH' and `--x-libraries=PATH' to explicitly +specify them. + +`dlopen' +........ + + (This section adapted from the file `dlsym.c' in the X distribution.) + + The `Xlib' library uses the standard C function `wcstombs'. Under +SunOS 4.1, `wcstombs' uses the `dlsym' interface defined in `libdl.so'. +Unfortunately, the SunOS 4.1 distribution does not include a static +`libdl.a' library. + + As a result, if you try to link an X program statically under SunOS, +you may get undefined references to `dlopen', `dlsym', and `dlclose'. +One workaround is to include these definitions when you link: + + void *dlopen() { return 0; } + void *dlsym() { return 0; } + int dlclose() { return -1; } + +These are contained in the `dlsym.c' file in the MIT X distribution. + +`ShellWidgetClass' +.................. + + (This section adapted from the comp.sys.sun.admin FAQ.) + + If you are linking with Sun's OpenWindows libraries in SunOS 4.1.x, +you may get undefined symbols `_get_wmShellWidgetClass' and +`_get_applicationShellWidgetClass' when linking. This problem does not +arise using the standard MIT X libraries under SunOS. + + The cause is bugs in the `Xmu' shared library as shipped from Sun. +There are several fixes: + + * Install the free MIT distribution from `ftp.x.org' and mirrors. + + * Get the OpenWindows patches listed below. + + * Statically link the `Xmu' library into the executable. + + * Avoid using `Xmu' at all. If you are compiling Metafont, *note + Online Metafont graphics: (web2c)Online Metafont graphics.. If you + are compiling Xdvi, see the `-DNOTOOL' option in `xdvik/INSTALL'. + + * Ignore the errors. The binary runs fine regardless. + + Here is the information for getting the two patches: + + Patch ID: 100512-02 + Bug ID's: 1086793, 1086912, 1074766 + Description: 4.1.x OpenWindows 3.0 `libXt' jumbo patch + + Patch ID: 100573-03 + Bug ID: 1087332 + Description: 4.1.x OpenWindows 3.0 undefined symbols when using shared `libXmu'. + + The way to statically link with `libXmu' depends on whether you are +using a Sun compiler (e.g., `cc') or `gcc'. If the latter, alter the +`x_libs' Make variable to include + + -static -lXmu -dynamic + + If you are using the Sun compiler, use `-Bstatic' and `-Bdynamic'. + +Pointer combination warnings +............................ + + When compiling with old C compilers, you may get some warnings about +"illegal pointer combinations". These are spurious; just ignore them. +I decline to clutter up the source with casts to get rid of them. +
new file mode 100644 --- /dev/null +++ b/kpathsea/CONFIGURE @@ -0,0 +1,193 @@ +Contents: + + Basic Installation + Compilers and Options + Compiling For Multiple Architectures + Installation Names + Optional Features + Specifying the System Type + Sharing Defaults + Operation Controls + + +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. +
new file mode 100644 --- /dev/null +++ b/kpathsea/ChangeLog @@ -0,0 +1,3049 @@ +Fri Feb 7 11:53:09 1997 Karl Berry <karl@cs.umb.edu> + + * Version 3.0. + + * MakeTeXMF: Syntax problems with dc*. Fix from Thomas. + + * MakeTeX*: sed command to strip off all but the first of multiple + trees in $TEXMF was faulty. + + * c-pathch.h (ENV_SEP, ENV_SEP_STRING) [AMIGA]: Change to ; + for Andreas. Then Amiga binaries may be able to share + the same texmf.cnf with Unix and NT. + + * texmf.cnf.in (main_memory): Decrease back to 263,000. + It's not worth allocating 7MB on everyone's machine just + to do xy-pic samples. Add a comment about it. + +Thu Feb 6 10:27:50 1997 Karl Berry <karl@cs.umb.edu> + + * db.c (kpse_db_search): If an alias exists on disk, and the + original entry in ls-R doesn't, use the alias. Idea, sample code + from Fabrice. + + * cnf.c (do_line): Add awful kludge to translate ; to : + when reading texmf.cnf values under Unix. The idea is + to be able to write a single texmf.cnf that will work + under both NT and Unix. + + * db.c: Doc fixes. + + * MakeTeXcommon: Set ps_to_pk. + * MakeTeXPK: Use ps_to_pk instead of hardwiring gsftopk. + * MakeTeX.site: Include ps_to_pk comment. + + * texmf.cnf.in (TEXMFCNF): Include SELFAUTOLOC (at the front). + * progname.c (kpse_set_progname): Include SELFAUTOLOC for the real + directory. It may be useful. Suggested by Andreas. + + * MakeTeXcommon: Add case for fc. + * MakeTeX.site: Add comment for fc. + * MakeTeXMF: Add case for fc, generated like Sauter. + From Francois and Thomas. + + * progname.c [WIN32]: SELFAUTODIR fix from Fabrice. + + * kpathsea.h: Do not #include <kpathsea.h> (infinite loop). + From Fabrice and Richard. + +Tue Feb 4 13:20:09 1997 Karl Berry <karl@cs.umb.edu> + + * tilde.c: xstrdup the result from getenv, + since we end up freeing it with a path element of `~'. + + * MakeTeX.site: Include RCS id. + + * MakeTeX.site: Replace sample dc assignment with ec. + + * MakeTeXMF: Handle ec, use exbase for tc. + + * MakeTeXcommon (ecfontdir,tcfontdir): New variables. + +Tue Feb 04 15:11:29 1997 Fabrice POPINEAU <popineau@ese-metz.fr> + + * progname.c: argv[0] under Win95 is set to the short + filename of the executable run. Changed the way + program_invocatio_name is retrieved : used the SearchPath() win32 + call, next FindFirstFile() to get the long filename. The selfdir + stuff is not used any more for win32. + +Mon Feb 3 18:01:02 1997 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c (read_command_line): Check for -1, not EOF, + per new getopt. + +Sun Feb 2 16:06:42 1997 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (PKFONTS.xdvi): Replace `gsftopk,ps2pk' by `modeless'. + * MakeTeXPK (mode): Use `modeless' instead of `gsftopk'. + + * tex-file.c: Look for TEXINDEXSTYLE before INDEXSTYLE. + +Sat Feb 1 16:31:39 1997 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in: Doc fix. + + * progname.c (my_dirname): Check for device separators at the + beginning fo the string. From Andreas. + + * c-pathch.h (IS_DIR_SEP) [AMIGA]: New definition from Andreas. + (NAME_BEGINS_WITH_DEVICE): Remove. + + * tex-make.c (maketex) [AMIGA]: Have to call system instead of popen + due to different interface. From Andreas. + + * progname.c (selfdir): Check self, not ret, for exiting the loop. + (remove_dots): Missing indirection on ret. + From Fabrice. + +Tue Jan 21 08:26:17 1997 Karl Berry <karl@cs.umb.edu> + + * elt-dirs.c: Doc fixes. + + * db.c (match): Don't return false just because the path element + ended in /. + Bug from: Richard Walker <Richard.Walker@cs.anu.edu.au>. + + * expand.c (kpse_path_expand): Do variable expansion before + splitting on path elements. + Bug from: Richard Walker <Richard.Walker@cs.anu.edu.au>. + + * tilde.c [TEST]: Function name changed. + From: Richard Walker <Richard.Walker@cs.anu.edu.au>. + + * texmf.cnf.in (MAILCAPLIBDIR): Rename from MAILCAPDIR. + From Ulrik. + +Tue Jan 21 09:34:20 1997 Fabrice POPINEAU <popineau@ese-metz.fr> + + * c-pathch.h: NAME_BEGINS_WITH_DEVICE(string) new macro testing + for the presence of a device name in front of the string. + + * progname.c (remove dots): stop before device name if + present. When building the filename, do not add leading DIR_SEP if + there is a device. + + * pathsearch.c (path_search): avoid searching the whole disk + adapted for win32. + + * db.c: support aliases file along with db files. An alias file is + named with ALIAS_NAME and the hashtable size is + ALIAS_HASH_SIZE. When a name looked for has an alias, the alias is + searched instead of the original name. The format of the aliases + file is "real_name alias_name", one pair per line. Currently only + for WIN32. + +Mon Jan 20 12:01:14 1997 Karl Berry <karl@cs.umb.edu> + + * progname.c: Amiga patch from Andreas. + +Sun Jan 19 14:29:00 1997 Karl Berry <karl@cs.umb.edu> + + * pathsearch.c (path_search): Strip off all but one of leading /'s. + We never want to search the whole disk. + + * progname.c: Expand symlinks off the final filename, not the + directory name. + +Sat Jan 18 14:39:00 1997 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (param_size): Increase to 500 for the chemical + formula macro package. From Thomas. + + * progname.c (expand_symlinks, ReadSymLink, CopyFirst, StripFirst, + StripLast): New functions to expand symbolic links for SELFAUTO*. + Noted by Thomas. + + * texmf.cnf.in (PKFONTS.xdvi): Fix tpyo. + Document that memory changes + (trie_size): Increase to 64000. + +Fri Jan 17 13:08:08 1997 Karl Berry <karl@cs.umb.edu> + + * progname.c (remove_dots): Don't free the constant null string. + From Andreas. + + * texmf.cnf.in (dbfontdir): Change to dbfonts (the commented-out one). + +Thu Jan 16 10:13:19 1997 Karl Berry <karl@cs.umb.edu> + + * cnf.c (kpse_cnf_get): Avoid recursive init, due to new + $TETEXDIR and other variables in default TEXMFCNF value. + + * getopt*, strtol.c: New versions from /gd/gnu/lib. + + * c-std.h (ALLOC_RETURN_TYPE): Only define if we're going to use it. + + * acconfig.h (EDITOR): Oops, %s not +%s. + From: tim@maths.tcd.ie. + + * progname.c (kpse_set_progname): One more my_dirname call + to get the parent and the grandparent in the environment variables. + + * texmf.cnf.in (texdir): Rename from tex, to avoid clash with + TEX used by makempx -- win32 doesn't distinguish case on envvars. + From Fabrice. + (WEB2CDIR): Lowercase, so it doesn't end up in paths.h, just + for cleanliness. + + * progname.c (kpse_set_progname): Pass program_invocation_name + to selfdir instead of progname, just in case we + HAVE_PROGRAM_INVOCATION_NAME and it's something different. + From Fabrice. + + * tex-file.c (kpse_open_file): ocp, ofm and ovf should use + FOPEN_RBIN_MODE. From Fabrice and John Plaice. + + * progname.c [AMIGA]: Fix syntax errors, remove_dots not necessary. + From Andreas Scherer. + + * MakeTeXupdate: MakeTeXls-R isn't in the conf dir anymore, just + in the regular path. + From Thomas. + +Sun Jan 12 17:22:35 1997 Karl Berry <karl@cs.umb.edu> + + * cnf.c (read_all_cnf): Do not test unallocated memory on empty + lines; crashed on Alphas. + + * progname.c (dirname): Rename to my_dirname to avoid clash on Alphas. + +Sat Jan 11 16:28:54 1997 Karl Berry <karl@cs.umb.edu> + + * c-std.h (calloc, malloc, realloc) [!STDC_HEADERS]: Only declare + in this case. + +Tue Jan 7 17:44:01 1997 Karl Berry <karl@cs.umb.edu> + + * MakeTeXPK: Doc fix. + + * texmf.cnf.in (KPSE_DOT): Define. + + * c-memstr.h: Doc fix. + +Wed Jan 1 16:58:02 1997 Karl Berry <karl@cs.umb.edu> + + * pathsearch.h (kpse_filename_component): Declare this. + * path-elt.c: Define it. + * progname.c (remove_dots): New function to remove . and .. + filename components. Subsumes slashify, it turns out. + + * Makefile.in (install-exec): Install MakeTeXls-R in $(scriptdir). + +Mon Dec 30 16:22:42 1996 Karl Berry <karl@cs.umb.edu> + + * progname.c (kpse_set_progname): Strip off .exe if present. + + * cnf.c: Doc fix. + + * progname.c (slashify): New function, to translate \ into / for WIN32. + (selfdir): Call it. + + * lib.h (FILE{STR,CHAR}CASEEQ) [MONOCASE_FILENAMES]: Define these, + continuing yesterday's changes. + From Fabrice. + +Sun Dec 29 13:26:09 1996 Karl Berry <karl@cs.umb.edu> + + * db.c (match, elt_in_db), + * elt-dirs.c (cached), + * hash.c (hash_lookup), + * kpsewhich.c (find_format, TRY_SUFFIX), + * tex-file.c, + * cnf.c (do_line): Compare filenames with FILESTRCASEEQ or + FILECHARCASEEQ to support monocase filesystems. + * hash.c (hash) [MONOCASE_FILENAMES]: Transform keys to uppercase. + From Fabrice. + + * basename.c (basename): Consider device separators; + if given 'e:foo.tex', should return 'foo.tex'. + From: Fabrice POPINEAU <popineau@esemetz.ese-metz.fr>. + + * types.h (boolean): Protect with #ifndef HAVE_BOOLEAN, for NeXT. + From: Raf Schietekat <flexus!rfschtkt@colds.ruca.ua.ac.be> + +Sat Dec 28 07:18:48 1996 Karl Berry <karl@cs.umb.edu> + + * progname.c [AMIGA]: Add code for this case from Andreas S. + +Fri Dec 27 17:38:43 1996 Karl Berry <karl@cs.umb.edu> + + * progname.c (S_IX{USR,GRP,OTH}): Define if not defined, for the NeXT. + From: Gregor Hoffleit <flight@mathi.uni-heidelberg.de>. + + * texmf.cnf.in (TEXMFCNF): Rewrite using /.'s etc. From Thomas. + +Sun Dec 15 06:21:22 1996 Karl Berry <karl@cs.umb.edu> + + * common.ac (AC_CHECK_FUNCS): Add getwd. + + * lib.h (xgetcwd): Declare. + * Makefile.in (objects): Add xgetcwd.lo. + * xgetcwd.c: New file from xdvik. + + * texmf.cnf.in (TEXMFCNF): Add $SELFAUTODIR:$SELFAUTOPARENT. + * progname.c (selfdir, dirname, etc.): New functions. + (kpse_set_progname): Set SELFAUTODIR and SELFAUTOPARENT. + +Sat Dec 14 14:41:39 1996 Karl Berry <karl@cs.umb.edu> + + * tex-file.h (kpse_src_type): New types kpse_tex{doc,source}_format. + * tex-file.c (TEXDOC_ENVS, TEXSOURCE_ENVS): New envvars. + (kpse_init_format): Handle them. + * texmf.cnf.in (TEXDOCS, TEXSOURCES): New values. + * kpathsea.texi: Document them. + +Fri Dec 13 16:46:00 1996 Karl Berry <karl@cs.umb.edu> + + * expand.h: Doc fix. + +Thu Dec 12 17:25:25 1996 Karl Berry <karl@cs.umb.edu> + + * xputenv.c [WIN32]: Work around putenv ("FOO=") unsetting + FOO under NT. From Fabrice. + +Mon Dec 9 23:27:45 MET 1996 Thomas Esser <te@informatik.uni-hannover.de> + + * kpsewhich.c: add option -show-path to display the search path for a + given file type. + +Mon Dec 9 17:23:32 1996 Karl Berry <karl@cs.umb.edu> + + * readable.c (READABLE): Check !S_ISDIR instead of S_ISREG, + to allow fifo's. + Suggestion from: Krzysio Leszczynski <chris@camk.edu.pl>. + + * tex-file.c (kpse_open_file): Open VF files in binary mode. + From Fabrice. + + * types.h (boolean) [WIN32]: Remove this case, Fabrice + has found another solution. + + * elt-dirs.c (expand_elt): Do not check for a device separator. + From Fabrice. + + * texmf.cnf.in (OTPINPUTS, OCPINPUTS): These use a subdirectory omega/. + From John P. + +Sun Dec 8 17:15:43 1996 Karl Berry <karl@cs.umb.edu> + + * c-proto.h (DllImport): Define here. + * config.h (DllImport): Instead of here. + * kpsewhich.c: Other DllImport changes. + * line.c [WIN32]: Include <malloc.h>. + * tex-file.c: Oops, had FOPEN_RBIN_MODE vs. R reversed. + * tex-make.c (kpse_make_tex_discard_errors): Add Dllimport. + * types.h (boolean): Bizarre WIN32 definition. + From: Fabrice POPINEAU <popineau@esemetz.ese-metz.fr>. + +Sat Dec 7 22:12:26 MET 1996 Thomas Esser <te@informatik.uni-hannover.de> + + * MakeTeXnames: Ensure that cmr1234 will be mapped to + jknappen/sauter while cmr12 will still be mapped to public/cm. + +Fri Dec 6 15:08:35 1996 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (OFMFONTS, etc.): New definitions for Omega. + * tex-file.h (kpse_file_format_type): Define kpse_ocp_format, etc. + * acconfig.h (MAKE_OMEGA_{OFM,OCP}_BY_DEFAULT): Include these. + * tex-file.c (kpse_init_format): New cases for the Omega types. + (OCP_ENVS, etc.): New environment variable lists. + From: John Plaice <plaice@iad.ift.ulaval.ca>. + + * texmf.cnf.in: Use fonts//<format> consistently, + instead of fonts/<format>. + + * lib.h (itoa): Remove, it seems we don't use this function any more. + * itoa.c: Remove. + * acconfig.h (HAVE_ITOA): Remove this. + * Makefile.in (objects): Remove. + + * cnf.c (do_line): Oops, tested prog after freeing it, + should have tested prog2. + From: Fabrice POPINEAU <popineau@esemetz.ese-metz.fr>. + +Tue Dec 3 14:57:52 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (objects): Remove strtol.lo, that's generated by + configure. + From: Gregor Hoffleit <flight@mathi.uni-heidelberg.de>. + +Mon Dec 2 09:05:54 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXcommon: Set KPSE_DOT before the trap. From Thomas. + +Tue Dec 3 18:02:08 1996 Ulrik Vieth <vieth@thphy.uni-duesseldorf.de> + + * texmf.cnf.in (TRFONTS): Set this to /usr/lib/font/devpost + indepent of $prefix. + +Mon Dec 9 00:28:58 1996 Ulrik Vieth <vieth@thphy.uni-duesseldorf.de> + + * MakeTeXcommon: Use `basename $0` in usage and version messages + for consistency with other programs and scripts. + Also accept -help, -version in addition to --help, --version. + + * MakeTeX{MF,PK,TFM,ls-R,mkdir,names,update}: + Use `basename $0` in usage messages for consistency. + +Tue Dec 3 18:02:08 1996 Ulrik Vieth <vieth@thphy.uni-duesseldorf.de> + + * texmf.cnf.in (TRFONTS): Set this to /usr/lib/font/devpost + indepent of $prefix. + +Thu Nov 28 16:33:35 1996 Karl Berry <karl@cs.umb.edu> + + * common.ac (AC_ISC_POSIX): Remove this; it causes warnings from + Autoconf that make no sense, isn't cached, and is probably of + dubious value today. + * configure.in: Move the klibtool stuff to common.ac, so the + program configure.in's can find it. + +Wed Nov 27 14:43:41 1996 Karl Berry <karl@cs.umb.edu> + + * configure.in: Doc fix. + * acconfig.h (HAVE_BASENAME, etc.): #undef these symbols so + Autoheader can replace them; we use a non-standard macro to test + for them, since they're part of the possibly-shared library. + +Mon Nov 25 14:04:42 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (texmf.sed): Replace all $(texmf) with `$TEXMF' + except on the TEXMF line itself. + +Sun Nov 24 10:06:35 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (texmf.sed): Insert missing quote. + (distdir): Use doc instead of listing all the targets (we were + missing unixtex.ftp). + + * kpsewhich.c (read_command_line): Print the integer equivalent of + each format. + +Sat Nov 23 15:38:31 1996 Karl Berry <karl@cs.umb.edu> + + * xt.ac (with_x): Remove spurious ;;. + +Fri Nov 22 18:00:41 1996 Karl Berry <karl@cs.umb.edu> + + * cnf.c (do_line): Let var.prog lines work if we're running prog.exe. + This happens with --enable-shared. + From Ulrik. + +Mon Nov 18 16:10:48 1996 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_troff_font_format): Change to DEFAULT_TRFONTS + to make texmf.cnf.in change. + +Fri Nov 15 14:13:36 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (texmf.sed): Get $TEXMF back into the paths. + Noted by Andreas Scherer. + (distdir): Add klibtool.version to the distribution. + From Ulrik. + (install-exec): Use INSTALL_SCRIPT for scripts. + +Mon Nov 11 16:16:50 1996 Karl Berry <karl@cs.umb.edu> + + * various .c: Print (nil) instead of (null) so we can possibly + detect printf of a null pointer. + +Sun Nov 10 16:22:43 1996 Karl Berry <karl@cs.umb.edu> + + * xt.ac: New file so web2c and xdvi treat --with-x-toolkit uniformly. + From Ulrik. + +Thu Oct 31 15:38:48 1996 Karl Berry <karl@cs.umb.edu> + + * expand.c (kpse_path_expand): Do brace expansion first. + (kpse_brace_expand): Expand each element of the brace expansion, so + {~a,~b} expands. Suggested by Thomas. + +Fri Oct 25 16:51:14 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (install-data): Install an empty dir file if none exists. + (mostlyclean: Remove PROF etc. subdirs here. + +Tue Oct 22 13:56:20 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in ($(library).h): Make the modtime of the file the + same as the latest other .h; otherwise, we think kpathsea always + has to be remade. + +Sun Oct 20 18:06:36 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (distdir): No need to distribute copying.texi. + +Mon Oct 14 11:32:51 1996 Karl Berry <karl@cs.umb.edu> + + * Changes for NT from: Fabrice POPINEAU <popineau@esemetz.ese-metz.fr>. + + * xputenv.c (putenv) [WIN32]: #include <stdlib.h> instead of declaring. + + * tex-file.c (kpse_open_file): Use FOPEN_RBIN_MODE for tfm and gf + formats. + + * xopendir.h [!WIN32]: Conditionalize whole file. + * xopendir.c (xopendir) [!WIN32]: Conditionalize defn. + + * kpsewhich.c (DllImport) [_WIN32]: Define. + (path_sep): Use ENV_SEP_STRING. + + * progname.h, + * lib.h, + * debug.h (kpathsea_debug), + * concatn.h (concatn): Give DllImport kludge. + + * config.h (DOSISH) [WIN32]: #define. + Also include <windows.h>, etc. + + * c-std.h (getenv, popen, pclose) [WIN32]: Conditionalize decls. + * c-fopen.h [WIN32]: Use rb and wb. + * c-limits.h [HAVE_SYS_PARAM_H]: Conditionalize #ifdef. + * common.ac: Check for <sys/param.h> + * c-stat.h [WIN32]: #include <io.h> and #define stat _stat. + +Sat Oct 12 11:10:45 1996 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_find_file): Include a suffix in what we pass to + kpse_fontmap_lookup. + + * Makefile.in (paths.h): Remove extra $ when replacing $VARFONTS. + +Tue Oct 8 16:40:07 1996 Karl Berry <karl@cs.umb.edu> + + * tex-glyph.c (try_fontmap): Do not return the first alias if it + itself is an alias. Also, if a particular alias succeeds, + return that. + +Sun Oct 6 17:52:58 1996 Karl Berry <karl@cs.umb.edu> + + * version.c: Doc fix. + +Sat Oct 5 17:06:54 1996 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c (-must-exist): New option. + (must_exist): New global. + + * Makefile.in (install-data): Call install-info. + * kpathsea.texi, *.texi: Use @url, @email, and @dircategory/@direntry. + +Sat Sep 21 19:02:17 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXnames.cnf: Doc fix. + + * texmf.cnf.in (latex{2e,209}_inputs): Replace spurious `latex2e'. + (TEXINPUTS.fontinst): New definition, including AFM files. + (MFINPUTS, TFMFONTS, PKFONTS): Use $VARFONTS. + From Thomas. + +Sat Sep 7 16:00:53 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXupdate, + * MakeTeXnames, + * MakeTeXmkdir, + * MakeTeXls-R, + * MakeTeXTFM, + * MakeTeXPK, + * MakeTeXMF (version): Call kpsewhich in MakeTeXcommon, not here. + + * version.c: Doc fix. + + * kpsewhich.c (read_command_line): Improve formatting of --help + message. + +Fri Sep 6 19:16:20 1996 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c (read_command_line): Print the bug reporting address. + * version.c (kpse_bug_address): New global. + +Thu Sep 5 19:08:04 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in: Doc fix. + + * configure.in: Include ../acklibtool.m4 here. + * common.ac: Not here. Move calls to kb_*LIBTOOL* functions, too. + +Sun Sep 1 17:34:17 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (.c.lo): Put filename right after $(CC), for Klibtool. + (KPATHSEA_CC): Do not include ALL_CFLAGS here. + (paths.h): Instead of deleting definitions with lowercase variable + names, don't include them in the first place. + +Sat Aug 31 16:15:33 1996 Karl Berry <karl@cs.umb.edu> + + * common.ac: Call kb_KLIBTOOL_REPLACE_FUNCS and kb_PROG_LIBTOOL + instead of the AM_* versions. + Also, include acklibtool.m4 instead of aclibtool.m4. + + * Makefile.in (liblobjs): Change to use @LTLIBOBJS@. + +Sat Aug 17 17:22:18 1996 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (PKFONTS*, GFFONTS): Need another / to match TDS. + +Sat Aug 10 15:46:46 1996 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (TFMFONTS, VFFONTS): Update with trailing // for TDS. + + * MakeTeXupdate, + * MakeTeXnames.cnf, + * MakeTeXnames, + * MakeTeXTFM, + * MakeTeXMF, + * MakeTeXmkdir, + * MakeTeXls-R, + * MakeTeXPK: Change --expand to -expand-var. + + * tex-glyph.c (try_fontmap): Return the real name of the first + alias as the font name. + (kpse_find_glyph): Change call, free string if necessary, etc. + Basic idea from a patch sent by wls@astro.umd.edu. + +Fri Aug 9 15:42:40 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (paths.h): Substitute for dbtex, dbfonts, and prefix. + Also, do not define lowercase variables. + +Thu Aug 8 14:50:29 1996 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (TEXCONFIG, INDEXSTYLE): Use //, just in case there + are subdirectories. From Thomas. + +Tue Aug 6 13:59:03 1996 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c (lookup): Handle user_path case. + +Mon Aug 5 17:23:56 1996 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c: Rename -expand to -expand-var, + -path to -expand-path, and add new -path option to specify + explicit path for lookups. + + * tex-file.h (kpse_ist_format): New format. + * tex-file.c (kpse_init_format): Initialize it. + (IST_ENVS): New #define. + * texmf.cnf.in (INDEXSTYLE): Set the default path. + + * tilde.c (kpse_tilde_expand): If $HOME starts with //, only use + one of the slashes. + +Sat Aug 3 17:18:00 1996 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c (read_command_line): Change Usage: line to conform. + +Fri Aug 2 11:57:23 1996 Karl Berry <karl@cs.umb.edu> + + * db.c (db_build): Test len > 0 before evaluating len - 1. + From: "Peter Henderson, Syrinx Speech Systems P/L, Tel: (+61-2) + 956-6540" <peterh@syrinx.com.au>. + +Sat Jul 27 14:35:17 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (paths.h): Change target name to + $(kpathsea_dir)/paths.h, for rdepend.make dependency. + + * Makefile.in (liblobjs): New variable, gets @LIBTOOL_LIBOBJS@. + * common.ac (kbAC_LIBTOOL_REPLACE_FUNCS): Use this new macro instead + of AC_REPLACE_FUNCS. + +Fri Jul 26 15:51:55 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (KPATHSEA_CC): Include $(compile). + (.c.lo): Change suffix rule for libtool 0.5. + (install-exec): Use new variables INSTALL_LIBTOOL_*. + +Mon Jul 8 17:21:34 1996 Karl Berry <karl@laurie> + + * unixtex.texi: Rename from obtain.texi. + +Fri Jun 7 19:10:52 1996 K. Berry <kb@cs.umb.edu> + + * common.ac: Include ../kpathsea/withenable.ac. + +Thu Jun 6 16:34:43 1996 K. Berry <kb@cs.umb.edu> + + * Makefile.in (kpsewhich): Use libtool commands etc. instead of + our shared lib stuff. + * common.ac: Replace our shared lib stuff with gm_PROG_LIBTOOL. + * withenable.ac: Remove --enable-shared stuff. + +Sat Jun 1 15:05:42 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeX*: Add RCS info for version strings. + +Thu May 30 13:46:46 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXPK: Doc fix; we're called with the base font name + (pplr8r), not the user font name (pplr). + + * db.c (ignore_dir_p): Remove the dot_pos != dirname test, + since it's always true. It caused directory names containing .'s + (e.g., `dc-1.2') to be ignored. + From Thomas Esser and Frank Mittelbach. + +Sun May 26 16:06:41 1996 Karl Berry <karl@cs.umb.edu> + + * tex-make.c (kpse_make_tex): If called kpse_init_form, reassign + our local variable, too. + +Thu May 23 16:20:53 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXnames: Doc fix. + +Fri May 3 13:34:51 1996 Karl Berry <karl@cs.umb.edu> + + * withenable.ac: Use AC_ARG_WITH instead of AC_ARG_ENABLE for + maketex*. + + * tex-file.c (kpse_find_file): Oops, testing for kpse_pk_format + twice, when meant to test for kpse_gf_format. + + * cnf.c (do_line): Allow whitespace in variable values. + + * texmf.cnf.in: Finish adding easier support for !!. From Joachim. + +Wed May 1 16:30:56 1996 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (TEXCONFIG): Take $HOME back out again, we're going + to hardwire a seach for dvipsrc in $HOME. + +Mon Apr 29 14:02:03 1996 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (latex2e_inputs): Use just `latex', not `latex2e'. + From: David Carlisle <carlisle@cs.man.ac.uk>. + (TEXINPUTS, etc.): Also rewrite to make !! support easier to add. + From: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>. + + * install.texi: Document ksh/ash/Ultrix sh lossage, in favor of + bash/bsh/sh5. + +Sun Apr 28 15:02:55 1996 Karl Berry <karl@cs.umb.edu> + + * acconfig.h (ASM_NEEDS_UNDERSCORE): New define. + From: Peter Breitenlohner <peb@MPPMU.MPG.DE>. + + * Makefile.in (sharedlib_version): Remove unused variable. + +Sat Apr 27 17:15:14 1996 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (hyph_size): Add this. + +Tue Apr 23 07:34:05 1996 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (MIMELIBDIR, MAILCAPDIR): Add these. + (MPXCOMMAND): And these. + + * MakeTeX.site: New file, just an example. + +Mon Apr 22 17:31:27 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXnames.conf: Rename to MakeTeXnames.cnf. + * MakeTeXnames: Change call. + * Makefile.in (install-exec): Change install. + +Sun Apr 21 12:09:06 1996 Karl Berry <karl@cs.umb.edu> + + * tex-file.h (kpse_set_program_enabled, kpse_maketex_option): + Declare new functions. + (kpse_src_type): Define new type. + * tex-file.c (kpse_set_program_enabled): New function, so we can + set this at all the various levels and get the overrides right. + (kpse_maketex_option): Handle MakeTeX options in a common place. + * proginit.c (kpse_init_prog): Call it, and remove the make_tex_pk + argument. + * proginit.h (kpse_init_prog): Likewise. + * kpsewhich.c (parse_options): New options -maketex and -nomaketex, + just calls kpse_maketex_option. + + * Makefile.in ($(library).h): New target, made at dist time. + +Sat Apr 20 17:21:24 1996 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_find_file): Do not pound the disk on the first + search if we might be trying the second. + +Tue Mar 12 15:21:16 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXPK: Restore check for mismatched mode and bdpi. From Thomas. + +Sun Mar 10 14:17:14 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXnames.conf: Rename VARFONTS to VARTEXFONTS. + + * MakeTeXcommon (trap): Oops, cd $KPSE_DOT before testing $STDOUT. + +Sat Mar 9 17:57:02 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXcommon (trap): cd back to KPSE_DOT before removing + TEMPDIR, in case $TMPDIR is relative. Reported by Thomas. + +Fri Mar 8 11:41:22 1996 Karl Berry <karl@cs.umb.edu> + + * db.c (kpse_db_search): Add debug statement with the result of + the match. + + * tex-make.c (kpse_make_tex): Don't look for the arg spec here. + * tex-file.c (init_maketex): Do it here. Check for disbaling in + the config file, too. + + * tex-make.c (misstex): Look for TEXMFOUTPUT in texmf.cnf. + * texmf.cnf.in (TEXMFOUTPUT): Define this. + + * kpathsea.texi (Suppressing warnings): New node to describe TEX_HUSH. + + * tex-file.c (kpse_init_format): Include the numeric value of the + format for use with kpsewhich --format. + + * tex-hush.c: Support `all' to suppress everything. + +Thu Mar 7 11:24:51 1996 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c: Change --program to --progname, for compatibility + with TeX & co. + + * texmf.cnf.in (TEXCONFIG): Remove ~ from default path, for + consistency with everything else. + + * readable.c: Let's call it TEX_HUSH instead of KPSE_NOWARN_PERM, + so we can use it for checksum warnings, too. And for similarity + with xdvi. + * kpathsea.texi: Corresponding change. + * tex-hush.[ch]: New files. + +Wed Feb 28 15:16:32 1996 Karl Berry <karl@cs.umb.edu> + + * tex-make.c (misstex): Let the name missfont.log be configurable. + * texmf.cnf.in (MISSFONT_LOG): Add this definition. + * kpathsea.texi: Document this. + +Sun Feb 25 16:55:35 1996 Karl Berry <karl@cs.umb.edu> + + * tex-file.c: Reverse order of alias & suffix searches, so we look + for the original TFM name before aliases. + +Sun Feb 18 16:24:50 1996 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (xopenfile): Move this function to here and rename to + kpse_open_file. + * xopenfile.c: Remove this. + * Makefile.in (objects): Remove xopenfile.o. + +Thu Feb 15 12:57:56 1996 Karl Berry <karl@cs.umb.edu> + + * tex-make.c (maketex): Do not print the `kpathsea: Running ...' + message if we're discarding output. + (misstex): Do not log the missing file in missfont.log, either. + +Sat Feb 10 14:59:23 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (sharedlib): Add new command here $(shared_postlink) + so we can make the necessary symlink. + (shared_postlink): New variable + +Fri Feb 9 15:46:55 1996 Karl Berry <karl@cs.umb.edu> + + * withenable.ac (maketex{mf,pk,tfm}-default): Move here from + web2c/withenable.ac. + +Wed Feb 7 16:52:08 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXnames.conf: Extract this new script from MakeTeXcommon, sigh. + * MakeTeX*: Other updates from Thomas -- + - replace the exec 3>&1 1>&2 by trap/subshell construction. The + 3>&1 may cause the 'open fd bug' with bash. + - ts is a typo. tc are the text companion fonts + - replace >&3 by >$STDOUT where $STDOUT is a filename. Its content is + displayed by the trap command in MTcommon. + - added missing ;; in case/esac + - use : ${VAR=VAL} where possible + - added mt_min_args + - removed psfonts.map parsing (was only needed for ps2pk) + - removed >&2 where redirection stdout->stderr is active anyway + - removed </dev/null where redirection stdin<-/dev/null is active + anyway + - Oops: MakeTeXTFM still used old code: >$TEMPDIR/mtout.$$ + - add line + trap 'test -f $STDOUT && cat $STDOUT; cd /; rm -rf $TEMPDIR; exit 0' 0 1 2 15 + to MakeTeXcommon + - MT_FEATURES now in MakeTeXnames.conf since we need to read it + later than MakeTeXcommon + +Tue Feb 6 17:04:25 1996 Karl Berry <karl@cs.umb.edu> + + * tex-file.h (kpse_file_format_type): Add afm and type1 support. + * tex-file.c: Likewise. + (kpse_init_format): In tex_ps_header_format, no longer need to + recognize .pfa and .pfb. + * texmf.cnf.in (AFMFONTS, T1FONTS): Likewise. + * Makefile.in (paths.h): Include 0-9 in the regexp for the sake of + T1FONTS. + +Sat Feb 3 15:45:00 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (DEFS): Move to common.make. + +Mon Jan 29 17:01:44 1996 Karl Berry <karl@cs.umb.edu> + + * MakeTeXls-R: Doc fix. + +Mon Jan 8 17:17:42 1996 Karl Berry <karl@cs.umb.edu> + + * tex-file.c: Doc fix. + + * fontmap.c (MAP_NAME, MAP_HASH_SIZE): Conditionalize these #defines. + +Sun Jan 7 17:38:00 1996 Karl Berry <karl@cs.umb.edu> + + * db.c (DB_HASH_SIZE, DB_NAME): Conditionalize these. + + * MakeTeXcommon (dcfontdir, tsfontdir): Use supplier `jknappen'. + +Mon Jan 1 15:14:42 1996 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (distdir): Don't bother including freedom.texi. + +Fri Dec 29 17:17:08 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in: misc.make is now clean.make. + +Tue Dec 26 14:21:08 1995 Karl Berry <karl@cs.umb.edu> + + * withenable.ac: New file with --enable option extracted from + common.ac, for the top level to include. + + * acconfig.h (MAKE_TEX_PK_BY_DEFAULT): Add this. + + * readable.c (kpse_readable_file): Omit warning if + KPSE_NOREAD_WARN is set to 1. + +Wed Dec 13 14:14:09 1995 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c: Call kpse_init_format when necessary in the + --format case. + +Mon Dec 11 14:42:13 1995 Karl Berry <karl@cs.umb.edu> + + * common.ac: --disable-shared should not act like --enable-shared. + From Ulrik. + +Sun Dec 10 15:35:15 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.h (kpse_mft_format): New format. + * tex-file.c (MFT_ENVS): New variable. + (kpse_init_format): Initialize it. + * texmf.cnf.in (MFTINPUTS): New variable. + +Fri Dec 8 08:54:58 1995 Karl Berry <karl@cs.umb.edu> + + * xopenfile.c: Doc fix. + +Mon Dec 4 17:23:34 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (check): Extra $ missing. + +Sun Dec 3 13:42:54 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (TEX_SUFFIXES): Add .dtx. + +Sun Nov 19 16:19:37 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeX*: Use MakeTeXupdate, mkdir, etc. in $TEXMFCNF_DIR, not + along PATH. From John I. + +Sat Nov 18 17:03:46 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (TEX_SUFFIXES): Add .txi. + +Fri Nov 17 15:12:03 1995 Karl Berry <karl@cs.umb.edu> + + * common.ac (kb_AC_SYS_SHAREDLIB): Add the kb_ prefix. + + * Makefile.in ({un,}install-exec): Use sharedlibname and + staticlibname instead of `basename`. + Also, pass no arguments to $(shared_postinstall); let the Autoconf + macro set this completely. + + * expand.c: Bash code remains under the GPL, per rms. + +Thu Nov 16 16:14:14 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (uninstall-exec): Needs same `basename` treatment as + install-exec. From Ulrik. + + * config.h [AMIGA] (pclose): Must be #defined as 0, not just + empty. From Andreas Scherer. + +Tue Nov 14 14:04:57 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.h (kpse_fallback_resolutions_string): New global. + * tex-file.c: Define it. + (kpse_init_fallback_resolutions): Use it instead of + DEFAULT_FONT_SIZES, if set. + +Mon Nov 13 10:43:11 1995 Kathy Hargreaves <karl@cs.umb.edu> + + * find-suffix.c: Remove spurious + 1. + +Sun Nov 12 13:42:51 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c: Improve warning message if last resort sizes are not + sorted. Suggested by Kathy. + + * texmf.cnf.in (trie_size, main_memory): Doc improvements from Wayne. + +Sat Nov 11 16:58:37 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeXnames: Correct too many left quotes. + + * tex-make.c (kpse_make_tex): Initialize the format if necessary. + +Mon Oct 30 16:49:05 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeXPK (GFNAME): Do not assume $cmd produced $GFNAME. From Tim. + + * texmf.cnf.in (trie_size): Increase to 32000 so common language + combinations will require no change. Suggested by Ulrik. + + * MakeTeXls-R: Missing s in sed cmd. + * MakeTeXTFM (TFM_NAME): Should be TFMNAME. + * MakeTeXnames (FONTNAME): Missing `. + * MakeTeXcommon: If the caller requires no args (i.e., + MakeTeXls-R), don't complain if given no. + Missing } in varfonts case. + All from Thomas. + +Sun Oct 22 17:02:25 1995 Karl Berry <karl@cs.umb.edu> + + * c-std.h (hypot): Remove this declaration. It was only needed for + fontutils, and it conflicts under Linux 1.2.10. From Tim Murphy. + +Sat Oct 14 10:55:26 1995 Karl Berry <karl@cs.umb.edu> + + * acconfig.h (EDITOR): Missing %. From Tim Murphy. + +Sat Oct 7 17:44:41 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (install-exec): Use basename to get the real name so + we don't install in $(libdir)/../kpathsea/etc. + From Ulrik. + +Sat Sep 30 12:16:05 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeXls-R (db_file_tmp): Replace double slashes with single, + for the sake of NetBSD/FreeBSD. From Thomas. + +Fri Sep 29 11:29:08 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (tex-file.o): CPPFLAGS is now ALL_CPPFLAGS. + +Mon Sep 25 15:05:32 1995 Karl Berry <karl@cs.umb.edu> + + * lib.h (FATAL_PERROR): Avoid using the formal parameter `s' since + cc gets confused with %s. + + * MakeTeXls-R: Include subtleties from Thomas. + * MakeTeXcommon: Rename stickydir to appendonlydir. + +Sun Sep 24 13:15:51 1995 Karl Berry <karl@cs.umb.edu> + + * cnf.c (kpse_cnf_get): Call kpse_init_db here. + * pathsearch.c (search): Instead of here. + + * tex-file.c (init_format): The override path may be null, so use + MAYBE to print it. + + * MakeTeXPK: Don't use unset, as Ultrix sh doesn't support it. + +Sat Sep 23 15:07:12 1995 Karl Berry <karl@cs.umb.edu> + + * common.ac (basename strstr putenv): Use AC_REPLACE_FUNCS instead + of AC_CHECK_FUNCS. Add strtol and strcasecmp from web2c/lib and xdvik. + * Makefile.in (objects): Use @LIBOBJS@ instead of corresponding .o's. + +Fri Sep 22 13:34:51 1995 Karl Berry <karl@cs.umb.edu> + + * acconfig.h (MAKE_TEX_*): #define as 0/1, instead of #undef, + since we now pass this as a default argument to init_maketex. + + * tex-file.c (init_path): Look for environment variables PATH.prog + and PATH_prog before PATH. + +Thu Sep 21 13:53:38 1995 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c (USAGE): Avoid bare newline. + + * xfseek.c, xftell.c: Add unprototypification. + + * common.ac (library_cflags): AC_SUBST for this depending on + --enable-shared. + * Makefile.in (shared_cflags, sharedlib_cflags): Rewrite + accordingly, so the shared flags aren't always used. + +Wed Sep 20 17:06:53 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c: Add .ltx, .texi, and .texinfo as alternate suffices + for kpse_tex_format. + +Tue Sep 19 17:12:10 1995 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in: Changes for TDS. + + * MakeTeX*: New scripts from Thomas. + +Sat Sep 16 17:30:46 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c: Do not print extra `kdebug:'s when printing the + alt_suffixes. + + * expand.c: Incorporate brace expansion code from bash. + * texmf.cnf.in (PKFONTS.xdvi): Use it here, and document the + possibility for $TEXMF. + +Thu Sep 14 12:59:17 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_init_format): For any_glyph_format, do not + initialize a suffix. + + * kpsewhich.c (main): Initialize all the formats. + (find_format): psfonts.map => dvips_config_format. + +Tue Sep 12 16:19:44 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeX{MF,TFM}: New scripts from te. + * Makefile.in (install-exec, distdir): Install and dist them. + +Sun Sep 10 15:11:07 1995 Karl Berry <karl@cs.umb.edu> + + * pathsearch.c (search): Doc fix. + + * tex-file.h (kpse_format_info_type): Add alt_suffix member. + * tex-file.c (init_format): Set it for PS headers and picts, and + print it if it exists. + * kpsewhich.c: Use the new alt suffixes and also the regular + suffixes to allow for -format names as well as numbers, and for + file format guessing. + +Sat Sep 9 14:27:48 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeXPK: If the MODE and BDPI don't match, ignore the mode. + Suggested by Thomas. + + * tex-file.[ch] (kpse_font_override_path): Remove this. + (kpse_format_info_type): Replace the `override_p' member with a + general `override_path'. + * proginit.c: Set the override path for both fonts and headers. + + * acconfig.h (NOTOOL): Add this. + +Fri Sep 8 14:52:42 1995 Karl Berry <karl@cs.umb.edu> + + * acconfig.h (HYPERXDVI): Don't need this after all, Autoconf's + default actions are better. + +Thu Sep 7 15:11:17 1995 Karl Berry <karl@cs.umb.edu> + + * acconfig.h (HYPERXDVI): Define this. + +Mon Sep 4 17:14:25 1995 Karl Berry <karl@cs.umb.edu> + + * debug.h (KPSE_LAST_DEBUG): Define this, for use with gsftopk. + + * Makefile.in (objects): Add xopenfile.o. + * xopenfile.c: New file. + * lib.h (xopenfile): Declare it. + +Sat Sep 2 13:49:53 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.h (kpse_file_format): Rename kpse_ps_header_format to + tex_ps_header_format. + * tex-file.c (TEX_PS_HEADER_ENVS): Rename likewise, etc. + * kpsewhich.c (suffixes): Likewise. + * texmf.cnf: Likewise. + + * tex-file.c: Never set must_exist on the first search. Is this + really correct? + +Fri Sep 1 13:24:49 1995 Karl Berry <karl@cs.umb.edu> + + * tex-make.c (maketex): Give perror if the popen fails. + + * db.c (db_dir_list): Keep track of the directories we found db's in. + (kpse_db_search): If no db directories are relevant to this path + elt, return NULL. + * db.h: Doc fix. + * pathsearch.c (path_search): Doc fix. + + * Makefile.in (shared_ext, etc.): Move to common.make. + +Thu Aug 31 14:40:32 1995 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c: Install suffix rewrite from Yves. + + * common.ac: Move AC_SYS_SHAREDLIB etc. here. + + * acconfig.h (ASM_SCALED_FRACTION): Add this. + +Wed Aug 30 17:02:58 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_find_file): Call kpse_make_tex. + * tex-make.c (kpse_make_tex): Only call set_maketex_mag if we are + doing MakeTeX-PK or GF-ing. + From Greg. + +Tue Aug 29 13:58:59 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (texmf.sed): Depend on paths.make. Should we avoid + creating a new file unless it changes, a la c-auto.h? + + * configure.in: Check for --enable-shared. + +Mon Aug 28 17:50:06 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in: Add sharedlib variables. + +Sun Aug 27 13:27:01 1995 Karl Berry <karl@cs.umb.edu> + + * hash.c (hash_print): New option summary_only, and always print + the summary. Also, output to stderr, not stdout. + * hash.h: Change decl. + + * db.c (kpse_init_db): Oops, have to make it external, so rename + again. + * db.h: Declare it. + * pathsearch.c (search): Call it. + + * cnf.c (read_all_cnf): Rename from read_files. + * db.c (read_all_lsR): Rename from read_all_dbs. + * fontmap.c (read_all_maps): Rename from map_create. + + * tex-file.h (kpse_db_format): Another new type. + * tex-file.c (kpse_init_path): Case for it. + (DB_ENVS): Envvar list. + * texmf.cnf.in (TEXMFDBS): Default path. + * kpsewhich.c (suffix): Add new element. + +Sat Aug 26 14:49:28 1995 Karl Berry <karl@cs.umb.edu> + + * cnf.c (CNF_NAME): #define this. + * tex-file.c (kpse_init_path): Instead of setting the .program + element to texmf.cnf here. + + * db.c (db_insert): Rename to kpse_db_insert. + * db.h: Change decl. + * tex-make.c (maketex): Change call. + + * cnf.c, cnf.h, db.c, db.h, pathsearch.c: Remove references to + kpse_db_dir. + * pathsearch.c (first_search): New static. + (path_search): Do not do ls-R search if first_search. + (search): Do not log if first_search. + + * pathsearch.c (path_search): Don't bother calling elt_in_db -- + the match function in db.c will catch the irrelevant hits. + Pointed out by te. + +Fri Aug 25 14:01:24 1995 Karl Berry <karl@cs.umb.edu> + + * cnf.c (kpse_cnf_get): Look for NAME.PROGRAM before NAME. + (do_line): Save NAME.PROGRAM separately from NAME. + * texmf.cnf.in: Put the usual definitions of TEXINPUTS and PKFONTS + first now, before the .prog variants. + + * fontmap.c: Use ISSPACE instead of just checking for space and tab. + +Thu Aug 24 13:46:19 1995 Karl Berry <karl@cs.umb.edu> + + * lib.h (strstr) [!HAVE_STRSTR]: Declare this. + * Makefile.in (objects): Add strstr.o. + * common.ac (AC_CHECK_FUNCS): Remove memmove; we seem to never use + this. And add strstr. + + * fontmap.c (map_file_parse): Comments at the last % or @c, not at + the first %. Also, implement the include feature. + And thus, don't give up if the map file can't be opened. + (token): New routine, since we can no longer use strtok. + + * tex-file.h (kpse_file_format_type): New format kpse_fontmap_format. + * tex-file.c (kpse_init_format): Initialize it. + (FONTMAP_ENVS): Define it. + * texmf.cnf.in (TEXFONTMAPS): Define the default. + * kpsewhich.c (suffix): Add .map. + +Tue Aug 22 13:28:46 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeXPK.in: No >&/dev/null, source.map is now supplier.map. + + * tex-file.c: Doc fix. + +Mon Aug 21 15:52:42 1995 Karl Berry <karl@cs.umb.edu> + + * c-memstr.h (SYSV): OK, omit this definition in the never-ending + battle to appease the X headers. + From: neal@ctd.comsat.com (Neal Becker). + +Sun Aug 20 12:58:28 1995 Karl Berry <karl@cs.umb.edu> + + * cnf.c (read_files): Concatenate consecutive lines that end in \. + + * types.h (boolean) [__cplusplus]: Don't define true and false for C++. + From: Johannes Sixt <Johannes.Sixt@risc.uni-linz.ac.at>. + + * db.c (db_build): Call absolute_p to determine if the possible + directory really is one. + Also, allow relative names in the ls-R file. + + * kpsewhich.c: New options -path, -separator. + From: David Aspinall <da@dcs.ed.ac.uk>. + + * MakeTeXPK.in: Unset DISPLAY and MFTERM. + From: Yves Arrouye <Yves.Arrouye@imag.fr>. + + * db.c (ignored_dir_p): New function to ignore . directories. + (db_build): Call it, and do the ignoring. Report on how many + directories were ignored. + + * Makefile.in (MakeTeXPK): Remove dcfontdir substitution. + * MakeTeXPK.in: Play redirection games so regular echo's will work. + (dcfontdir): Remove this; it's unused. + From: te@informatik.uni-hannover.de (Thomas Esser). + + * pathsearch.c (path_search): Free more garbage. + From: John Eaton <jwe@che.utexas.edu>. + +Sat Aug 19 12:57:54 1995 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c (USAGE): Document -format and -program. + + * tex-make.c (maketex): Give warning if MTPK output a string that + wasn't a filename. From Pierre. + + * kpsewhich.c (read_command_line): Execute -expand right + + * tilde.c (kpse_tilde_expand): If HOME is /, don't start path with //. + From: Andreas Schott <andreas@mpa-garching.mpg.de>. + + * db.c (match): Make /// (or more) like //. + * elt-dirs.c (do_subdir): Likewise. Also, skip over as many + slashes as we found. + + * variable.c (expanding_p, expanding, expansions, expansion_type): + New functions, variables, type. + (expand): Check for recursively expanded variables. + Reported by Nicolai Langfeldt <janl@math.uio.no>. + + * cnf.c (kpse_cnf_get): Free temporary list after extracting the + first element (the one we return). + +Fri Aug 18 17:39:29 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeXPK.in (1270): The guess here should be linohi, not linolo. + From pwa. + + * kpsewhich.c (suffix): Update for new MetaPost stuff. + * tex-file.h: Doc fix. + +Mon Aug 14 17:49:05 1995 Karl Berry <karl@cs.umb.edu> + + * debug.h: Define KPSE_DEBUG, not DEBUG. + * hash.c, hash.h, tex-file.c, elt-dirs.c, dir.c, db.c: Change + #ifdef's accordingly. From John I. + +Sun Aug 13 16:03:51 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.h (kpse_file_format_type): Rename kpse_dvips_headers to + just kpse_ps_headers. xdvik uses this too, now. + * tex-file.c (kpse_init_format, KPSE_DVIPS_HEADER_ENVS): Likewise. + Also, look for the PSHEADERS envvar, not DVIPSHEADERS. + * texmf.cnf.in: Likewise. + +Thu Aug 10 19:31:14 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_init_fallback_resolutions): Complain if sizes + aren't sorted, and ignore offending sizes. + From: Manuel Fahndrich <manuel@CS.Berkeley.EDU>. + +Tue Aug 1 13:53:53 1995 Karl Berry <karl@cs.umb.edu> + + * variable.[ch] (kpse_var_value): Use const_string. + + * texmf.cnf.in (string_vacancies): Decrease to 25000. From Bernd. + (font_max): Add this. From Wayne. + +Mon Jul 31 15:47:01 1995 Karl Berry <karl@cs.umb.edu> + + * db.h (KPSE_DB_DIR): Remove $. + * cnf.c (read_files): Call kpse_var_value instead of kpse_var_expand. + + * tex-file.[ch]: Add mpsupport and troff_font formats. + * texmf.cnf.in: Likewise. + +Sat Jul 29 09:21:44 1995 Karl Berry <karl@cs.umb.edu> + + * variable.h (kpse_var_value): Declare this. + * variable.c (kpse_var_value): New routine. + + * tex-file.c: Check TEXMFINI for pool/fmt/base/mem lookups + +Tue Jul 25 11:22:25 1995 Karl Berry <karl@cs.umb.edu> + + * concatn.c (concatn): Free the intermediate result, not the final + version. + + * texmf.cnf.in (TEXMFLOG): Don't mention this, as we need to log + the finding of the .cnf file itself, thus it must be an + environment variable. + +Sat Jul 22 17:09:58 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (KPSE_{MEM,MP,MPPOOL}_ENVS): Define envvars. + * tex-file.h (kpse_file_format_type): Add kpse_{mem,mp,mppool}_formats. + * texmf.cnf.in (MPPOOL, MPMEMS, MPINPUTS): New variables. + Adapted from: vieth@xerxes.thphy.uni-duesseldorf.de (Ulrik Vieth). + +Fri Jul 21 15:26:42 1995 Karl Berry <karl@cs.umb.edu> + + * *.c, *.h: The FSF has a new address. + + * kpsewhich.c: Give error if no args. + +Wed Jul 19 17:34:26 1995 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in: Document limits on error_line et al. + +Mon Jul 17 13:09:05 1995 Karl Berry <karl@cs.umb.edu> + + * acconfig.h (NO_FMTBASE_SHARE): Rename to NO_DUMP_SHARE. + +Sun Jul 16 14:17:16 1995 Karl Berry <karl@cs.umb.edu> + + * acconfig.h (IPC, FUNNY_CORE_DUMP, NO_FMTBASE_SHARE): Include these. + +Sat Jul 15 12:45:51 1995 Karl Berry <karl@cs.umb.edu> + + * acconfig.h (HAVE_ITOA): Remove extraneous #define. + + * texmf.cnf.in (hash_extra): New TeX array variable, 0 by default. + + * tex-file.c (KPSE_BIB_ENVS): Include TEXBIB. + +Thu Jul 13 15:04:52 1995 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (TEXPOOL, MFPOOL): Include . after all, now that we + use TEXPOOL to search for tcx files. + +Sun Jul 9 15:30:59 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_find_file): Don't go through the + mapped_name_list if it's null. + +Wed Jun 21 19:47:33 1995 Karl Berry <karl@cs.umb.edu> + + * lib.h (FATAL5): Define this. + +Sat Jun 10 15:52:41 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_find_file): Use texfonts.map aliases for TFM + searches. + * tex-file.h: Doc fix. + * fontmap.c (kpse_fontmap_lookup): New name. Fault in the map + table as needed, instead of initializing. Make map_create static. + * fontname.h: New name; remove map_create. + * tex-glyph.c (try_fontmap): Just call kpse_fontmap_lookup, no + need to create it. + + * fontmap.c (map_lookup): Don't let return value fall off the end + in the suffix-appending case. + From: "Heading, Anthony" <heading_anthony@jpmorgan.com>. + +Fri Jun 9 19:11:34 1995 Karl Berry <karl@cs.umb.edu> + + * tilde.c: Only assume PWD_H for looking up ~user, not for ~ or ~/. + * make-suffix.c: Use IS_DIR_SEP instead of assuming /. + * concatn.c: Free the in-between concatenations to avoid garbage. + * absolute.c [OS2]: Use same conventions as for DOS. + * c-std.h, c-pathch.h, c-fopen.h: Likewise. + From: rs@purple.in-ulm.de (Ralph Schleicher). + +Tue Jun 6 13:11:46 1995 Karl Berry <karl@cs.umb.edu> + + * lib.h (itoa) [!HAVE_ITOA]: Define conditionally. + * itoa.c: Likewise. + * acconfig.h (HAVE_ITOA): Add this. + + * c-pathch.h, c-fopen.h [DOS]: Changes from web2pc from Wayne. + + * xputenv.c: Doc fix. + + * truncate.c (kpse_truncate_filename): Check for a device separator. + + * elt-dirs.c (main): Tests for Amiga. + +Mon Jun 5 13:12:10 1995 Karl Berry <karl@cs.umb.edu> + + * absolute.c: Add Amiga support. From Andreas Scherer. + * c-pathch.h: Ditto. + * elt-dirs.c (dir_list_add): Ditto. Check for device separators, too. + +Sun Jun 4 11:29:18 1995 Karl Berry <karl@cs.umb.edu> + + * c-proto.h (AA): New macro to throw away (or keep) any number of + arguments, used with an extra set of parens. + + * Makefile.in (distdir): Put PROJECTS in the distribution. + +Sat Jun 3 11:53:45 1995 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (main_memory): Add definitions for TeX array sizes. + + * config.h (progname.h): Include this. + * prog{init,name}.c, kpsewhich.c: No longer need to include it. + * lib.h (START_FATAL, FATAL_PERROR): Use program_invocation_name + in the error message. + + * variable.h: Doc fix. + +Fri Jun 2 13:41:29 1995 Karl Berry <karl@cs.umb.edu> + + * config.h (DOSISH) [DOS || OS2]: Define this. + +Tue May 30 15:43:56 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_find_file): Don't look for foo.sty.tex before + foo.sty. Suggested by worsch@ira.uka.de. + +Mon May 29 15:24:38 1995 Karl Berry <karl@cs.umb.edu> + + * db.c (db_insert): If DOS, don't check that first character on a + line IS_DIR_SEP. From Sebastian. + +Sat May 27 13:51:47 1995 Karl Berry <karl@cs.umb.edu> + + * pathsearch.c (log_search): Cast time_t arg to avoid printf warning. + + * lib.h (atou): Declare it. + * Makefile.in (objects): Add atou.o. + * atou.c: New file. + +Sun May 21 10:58:31 1995 Karl Berry <karl@cs.umb.edu> + + * xfopen.c: Assert non-null filenames. + +Mon May 15 17:40:27 1995 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c (USAGE): Add one-line description to the help message. + +Sun Apr 16 14:25:06 1995 Karl Berry <karl@cs.umb.edu> + + * line.c (BLOCK_SIZE): Increase to 56, to avoid realloc's. + +Fri Apr 14 15:56:13 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (objects): Add xfseek and xftell, from fontutils. + +Mon Mar 13 20:05:02 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeXPK.in: Don't egrep in a file that doesn't exist. + +Fri Mar 10 10:49:28 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_find_file): Abort if the name passed in is null + or empty. + +Thu Mar 9 15:23:07 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_init_format): Only do suffix searches for GF files. + + * acconfig.h: Warn that this is not the right thing to edit to fix + configuration problems. + +Thu Mar 2 15:58:11 1995 Karl Berry <karl@cs.umb.edu> + + * texmf.cnf.in (TEXFORMATS): Doc fix. + +Fri Feb 24 16:40:23 1995 Karl Berry <karl@cs.umb.edu> + + * MakeTeXPK.in: `generate rootname' with no trailing punctuation + for the dc fonts. + +Mon Feb 20 15:23:05 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.h (kpse_find_mf): New abbreviation. + +Sat Feb 11 13:06:23 1995 Karl Berry <karl@cs.umb.edu> + + * putenv.c: Include c-auto.h instead of kpathsea/c-auto.h, so the + sed commands don't transform it into + $(kpathsea_srcdir)/c-auto.h. From Andreas. + + * tex-make.c (maketex): Don't make a bad return from pclose a + fatal error. Reported most recently by Wayne Sullivan, also by + Andy Piper in the past. + + * MakeTeXPK.in (sauterdir): Only try this if we have the right + b-foo.mf file. And correct $DESTDIR=... mistake. + From Nick Cropper <nickc@dcs.st-andrews.ac.uk>. + +Fri Feb 10 15:49:49 1995 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (INIT_MT): If the .program member has already been + set, don't reset it. + +Wed Jan 18 15:47:07 1995 Karl Berry <karl@cs.umb.edu> + + * xopendir.c (xclosedir): Use CLOSEDIR_VOID, not VOID_CLOSEDIR. + From tim@maths.tcd.ie. + + * db.c (db_insert): Don't assert db.size>0, since we may not have + called kpse_db_search. From te@informatik.uni-hannover.de. + + * MakeTeXPK.in (dc fonts): Don't put a trailing period in the + filename. From Tor Lillqvist <tml@hemuli.tte.vtt.fi>. + +Sun Jan 8 12:14:47 1995 Karl Berry <karl@cs.umb.edu> + + * Version 2.6. + +Wed Jan 4 14:44:34 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (mostlyclean): Remove kpsewhich. + +Tue Jan 3 11:48:40 1995 Karl Berry <karl@cs.umb.edu> + + * kpsewhich.c (long_options): Can't make this automatic. + + * basename.c: Include <kpathsea/config.h> before testing + HAVE_BASENAME. + + * Makefile.in (kpsewhich): Make the library before kpsewhich.o. + (paths.h): No need for the $(kpathsea_dir)/ any more, now make + depend gets rid of it. + + * rm-suffix.c: Doc fix. + + * kpsewhich.c: Extract the dpi from the filename if possible. + +Mon Jan 2 09:45:17 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (kpsexpand): Replace with kpsewhich. + + * proginit.h: Doc fix. + + * texmf.cnf.in (TEXMFCNF): Rename from TEXMF_CNF. + * tex-file.c (kpse_init_format): Likewise. + +Sun Jan 1 14:04:41 1995 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (MakeTeXPK): Substitute for web2cdir. + * MakeTeXPK.in: Use it for MakeTeXPK.site. + (install-data): Install texmf.cnf in web2cdir instead of texmf. + * texmf.cnf.in (TEXMF_CNF): Default path includes web2cdir. + +Sat Dec 31 14:26:48 1994 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (objects): No more @LIBOBJS@. + * common.ac: Use AC_CHECK_FUNCS for basename, not REPLACE_FUNCS. + The latter doesn't define HAVE_BASENAME. + * basename.c [!HAVE_BASENAME]: Conditionalize whole file. + + * Makefile.in (uninstall-exec): Remove kpsexpand. + (MakeTeXPK): New target. + (install-exec): Install MTPK. + (install-library): New target to replace install-headers. + (install): Don't install-library by default. + +Fri Dec 30 15:53:04 1994 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (objects): Don't put @LIBOBJS@ on a line by itself. + From Joachim. + +Mon Dec 26 07:55:40 1994 Karl Berry <karl@cs.umb.edu> + + * common.ac (AC_FUNC_CLOSEDIR_VOID): Call this. Reported by + Timothy Murphy <tim@maths.tcd.ie>. + + * tex-file.c (init_path): If a variable is set to an empty value, + ignore it. Suggested by Stephen Gildea <gildea@x.org>. + + * proginit.c: If passed a NULL mode, put / in the environment here. + * tex-make.c (kpse_make_tex): Don't do STREQ on NULL (though it + should never be NULL in the first place), and properly restore + MAKETEX_MODE if it was /. + +Tue Dec 20 09:57:21 1994 Karl Berry <karl@cs.umb.edu> + + * install.texi: Mention how to do optimization. + +Mon Dec 19 13:18:04 1994 Karl Berry <karl@cs.umb.edu> + + * tex-file.h: Doc fix. + +Wed Dec 14 14:46:47 1994 Karl Berry <karl@cs.umb.edu> + + * Version 2.5. + + * pathsearch.c (log_search): Don't prepend the `kdebug:' to the + search result. + +Sat Dec 10 16:49:12 1994 Karl Berry <karl@cs.umb.edu> + + * tex-make.c (set_maketex_mag): Make case of magstep -1 work + properly. From a bug report by + heiko@lotte.sax.de (Heiko Schlittermann). + +Mon Dec 5 11:58:08 1994 Karl Berry <karl@cs.umb.edu> + + * Makefile.in (objects): Add @LIBOBJS@. + * common.ac: Check for basename. + + * db.c (db_insert): Include trailing / in directory part, and pass + the key and the value in the right order. From + te@informatik.uni-hannover.de. + +Sun Dec 4 14:26:44 1994 Karl Berry <karl@cs.umb.edu> + + * kpsexpand.c: Add extra filename argument. From + ware@cis.ohio-state.edu. + + * common.ac: Use AC_TRY_RUN to test for SMART_PUTENV, not + AC_TRY_LINK. From parkes@sierravista.com. + + * acconfig.h: Use #undef instead of commented-out `/* #define'. + +Sun Nov 27 13:47:06 1994 Karl Berry <karl@cs.umb.edu> + + * db.c (db_insert): Don't try to insert into an empty hash table. + From dc@cobi.gsfc.nasa.gov (and others). + + * pathsearch.c (log_search): Call DEBUGF, not printf, for the + filenames. From John I. + + * tex-make.c (kpse_make_tex): If MAKETEX_MODE is /, unset it and + reset it around the command expansion. + (maketex): Back to calling db_insert. + +Sat Nov 26 11:44:09 1994 Karl Berry <karl@cs.umb.edu> + + * cnf.c (read_file): If expansion of $TEXMF (KPSE_DB_DIR) fails, + expand DEFAULT_TEXMF. From te@informatik.uni-hannover.de. + +Thu Nov 24 13:41:15 1994 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (KPSE_BST_ENVS): Do not look at TEXINPUTS. + + * tex-file.h: Doc fix. + +Tue Nov 15 14:06:56 1994 Karl Berry <karl@cs.umb.edu> + + * progname.c (kpse_set_progname): Use basename. + +Fri Nov 11 19:12:23 1994 Karl Berry <karl@cs.umb.edu> + + * acconfig.h (HAVE_SIGIO): Add this. + +Tue Nov 8 19:14:12 1994 Karl Berry <karl@cs.umb.edu> + + * tex-make.c (kpse_make_tex): Change argument name from + `basename', since now we have a fn by that name. + * magstep.c (kpse_magstep_fix): Initialize mdpi. + * basename.c (basename): Initalize base. + +Mon Nov 7 15:46:21 1994 Karl Berry <karl@cs.umb.edu> + + * common.ac: Run autoupdate. + * c-dir.h: Change #if names and NLENGTH to new style. + +Fri Oct 28 21:28:02 1994 K. Berry (karl@terminus.cs.umb.edu) + + * Version 2.4. + + * tex-make.c (maketex): Don't call db_insert, that routine is + buggy. I'll fix it later. In the meantime, trying to get a + semi-stable release. + +Tue Oct 25 16:43:31 1994 Karl Berry <karl@cs.umb.edu> + + * Version 2.3. + + * progname.c (kpse_set_progname): Initialize kpathsea_debug from + the KPATHSEA_DEBUG envvar. From neal@ctd.comsat.com. + +Mon Oct 24 13:41:24 1994 Karl Berry <karl@cs.umb.edu> + + * db.c (db_insert): New function. + * db.h: Declare it. + * tex-make.c (maketex): db_insert the result if we succeeded. + + * basename.c: New file to define basename. + * lib.h (basename): Declare it. + * Makefile.in (objects): Include basename.o. + + * tex-file.h (kpse_file_format_type): Add missing enum values for + base/fmt/pool files. + * tex-file.c (kpse_init_format): Add cases for these. + From te@informatik.uni-hannover.de. + + * lib.h (WARNING, FATAL): Use fputs instead of fprintf. + * Many files: Use DEBUGF instead of printf ("kdebug". + * debug.h (DEBUGF) [DEBUG]: Define this. + + * xputenv.c (xputenv): Initialize that static saved_env_items to + null, just for documentation's sake. + +Tue Oct 18 13:19:06 1994 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (KPSE_*_ENVS): Move environment variable list here. + * tex-file.h: Move them from here. + + * tex-glyph.h: Doc fix. + + * tex-file.c (kpse_find_file): Correct off-by-one in suffix + comparison. From toy@rtp.ericsson.se. + +Mon Oct 17 14:01:02 1994 Karl Berry <karl@cs.umb.edu> + + * elt-dirs.c (do_subdir): Find a top-level subdir if it matches + the POST. + + * db.c (kpse_db_search): Allow for the passed name including a + directory part, as in dpi600/cmr10.pk. + * tex-glyph.c (try_format): First search all specs with + must_exist=false. + + * kpsexpand.c: New file, from te@informatik.uni-hannover.de. + * Makefile.in (kpsexpand): New target (a program). + (install-exec): Depend on, and install, kpsexpand. + + * common.ac: Doc fix. + + * cnf.c (do_line): Don't quit just because the variable is in the + environment. From te@informatik.uni-hannover.de. + + * tex-glyph.c (PXL_BITMAP_SPEC): Remove this, we're not going to + support pxl1500. + +Sun Oct 16 20:46:26 1994 Karl Berry <karl@cs.umb.edu> + + * kpathsea.texi: Make it clear that names of debugging bits can + never be used. + +Fri Oct 14 10:31:35 1994 Karl Berry <karl@cs.umb.edu> + + * Version 2.2. + + * hash.c (hash_lookup) [DEBUG]: Cast to long, not int. + +Thu Oct 13 15:39:34 1994 Karl Berry <karl@owl> + + * db.c (db_build): Warn if ls-R contains nothing useful. + + * debug.c (fopen, fclose) [DEBUG]: fflush stdout. + * dir.c (dir_links), + * hash.c (hash_lookup), + * tex-file.c (kpse_init_format), + * elt-dirs.c (kpse_element_dirs): Likewise. + +Thu Oct 13 09:02:56 1994 Karl Berry <karl@cs.umb.edu> + + * hash.c (kpse_debug_hash_lookup_int) [DEBUG]: New global. + (hash_lookup): Use it. + * hash.h [DEBUG]: Declare it. + * dir.c (dir_links) [DEBUG]: Set it and reset it. + + * tex-glyph.c (PXL_BITMAP_SPEC): Add this (pxlNNN/cmr10.pk) for + the Bitstream utilities. From abrahams@acm.org. + (try_format): Search for this. + +Tue Oct 11 15:15:49 1994 Karl Berry <karl@cs.umb.edu> + + * db.c (db_build): Use kpse_db_dir instead of KPSE_DB_DIR. This + avoids one variable expansion, and te@informatik.uni-hannover.de + says otherwise TeX sometimes can't find ls-R. + +Sun Oct 9 17:18:23 1994 Karl Berry <karl@cs.umb.edu> + + * kdefault.c: Rename from default.c. + * Makefile.in (objects): Likewise. + +Fri Oct 7 12:58:33 1994 Karl Berry <karl@cs.umb.edu> + + * tex-file.c (kpse_init_format): Call INIT_MT for the any_glyph + case. From carson@lehman.com. + +Sun Oct 2 14:11:20 1994 Karl Berry <karl@cs.umb.edu> + + * magstep.c: Doc fix. + +Sun Sep 25 17:11:40 1994 Karl Berry <karl@cs.umb.edu> + + * Makefile.in: Include library.make. + +Thu Sep 22 15:34:40 1994 Karl Berry <karl@cs.umb.edu> + + * tex-file.h (kpse_file_format_type): Don't make equal to the last + element index, make one more. From Eric Auborg. + +Thu Sep 15 19:24:30 1994 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (distdir): Include install.texi in the distribution. + +Mon Sep 12 11:05:18 1994 Karl Berry (karl@cs.umb.edu) + + * Version 2.1. + +Sun Sep 11 15:03:18 1994 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (install-data): Install texmf.cnf if it didn't exist. + +Sat Sep 10 13:28:29 1994 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (texmf.sed, paths.h): Use tr 012 instead of \n. + From John Interrante. + + * Makefile.in (distdir): Include the .aux and .cps files in the + distribution. Don't include paths.h (from John Interrante). + + * kpathsea.texi: Fix overfull boxes and other TeX errors. + +Wed Sep 7 16:28:37 1994 Karl Berry (karl@cs.umb.edu) + + * Version 2.0. + +Tue Sep 6 10:33:18 1994 Karl Berry (karl@cs.umb.edu) + + * dir.c (dir_links): Use %ld for ret, since it's now a long. + +Sat Sep 3 09:01:25 1994 Karl Berry (karl@cs.umb.edu) + + * dir.c (dir_links): Use long instead of int for the cast and the + variable, to avoid warnings on the Alpha. + + * c-std.h (SYSV, X_NOT_STDC_ENV): Don't define these here. + * c-memstr.h (SYSV): Define this. + (_XFUNCS_H_): And this. + + * Makefile.in (distclean): Add texmf.cnf and texmf.sed. + +Thu Sep 1 14:22:48 1994 Karl Berry (karl@cs.umb.edu) + + * xputenv.c (putenv): Declare this to avoid a warning. + * xstat.c (lstat): And this. + + * common.ac (SMART_PUTENV): Use program to test for this. From + mike@cs.utah.edu. + + * tex-glyph.c (try_fallback_resolutions): Quit early if there's no + resolutions in the list. From sanjoy@dope.caltech.edu. + +Tue Aug 30 14:26:48 1994 Karl Berry (karl@cs.umb.edu) + + * acconfig.h (FOIL_X_WCHAR_T): New definition. + + * c-std.h (hypot) [!hypot]: Conditionalize declaration. + +Fri Aug 26 09:00:24 1994 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (install-data): Install headers into + $(includedir)/kpathsea, not just $(includedir). From john@wpi.edu. + + * pathsearch.c (search): Show results of the search as well as the + start of it. + +Thu Aug 25 13:40:29 1994 Karl Berry (karl@cs.umb.edu) + + * proginit.c (kpse_init_prog): Newline at end of fputs. + + * pathsearch.c (search): Add debug statement. + * debug.h (KPSE_DEBUG_SEARCH): New bit. + + * tex-file.h (kpse_format_info_type): Rename `font_override_p' from + `font_p'. Also `program_enabled' => `program_enabled_p'. + Also new member `suffix_search_only'. + * tex-file.c (kpse_find_file): Avoid searching for foo.tex.tex, etc. + +Tue Aug 16 09:29:59 1994 Karl Berry (karl@cs.umb.edu) + + * tex-make.c (maketex): Announce that we are running the script + before running it. + +Mon Aug 15 11:18:19 1994 Karl Berry (karl@cs.umb.edu) + + * texmf.cnf.in (PKFONTS.xdvi): Write program-specific definition + to include gsftopk and ps2pk ``modes''. + +Sat Aug 13 16:34:43 1994 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (lib): Rename to program to simplify rules. + + * magstep.h: Doc fix. + + * common.ac (AC_HAVE_FUNCS): Test for bcopy. + +Tue Aug 9 14:18:56 1994 Karl Berry (karl@cs.umb.edu) + + * tex-make.c (misstex): Prepend kpathsea: to the missfont.log + message. + +Mon Aug 8 17:53:58 1994 Karl Berry (karl@cs.umb.edu) + + * tex-make.c (set_maketex_mag): Rewrite to call kpse_magstep_fix. + * magstep.[ch]: New files. + +Fri Aug 5 14:07:51 1994 Karl Berry (karl@cs.umb.edu) + + * db.c (match): Allow a trailing component in the filename. + +Tue Aug 2 08:55:21 1994 Karl Berry (karl@cs.umb.edu) + + * Change `debug:' to `kdebug:'. + * hash.c (hash_lookup): Print results of lookup if DEBUG_HASH. + * debug.h (KPSE_DEBUG_HASH): New bit, replacing DB_BUILD. + * db.c (db_build): Don't print the built hash table. + + * db.c (match): Implement this. Petr Sojka and Zdenek Salvet(?) + supplied code for this, but I wound up writing my own. + * variable.c (expand): Do variable expansion on the value. + + * texmf.cnf.in (TEXINPUTS): Put this after the .prog-specific entries. + + * tex-file.c (kpse_pict_format): Remember to break after setting + the type. + (EXPAND_DEFAULT, init_path): Keep raw_path as pre-default expansion. + +Sun Jul 31 14:18:09 1994 Karl Berry (karl@cs.umb.edu) + + * debug.c: Don't include debug.h, it's already in debug.h. + + * Makefile.in (db.o,pathsearch.o): Don't need these special cases + since tossed db_dir from paths.make. + * db.h (DB_DIR): Change default to $TEXMF, rename to KPSE_DB_DIR. + (kpse_db_dir): New global variable (sigh). + * db.c (kpse_db_dir): Define. + * cnf.c: Include db.h for KPSE_DB_DIR. + (read_files): Set kpse_db_dir after all have been read. + * pathsearch.c (elt_in_db): Check if kpse_db_dir is null. + (path_search): Do not initialize db_dir. + +Sat Jul 30 06:12:12 1994 Karl Berry (karl@cs.umb.edu) + + * c-dir.h [_POSIX_VERSION]: Remove this condition; just use DIRENT. + +Fri Jul 29 11:36:25 1994 Karl Berry (karl@cs.umb.edu) + + * tex-file.c (init_path): Look up cnf file value if no suffix. + + * xstat.h (SAME_FILE_P): Move here. + * c-stat.h (SAME_FILE_P): From here. + * file-p.c: Change include. + * lib.h (dir_p, dir_links): Declare here. + * dir.h: Split into xopendir.h and c-dir.h; Sun 3 include files + get confused otherwise, according to john@minster.york.ac.uk. + * xopendir.c: Include xopendir.h. + * elt-dirs.c, dir.c: Change includes. + +Sun Jul 17 10:21:16 1994 Karl Berry (karl@cs.umb.edu) + + * hash.c (hash_insert): Put new elements in at the end of the + list, instead of the beginning. + * hash.h: Document this. + + * texmf.cnf.in (TEXMFROOT): Change to TEXMF. + * kpathsea.texi: Likewise. + + * cnf.c (do_line): assert program_invocation_short_name. + * progname.c: Doc fix. + + * absolute.[ch] (kpse_absolute_p): Take additional arg relative_ok. + * pathsearch.c (log_search): Call it (with false). + * tex-glyph.c: Change call. + + * pathsearch.c (path_search): Initialize db_dir here. + (elt_in_db): Not here. + +Fri Jul 15 11:44:15 1994 Karl Berry (karl@cs.umb.edu) + + * tex-file.h: Doc fix. + + * pathsearch.c (log_search): Pass in the whole str_list; anything + else is unreliable. + + * proginit.[ch] (kpse_init_prog): Don't pass in argv0; we need it + earlier. + +Tue Jul 12 11:56:54 1994 Karl Berry (karl@cs.umb.edu) + + * tex-file.c (init_path): Use the first envvar that's *set*, not + the first in the list. + + * tex-file.h (kpse_format_info_type): New member `type'. + * tex-file.c (kpse_init_format): Initialize it. + + * pathsearch.c (log_search): New fn. + (search): Call it. + +Fri Jul 1 11:54:29 1994 Karl Berry (karl@cs.umb.edu) + + * tex-file.c: Doc fix. + +Mon Jun 27 10:18:59 1994 Karl Berry (karl@cs.umb.edu) + + * db.c (db_build): Call kpse_var_expand on the db filename. + * pathsearch.c (elt_in_db): Likewise. + + * tex-glyph.h (kpse_find_gf): By analogy with kpse_find_pk. + +Sat Jun 25 16:09:05 1994 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c (try_format): Try both Unix and DOS bitmap specs, + instead of just one or the other. + (bitmap_name): No longer needed. + +Fri Jun 24 11:52:32 1994 Karl Berry (karl@cs.umb.edu) + + * tex-file.c (kpse_find_file): Don't try the suffix if it doesn't + exist. + + * tex-file.h (kpse_find_{dvips_header,pict}): New definition. + +Thu Jun 23 16:57:58 1994 Karl Berry (karl@cs.umb.edu) + + * tex-file.h (kpse_{pict,dvips_header}_format): New consts. + (KPSE_{PICT,DVIPS_HEADER}_ENVS): Likewise. + +Tue Jun 21 11:53:09 1994 Karl Berry (karl@cs.umb.edu) + + * tex-file.c (kpse_find_file): Try the name as given if the name + concatenated with the suffix fails, for the sake of, e.g., EPS files. + + * tex-file.h (kpse_find_tex): New definition. + + * absolute.[ch]: Make arg const. + + * tex-glyph.[ch]: (kpse_bitmap_tolerance): Move here from tex-make. + + * c-proto.h (P6[CH]): New definitions. + + * Makefile.in (objects): Add proginit.o. + * proginit.[ch]: New files. + +Mon Jun 20 14:55:57 1994 Karl Berry (karl@cs.umb.edu) + + * tex-file.c (kpse_init_format): Make override path not apply to + TFM and VF files. + + * tex-glyph.c (kpse_find_glyph_format): Rename to kpse_find_glyph, + and don't call MakeTeXPK if the filename is absolute. + * tex-glyph.h: Likewise. + +Sun Jun 19 11:00:50 1994 Karl Berry (karl@cs.umb.edu) + + * common.ac (HAVE_PROGRAM_INVOCATION_NAME): Test for this. + * acconfig.h: #undef this by default. + * progname.[ch]: New files. + * Makefile.in (objects): Add progname.o. + * cnf.c (do_line): Check for .<progname> qualification. + +Sat Jun 18 16:55:36 1994 Karl Berry (karl@cs.umb.edu) + + * elt-dirs.c (kpse_element_dirs): Avoid stats in leaf directories + found via a non-null post. + +Fri Jun 17 14:25:08 1994 Karl Berry (karl@cs.umb.edu) + + * elt-dirs.c (kpse_element_dirs) [DEBUG]: Print the directory + expansion of the path element. + + * str-llist.h: Doc fix. + + * elt-dirs.c (do_subdir): Ignore anything beginning with ., not + just `.' and `..'. + +Tue Jun 14 11:53:49 1994 Karl Berry (karl@cs.umb.edu) + + * dir.c (dir_links): Cache the lookups. + + * elt-dirs.c (kpse_element_dirs): Don't expand the argument. + * expand.h (kpse_path_expand): New routine. + * expand.c: Define it. + * pathsearch.h: Doc fix. + + * db.c, tex-file.c [DEBUG]: Prefix output lines with `debug:'. + + * tex-file.h (kpse_format_info_type): Add cnf_path to the struct. + * tex-file.c (kpse_init_path): Print the cnf_path. + (init_path): Set it, instead of a local variable. + + * pathsearch.c (path_search): Use !! for no-disk-search instead of + %%, because now % is the comment char in cnf files. + * kpathsea.texi: Document this. Also change all `Kpathsearch' to + `kpathsea'. + +Mon Jun 13 10:15:49 1994 Karl Berry (karl@cs.umb.edu) + + * tex-make.h (kpse_set_maketex_mag): Remove. + * tex-make.c (kpse_set_maketex_mag): Make static, remove kpse_ + prefix, and use KPATHSEA_DPI and MAKETEX_BASE_DPI instead of args. + +Sun Jun 12 13:49:15 1994 Karl Berry (karl@cs.umb.edu) + + * db.c (db_build): Put a header on the hash table. + + * tex-glyph.c (try_format): Set extension and path after + kpse_init_format, natch. + +Sat Jun 11 14:26:34 1994 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (objects): Add cnf.o. + * variable.c (expand): Call kpse_cnf_get if no envvar value. + +Fri Jun 10 11:20:23 1994 Karl Berry (karl@cs.umb.edu) + + * tex-make.h: Remove spec type and variable. + +Thu Jun 9 13:42:21 1994 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (objects): Remove init-path.o. + * tex-file.c (kpse_find_file): Rewrite to initialize the paths + only once, and keep all path info in a structure. + * tex-file.h: Vastly simplify. + * tex-glyph.h (kpse_font_file_type): Move here, since it's really + only for glyphs. + * tex-glyph.c: Corresponding changes. + * debug.h (KPSE_DEBUG_PATHS): New debug bit. + + * default.h, str-list.h: Doc fix. + +Tue May 31 10:06:51 1994 Karl Berry (karl@cs.umb.edu) + + * debug.c: Doc fix. + +Mon May 23 11:50:03 1994 Karl Berry (karl@cs.umb.edu) + + * c-fopen.h (FOPEN_A_MODE): Define this. + * tex-make.c (misstex, maketex): Split up kpse_make_tex into + these, and create missfont.log if appropriate. + +Sun May 22 17:39:52 1994 Karl Berry (karl@cs.umb.edu) + + * tex-make.h: Doc fix. + +Wed May 11 13:25:58 1994 Karl Berry (karl@cs.umb.edu) + + * configure.in (AC_OUTPUT): Use just `Makefile' instead of + `./Makefile', to avoid a bug in Autoconf (through 1.10). + +Sun Apr 17 16:18:00 1994 Karl Berry (karl@ra.cs.umb.edu) + + * debug.h: Prefix macros with KPSE_. + * db.c, dir.c: Change calls. + + * common.ac: Remove :: VPATH stuff; that made it in to Autoconf 1.8. + + * Makefile.in (top_srcdir): Define this for configure to substitute. + +Thu Apr 7 17:52:05 1994 Karl Berry (karl@ra.cs.umb.edu) + + * debug.[ch]: Implement fopen/fclose tracing. + +Thu Mar 31 07:25:49 1994 Karl Berry (karl@cs.umb.edu) + + * Version 1.8. + +Thu Mar 24 10:01:20 1994 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c: Doc fix. + + * pathsearch.c (path_search): Don't search the disk if there is + magic in the path spec. + + * db.c: Doc fix. + +Wed Mar 16 13:50:17 1994 Karl Berry (karl@cs.umb.edu) + + * readable.c (kpse_readable_file): Complain if errno == EPERM. + +Sun Mar 13 11:14:19 1994 Karl Berry (karl@cs.umb.edu) + + * pathsearch.h (kpse_path_search): Take an extra arg must_exist. + * pathsearch.c (kpse_path_search, search, path_search): Likewise. + * tex-file.c (kpse_find_file): Change call. + * tex-file.h (kpse_find_*): Change these calls, too. + + * hash.c (hash_create): Don't use xcalloc to init pointers to null. + + * db.c (kpse_db_search): Don't free the pointer after incrementing it. + From Frank Jensen. + +Sat Mar 12 17:55:36 1994 Karl Berry (karl@cs.umb.edu) + + * db.h (kpse_db_search): Returns a pointer. + * db.c (kpse_db_search): If db can't be built, return NULL, else a + pointer to the (possibly empty) list. + (db_build): Return whether we found the file. + * pathsearch.c (path_search): Change call. + +Thu Mar 10 07:45:13 1994 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (install-info): New target. + +Fri Mar 4 08:06:16 1994 Karl Berry (karl@cs.umb.edu) + + * hash.c (hash): Change hash function to spread out the values a + bit better. + + * debug.h (DEBUG_DB_BUILD): New debug bit. + * db.c (db_build) [DEBUG]: If bit is set, print hash table. + * hash.h (hash_print): Declare. + +Thu Mar 3 08:52:01 1994 Karl Berry (karl@cs.umb.edu) + + * Version 1.7. + +Sun Feb 27 15:57:30 1994 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (objects): Add db.o, hash.o. + * db.[ch]: New files. + * hash.[ch]: Also new files. + * pathsearch.c (path_search): Try db search. + * tex-glyph.c, fontmap.c: Use general hash functions. + +Sat Feb 26 13:15:53 1994 Karl Berry (karl@cs.umb.edu) + + * fontmap.c: Doc fix. + + * pathsearch.c (INIT_ALLOC): Increase to 75, what the heck. + +Fri Feb 25 08:30:50 1994 Karl Berry (karl@cs.umb.edu) + + * tex-file.[ch]: Decare args const. + +Thu Feb 24 07:55:43 1994 Karl Berry (karl@cs.umb.edu) + + * tex-make.h: Include tex-file.h, not init-path.h. + + * init-path.h (KPSE_*_{ENVS,PATHS}, kpse_font_override_path): Move + to tex-font.h. + * tex-font.h (kpse_find_{file,tfm,vf}): Also declare these. + * tex-font.c (kpse_find_file): Define these. + (kpse_font_override_path): Move definition here. + + * tex-file.*: Rename from tex-font.*. + * GNUmakefile: Corresponding changes. + + * elt-dirs.c (do_subdir): Only append the / once we know it's a + directory. + +Wed Feb 23 16:41:31 1994 Karl Berry (karl@cs.umb.edu) + + * elt-dirs.c (do_subdir): Don't tack POST on if it is exactly the + d_name, so we can find a/b with a path of a//b. + + * c-vararg.h (PVAR3[CH]): New defines. + + * init-path.h: Include KPSE_*_{ENVS,PATHS} here. + (kpse_init_path): Take an additional arg font_p. + * init-path.c (kpse_override_path): Rename kpse_font_override_path. + (kpse_init_path): Only use kpse_font_override_font if font_p. + +Mon Feb 21 15:38:53 1994 Karl Berry (karl@cs.umb.edu) + + * common.ac (extrasub): Define to remove VPATH lines if srcdir = `.'. + +Thu Feb 3 06:19:49 1994 Karl Berry (karl@cs.umb.edu) + + * Version 1.6. + + * fn.c (fn_copy0): Remember to allocate space for the null. + Thanks, simon. + +Wed Feb 2 09:57:47 1994 Karl Berry (karl@cs.umb.edu) + + * tex-make.h (KPSE_BITMAP_TOLERANCE): Move to here from tex-glyph.c + (kpse_check_bitmap_tolerance): Declare. + * tex-make.c (kpse_check_bitmap_tolerance): Define. + +Tue Feb 1 10:42:03 1994 Karl Berry (karl@cs.umb.edu) + + * c-std.h (*alloc) [! _MALLOC_INTERNAL]: Make decl conditional. + + * c-std.h [HAVE_STDLIB_H]: Change #if for including <stdlib.h> to this. + * common.ac (AC_HAVE_HEADERS): Check for stdlib.h. + + * Makefile.in (paths.h): Do all substitutions globally. + + * absolute.c [DOS]: Include c-ctype.h. + * tex-glyph.c (KPATHSEA_BITMAP_NAME) [DOS]: Double the backslash. + * elt-dirs.c (do_subdir) [!UNIX_ST_LINK]: Avoid dangling else. + From Wayne. + + * paths.h.in: Doc fix. + + * xputenv.c (xputenv): Check entire variable name for being saved, + not just a prefix of it. + +Mon Jan 31 12:05:30 1994 Karl Berry (karl@cs.umb.edu) + + * fn.c (fn_copy0): Allocate LEN if that's bigger than CHUNK_SIZE. + (CHUNK_SIZE): Increase to 75. + +Sat Jan 22 15:36:08 1994 Karl Berry (karl@cs.umb.edu) + + * Version 1.5. + + * common.ac (AC_HAVE_FUNCS): Check for memmove. + + * paths.h.in (DEFAULT_MF_PATH): Don't search just public/, cause + we need ams/. + +Mon Jan 17 15:09:36 1994 Karl Berry (karl@cs.umb.edu) + + * paths.h.in (DEFAULT_{FMT,BASE}_PATH): Include `.'. + +Sun Jan 16 14:50:02 1994 Karl Berry (karl@cs.umb.edu) + + * paths.h.in (DEFAULT_PK_PATH): Search subdirs of pk. + +Mon Jan 10 16:40:35 1994 Karl Berry (karl@cs.umb.edu) + + * xputenv.c (xputenv): Don't try to be smart about saving/freeing + stuff if SMART_PUTENV is defined. + + * c-std.h (assert) [!HAVE_ASSERT_H]: Define as nothing, to avoid + undefined references to assert. + +Tue Dec 21 16:28:13 1993 Karl Berry (karl@cs.umb.edu) + + * c-std.h (SYSV) [STDC_HEADERS]: Define, to get around old X + include files under hpux. + +Sun Dec 19 13:06:15 1993 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (objects): Put tex-font.o first. + +Sat Dec 18 15:03:57 1993 Karl Berry (karl@cs.umb.edu) + + * config.h (GCC_WCHAR_T, _GCC_WCHAR_T): Remove these; I have + another theory now for wchar_t, done in xdvi.h and x11.c. + +Sat Dec 18 14:41:15 1993 Karl Berry (karl@owl.hq.ileaf.com) + + * c-memstr.h ([r]index) [STDC_HEADERS]: Conditionalize #define. + +Tue Dec 14 17:43:30 1993 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (paths.h): Change substitutions accordingly. + * paths.h.in (DEFAULT_FMT_PATH): Variable is now fmtdir. + (DEFAULT_{BIB,BST}_PATH): Variable is now texmf_prefix. + +Sat Dec 11 13:21:43 1993 Karl Berry (karl@cs.umb.edu) + + * tex-make.c (ABS): New macro. + (kpse_set_maketex_mag): Use it, instead of fabs. + +Fri Dec 10 15:31:16 1993 Karl Berry (karl@cs.umb.edu) + + * xmalloc.c, xrealloc.c: Use exit instead of abort, remove abort + decls, and reword error messages to be less cryptic. From + john@minster.york.ac.uk. + + * dir.h: use `defined' instead of just `DIRENT || _POSIX_VERSION'. + How annoying. From kretschm@aitxu3.ait.physik.uni-tuebingen.de. + + * xputenv.c (putenv): Remove declaration, as different systems do + it differently. From kayvan@satyr.sylvan.com. + +Thu Dec 9 09:12:33 1993 Karl Berry (karl@cs.umb.edu) + + * tex-make.c (kpse_set_maketex_mag): Allow off-by-1 when deciding + if a dpi is a magstep. + +Tue Dec 7 11:03:51 1993 Karl Berry (karl@cs.umb.edu) + + * tex-make.c (kpse_set_maketex_mag): New routine from dvips, + called by dvipsk and xdvik to ensure consistency. + (magstep): Subroutine of above, also from dvips. + * tex-make.h: Declare it. + + * tex-doc.texi: Correct menu item (from maechler@stat.math.ethz.ch). + +Fri Dec 3 12:53:38 1993 Karl Berry (karl@cs.umb.edu) + + * c-pathmx.h: Doc fix. + +Sat Nov 27 14:36:11 1993 Karl Berry (karl@cs.umb.edu) + + * default.h: Doc fix. + + * paths.h.in (texfontdir): This has been renamed to fontdir. + +Sun Nov 21 08:28:41 1993 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (distdir): Include HIER in the distribution, until + we merge it into the manual. + +Sun Nov 7 14:54:47 1993 Karl Berry (karl@cs.umb.edu) + + * c-namemx.h (NAME_MAX): Avoid use of pathconf. + * c-pathmx.h: Doc fix. + +Thu Nov 4 14:50:45 1993 Karl Berry (karl@cs.umb.edu) + + * config.h (_GCC_WCHAR_T) [!GCC_WCHAR]: Conditionalize. + + * c-std.h (EXIT_SUCCESS) [!EXIT_SUCCESS]: Move these defines + outside of !STDC_HEADERS, for the sake of SunOS 4.1.1. (From + vonbrand@inf.utfsm.cl.) + +Wed Nov 3 14:43:05 1993 Karl Berry (karl@cs.umb.edu) + + * Version 1.4. + +Wed Nov 3 07:05:48 1993 Karl Berry (karl@cs.umb.edu) + + * paths.h.in (DEFAULT_{BASE,FMT}_PATH): Had these definitions reversed. + +Fri Oct 29 19:27:36 1993 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c (try_fallback_resolutions): Initialize ret in all cases. + +Thu Oct 28 14:32:34 1993 Karl Berry (karl@cs.umb.edu) + + * lib.h: Doc fix. + + * common.h (AC_UNISTD_H): Replace this with unistd.h in the list + of HAVE_HEADERS. + +Tue Oct 26 13:59:33 1993 Karl Berry (karl@cs.umb.edu) + + * str-llist.[ch]: New files. + * Makefile.in (objects): Add str_llist.o. + * elt-dirs.[ch]: Use str_llist_type throughout. + * pathsearch.c (dir_list_search): Take a str_llist_type, and float + a successful dir towards the top. + (path_search): Change call of kpse_element_dirs. + +Sun Oct 24 19:41:49 1993 Karl Berry (karl@cs.umb.edu) + + * elt-dirs.c (do_optional): Remove this stub. + (expand_elt): Don't call it. + +Fri Oct 22 14:46:44 1993 Karl Berry (karl@cs.umb.edu) + + * xmalloc.c, xrealloc.c, line.c, pathsearch.c: Doc fix. + +Tue Oct 19 12:11:32 1993 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c (try_fallback_resolutions): New routine. + (kpse_find_glyph_format): Call it, instead of repeating (the now + pretty complicated) code. + * tex-font.c (kpse_init_fallback_resolutions): Pass the value of + any environment variable, not its name. From R.Kooijman@et.tudelft.nl. + + * c-memstr.h (str[r]chr) [!str[r]chr]: Conditionalize. From + maarrrk@seidel.ece.ucsb.edu. + +Tue Oct 12 16:26:48 1993 Karl Berry (karl@cs.umb.edu) + + * tex-make.c: Doc fix. + +Thu Oct 7 13:13:57 1993 Karl Berry (karl@cs.umb.edu) + + * xmalloc.c: Rewrite to not require <config.h>. + * xrealloc.c: Likewise. + + * make-suffix.c (make_suffix): Declare variables const. + * remove-suffx.c (remove_suffix): Likewise. Also rename to + rm-suffix.c. + * xputenv.c (putenv): Declare with correct prototype. + * fontmap.c (internal routines): Likewise. + * line.c (xmalloc, xrealloc): Declare as void *. + (From john@minster.york.ac.uk.) + +Wed Oct 6 06:49:53 1993 Karl Berry (karl@cs.umb.edu) + + * Version 1.3. + + * tilde.c (kpse_tilde_expand): Always return a malloc-ed value. + (From ken@cs.toronto.edu.) + +Sun Oct 3 14:11:33 1993 Karl Berry (karl@cs.umb.edu) + + * config.h (_GCC_WCHAR_T): Define. + +Sat Oct 2 17:17:32 1993 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (install-*): Don't reassign PATH, just invoke + mkdirchain explicitly. + + * tex-glyph.c (KPATHSEA_BITMAP_NAME) [DOS]: Define what I think + will work for this ... + + * paths.h.in: Doc fix. + + * Makefile.in: Doc fix. + + * tex-glyph.c (kpse_find_glyph_format): Unconditionally initialize + glyph_paths[*], since we might use them both in try_size. From + worsch@ira.uka.de. + +Fri Oct 1 12:02:11 1993 Karl Berry (karl@cs.umb.edu) + + * expand.c: Doc fix. + +Wed Sep 29 15:21:49 1993 (karl@terminus.cs.umb.edu) + + * Version 1.2. + +Sat Sep 25 14:12:00 1993 Karl Berry (karl@cs.umb.edu) + + * pathsearch.c (path_search, absolute_search): Don't initialize + structs. + +Fri Sep 24 12:50:00 1993 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c (try_size): Skip the simultaneous stuff. + (try_format): Set the envvar here. + (bitmap_name): Not here. + * pathsearch.c (kpse_*_multi_search): Delete. + Change most other routines to take only a single name again, + instead of a name list. + * pathsearch.h: Delete decls. + + * tex-glyph.c (init-path.h): Don't need to include this. + + * tex-glyph.c (kpse_find_glyph_format): Try the fallback + resolutions for the fallback font. + + * Makefile.in (warn_more, MAKEINFO_FLAGS) [hayley]: Define these + for development and distribution. + + * Makefile.in (dvi): Make analogous to info (including use of new + suffix rule). + + * tex-glyph.c (kpse_find_glyph_format): Set KPATHSEA_NAME to the + fallback font if we get that far. + +Wed Sep 15 19:29:56 1993 Karl Berry (karl@cs.umb.edu) + + * filefmt.h (KPSE_*_PATH): Pass NULL as first arg. + + * xputenv.c (xputenv): Rewrite again to save the variable names, + not the old items. + +Mon Sep 13 06:55:29 1993 Karl Berry (karl@cs.umb.edu) + + * concatn.h: Doc fix. + +Sun Sep 12 15:54:55 1993 Karl Berry (karl@cs.umb.edu) + + * lib.h (XTALLOC): Parenthesize the cast. + + * xputenv.c (xputenv): Rewrite to collect some of the garbage. + +Fri Sep 10 14:00:35 1993 Karl Berry (karl@cs.umb.edu) + + * lib.h (ENVVAR_SET_DEFAULT): No longer needed. + + * xputenv.c (xputenv_int): New routine. + +Thu Sep 9 14:58:00 1993 Karl Berry (karl@cs.umb.edu) + + * tex-make.c (MAKE_TEX_PK_SPEC): Change MAKETEX_DPI to + KPATHSEA_DPI. + + * tex-glyph.c (try_fontmap): Use KPSE_GLYPH_PATH. + * filefmt.c (KPSE_GLYPH_{PATH,ENVS}): New macros. + (KPSE_{GF,PK}_ENVS): Use GLYPH_ENVS. + + * tex-glyph.c (bitmap_name): Rewrite to use a variable spec, + introducing KPATHSEA_{BITMAP_NAME,FORMAT,DPI,NAME}. + (kpse_find_glyph_format): Set KPATHSEA_DPI instead of MAKETEX_DPI; + also set KPATHSEA_NAME. + (try_fontmap): Also set KPATHSEA_NAME here. + (try_size): Set KPATHSEA_DPI here. + + * tex-glyph.c (try_name): Delete this routine. + (kpse_find_glyph_format): Try fallback resolutions here, call + try_resolution directly. + (try_fontmap): Call try_resolution directly. + + * init-path.h: Need not include c-proto.h. + +Sun Aug 29 13:34:25 1993 Karl Berry (karl@cs.umb.edu) + + * tex-make.c: Doc fix. + + * filefmt.h: Don't need c-proto.h or types.h. + +Fri Aug 27 10:36:46 1993 Karl Berry (karl@cs.umb.edu) + + * c-vararg.h (PVAR2C): Take AP as an arg. + + * init-path.[ch] (kpse_init_path): Take the current value as an + additional argument, separate from the default path, and always + expand_default. + + * uppercasify.c (uppercasify): Don't discard upcased result! + +Thu Aug 26 10:36:28 1993 Karl Berry (karl@cs.umb.edu) + + * Version 1.1. + +Sun Aug 22 19:18:35 1993 Karl Berry (karl@cs.umb.edu) + + * install-data (install-data): Replace nonexistent + $(kpath_includedir) with $(includedir), and define it. Also + remove c-auto.h. + +Thu Aug 5 09:03:22 1993 Karl Berry (karl@cs.umb.edu) + + * Version 1.0. + +Wed Aug 4 13:51:24 1993 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c (kpse_find_glyph_format): Fill in the font_file + struct in the maketex case. + + * Makefile.in (info): Just depend on kpathsea.info, and rely on + new suffix rule to do the work. + +Tue Aug 3 17:50:40 1993 Karl Berry (karl@fishbowl.hq.ileaf.com) + + * tex-glyph.c (try_name): Don't free expanded_name if we're + returning it. + +Tue Aug 3 10:13:43 1993 Karl Berry (karl@owl.hq.ileaf.com) + + * version.c (kpathsea_version_string): Do not declare const. + + * line.h (read_line): Protoize decl. + +Tue Aug 3 09:10:07 1993 Karl Berry (karl@blood.hq.ileaf.com) + + * c-memstr.h (bcmp, bcopy, bzero) [!HAVE_BCOPY]: Conditionalize. + + * putenv.c: Include <kpathsea/c-auto.h>, and use const when + calling memcpy. + +Sun Aug 1 08:48:49 1993 Karl Berry (karl@cs.umb.edu) + + * Add new features to manual. + + * Makefile.in (objects): Include putenv.o. + * putenv.c: New file from gdb. + * common.ac: Test for putenv. + +Sat Jul 31 11:54:31 1993 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (distclean): Remove paths.h. + + * Most files: changes for traditional C compatibility. + + * filefmt.h: Add new KPSE_..._PATH's for the other formats. + * paths.h.in: Add defaults. + * Makefile.in (paths.h): sed the values in. + +Fri Jul 30 17:23:10 1993 Karl Berry (karl@cs.umb.edu) + + * filefmt.h (KPSE_VF_PATH): Add empty parens. + + * tex-paths.h*: Rename to just paths.h*. + +Tue Jul 27 09:00:58 1993 Karl Berry (karl@cs.umb.edu) + + * filefmt.h: Include tex-paths.h, and use default paths in + KPSE_..._PATH macros. + + * find-suffix.c: Correct logic. + + * filefmt.h: Include init-path.h. + +Sat Jul 24 10:44:21 1993 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c (kpse_find_glyph_format): Assign to it. + * tex-font.h (kpse_font_file_type): New member `source'. + (KPSE_FONT_FILE_SOURCE): Accessor macro. + (kpse_source_type): New type. + +Wed Jul 21 19:45:45 1993 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (configclean): New target. + +Sun Jul 18 13:53:38 1993 Karl Berry (karl@cs.umb.edu) + + * tilde.[ch] (kpse_expand_tilde): Rename to kpse_tilde_expand. + + * elt-dirs.c, pathsearch.c, tex-glyph.c: Replace calls to + kpse_expand_tilde with kpse_expand. + * expand.[ch]: New files. + * Makefile.in (objects): Add it. + + * fn.[ch]: New files. + * elt-dirs.c (fn*): Moved to fn.c. + * tex-make.c, variable.c: Use the new routines. + * *obstack*: No longer needed. + * Makefile.in (objects): Appropriate changes. + +Sat Jul 17 13:25:25 1993 Karl Berry (karl@cs.umb.edu) + + * concat.c: Doc fix. + + * pathsearch.c (search, path_search): Expand variable references. + + * itoa.c: New file. + * lib.h (itoa): Declare it. + * Makefile.in (objects): Add it. + + * lib.h (ENVVAR_SET_DEFAULT): New macro. + * tex-glyph.c (kpse_find_glyph_format): Call it to set the dpi. + +Fri Jul 16 09:10:52 1993 Karl Berry (karl@cs.umb.edu) + + * xputenv.c: New file. + * Makefile.in (objects): Add it. + * lib.h (xputenv): Declare it. + + * c-obstack.h: New file. + * variable.[ch]: New files. + * Makefile.in (objects): Add it. + + * uppercasify.c: New file. + * Makefile.in (objects): add it. + * lib.h (uppercasify): Declare it. + +Tue Jul 13 13:47:54 1993 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c (kpse_find_glyph_format): Simplify path initialization. + * filefmt.h: New file; add abbrevs for GF and PK inits. + + * Makefile.in (objects): Add obstack.o and tex-make.o. + * obstack.[ch]: New files from GNU. + * concatn.[ch], tex-make.[ch]: New files. + * init-path.c: Doc fix. + + * elt-dirs.c: Doc fix. + * readable.[ch]: Doc fixes. + +Sun Jul 11 13:37:02 1993 Karl Berry (karl@cs.umb.edu) + + * tex-font.h (kpse_font_format_type): Rename to kpse_file_format_type, + and include the other file formats. + * tex-glyph.c: Change uses. + +Tue Jul 6 08:09:10 1993 Karl Berry (karl@cs.umb.edu) + + * tex-font.c (kpse_fallback_font): Initialize to NULL. + +Mon Jul 5 08:23:09 1993 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c (try_size): Don't fill in FONT_FILE if it's null. + + * tex-font.c (kpse_init_fallback_resolutions): Look for TEXSIZES + after the program-specific *SIZES var. + + * tex-glyph.c (kpse_find_glyph_format): Use kpse_init_path. + * Makefile.in (objects): Add init_path.o. + * tex-font.[ch] (kpse_override_path): Move to init-path.[ch]. + * init-path.[ch]: New files. + * c-vararg.h: New file. + +Sun Jul 4 11:26:17 1993 Karl Berry (karl@cs.umb.edu) + + * tex-font.c (kpse_init_fallback_resolutions): New routine. + * tex-font.h: Declare it, and companion return type. + +Fri Jul 2 10:43:11 1993 Karl Berry (karl@cs.umb.edu) + + * tex-glyph.c (kpse_find_glyph_format): Take first successful + fontmap entry. + + * fontmap.c (map_file_parse): Take first % on line as starting the + comment, not the last. + + * fontmap.c (map_insert): Always insert the new element. + +Thu Jul 1 19:21:35 1993 Karl Berry (karl@cs.umb.edu) + + * fontmap.c (map_lookup): Return a list, not a single string. + (map_lookup_str): Likewise. + * fontmap.h (map_lookup): Change decl. + * tex-glyph.c (kpse_find_glyph_format): Change caller. + +Sat Jun 26 11:48:36 1993 Karl Berry (karl@cs.umb.edu) + + * tex-font.h: Doc fix. + +Thu Jun 24 11:16:41 1993 Karl Berry (karl@cs.umb.edu) + + * configure.in (MISSING_HEADERS): Toss in favor of HAVE_HEADERS. Sigh. + Also, move all this to an include file. + Change uses in several files. + + * stat.h: Rename to c-stat.h, and change includers. + + * Makefile.in (objects): Add tex-glyph.o. + * pathsearch.[ch] (kpse_*_multi_search): New routines. + +Sat Jun 19 11:37:18 1993 Karl Berry (karl@cs.umb.edu) + + * str-list.c (str_list_free): New routine. + +Fri Jun 18 13:54:08 1993 Karl Berry (karl@cs.umb.edu) + + * fontmap.c (map_create): Rewrite to use kpse_all_path_search. + Include const in various subroutines. + +Tue Jun 15 15:58:18 1993 Karl Berry (karl@cs.umb.edu) + + * Change <kpathsea/pathsrch.h> to pathsearch. Rename the files + themselves. + + * elt-dirs.c (cache): Copy the key into our own storage, since it + comes from kpse_path_element and might get overwritten. Should we + copy all the values, too? + +Sun Jun 13 16:49:09 1993 Karl Berry (karl@cs.umb.edu) + + * pathsearch.c (dir_list_search): Don't need to append the null + here; in fact, it's wrong, since then the final list might have + nulls in the middle. + + * elt-dirs.c (dir_list_add): Correct check for new directory + already ending in /. + +Fri Jun 11 10:45:33 1993 Karl Berry (karl@cs.umb.edu) + + * str-list.[ch]: New files. + * pathsrch.c: Use it for the dir_list routines. + * Many changes and new files throughout for new implementation + including TeX-font-lookup routines. + +Tue Jun 8 14:00:54 1993 Karl Berry (karl@cs.umb.edu) + + * Most files: Change `const string' (constant pointer) to `const + char *' (pointer to constant data). What a crock. + +Mon Jun 7 09:43:21 1993 Karl Berry (karl@cs.umb.edu) + + * debug.[ch]: New files. + * config.h: Include debug.h. + + * dir-p.c: Rename to dir.c. + (dir_links): New routine. + + * c-std.h (assert.h) [!ASSERT_H_MISSING]: Include this. + * configure.in: Check for it with new macro AC_MISSING_HEADERS. + +Thu Jun 3 10:12:12 1993 Karl Berry (karl@cs.umb.edu) + + * dirio.h (leaf_dir_p): No longer defined; rename to dir.h. + * xopendir.c, dir-p.c, pathsrch.c: Change include. + +Mon May 31 07:49:16 1993 Karl Berry (karl@cs.umb.edu) + + * c-std.h (EXIT_{SUCCESS,FAILURE}): Define these if they're undefined. + + * config.h: Use <kpathsea/...> instead "...". + + * kpathlib.h: Had #ifndef protection messed up. Rename to lib.h. + + * c-memstr.h (index, rindex) [!index, !rindex]: Make definitions + conditional. + +Tue May 25 10:07:00 1993 Karl Berry (karl@cs.umb.edu) + + * c-{namemx,pathmx,pathch,...}.h: Doc fixes. + + * c-systypes.h: New file. + * c-std.h: Include it. + + * stat.h: New file. + * xstat.h: Include it. + + * configure.in (AC_HAVE_HEADERS): Test for `pwd.h'. + +Sun May 23 19:06:22 1993 Karl Berry (karl@cs.umb.edu) + + * pathsrch.[ch]: Doc fixes. + +Fri May 21 11:27:54 1993 Karl Berry (karl@cs.umb.edu) + + * line.c (free): Declare. + + * pathsrch.c, find-suffix.c: Change caller. + * c-pathch.h ({IS_,}{DIR,ENV}_SEP): Rename existing confusing + definitions to these. Suggested by rocky. + +Mon May 17 08:18:18 1993 Karl Berry (karl@cs.umb.edu) + + * Version 0.3. + + * pathsrch.c (expand_default): Handle doubled colon and + nothing-but-colon cases. + + * Write documentation, change Makefile accordingly. + +Thu May 13 16:32:34 1993 Karl Berry (karl@cs.umb.edu) + + * c-std.h (popen) [VMS]: Make decl conditional, and include + <unixlib.h> and <unixio.h>. + +Mon May 10 07:12:50 1993 Karl Berry (karl@cs.umb.edu) + + * Version 0.2. + + * version.c: Put in placeholder. + +Sun May 9 10:42:34 1993 Karl Berry (karl@cs.umb.edu) + + * config.h (c-auto.h): Use <...> instead of "...". + +Tue May 4 14:54:41 1993 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (info check dvi): New targets (that do nothing). + +Mon May 3 13:46:17 1993 Karl Berry (karl@claude.cs.umb.edu) + + * Version 0.1. + + * Use KPATHSEARCH_ prefix for various headers' cpp protections. + +Sun May 2 10:28:25 1993 Karl Berry (karl@cs.umb.edu) + + * Makefile.in (dist): Depend on TAGS, and put it in the dist. + + * Makefile.in (c-auto.h.in): Remove extra $(srcdir). + +Sun Apr 25 11:22:12 1993 Karl Berry (karl@cs.umb.edu) + + * pathsrch.h: Include c-proto.h. + + * make-suffix.c: New file. + * Makefile.in (objects): Add the .o. + + * file-p.c: Use the SAME_FILE_P macro. + + * fontmap.h: Include c-proto.h and types.h. + + * lib.h: Rename to kpathlib.h. + * config.h: Include changed. + + * c-proto.h, c-std.h: Doc fix. + + * c-limits.h [LIMITS_H_MISSING]: Conditionalize include of c-std.h. + + * xstat.h: Include c-std.h. + + * Makefile.in (c-auto.h.in): Add unused warning to top. + + * dirio.h: Include c-proto.h and types.h. + +Fri Apr 23 16:11:13 1993 Karl Berry (karl@cs.umb.edu) + + * line.c: Don't include config.h, just declare xmalloc and + xrealloc explicitly. + + * pathsrch.c: paths.h need not be included. + + * Created.
new file mode 100644 --- /dev/null +++ b/kpathsea/HIER @@ -0,0 +1,87 @@ +TeX directory structure +======================= + + This section describes the default installation hierarchy of the +distribution. It conforms to both the GNU coding standards and the TeX +directory structure (TDS) standard. For rationale and further +explanation, please see those documents. The GNU standard is available +as `ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi' and +mirrors. The TDS document is available from `CTAN:/tex-archive/tds' +(*note unixtex.ftp::.). + + You can change the default paths in many ways (*note Changing search +paths::.). One common desire is to put everything (binaries and all) +under a single top-level directory such as `/usr/local/texmf' or +`/opt/texmf'--in the terms used below, make PREFIX and TEXMF the same. +For specific instructions on doing that, *note configure scenarios::.. + + Here is a skeleton of the default directory structure, extracted from +the TDS document: + + PREFIX/ installation root (`/usr/local' by default) + bin/ executables + man/ man pages + include/ C header files + info/ GNU info files + lib/ libraries (`libkpathsea.*') + share/ architecture-independent files + texmf/ TDS root + bibtex/ BibTeX input files + bib/ BibTeX databases + base/ base distribution (e.g., `xampl.bib') + misc/ single-file databases + PKG/ name of a package + bst/ BibTeX style files + base/ base distribution (e.g., `plain.bst', `acm.bst') + misc/ single-file styles + PKG/ name of a package + doc/ additional documentation + dvips/ `.pro', `.ps', `psfonts.map' + fonts/ font-related files + TYPE/ file type (e.g., `tfm', `pk') + MODE/ type of output device (types `pk' and `gf' only) + SUPPLIER/ name of a font supplier (e.g., `public') + TYPEFACE/ name of a typeface (e.g., `cm') + dpiNNN/ font resolution (types `pk' and `gf' only) + metafont/ Metafont (non-font) input files + base/ base distribution (e.g., `plain.mf') + misc/ single-file packages (e.g., `modes.mf') + PKG/ name of a package (e.g., `mfpic') + metapost/ MetaPost input files + base/ base distribution (e.g., `plain.mp') + misc/ single-file packages + PKG/ name of a package + support/ support files for MetaPost-related utilities (e.g., `trfonts.map') + mft/ `MFT' inputs (e.g., `plain.mft') + tex/ TeX input files + FORMAT/ name of a format (e.g., `plain') + base/ base distribution for FORMAT (e.g., `plain.tex') + misc/ single-file packages (e.g., `webmac.tex') + local/ local additions to or local configuration files for FORMAT + PKG/ name of a package (e.g., `graphics', `mfnfss') + generic/ format-independent packages + hyphen/ hyphenation patterns (e.g., `hyphen.tex') + images/ image input files (e.g., Encapsulated PostScript) + misc/ single-file format-independent packages (e.g., `null.tex'). + PKG/ name of a package (e.g., `babel') + web2c/ implementation-dependent files (`.pool', `.fmt', `texmf.cnf', etc.) + + Some concrete examples for most file types: + + /usr/local/bin/tex + /usr/local/man/man1/xdvi.1 + /usr/local/info/kpathsea.info + /usr/local/lib/libkpathsea.a + /usr/local/share/texmf/bibtex/bst/base/plain.bst + /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk + /usr/local/share/texmf/fonts/source/public/pandora/pnr10.mf + /usr/local/share/texmf/fonts/tfm/public/cm/cmr10.tfm + /usr/local/share/texmf/fonts/type1/adobe/utopia/putr.pfa + /usr/local/share/texmf/metafont/base/plain.mf + /usr/local/share/texmf/metapost/base/plain.mp + /usr/local/share/texmf/tex/plain/base/plain.tex + /usr/local/share/texmf/tex/generic/hyphen/hyphen.tex + /usr/local/share/texmf/web2c/tex.pool + /usr/local/share/texmf/web2c/tex.fmt + /usr/local/share/texmf/web2c/texmf.cnf +
new file mode 100644 --- /dev/null +++ b/kpathsea/INSTALL @@ -0,0 +1,790 @@ +Contents: + +Installation + Simple installation + Custom installation + Disk space + Kpathsea application distributions + Changing search paths + Default path features + Default path generation + Running `configure' + `configure' shells + `configure' options + `configure' environment + `configure' scenarios + Shared library + Running `make' + Installing files + Cleaning up + Filename database generation + `MakeTeX' scripts + `MakeTeX' configuration + `MakeTeX' script names + `MakeTeX' script arguments + Installation testing + Security + + +Installation +************ + + The procedure for Kpathsea (and Web2c, etc.) configuration and +installation follows. If trouble, *note Common problems::., a copy of +which is in the file `kpathsea/BUGS'. + +Simple installation +=================== + + Installing TeX and friends for the first time can be a daunting +experience. Thus, you may prefer to skip this whole thing and just get +precompiled executables: *note unixtex.ftp::.. + + This section explains what to do if you wish to take the defaults for +everything (installing under `/usr/local'), and generally to install in +the simplest possible way. Most steps here refer to corresponding +subsection in the next section which explains how to override defaults +and generally gives more details. + + 1. Be sure you have enough disk space: approximately 8 megabytes for + the compressed archives, 15MB for sources, 45MB for compilation, + 40MB for the (initial) installed system (including library files). + *Note Disk space::. + + 2. Retrieve these two distribution archives: + `ftp://ftp.tug.org/tex/texk.tar.gz' + These are the sources, which you will be compiling. + + `ftp://ftp.tug.org/tex/texmflib.tar.gz' + This is a basic set of input files. You should unpack it in + the directory `/usr/local/share'; doing so will create a + `texmf' subdirectory there. + + *Note Kpathsea application distributions::. + + 3. When using the default search paths, there is no need to edit any + distribution files. *Note Changing search paths::. + + 4. At the top level of the distribution, run `sh configure'. (If you + have the GNU Bash shell installed, run `bash configure'.) *Note + Running configure::. + + 5. `make'. *Note Running make::. + + 6. `make install'. *Note Installing files::. + + 7. `make distclean'. *Note Cleaning up::. + + 8. Set up a cron job to rebuild the filename database that makes + searching faster. This line will rebuild it every midnight: + 0 0 * * * cd /usr/local/share/texmf && /BINDIR/MakeTeXls-R + *Note Filename database generation::, and *Note Filename + database::. + + 9. If you're installing Dvips, you also need to set up configuration + files for your printers and make any additional PostScript fonts + available. *Note Installation: (dvips)Installation. If you have + any color printers, *note Color device configuration: (dvips)Color + device configuration.. + + 10. The first time you run a DVI driver, a bunch of PK fonts will be + built by Metafont via `MakeTeXPK' (and added to the filename + database). This will take some time. Don't be alarmed; they will + created only this first time (unless something is wrong with your + path definitions). + + By default, `MakeTeXPK' assumes `/usr/local/share/texmf/fonts' is + globally writable. If you need a different arrangement, *note + MakeTeX configuration::.. + + *Note MakeTeX scripts::. + + 11. For some simple tests, try `tex story \\bye' and `latex simple'. + Then run `xdvi story' or `dvips simple' on the resulting DVI files + to preview/print the documents. *Note Installation testing::. + +Custom installation +=================== + + Most sites need to modify the default installation procedure in some +way, perhaps merely changing the prefix from `/usr/local', perhaps +adding extra compiler or loader options to work around `configure' +bugs. This section explains how to override default choices. For +additional distribution-specific information: + * `dviljk/INSTALL'. + + * *Note Installation: (dvips)Installation. + + * *Note Installation: (web2c)Installation. + + * `xdvik/INSTALL'. + + These instructions are for Unix systems. Other operating-system +specific distributions have their own instructions. The code base +itself supports Amiga, DOS, OS/2, and VMS. + + Following are the same steps as in the previous section (which +describes the simplest installation), but with much more detail. + +Disk space +---------- + + Here is a table showing the disk space needed for each distribution +(described in the next section). The `(totals)' line reflects the +`texk' source distribution and `texmflib'; the individual distributions +don't enter into it. Sizes are in megabytes. All numbers are +approximate. + +dviljk .9 3.8 +dvipsk .9 3.2 +xdvik .7 2.5 +web2c 1.3 5.0 +web 1.9 6.5 - - +texk 3.8 14.1 43.1 23.5 +texmflib 3.8 15.0 - 15.0 +(totals) 7.6 29.1 43.1 38.5 + +Kpathsea application distributions +---------------------------------- + + The archive `ftp://ftp.tug.org/tex/texk.tar.gz' contains all of the +Kpathsea applications I maintain, and the library itself. For example, +since NeXT does not generally support X11, you'd probably want to skip +`xdvik' (or simply remove it after unpacking `texk.tar.gz'. If you are +not interested in all of them, you can also retrieve them separately: + +`dviljk.tar.gz' + DVI to PCL, for LaserJet printers. + +`dvipsk.tar.gz' + DVI to PostScript, for previewers, printers, or PDF generation. + +`web2c.tar.gz' + The software needed to compile TeX and friends. + +`web.tar.gz' + The original WEB source files, also used in compilation. + +`xdvik.tar.gz' + DVI previewing under the X window system. + + If you want to use the Babel LaTeX package for support of non-English +typesetting, you may need to retrieve additional files. See the file +`install.txt' in the Babel distribution. + +Changing search paths +--------------------- + + If the search paths for your installation differ from the standard +TeX directory structure (*note Introduction: (tds)Top.), edit the file +`kpathsea/texmf.cnf.in' as desired, before running `configure'. For +example, if you have all your fonts or macros in one big directory. + + You may also wish to edit the file `MakeTeXnames.cnf', either before +or after installation, to control various aspects of `MakeTeXPK' and +friends. *Note MakeTeX configuration::. + + You do not need to edit `texmf.cnf.in' to change the default +top-level or other installation *directories* (only the paths). You +can and should do that when you run `configure' (next step). + + You also do not need to edit `texmf.cnf.in' if you are willing to +rely on `texmf.cnf' at runtime to define the paths, and let the +compile-time default paths be incorrect. Usually there is no harm in +doing this. + + The section below explains default generation in more detail. + +Default path features +..................... + + The purpose of having all the different files described in the section +above is to avoid having the same information in more than one place. If +you change the installation directories or top-level prefix at +`configure'-time, those changes will propagate through the whole +sequence. And if you change the default paths in `texmf.cnf.in', those +changes are propagated to the compile-time defaults. + + The Make definitions are all repeated in several Makefile's; but +changing the top-level `Makefile' should suffice, as it passes down all +the variable definitions, thus overriding the submakes. (The +definitions are repeated so you can run Make in the subdirectories, if +you should have occasion to.) + + By default, the bitmap font paths end with `/$MAKETEX_MODE', thus +including the device name (usually a Metafont mode name such as +`ljfour'). This distinguishes two different devices with the same +resolution--a write/white from a write/black 300dpi printer, for +example. + + However, since most sites don't have this complication, Kpathsea +(specifically, the `kpse_init_prog' function in `kpathsea/proginit.c') +has a special case: if the mode has not been explicitly set by the user +(or in a configuration file), it sets `MAKETEX_MODE' to `/'. This +makes the default PK path, for example, expand into `.../pk//', so +fonts will be found even if there is no subdirectory for the mode (if +you arranged things that way because your site has only one printer, +for example) or if the program is mode-independent (e.g., `pktype'). + + To make the paths independent of the mode, simply edit `texmf.cnf.in' +before installation, or the installed `texmf.cnf', and remove the +`$MAKETEX_MODE'. + + *Note MakeTeX script arguments::, for how this interacts with +`MakeTeXPK'. + + *Note TeX directory structure: TeX directory structure, for a +description of the default arrangement of the input files that comprise +the TeX system. The file `kpathsea/HIER' is a copy of that section. + +Default path generation +....................... + + This section describes how the default paths are constructed. + + You may wish to ignore the whole mess and simply edit `texmf.cnf' +after it is installed, perhaps even copying it into place beforehand so +you can complete the installation, if it seems necessary. + + To summarize the chain of events that go into defining the default +paths: + + 1. `configure' creates a `Makefile' from each `Makefile.in'. + + 2. When Make runs in the `kpathsea' directory, it creates a file + `texmf.sed' that substitutes the Make value of `$(var)' for a + string `@var@'. The variables in question are the one that define + the installation directories. + + 3. `texmf.sed' (together with a little extra magic--see + `kpathsea/Makefile') is applied to `texmf.cnf.in' to generate + `texmf.cnf'. This is the file that will eventually be installed + and used. + + 4. The definitions in `texmf.cnf' are recast as C `#define''s in + `paths.h'. These values will be the compile-time defaults; they + are not used at runtime unless no `texmf.cnf' file can be found. + + (That's a lie: the compile-time defaults are what any extra :'s in + `texmf.cnf' expand into; but the paths as distributed have no extra + :'s, and there's no particular reason for them to.) + +Running `configure' +------------------- + + Run `sh configure OPTIONS' (in the top-level directory, the one +containing `kpathsea/'), possibly using a shell other than `sh' (*note +configure shells::.). + + `configure' adapts the source distribution to the present system via +`#define''s in `*/c-auto.h', which are created from the corresponding +`c-auto.h.in'. It also creates a `Makefile' from the corresponding +`Makefile.in', doing `@VAR@' and `ac_include' substitutions). + + `configure' is the best place to control the configuration, +compilation, and installed location of the software, either via +command-line options, or by setting environment variables before +invoking it. For example, you can disable `MakeTeXPK' by default with +the option `--disable-maketexpk'. *Note configure options::. + +`configure' shells +.................. + + If you have Bash, the GNU shell, use it if `sh' runs into trouble +(*note Top: (features)Top.). + + Most Bourne shell variants other than Bash cannot handle `configure' +scripts as generated by GNU Autoconf (*note Introduction: +(autoconf)Top.). Specifically: +`ksh' + The Korn shell may be installed as `/bin/sh' on AIX. `/bin/bsh' + may serve instead. + +`ash' + Ash is sometimes installed as `/bin/sh' on NetBSD, FreeBSD, and + Linux systems. `/bin/bash' should be available. + +`Ultrix /bin/sh' + `/bin/sh' under Ultrix is a DEC-grown shell that is notably + deficient in many ways. `/bin/sh5' may be necessary. + +`configure' options +................... + + For a complete list of all `configure' options, run `configure +--help' or *note Running `configure' scripts: (autoconf)Invoking +configure. (a copy is in the file `kpathsea/CONFIGURE'). The generic +options are listed first in the `--help' output, and the +package-specific options come last. The environment variables +`configure' pays attention to are listed below. + + Options particularly likely to be useful are `--prefix', `--datadir', +and the like; *note configure scenarios::.. + + This section gives pointers to descriptions of the `--with' and +`--enable' options to `configure' that Kpathsea-using programs accept. + +`--without-maketexmf-default' +`--without-maketexpk-default' +`--without-maketextfm-default' +`--with-maketextex-default' + Enable or disable the dynamic generation programs. *Note MakeTeX + configuration::. + +`--enable-shared' + Build Kpathsea as a shared library, and link against it. Also + build the usual static library. *Note Shared library::. + +`--disable-static' + Build only the shared library. + +`configure' environment +....................... + + `configure' uses the value of the following environment variables in +determining your system's characteristics, and substitutes for them in +Makefile's: + +`CC' + The compiler to use: default is `gcc' if it's installed, otherwise + `cc'. + +`CFLAGS' + Options to give the compiler: default is `-g -O2' for `gcc', `-g' + otherwise. `CFLAGS' comes after any other options. You may need + to include `-w' here if your compilations commonly have useless + warnings (e.g., `NULL redefined'), or `configure' may fail to + detect the presence of header files (it takes the messages on + standard error to mean the header file doesn't exist). + +`CPPFLAGS' + Options to pass to the compiler preprocessor; this matters most for + configuration, not the actual source compilation. The `configure' + script often does only preprocessing (e.g., to check for the + existence of #include files), and `CFLAGS' is not used for this. + You may need to set this to something like + `-I/usr/local/include/wwwhatever' if you have the libwww library + installed for hyper-xdvik (see `xdvik/INSTALL'). + +`DEFS' + Additional preprocessor options, but not used by `configure'. + Provided for enabling or disabling program features, as documented + in the various program-specific installation instructions. `DEFS' + comes before any compiler options included by the distribution + `Makefile's or by `configure'. + +`LDFLAGS' + Additional options to give to the loader. `LDFLAGS' comes before + any other linker options. + +`LIBS' + Additional libraries to link with. + +`configure' scenarios +..................... + + Here are some common installation scenarios: + + * Including X support in Metafont. This is disabled by default, + since many sites have no use for it, and it's a leading cause of + configuration problems. + configure --with-x-toolkit + + * Putting the binaries, TeX files, GNU info files, etc. into a single + TeX hierarchy, say TEXMF, requires overriding defaults in both + `configure' and `make': + configure --prefix=TEXMF --datadir=TEXMF + make texmf=TEXMF + + * You can compile on multiple architectures simultaneously either by + building symbolic link trees with the `lndir' script from the X11 + distribution, or with the `--srcdir' option: + configure --srcdir=SRCDIR + + * If you are installing binaries for multiple architectures into a + single hierarchy, you will probably want to override the default + `bin' and `lib' directories, something like this: + configure --prefix=TEXMF --datadir=TEXMF \ + --bindir=TEXMF/ARCH/bin --libdir=TEXMF/ARCH/lib + make texmf=TEXMF + (Unless you make provisions for architecture-specific files in + other ways, e.g., with Depot or an automounter.) + + * To compile with optimization (to compile without debugging, remove + the `-g'): + env CFLAGS="-g -O" sh configure ... + For a potential problem if you optimize, see *Note TeX or + Metafont failing: TeX or Metafont failing. + +Shared library +.............. + + You can compile Kpathsea as a shared library on a few systems, by +specifying the option `--enable-shared' when you run `configure'. + + The main advantage in doing this is that the executables can then +share the code, thus decreasing memory and disk space requirements. + + On some systems, you can record the location of shared libraries in a +binary, usually by giving certain options to the linker. Then +individual users do not need to set their system's environment variable +(e.g., `LD_LIBRARY_PATH') to find shared libraries. If you want to do +this, you will need to add the necessary options to `LDFLAGS' yourself; +for example, on Solaris, include something like `-R${prefix}/lib'. +(Unfortunately, making this happen by default is very difficult, +because of interactions with an existing installed shared library.) + + Currently, shared library support is implemented only on SunOS 4 +(Solaris 1) and SunOS 5 (Solaris 2). If you're interested and willing +in adding support for other systems, please see the `configure' mode in +the `klibtool' script, especially the host-specific case statement +around line 250. + +Running `make' +-------------- + + `make' (still in the top-level directory). This also creates the +`texmf.cnf' and `paths.h' files that define the default search paths, +and (by default) the `plain' and `latex' TeX formats. + + You can override directory names and other values at `make'-time. +`make/paths.make' lists the variables most commonly reset. For +example, `make default_texsizes=600' changes the list of fallback +resolutions. + + You can also override each of `configure''s environment variables +(*note configure environment::.). The Make variables have the same +names. + + Finally, you can supply additional options via the following +variables. (`configure' does not use these.) + +`XCPPFLAGS' +`XDEFS' + Preprocessor options. + +`XCFLAGS' + Compiler options. + +`XLDFLAGS' + Loader options (included at beginning of link commands). + +`XLOADLIBES' + More loader options (included at end of link commands). + +`XMAKEARGS' + Additional Make arguments passed to all sub-`make''s. You may need + to include assignments to the other variables here via `XMAKEARGS'; + for example: `make XMAKEARGS="CFLAGS=-O XDEFS=-DA4"'. + + It's generally a bad idea to use a different compiler (`CC') or +libraries (`LIBS') for compilation than you did for configuration, +since the values `configure' determined may then be incorrect. + + Adding compiler options to change the "universe" you are using +(typically BSD vs. system V) is generally a cause of trouble. It's +best to use the native environment, whatever that is; `configure' and +the software usually adapt best to that. In particular, under Solaris +2.x, you should not use the BSD-compatibility library (`libucb') or +include files (`ucbinclude'). + + If you want to use the Babel LaTeX package for support of non-English +typesetting, you need to modify some files before making the LaTeX +format. See the file `install.txt' in the Babel distribution. + +Installing files +---------------- + + The basic command is the usual `make install'. For security issues, +*note Security::.. + + The first time you install any manual in the GNU Info system, you +should add a line (you choose where) to the file `dir' in your +`$(infodir)' directory. Sample text for this is given near the top of +the Texinfo source files (`kpathsea/kpathsea.texi', +`dvipsk/dvips.texi', and `web2c/doc/web2c.texi'). If you have a recent +version of the GNU Texinfo distribution installed +(`ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz' or later), this +should happen automatically. + + On the offchance that this is your first Info installation, the `dir' +file I use is included in the distribution as `etc/dir-example'. + + You may wish to use one of the following targets, especially if you +are installing on multiple architectures: + * `make install-exec' to install in architecture-dependent + directories, i.e., ones that depend on the `$(exec_prefix)' Make + variable. This includes links to binaries, libraries, etc., not + just "executables". + + * `make install-data' to install in architecture-independent + directories, such as documentation, configuration files, pool + files, etc. + + If you use the Andrew File System, the normal path (e.g., PREFIX/bin) +only gets you to a read-only copy of the files, and you must specify a +different path for installation. The best way to do this is by setting +the `prefix' variable on the `make' command line. The sequence becomes +something like this: + configure --prefix=/whatever + make + make install prefix=/afs/.SYSTEM.NAME/system/1.3/@sys/whatever + With AFS, you will definitely want to use relative filenames in +`ls-R' (*note Filename database::.), not absolute filenames. This is +done by default, but check anyway. + +Cleaning up +----------- + +The basic command is `make distclean'. This removes all files created +by the build. + + Alternatively, + * `make mostlyclean' if you intend to compile on another + architecture. For Web2c, since the generated C files are portable, + they are not removed. If the `lex' vs. `flex' situation is going + to be different on the next machine, `rm web2c/lex.yy.c'. + + * `make clean' to remove files created by compiling, but leave + configuration files and Makefiles. + + * `make maintainer-clean' to remove everything that the Makefiles can + rebuild. This is more than `distclean' removes, and you should + only use it if you are thoroughly conversant with (and have the + necessary versions of) Autoconf. + + * `make extraclean' to remove other junk, e.g., core files, log + files, patch rejects. This is independent of the other `clean' + targets. + +Filename database generation +---------------------------- + + You will probably want to set up a `cron' entry on the appropriate +machine(s) to rebuild the filename database nightly or so, as in: + 0 0 * * * cd TEXMF && /BINDIR/MakeTeXls-R + *Note Filename database::. + +Although the `MakeTeX...' scripts make every effort to add +newly-created files on the fly, it can't hurt to make sure you get a +fresh version every so often. + +`MakeTeX' scripts +----------------- + + If Kpathsea cannot otherwise find a file, for some file types it is +configured by default to invoke an external program to create it +dynamically (*note MakeTeX configuration::.). This is most useful for +fonts (bitmaps, TFM's, and arbitrarily-sizable Metafont sources such as +the Sauter and DC fonts), since any given document can use fonts never +before referenced. Trying to build all fonts in advance is therefore +impractical, if not impossible. + + The script is passed the name of the file to create and possibly other +arguments, as explained below. It must echo the full pathname of the +file it created (and nothing else) to standard output; it can write +diagnostics to standard error. + +`MakeTeX' configuration +....................... + + The following file types can run an external program to create missing +files: `pk', `tfm', `mf', `tex'; the scripts are named `MakeTeXPK', +`MakeTeXTFM', `MakeTeXMF', and `MakeTeXTeX'. + + In the absence of `configure' options specifying otherwise, +everything but `MakeTeXTeX' will be enabled by default. The `configure' +options to change the defaults are: + + --without-maketexmf-default + --without-maketexpk-default + --without-maketextfm-default + --with-maketextex-default + + The `configure' setting is overridden if the environment variable or +configuration file value named for the script is set; e.g., `MAKETEXPK' +(*note MakeTeX script arguments::.). + + As distributed, all the scripts source a file +`texmf/web2c/MakeTeX.site' if it exists, so you can override various +defaults. See `MakeTeXcommon', for instance, which defines the default +mode, resolution, directory permissions, some special directory names, +etc. If you prefer not to change the distributed scripts, you can +simply create `MakeTeX.site' with the appropriate definitions (you do +not need to create it if you have nothing to put in it). +`MakeTeX.site' has no special syntax; it's an arbitrary Bourne shell +script. The distribution contains a sample `MakeTeX.site' for you to +copy and modify as you please (it is not installed anywhere). + + In addition, you can configure a number of features with the +`MT_FEATURES' variable, which you can define: + * in `MakeTeX.site', as just mentioned; + + * by editing the file `MakeTeXnames.cnf', either before `make + install' (in the source hierarchy) or after (in the installed + hierarchy); + + * or in the environment. + + By default, `MakeTeXPK' installs fonts into the standard TeX +directory structure (*note TeX directory structure: TeX directory +structure.). It uses aliases and directory names from the Fontname +distribution (*note Introduction: (fontname)Top.). Most of the options +here change that. + +`appendonlydir' + Tell `MakeTeXmkdir' to create directories append-only, i.e., set + their sticky bit (*note Mode Structure: (fileutils)Mode + Structure.). + +`dosnames' + Use 8.3 names; e.g., `dpi600/cmr10.pk' instead of `cmr10.600pk'. + +`nomode' + Omit the directory level for the mode name; this is fine as long as + you generate fonts for only one mode. + +`strip' + Omit the font supplier and typeface name directory levels. + +`varfonts' + Put `MakeTeXPK'-generated fonts under the directory named by + `VARTEXFONTS'; the default value in `kpathsea/texmf.cnf.in' is + `/var/tex/fonts', as recommended by the `Linux File System + Standard' (but unless `varfonts' is enabled, nothing cares about + that value). + + The `varfonts' setting in `MT_FEATURES' is overridden by the + `USE_VARTEXFONTS' environment variable: if set to `1', the feature + is enabled, and if set to `0', the feature is disabled. + +`MakeTeX' script names +...................... + + The following table shows the default name of the script for each +possible file types. (The source is the variable `kpse_make_specs' in +`kpathsea/tex-make.c'.) + +`MakeTeXPK' + Glyph fonts. + +`MakeTeXTeX' + TeX input files. + +`MakeTeXMF' + Metafont input files. + +`MakeTeXTFM' + TFM files. + +These names are overridden by an environment variable specific to the +program--for example, `DVIPSMAKEPK' for Dvipsk. + + If a `MakeTeX...' script fails, the invocation is appended to a file +`missfont.log' (by default) in the current directory. You can then +execute the log file to create the missing files after fixing the +problem. + + If the current directory is not writable and the environment variable +or configuration file value `TEXMFOUTPUT' is set, its value is used. +Otherwise, nothing is written. The name `missfont.log' is overridden +by the `MISSFONT_LOG' environment variable or configuration file value. + +`MakeTeX' script arguments +.......................... + + The first argument to a `MakeTeX' script is always the name of the +file to be created. + + In the default `MakeTeXPK' implementation, from three to five +additional arguments may also passed, via environment variables: + + 1. The resolution to make the font at (`KPATHSEA_DPI'). + + 2. The "base dpi" the program is operating at (`MAKETEX_BASE_DPI'), + i.e., the assumed resolution of the output device. + + 3. A "magstep" string suitable for the Metafont `mag' variable + (`MAKETEX_MAG'). + + 4. Optionally, a Metafont mode name to assign to the Metafont `mode' + variable (`MAKETEX_MODE'). Otherwise, (the default) `MakeTeXPK' + guesses the mode from the resolution. *Note TeX directory + structure: TeX directory structure. + + 5. Optionally, a directory name. If the directory is absolute, it is + used as-is. Otherwise, it is appended to the root destination + directory set in the script (from environment variables `DESTDIR' + or `MTP_DESTDIR' or a compile-time default). If this argument is + not supplied, the mode name is appended to the root destination + directory. + +Kpathsea sets `KPATHSEA_DPI' appropriately for each attempt at building +a font. It's up to the program using Kpathsea to set the others. +(*Note Calling sequence::.) + + You can change the specification for the arguments passed to the +external script by setting the environment variable named as the script +name, but all capitals--`MAKETEXPK', for example. If you've changed +the script name by setting (say) `DVIPSMAKEPK' to `foo', then the spec +is taken from the environment variable `FOO'. + + The spec can contain any variable references, to the above variables +or any others. As an example, the default spec for `MakeTeXPK' is: + $KPATHSEA_DPI $MAKETEX_BASE_DPI $MAKETEX_MAG $MAKETEX_MODE + +The convention of passing the name of the file to be created as the +first argument cannot be changed. + +Installation testing +-------------------- + + Besides the tests listed in *Note Simple installation::, you can try +running `make check'. This includes the torture tests (trip, trap, and +mptrap) that come with Web2c (*note Torture tests: (web2c)Torture +tests.). + +Security +======== + + None of the programs in the TeX system require any special system +privileges, so there's no first-level security concern of people gaining +illegitimate root access. + + A TeX document, however, can write to arbitrary files, e.g., +`~/.rhosts', and thus an unwitting user who runs TeX on a random +document is vulnerable to a trojan horse attack. This loophole is +closed by default, but you can be permissive if you so desire in +`texmf.cnf'. *Note tex invocation: (web2c)tex invocation. MetaPost has +the same issue. + + Dvips, Xdvi, and TeX can also execute shell commands under some +circumstances. To disable this, see the `-R' option in *Note Option +details: (dvips)Option details, the xdvi man page, and *Note tex +invocation: (web2c)tex invocation, respectively. + + Another security issue arises because it's very useful--almost +necessary--to make arbitrary fonts on user demand with `MakeTeXPK' and +friends. Where do these files get installed? By default, the +`MakeTeXPK' distributed with Kpathsea assumes a globally writable +`texmf' tree; this is the simplest and most convenient approach, but it +may not suit your situation. + + The first restriction you can apply is to make newly-created +directories under `texmf' be append-only with an option in +`MakeTeXnames.cnf'. *Note MakeTeX configuration::. + + Another approach is to establish a group (or user) for TeX files, +make the `texmf' tree writable only to that group (or user), and make +`MakeTeXPK' et al. setgid to that group (or setuid to that user). Then +users must invoke the scripts to install things. (If you're worried +about the inevitable security holes in scripts, then you could write a +C wrapper to exec the script.) + + Finally, using a central writable `texmf' tree may be completely +impossible, because it's on an NFS filesystem that you cannot export +read/write, or AFS is in use, or simply because "it's policy". Then +you must resort to each user's machine having its own local directory of +dynamically-created fonts; again, `MakeTeXnames.cnf' has an option to +do this, and again, *note MakeTeX configuration::.. +
new file mode 100644 --- /dev/null +++ b/kpathsea/MakeTeX.site @@ -0,0 +1,34 @@ +#!/bin/sh +# example MakeTeX.site. This file is not installed. +# $Id: MakeTeX.site,v 1.1 1997-05-23 03:02:10 jwe Exp $ +# +# The distributed MakeTeX* scripts source this file from /.../texmf/web2c, +# if it exists. You can put anything you like here; it's an arbitrary +# Bourne shell script. +# +# But the distributed scripts already support a number of features, +# which you can enable here, if you prefer not to change the distribution. +# +# For example, MakeTeXcommon sets the default umask, Metafont mode, +# resolution, directory permissions, location of the DC, TS, and Sauter +# fonts (which MakeTeXMF needs, since those fonts can be generated at +# any point size). You can override those defaults with commands here: +# +#umask 002 +#MODE=ljfour +#MT_DIR_PERMS=775 # must be three octal digits +#MT_FILE_PERMS=664 +#ps_to_pk=gsftopk +#ecfontdir="$TEXMFMAIN/fonts/source/jknappen/ec" +#fcfontdir="$TEXMFMAIN/fonts/source/jknappen/fc" +#tcfontdir="$TEXMFMAIN/fonts/source/jknappen/tc" +#tsfontdir="$TEXMFMAIN/fonts/source/jknappen/ts" +#sauterfontdir="$TEXMFMAIN/fonts/source/public/sauter" + +# Also, MakeTeXnames.cnf defines ways to control where generated files +# are placed. You can enable those by setting MT_FEATURES, e.g.: +#MT_FEATURES="appendonlydir varfonts" + + +# This script (MakeTeX.site) is also sourced *after* MakeTeXnames.cnf is +# run, so you can override what it did if you like.
new file mode 100755 --- /dev/null +++ b/kpathsea/MakeTeXMF @@ -0,0 +1,88 @@ +#!/bin/sh +# original MakeTeXMF -- make a new MF file, because one wasn't found. +# +# (If you change or delete the word `original' on the previous line, +# installation won't write this script over yours.) +# +# te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. + +version='$Id: MakeTeXMF,v 1.1 1997-05-23 03:02:10 jwe Exp $' +usage="Usage: $0 FONT. + Makes the Metafont source file for FONT, if possible. + For example, \`ecr12' or \`cmr11'." + +: ${TEXMFMAIN=`kpsewhich -expand-var='$TEXMFMAIN'`} +if test -z "$TEXMFMAIN"; then + echo "$0: No \$TEXMFMAIN; set the environment variable or in texmf.cnf." >&2 + exit 1 +fi +: ${TEXMFCNF_DIR=`kpsewhich -expand-var='$TEXMFCNF_DIR'`} +test -n "$TEXMFCNF_DIR" || TEXMFCNF_DIR=$TEXMFMAIN/web2c +. $TEXMFCNF_DIR/MakeTeXcommon + +# See comments in MakeTeXPK. +( +name="`basename $1 .mf`" +rootname=`echo "$name" | sed 's/[0-9]*$//'` +pointsize=`echo "$name" | sed "s/^$rootname//"` + +case "$name" in + dc*) fontdir=$dcfontdir;; + ec*) fontdir=$ecfontdir;; + fc*) fontdir=$fcfontdir;; + tc*) fontdir=$tcfontdir;; + ts*) fontdir=$tsfontdir;; + *) fontdir=$sauterfontdir; test -r $fontdir/b-$rootname.mf || exit 1;; +esac +cd $fontdir 2>/dev/null || exit 1 + +case "$pointsize" in + "") echo "$0: No pointsize." >&2; exit 1;; + 11) realsize=10.95444;; # \magstephalf + 14) realsize=14.4;; # \magstep2 + 17) realsize=17.28;; # \magstep3 + 20) realsize=20.74;; # \magstep4 + 25) realsize=24.88;; # \magstep5 + # The new convention is to have three or four letters for the + # font name and four digits for the pointsize. The number is + # pointsize * 100. We effectively divide by 100 by ignoring the + # last two digits. +????) realsize=`echo "$pointsize" | sed 's/\(..\)/\1./'`;; + *) realsize="$pointsize";; +esac + +mfname="$name.mf" +if test -r "$mfname"; then + echo "$0: $fontdir/$mfname already exists." + echo $fontdir/$mfname >$STDOUT + $TEXMFCNF_DIR/MakeTeXupdate "$fontdir" "$mfname" + exit 0 +fi + +base= +case "$name" in + dc*) base=dxbase;; + ec*|tc*) base=exbase;; + *) cat >"$mfname.tmp$$" <<END-OF-SAUTER +design_size := $realsize; +input b-$rootname; +END-OF-SAUTER + ;; +esac + +test -n "$base" && + echo "if unknown $base: input $base fi;" >"$mfname.tmp$$" + +cat >>"$mfname.tmp$$" <<END +gensize := $realsize; +generate $rootname; +END + +chmod $MT_FILE_PERMS "$mfname.tmp$$" +rm -f "$mfname" +mv "$mfname.tmp$$" "$mfname" + +echo "$fontdir/$mfname" >$STDOUT +$TEXMFCNF_DIR/MakeTeXupdate "$fontdir" "$mfname" +exit 0 +) 1>&2 </dev/null
new file mode 100755 --- /dev/null +++ b/kpathsea/MakeTeXPK @@ -0,0 +1,130 @@ +#!/bin/sh +# original MakeTeXPK -- make a new PK font, because one wasn't found. +# +# (If you change or delete the word `original' on the previous line, +# installation won't write this script over yours.) +# +# te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. + +version='$Id: MakeTeXPK,v 1.1 1997-05-23 03:02:10 jwe Exp $' +usage="Usage: $0 NAME DPI BDPI MAG [MODE [DESTDIR]]. + Try to create a PK file for NAME at resolution DPI, + with an assumed device base resolution of BDPI, + and a Metafont \`mag' of MAG. + Use MODE for the Metafont mode if supplied, unless MODE is \`default', in + which case guess as usual. (This is so you can specify DESTDIR without MODE.) + Use DESTDIR for the root of where to install into, either the absolute + directory name to use (if it starts with a /) or relative to the default + DESTDIR (if not)." +mt_min_args=4 +mt_max_args=6 + +: ${TEXMFMAIN=`kpsewhich -expand-var='$TEXMFMAIN'`} +if test -z "$TEXMFMAIN"; then + echo "$0: No \$TEXMFMAIN; set the environment variable or in texmf.cnf." >&2 + exit 1 +fi +: ${TEXMFCNF_DIR=`kpsewhich -expand-var='$TEXMFCNF_DIR'`} +test -n "$TEXMFCNF_DIR" || TEXMFCNF_DIR=$TEXMFMAIN/web2c +. $TEXMFCNF_DIR/MakeTeXcommon + +# Since we want to pass the generated filename and only that filename +# back to the caller on standard output, we do some redirections so +# regular echo's will end up on stderr, and do an echo >$STDOUT at the end. +# Then the contents of $STDOUT will be echoed to stdout by a trap. + +# start of redirection stdout -> stderr, stdin <- /dev/null +( +: ${PSMAPFILE=`kpsewhich psfonts.map`} + +NAME=$1 +DPI=$2 +BDPI=$3 +MAG=$4 +MODE=$5 +DEST=$6 + +# grep for the font in $PSMAPFILE. These are base font names, such as +# rpplr (the original) or pplr0 (an interim step) or pplr8r (current). +pattern="^r?$NAME"'(0|8r)?([ ]|$)' +psline=`egrep "$pattern" $PSMAPFILE` +if test -n "$psline"; then + MODE=modeless + # ps_to_pk set in MakeTeXcommon and/or MakeTeX.site. + cmd="$ps_to_pk $NAME $DPI" +else + # Check that $BDPI and $MODE are consistent; if not, ignore the mode and + # hope we can correctly guess it from bdpi. (People like to specify the + # resolution on the command line, not the mode so much.) + if test -n "$MODE"; then + mf_bdpi=`mf \ +'\mode:='$MODE';mode_setup;message"BDPI= "&decimal round pixels_per_inch;end.'\ + </dev/null \ + | awk '/DPI=/ {print $2}'` + if test $mf_bdpi != $BDPI; then + echo "$0: Mismatched mode $MODE and resolution $BDPI; ignoring mode." >&2 + MODE= + fi + fi + + # If an explicit mode is not supplied, try to guess. You can get a + # list of extant modes from ftp://ftp.tug.org/tex/modes.mf. + if test -z "$MODE" || test "$MODE" = default; then + case "$BDPI" in + 300) MODE=cx;; + 600) MODE=ljfour;; + *) echo "$0: Can't guess mode for $BDPI dpi devices." >&2 + echo "$0: Use a config file, or update me." >&2 + exit 1 + esac + fi + + # Run Metafont. Always use plain Metafont, since reading cmbase.mf + # does not noticeably slow things down. + cmd="mf \mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" +fi + +set - `$TEXMFCNF_DIR/MakeTeXnames $NAME $DPI $MODE $DEST` +PKDEST=$1 +PKDESTDIR=`echo $PKDEST | sed 's%/[^/][^/]*$%%'` # can't rely on dirname +PKNAME=`basename $PKDEST` +GFNAME=$NAME.${DPI}gf + +if test -r $PKDESTDIR/$PKNAME; then + echo "$0: $PKDESTDIR/$PKNAME already exists." >&2 + echo $PKDESTDIR/$PKNAME >$STDOUT + $TEXMFCNF_DIR/MakeTeXupdate $PKDESTDIR $PKNAME + exit 0 +fi + +$TEXMFCNF_DIR/MakeTeXmkdir $PKDESTDIR +if test ! -d $PKDESTDIR; then + echo "$0: MakeTeXmkdir $PKDESTDIR failed." >&2 + exit 1 +fi + +echo "$0: Running $cmd" +$cmd </dev/null || { echo "$0: \`$cmd' failed." >&2; exit 1; } + +test -r $GFNAME && { gftopk ./$GFNAME $PKNAME || exit 1; } +test ! -f $PKNAME && test -f $NAME.${DPI}pk && mv $NAME.${DPI}pk $PKNAME +if test ! -s $PKNAME; then + echo "$0: \`$cmd' failed to make $PKNAME." >&2 + exit 1 +fi + +# Install the PK file carefully, since others may be working simultaneously. +mv $PKNAME $PKDESTDIR/pktmp.$$ || exit 1 +cd $PKDESTDIR || exit 1 +test -r $PKNAME || mv pktmp.$$ $PKNAME || exit 1 +chmod $MT_FILE_PERMS $PKNAME + +# Update ls-R if necessary. +$TEXMFCNF_DIR/MakeTeXupdate $PKDESTDIR $PKNAME + +# If this line (or an equivalent) is not present, dvipsk/xdvik/dviljk +# will think MakeTeXPK failed. Any other output to stdout will also lose. +echo $PKDESTDIR/$PKNAME >$STDOUT + +) 1>&2 </dev/null +# end of redirection stdout, stdin
new file mode 100755 --- /dev/null +++ b/kpathsea/MakeTeXTFM @@ -0,0 +1,85 @@ +#!/bin/sh +# original MakeTeXTFM -- make a new TFM file, because one wasn't found. +# +# (If you change or delete the word `original' on the previous line, +# installation won't write this script over yours.) +# +# te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. + +version='$Id: MakeTeXTFM,v 1.1 1997-05-23 03:02:11 jwe Exp $' +usage="Usage: $0 FONT. + Makes a TFM file for FONT, if possible." + +: ${TEXMFMAIN=`kpsewhich -expand-var='$TEXMFMAIN'`} +if test -z "$TEXMFMAIN"; then + echo "$0: No \$TEXMFMAIN; set the environment variable or in texmf.cnf." >&2 + exit 1 +fi +: ${TEXMFCNF_DIR=`kpsewhich -expand-var='$TEXMFCNF_DIR'`} +test -n "$TEXMFCNF_DIR" || TEXMFCNF_DIR=$TEXMFMAIN/web2c +. $TEXMFCNF_DIR/MakeTeXcommon + +# See comments in MakeTeXPK. +# start of redirection stdout -> stderr, stdin <- /dev/null +( +NAME=`basename $1 .tfm` +MAG=1 +DEST=$2 +DPI=$BDPI + +set - `$TEXMFCNF_DIR/MakeTeXnames $NAME $DPI $MODE $DEST` +PKDEST=$1 +TFMDEST=$2 +PKDESTDIR=`echo $PKDEST | sed 's%/[^/][^/]*$%%'` # can't rely on dirname +TFMDESTDIR=`echo $TFMDEST | sed 's%/[^/][^/]*$%%'` +PKNAME=`basename $PKDEST` +TFMNAME=$NAME.tfm +GFNAME=$NAME.$DPI'gf' + +if test -r $TFMDESTDIR/$TFMNAME; then + echo "$0: $TFMDESTDIR/$TFMNAME already exists." >&2 + echo $TFMDESTDIR/$TFMNAME >$STDOUT + $TEXMFCNF_DIR/MakeTeXupdate $TFMDESTDIR $TFMNAME + exit +fi + +# Try to create the destdir first. Do not create fonts, if this fails. +$TEXMFCNF_DIR/MakeTeXmkdir "$TFMDESTDIR" +if test ! -d "$TFMDESTDIR"; then + echo "$0: MakeTeXmkdir $TFMDESTDIR failed." + exit 1 +fi + +cmd="mf \mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" +echo "$0: Running $cmd" +$cmd </dev/null +test -r $TFMNAME || { echo "$0: \`$cmd' failed to make $TFMNAME."; exit 1; } + +# Install the TFM file carefully, since others may be working simultaneously. +mv $TFMNAME $TFMDESTDIR/tfmtmp.$$ || exit 1 +cd $TFMDESTDIR || exit 1 +test -r $TFMNAME || mv tfmtmp.$$ $TFMNAME || exit 1 +chmod $MT_FILE_PERMS $TFMNAME + +# OK, success with the TFM. +$TEXMFCNF_DIR/MakeTeXupdate $TFMDESTDIR $TFMNAME +echo $TFMDESTDIR/$TFMNAME >$STDOUT + +# Since we probably made a GF(->PK) file, too, may as well install it if +# it's needed. +cd $TEMPDIR +if test -r $GFNAME && test ! -f $PKDESTDIR/$PKNAME; then + gftopk ./$GFNAME $PKNAME || exit 1 + $TEXMFCNF_DIR/MakeTeXmkdir "$PKDESTDIR" + mv $PKNAME $PKDESTDIR/pktmp.$$ || exit 1 + cd $PKDESTDIR || exit 1 + if test -f $PKNAME; then + rm -f pktmp.$$ + else + mv pktmp.$$ $PKNAME + chmod $MT_FILE_PERMS $PKNAME + $TEXMFCNF_DIR/MakeTeXupdate $PKDESTDIR $PKNAME + fi +fi +) 1>&2 </dev/null +# end of redirection stdout, stdin
new file mode 100755 --- /dev/null +++ b/kpathsea/MakeTeXcommon @@ -0,0 +1,70 @@ +#!/bin/sh +# MakeTeXcommon -- common MakeTeX* options, etc. +# Meant to be sourced after $usage and $version and $TEXMF have been set. +# +# te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. +# $Id: MakeTeXcommon,v 1.1 1997-05-23 03:02:11 jwe Exp $ + +if test x$1 = x--help -o x$1 = x-help; then + echo "$usage" + exit 0 +elif test x$1 = x--version -o x$1 = x-version; then + echo "`basename $0` $version" + kpsewhich --version + exit 0 +elif test $# -lt ${mt_min_args-1}; then + echo "$0: Missing argument(s)." >&2 + echo "Try \``basename $0` --help' for more information." >&2 + exit 1 +elif test $# -gt ${mt_max_args-1}; then + while test $# -gt ${mt_max_args-1}; do shift; done + echo "$0: Extra arguments $*." >&2 + echo "Try \``basename $0` --help' for more information." >&2 + exit 1 +fi + +# TEMPDIR needs to be unique to each process because of the possibility of two +# people running dvips (or whatever) simultaneously. +TEMPDIR=${TMPDIR-/tmp}/mt.$$ + +# We want to output only filenames to standard output, but it's too +# error-prone to write the scripts that way, so we direct stdout here. +STDOUT=$TEMPDIR/stdout.$$ + +# We will change search paths to include $KPSE_DOT. This is necessary +# since we cd to $TEMPDIR. +KPSE_DOT=`pwd`; export KPSE_DOT + +# Clean up on normal or abnormal exit. +trap 'cd $KPSE_DOT; test -f $STDOUT && cat $STDOUT; rm -rf $TEMPDIR; exit 0' \ + 0 1 2 15 + + +mkdir $TEMPDIR +cd $TEMPDIR || exit 1 + +# Allow fonts to be read and written (especially in case we make +# directories) by everyone. +umask 0 + +: ${MODE=ljfour} +: ${BDPI=600} +: ${MT_DIR_PERMS=777} # keep to three digits or appendonlydir will fail +: ${MT_FILE_PERMS=666} +: ${ps_to_pk=gsftopk} # some prefer ps2pk + +# Fonts in these typefaces can be generated at arbitrary sizes, so +# MakeTeXMF tries to take advantage of that. +# These are the TDS-recommended directories. +: ${dcfontdir="$TEXMFMAIN/fonts/source/jknappen/dc"} +: ${ecfontdir="$TEXMFMAIN/fonts/source/jknappen/ec"} +: ${fcfontdir="$TEXMFMAIN/fonts/source/jknappen/fc"} +: ${tcfontdir="$TEXMFMAIN/fonts/source/jknappen/tc"} +: ${tsfontdir="$TEXMFMAIN/fonts/source/jknappen/ts"} +: ${sauterfontdir="$TEXMFMAIN/fonts/source/public/sauter"} + +# MakeTeXupdate and MakeTeXls-R make sure they're coordinated via this. +ls_R_magic='% ls-R -- maintained by MakeTeXls-R; do not change this line.' + +# Source a site file, if it exists, to override any of the above. +test -r $TEXMFCNF_DIR/MakeTeX.site && . $TEXMFCNF_DIR/MakeTeX.site
new file mode 100755 --- /dev/null +++ b/kpathsea/MakeTeXls-R @@ -0,0 +1,67 @@ +#!/bin/sh +# MakeTeXls-R -- create or rebuild ls-R. +# Suitable for calling from cron, as in: +# 0 * * * * cd /your/texmf/root && /usr/local/bin/MakeTeXls-R +# +# Keeps ls-R world-writable, so anyone can update it (via MakeTeXPK etc.). +# +# Originally written as `texhash' by Thomas Esser +# <te@informatik.uni-hannover.de>, Okt., 1994. +# Public domain. + +version='$Id: MakeTeXls-R,v 1.1 1997-05-23 03:02:11 jwe Exp $' +usage="Usage: $0. + Rebuild the ls-R filename database completely." +mt_min_args=0 +mt_max_args=0 + +: ${TEXMFMAIN=`kpsewhich -expand-var='$TEXMFMAIN'`} +if test -z "$TEXMFMAIN"; then + echo "$0: No \$TEXMFMAIN; set the environment variable or in texmf.cnf." >&2 + exit 1 +fi +: ${TEXMFLS_R=`kpsewhich -expand-var='$TEXMFLS_R'`} +test -n "$TEXMFLS_R" || TEXMFLS_R=$TEXMFMAIN +: ${TEXMFCNF_DIR=`kpsewhich -expand-var='$TEXMFCNF_DIR'`} +test -n "$TEXMFCNF_DIR" || TEXMFCNF_DIR=$TEXMFMAIN/web2c +. $TEXMFCNF_DIR/MakeTeXcommon + +trap 'cd / ; rm -f $db_file_tmp; exit' 1 2 15 + +# Use ls -l to follow a possible symlink to get the right filesystem, +db_file=`\ls -l $TEXMFLS_R/ls-R 2>/dev/null | awk '{print $NF}'` +test -z "$db_file" && db_file=$TEXMFLS_R/ls-R +db_dir=`echo $db_file | sed 's%/[^/][^/]*$%%'` # can't rely on dirname +db_file_tmp=$db_dir/ls-R-tmp$$ + +test -w "$db_dir" || { echo "$0: Cannot write to $db_dir." >&2; exit 1; } + +if test ! -f $db_file; then + cp /dev/null $db_file + chmod 666 $db_file +fi + +# Copy the file to preserve as much of the permissions as possible. +rm -f $db_file_tmp +cp -p $db_file $db_file_tmp 2>/dev/null + +# Make sure we can write the file: +chmod +w $db_file_tmp + +tty -s && echo "$0: Updating $db_file... " +# Some people set noclobber somewhere else, so make sure to unset it. +unset noclobber +echo "$ls_R_magic" >$db_file_tmp + +# The main task. We ls two things so the top-level directory name ends +# up in the output, so top-level files can be found via ls-R. Probably +# irrelevant in practice. +# The sed command is because on new FreeBSD/NetBSD systems, ls -LAR ./ +# produces .//. Sigh. +(cd $TEXMFLS_R && ls -LAR /dev/null ./ 2>/dev/null) \ +| sed 's@\.//@./@' \ +>>$db_file_tmp + +tty -s && echo "$0: Done." +rm -f $db_file +mv $db_file_tmp $db_file
new file mode 100755 --- /dev/null +++ b/kpathsea/MakeTeXmkdir @@ -0,0 +1,45 @@ +#!/bin/sh +# mkinstalldirs --- make directory hierarchy (now MakeTeXmkdir). +# Author: Noah Friedman <friedman@prep.ai.mit.edu>, created: 1993-05-16. +# Public domain. +# +# Modified for sticky directory creation, --help, --version. +# te@informatik.uni-hannover.de and kb@mail.tug.org. + +version='$Id: MakeTeXmkdir,v 1.1 1997-05-23 03:02:11 jwe Exp $' +usage="Usage: $0 DIRS... + Create each DIR, including any missing leading directories." + +: ${TEXMFMAIN=`kpsewhich -expand-var='$TEXMFMAIN'`} +if test -z "$TEXMFMAIN"; then + echo "$0: No \$TEXMFMAIN; set the environment variable or in texmf.cnf." >&2 + exit 1 +fi +: ${TEXMFCNF_DIR=`kpsewhich -expand-var='$TEXMFCNF_DIR'`} +test -n "$TEXMFCNF_DIR" || TEXMFCNF_DIR=$TEXMFMAIN/web2c +. $TEXMFCNF_DIR/MakeTeXcommon + +errstatus=0 + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d in ${1+"$@"} ; do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + mkdir "$pathcomp" || errstatus=$? + chmod $MT_DIR_PERMS $pathcomp + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus
new file mode 100755 --- /dev/null +++ b/kpathsea/MakeTeXnames @@ -0,0 +1,97 @@ +#!/bin/sh +# MakeTeXnames -- find PK and TFM names. +# Use alias files from the ftp://ftp.tug.org/tex/fontname.tar.gz distribution. +# te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. + +version='$Id: MakeTeXnames,v 1.1 1997-05-23 03:02:11 jwe Exp $' +usage="Usage: $0 NAME [DPI MODE] [DESTDIR]. + Output the PK and TFM names for a font NAME." +mt_max_args=4 + +: ${TEXMFMAIN=`kpsewhich -expand-var='$TEXMFMAIN'`} +if test -z "$TEXMFMAIN"; then + echo "$0: No \$TEXMFMAIN; set the environment variable or in texmf.cnf." >&2 + exit 1 +fi +: ${TEXMFCNF_DIR=`kpsewhich -expand-var='$TEXMFCNF_DIR'`} +test -n "$TEXMFCNF_DIR" || TEXMFCNF_DIR=$TEXMFMAIN/web2c +. $TEXMFCNF_DIR/MakeTeXcommon + +NAME=$1 +case $# in +1|2) DPI=$BDPI; DEST=$2;; +3|4) DPI=$2; MODE=$3; DEST=$4;; +*) help;; +esac + +FONTNAME=`kpsewhich -expand-var='$FONTNAME'` +test -z "$FONTNAME" && FONTNAME=$TEXMFMAIN/fontname + +: ${MT_PKDESTDIR='$MT_DESTROOT/$MT_PKPART/$MT_MODE/$MT_NAMEPART'} +: ${MT_TFMDESTDIR='$MT_DESTROOT/$MT_TFMPART/$MT_NAMEPART'} +: ${MT_DESTROOT='$TEXMFMAIN/fonts'} +: ${MT_DEFAULT_NAMEPART=tmp} +: ${MT_PKPART='pk'} +: ${MT_TFMPART='tfm'} +: ${MT_TFMNAME='$NAME.tfm'} +: ${MT_PKNAME='$NAME.${DPI}pk'} + +# MT_NAMEPART is harder. +if test -z "$MT_NAMEPART"; then + # Nothing specified, so try to intuit the directory from the + # fontname. First the special cases: either $NAME matches an entire + # name in special.map, or it matches the abbreviation in + # special.map and ends with a numeral (for the pointsize). + # We (painfully) use only the minimal features in original awk. + if test -r $FONTNAME/special.map; then + MT_NAMEPART=`awk \ +'{if ($1 == NAME || (substr (NAME, 1, length ($1)) == $1 \ + && substr (NAME, length (NAME), 1) ~ /[0-9]/ \ + && substr ($1, length ($1), 1) ~ /[^0-9]/)) \ + { print $2 "/" $3; exit; }}' NAME=$NAME $FONTNAME/special.map` + + if test -z "$MT_NAMEPART"; then + # Try the normal case. Source first. + s_abbrev=`echo $NAME | sed 's/^\(.\).*$/\1/'` + sourcedir=`awk '{ if ($1 == s_abbrev) { print $2; exit; }}' \ + s_abbrev=$s_abbrev $FONTNAME/supplier.map` + + if test -n "$sourcedir"; then + # We found the source. Try for the typeface. + t_abbrev=`echo $NAME | cut -c 2-3` + typefacedir=`awk '{ if ($1 == t_abbrev) { print $2; exit; }}' \ + t_abbrev=$t_abbrev $FONTNAME/typeface.map` + + if test -n "$typefacedir"; then + # Found everything. + MT_NAMEPART=$sourcedir/$typefacedir + + else + echo "$0: Could not map typeface abbreviation $t_abbrev." >&2 + fi + else + echo "$0: Could not map source abbreviation $s_abbrev." >&2 + fi + fi + fi + if test -z "$MT_NAMEPART"; then + # If we failed for whatever reason, default to a generic subdir. + MT_NAMEPART=$MT_DEFAULT_NAMEPART + fi +fi + +case "$DEST" in + "") ;; + /*) MT_PKDESTDIR=$DEST;; # Absolute, explicit destdir => use it. + *) MT_NAMEPART=$DEST;; # Relative destdir => append to the default. +esac + +. $TEXMFCNF_DIR/MakeTeXnames.cnf + +eval MT_MODE=$MODE +eval MT_PKPART=$MT_PKPART +eval MT_DESTROOT=$MT_DESTROOT +eval PKNAME=$MT_PKDESTDIR/$MT_PKNAME +eval TFMNAME=$MT_TFMDESTDIR/$MT_TFMNAME + +echo $PKNAME $TFMNAME | sed 's@//*@/@g'
new file mode 100755 --- /dev/null +++ b/kpathsea/MakeTeXnames.cnf @@ -0,0 +1,55 @@ +#!/bin/sh +# MakeTeXnames.cnf to determine various manipulations of the filenames. +# Sourced from MakeTeXnames. +# +# te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. +# $Id: MakeTeXnames.cnf,v 1.1 1997-05-23 03:02:11 jwe Exp $ + + +# Possible features: appendonlydir dosnames nomode strip varfonts. +: ${MT_FEATURES=} + +# Set append-only bit on created directories. +case "$MT_FEATURES" in + *appendonlydir*) MT_DIR_PERMS=1$MT_DIR_PERMS;; +esac + +# Get 8.3 filenames like dpiNNN/NAME.pk. +case "$MT_FEATURES" in + *dosnames*) MT_PKNAME='dpi$DPI/$NAME.pk';; +esac + +# Omit the mode directory (e.g., ljfour): +case "$MT_FEATURES" in + *nomode*) MODE="";; +esac + +# Omit the supplier/typeface part (e.g., ams/euler). +case "$MT_FEATURES" in + *strip*) MT_NAMEPART="";; +esac + +# Put new fonts into the directory named by the VARTEXFONTS environment +# variable or config file value. (A default value for VARTEXFONTS is +# already set in the default texmf.cnf, q.v.) +# +# A user can override this setting in either direction by setting +# USE_VARTEXFONTS to 1 or 0. +case "$MT_FEATURES" in + *varfonts*) test "$USE_VARTEXFONTS" != 0 && USE_VARTEXFONTS=1;; +esac + +if test "$USE_VARTEXFONTS" = 1; then + if test -n "${VARTEXFONTS=`kpsewhich -expand-var='$VARTEXFONTS'`}"; then + MT_DESTROOT=$VARTEXFONTS + MT_NAMEPART="" + else + echo "$0: You asked for varfonts in MT_FEATURES, but VARTEXFONTS" >&2 + echo "$0: is not set as an environment variable or in texmf.cnf, etc." >&2 + fi +fi + + +# In case you want to override anything that got set above. +# (MakeTeX.site also gets sourced before this is called, from MakeTeXcommon.) +test -r $TEXMFCNF_DIR/MakeTeX.site && . $TEXMFCNF_DIR/MakeTeX.site
new file mode 100755 --- /dev/null +++ b/kpathsea/MakeTeXupdate @@ -0,0 +1,46 @@ +#!/bin/sh +# MakeTeXupdate -- update ls-R with a new entry. +# +# te@informatik.uni-hannover.de and kb@mail.tug.org. Public domain. + +version='$Id: MakeTeXupdate,v 1.1 1997-05-23 03:02:11 jwe Exp $' +usage="Usage: $0 DIR FILE. + Update the ls-R file with an entry for FILE in DIR." +mt_min_args=2 +mt_max_args=2 + +: ${TEXMFMAIN=`kpsewhich -expand-var='$TEXMFMAIN'`} +if test -z "$TEXMFMAIN"; then + echo "$0: No \$TEXMFMAIN; set the environment variable or in texmf.cnf." >&2 + exit 1 +fi +: ${TEXMFLS_R=`kpsewhich -expand-var='$TEXMFLS_R'`} +test -n "$TEXMFLS_R" || TEXMFLS_R=$TEXMFMAIN +: ${TEXMFCNF_DIR=`kpsewhich -expand-var='$TEXMFCNF_DIR'`} +test -n "$TEXMFCNF_DIR" || TEXMFCNF_DIR=$TEXMFMAIN/web2c +. $TEXMFCNF_DIR/MakeTeXcommon + +test $# -eq 2 || { echo "$usage" >&2; exit 1; } +dir=$1 +file=$2 +test -d "$dir" || { echo "$0: $dir not a directory." >&2; exit 1; } +test -f "$dir/$file" || { echo "$0: $dir/$file not a file." >&2; exit 1; } + +db_file=$TEXMFLS_R/ls-R + +test -f $db_file || MakeTeXls-R +test -f $db_file || { echo "$0: $db_file does not exist." >&2; exit 1; } +test -w "$db_file" || { echo "$0: $db_file unwritable." >&2; exit 1; } + +test "`sed 1q $db_file`" = "$ls_R_magic" \ + || { echo "$0: $db_file lacks magic string \`$ls_R_magic'." >&2; exit 1; } + +# Change `$TEXMFLS_R/' to `./'. +dir=`echo $dir | sed "s@^$TEXMFLS_R/@./@g"` + +# May as well always put in a new directory entry; presumably cron will +# come along soon enough and clean things up. +echo "$dir:" >>$db_file +echo "$file" >>$db_file + +exit 0
new file mode 100644 --- /dev/null +++ b/kpathsea/Makefile @@ -0,0 +1,698 @@ +# Generated automatically from Makefile.in by configure. +# Makefile for kpathsea --kb@mail.tug.org. Public domain. +version = 3.0 + +# Add -DNO_DEBUG to disable debugging, for vanishingly better performance. + + +##ifdef HOSTNAME +##warn_more = -Wmissing-prototypes -Wwrite-strings -Wshadow +##MAKEINFO_FLAGS := $(MAKEINFO_FLAGS) --no-split +##malloc = /usr/local/src/malloc/onefile.o # gmalloc.o +##endif + +# Install these header files (except c-auto.h). +install_headers = *.h + +# Put tex-file.o first, because it's what depends on the paths, and may +# reduce frustration if the paths are wrong by doing it first. + +objects = tex-file.lo absolute.lo atou.lo cnf.lo concat.lo concat3.lo \ +concatn.lo db.lo debug.lo dir.lo elt-dirs.lo expand.lo extend-fname.lo \ +file-p.lo find-suffix.lo fn.lo fontmap.lo getopt.lo getopt1.lo hash.lo \ +kdefault.lo line.lo magstep.lo make-suffix.lo path-elt.lo \ +pathsearch.lo proginit.lo progname.lo readable.lo rm-suffix.lo \ +str-list.lo str-llist.lo tex-glyph.lo tex-hush.lo tex-make.lo \ +tilde.lo truncate.lo uppercasify.lo variable.lo version.lo xcalloc.lo \ +xfopen.lo xfseek.lo xftell.lo xgetcwd.lo xmalloc.lo xopendir.lo xputenv.lo \ +xrealloc.lo xstat.lo xstrdup.lo $(liblobjs) $(malloc) +liblobjs = + +library = kpathsea + +# We want to compile almost everything with libtool ... +KPATHSEA_CC = $(LIBTOOL) compile $(CC) +.c.lo: + $(KPATHSEA_CC) $< $(ALL_CFLAGS) +.SUFFIXES: .lo + +default all: kpsewhich $(library).info + +kpsewhich: $(kpathsea) kpsewhich.o + $(kpathsea_link) kpsewhich.o $(LOADLIBES) + +$(kpathsea): $(objects) + $(LIBTOOL) archive $(AR) $(ARFLAGS) $@ $(objects) + +# All the objects depend on the klibtool configuration file. +$(objects): ../klibtool.config + +# Make variable substitutions from paths.h. +texmf.cnf: texmf.cnf.in texmf.sed + sed -f texmf.sed $(srcdir)/texmf.cnf.in >$@ + +# The idea is to turn each var=value into s%@var@%value%g. Seems simpler +# to put the substitutions in a file than to play shell quoting games. +texmf.sed: $(top_srcdir)/../make/makevars.make $(top_srcdir)/../make/paths.make + echo $(makevars) \ + | tr ' ' '\012' \ + | sed -e 's/^/s%@/' -e 's/=/@%/' -e 's/$$/%/' -e 's/$$/g/' \ + >$@-t +# Don't replace the rhs of the TEXMF assignment itself, then we'd +# end up with TEXMF = $TEXMF. We replace all the other hardwired paths +# with $TEXMF, though, for ease of modification. + echo 's%$(texmf)%\$$TEXMF%g' >>$@-t + echo '/^ *TEXMF[ =]/s%\$$TEXMF%$(texmf)%' >>$@-t + mv $@-t $@ + +# First null out comments and leading/trailing whitespace, then remove +# lines that define invalid C identifiers, then remove blank lines and +# lines that define lowercase values (those are never path values). Each +# line remaining looks like +# <name> = <value> +# (but = and surrounding spaces are optional, hence can't remove all spaces). +# Change this to #ifndef DEFAULT_name@#define DEFAULT_name "value"@#endif, +# then change the @'s to newlines (sed isn't good at multiline replacements). +# +# No backslash-newline escapes in the long sed replacement because that +# will turn into a space in the output. +# +# Without the $TEXMF/dbtex/etc. substitutions, if the cnf file was +# not found, the compile-time paths would be of little use, since TEXMF +# (etc.) wouldn't be defined. Alternatively, we could have a way to +# specify compile-time default values for variables in general, but I +# think it's better to keep the last-resort paths as simple as possible. +# +# The definition of DEFAULT_TEXMF (and other variables) +# that winds up in the final paths.h will not be used. +$(kpathsea_dir)/paths.h: texmf.cnf + echo "/* paths.h: Generated from texmf.cnf `date`. */" >$@ + sed -e 's/%.*//' -e 's/^[ ]*//' -e 's/[ ]*$$//' texmf.cnf \ + | grep '^[ ]*[A-Z1_]*[ =]' \ + | sed '/^$$/d' \ + | sed 's/^\([^ =]*\)[ ]*=*[ ]*\(.*\)/#ifndef DEFAULT_\1@#define DEFAULT_\1 "\2"@#endif/' \ + | tr @ '\012' \ + | sed -e 's@\$$TEXMF@$(texmf)@g' \ + -e 's@\$$dbtex@$(texinputdir)@g' \ + -e 's@\$$dbfonts@$(fontdir)@g' \ + -e 's@\$$VARTEXFONTS@/var/tex/fonts@g' \ + -e 's@\$$prefix@$(prefix)@g' \ + >>$@ + +# Need an extra definition for this. Dependencies included below. +tex-file.o: + $(KPATHSEA_CC) -DDEFAULT_FONT_SIZES='\"$(default_texsizes)\"' $(srcdir)/tex-file.c + +check: kpsewhich + ./kpsewhich -expand-var '$$TEXMF' + +install: install-exec install-data +uninstall: uninstall-exec uninstall-data + +install-exec: kpsewhich + $(SHELL) $(top_srcdir)/../mkdirchain $(bindir) $(scriptdir) \ + $(libdir) $(web2cdir) + if grep 'original MakeTeXPK --' $(scriptdir)/MakeTeXPK >/dev/null 2>&1\ + || test ! -r $(scriptdir)/MakeTeXPK; then \ + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXPK $(scriptdir)/MakeTeXPK; \ + else true; fi + if grep 'original MakeTeXMF --' $(scriptdir)/MakeTeXMF >/dev/null 2>&1\ + || test ! -r $(scriptdir)/MakeTeXMF; then \ + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXMF $(scriptdir)/MakeTeXMF; \ + else true; fi + if grep 'original MakeTeXTFM --' $(scriptdir)/MakeTeXTFM >/dev/null 2>&1\ + || test ! -r $(scriptdir)/MakeTeXTFM; then \ + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXTFM $(scriptdir)/MakeTeXTFM; \ + else true; fi + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXls-R $(scriptdir)/MakeTeXls-R + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXcommon $(web2cdir)/MakeTeXcommon + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXmkdir $(web2cdir)/MakeTeXmkdir + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXnames $(web2cdir)/MakeTeXnames + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXnames.cnf $(web2cdir)/MakeTeXnames.cnf + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXupdate $(web2cdir)/MakeTeXupdate + $(INSTALL_LIBTOOL_LIBS) $(libdir) lib$(library).la + $(INSTALL_LIBTOOL_PROG) $(bindir) kpsewhich +uninstall-exec: + rm -f $(bindir)/kpsewhich + +install-data: texmf.cnf kpathsea.info + $(SHELL) $(top_srcdir)/../mkdirchain $(texmf) $(infodir) $(web2cdir) + if grep 'original texmf.cnf --' $(web2cdir)/texmf.cnf >/dev/null 2>&1 \ + || test ! -r $(web2cdir)/texmf.cnf; then \ + $(INSTALL_DATA) texmf.cnf $(web2cdir)/texmf.cnf; \ + else true; fi + $(INSTALL_DATA) $(srcdir)/kpathsea.info $(infodir)/kpathsea.info + $(SHELL) $(top_srcdir)/../mkdirchain $(includedir)/kpathsea + for f in $(install_headers); do \ + $(INSTALL_DATA) $$f $(includedir)/kpathsea/$$f; done + rm -f $(includedir)/kpathsea/c-auto.h + $(POSTINSTALL) + test -r $(infodir)/dir || $(INSTALL_DATA) $(top_srcdir)/../dir $(infodir) + if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ + install-info --info-dir=$(infodir) $(infodir)/kpathsea.info; \ + else true; fi + +uninstall-data: + rm -f $(infodir)/kpathsea.info* + for f in $(install_headers); do rm -f $(includedir)/$$f; done + +# distdir is used by other distributions; they define $(distdir). +distdir: doc $(library).dvi $(library).h + rm -rf $(distdir) + mkdir -p $(distdir) + ln $(ln_files) klibtool.version $(distdir) + touch *.info* + ln MakeTeX* *.info* *.texi $(library).aux $(library).cps $(distdir) + ln BUGS CONFIGURE HIER PROJECTS *.ac $(distdir) + touch kpathsea.h # to avoid .cps.h rule on Solaris + cd $(distdir) && rm -f paths.h + cd $(distdir) && add-version $(version) version.c + +# I don't use this, but other programmers want it. acconfig.h is an +# autoheader input file, not an includable C header. Bad name. +$(library).h: always + rm -f $@ + ls -1 *.h | grep -v acconfig.h \ + | sed -e 's,^,#include <kpathsea/,' -e s',$$,>,' >$@ + touch -r `ls -1t *.h | tail +2 | head -1` $@ +always: +.PHONY: always + + +info: $(library).info +dvi: $(library).dvi + +$(library).info: bugs.texi hier.texi install.texi unixtex.texi + +##ifdef HOSTNAME +##INSTALL: install.texi +## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +## add-info-toc $@ +##BUGS: bugs.texi +## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +## add-info-toc $@ +##HIER: hier.texi +## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +##unixtex.ftp: unixtex.texi +## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +##doc: info HIER BUGS INSTALL unixtex.ftp +##endif + + +mostlyclean:: + rm -f kpsewhich *.lo + rm -rf PROF PROF_SHARED SHARED STATIC +distclean:: + rm -f paths.h texmf.cnf texmf.sed + +absolute.lo: absolute.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ + ../kpathsea/c-pathch.h +atou.lo: atou.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +basename.lo: basename.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h +cnf.lo: cnf.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/c-ctype.h \ + ../kpathsea/cnf.h ../kpathsea/db.h ../kpathsea/str-list.h \ + ../kpathsea/hash.h ../kpathsea/line.h ../kpathsea/paths.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/tex-file.h ../kpathsea/variable.h +concat.lo: concat.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +concat3.lo: concat3.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +concatn.lo: concatn.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/concatn.h \ + ../kpathsea/c-vararg.h +db.lo: db.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ + ../kpathsea/c-fopen.h ../kpathsea/c-pathch.h ../kpathsea/db.h \ + ../kpathsea/str-list.h ../kpathsea/hash.h ../kpathsea/line.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/readable.h ../kpathsea/tex-file.h ../kpathsea/variable.h +debug.lo: debug.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +dir.lo: dir.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-dir.h \ + ../kpathsea/c-stat.h \ + ../kpathsea/hash.h +elt-dirs.lo: elt-dirs.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/expand.h ../kpathsea/fn.h ../kpathsea/pathsearch.h \ + ../kpathsea/str-llist.h ../kpathsea/xopendir.h ../kpathsea/c-dir.h +expand.lo: expand.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/expand.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/tilde.h ../kpathsea/variable.h +extend-fname.lo: extend-fname.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +file-p.lo: file-p.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/xstat.h \ + ../kpathsea/c-stat.h +find-suffix.lo: find-suffix.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h +fn.lo: fn.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/fn.h +fontmap.lo: fontmap.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h \ + ../kpathsea/c-fopen.h ../kpathsea/fontmap.h ../kpathsea/hash.h \ + ../kpathsea/line.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/str-list.h ../kpathsea/tex-file.h +getopt.lo: getopt.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h getopt.h +getopt1.lo: getopt1.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h getopt.h +hash.lo: hash.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/hash.h \ + ../kpathsea/str-list.h +kdefault.lo: kdefault.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/default.h +kpsewhich.o: kpsewhich.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h \ + ../kpathsea/c-pathch.h ../kpathsea/expand.h ../kpathsea/getopt.h \ + ../kpathsea/line.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/proginit.h ../kpathsea/tex-file.h ../kpathsea/tex-glyph.h \ + ../kpathsea/variable.h +line.lo: line.c +magstep.lo: magstep.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/magstep.h +make-suffix.lo: make-suffix.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h +path-elt.lo: path-elt.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h +pathsearch.lo: pathsearch.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/absolute.h ../kpathsea/expand.h ../kpathsea/db.h \ + ../kpathsea/str-list.h ../kpathsea/pathsearch.h \ + ../kpathsea/str-llist.h ../kpathsea/readable.h ../kpathsea/variable.h +proginit.lo: proginit.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/proginit.h ../kpathsea/tex-file.h +progname.lo: progname.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ + ../kpathsea/c-pathch.h ../kpathsea/c-stat.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h +putenv.lo: putenv.c +readable.lo: readable.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-stat.h \ + ../kpathsea/readable.h ../kpathsea/tex-hush.h ../kpathsea/truncate.h +rm-suffix.lo: rm-suffix.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +str-list.lo: str-list.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/str-list.h +str-llist.lo: str-llist.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/str-llist.h +strcasecmp.lo: strcasecmp.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +strstr.lo: strstr.c +strtol.lo: strtol.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +tex-file.lo: tex-file.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/c-vararg.h ../kpathsea/cnf.h ../kpathsea/default.h \ + ../kpathsea/expand.h ../kpathsea/fontmap.h ../kpathsea/hash.h \ + ../kpathsea/paths.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/tex-file.h ../kpathsea/tex-make.h ../kpathsea/variable.h +tex-glyph.lo: tex-glyph.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ + ../kpathsea/expand.h ../kpathsea/fontmap.h ../kpathsea/hash.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/tex-glyph.h ../kpathsea/tex-file.h ../kpathsea/tex-make.h \ + ../kpathsea/variable.h +tex-hush.lo: tex-hush.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/pathsearch.h \ + ../kpathsea/str-llist.h ../kpathsea/tex-hush.h ../kpathsea/variable.h +tex-make.lo: tex-make.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/c-pathch.h ../kpathsea/concatn.h ../kpathsea/c-vararg.h \ + ../kpathsea/db.h ../kpathsea/str-list.h ../kpathsea/fn.h \ + ../kpathsea/magstep.h ../kpathsea/readable.h ../kpathsea/tex-make.h \ + ../kpathsea/tex-file.h ../kpathsea/variable.h +tilde.lo: tilde.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/tilde.h +truncate.lo: truncate.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-namemx.h \ + ../kpathsea/c-pathch.h ../kpathsea/c-pathmx.h ../kpathsea/truncate.h +uppercasify.lo: uppercasify.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h +variable.lo: variable.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h \ + ../kpathsea/cnf.h ../kpathsea/fn.h ../kpathsea/variable.h +version.lo: version.c +xcalloc.lo: xcalloc.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xfopen.lo: xfopen.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xfseek.lo: xfseek.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xftell.lo: xftell.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xgetcwd.lo: xgetcwd.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathmx.h +xmalloc.lo: xmalloc.c +xopendir.lo: xopendir.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/xopendir.h \ + ../kpathsea/c-dir.h +xputenv.lo: xputenv.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xrealloc.lo: xrealloc.c +xstat.lo: xstat.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/xstat.h \ + ../kpathsea/c-stat.h +xstrdup.lo: xstrdup.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h
new file mode 100644 --- /dev/null +++ b/kpathsea/Makefile.in @@ -0,0 +1,706 @@ +# Makefile for kpathsea --kb@mail.tug.org. Public domain. +version = 3.0 + +# Add -DNO_DEBUG to disable debugging, for vanishingly better performance. + +ac_include ../make/paths.make +ac_include ../make/makevars.make +ac_include ../make/common.make +ac_include ../make/library.make +ac_include ../make/programs.make +ac_include ../make/texi.make + +##ifdef HOSTNAME +##warn_more = -Wmissing-prototypes -Wwrite-strings -Wshadow +##MAKEINFO_FLAGS := $(MAKEINFO_FLAGS) --no-split +##malloc = /usr/local/src/malloc/onefile.o # gmalloc.o +##endif + +# Install these header files (except c-auto.h). +install_headers = *.h + +# Put tex-file.o first, because it's what depends on the paths, and may +# reduce frustration if the paths are wrong by doing it first. + +objects = tex-file.lo absolute.lo atou.lo cnf.lo concat.lo concat3.lo \ +concatn.lo db.lo debug.lo dir.lo elt-dirs.lo expand.lo extend-fname.lo \ +file-p.lo find-suffix.lo fn.lo fontmap.lo getopt.lo getopt1.lo hash.lo \ +kdefault.lo line.lo magstep.lo make-suffix.lo path-elt.lo \ +pathsearch.lo proginit.lo progname.lo readable.lo rm-suffix.lo \ +str-list.lo str-llist.lo tex-glyph.lo tex-hush.lo tex-make.lo \ +tilde.lo truncate.lo uppercasify.lo variable.lo version.lo xcalloc.lo \ +xfopen.lo xfseek.lo xftell.lo xgetcwd.lo xmalloc.lo xopendir.lo xputenv.lo \ +xrealloc.lo xstat.lo xstrdup.lo $(liblobjs) $(malloc) +liblobjs = @LTLIBOBJS@ + +library = kpathsea + +# We want to compile almost everything with libtool ... +KPATHSEA_CC = $(LIBTOOL) compile $(CC) +.c.lo: + $(KPATHSEA_CC) $< $(ALL_CFLAGS) +.SUFFIXES: .lo + +default all: kpsewhich $(library).info + +kpsewhich: $(kpathsea) kpsewhich.o + $(kpathsea_link) kpsewhich.o $(LOADLIBES) + +$(kpathsea): $(objects) + $(LIBTOOL) archive $(AR) $(ARFLAGS) $@ $(objects) + +# All the objects depend on the klibtool configuration file. +$(objects): ../klibtool.config + +# Make variable substitutions from paths.h. +texmf.cnf: texmf.cnf.in texmf.sed + sed -f texmf.sed $(srcdir)/texmf.cnf.in >$@ + +# The idea is to turn each var=value into s%@var@%value%g. Seems simpler +# to put the substitutions in a file than to play shell quoting games. +texmf.sed: $(top_srcdir)/../make/makevars.make $(top_srcdir)/../make/paths.make + echo $(makevars) \ + | tr ' ' '\012' \ + | sed -e 's/^/s%@/' -e 's/=/@%/' -e 's/$$/%/' -e 's/$$/g/' \ + >$@-t +# Don't replace the rhs of the TEXMF assignment itself, then we'd +# end up with TEXMF = $TEXMF. We replace all the other hardwired paths +# with $TEXMF, though, for ease of modification. + echo 's%$(texmf)%\$$TEXMF%g' >>$@-t + echo '/^ *TEXMF[ =]/s%\$$TEXMF%$(texmf)%' >>$@-t + mv $@-t $@ + +# First null out comments and leading/trailing whitespace, then remove +# lines that define invalid C identifiers, then remove blank lines and +# lines that define lowercase values (those are never path values). Each +# line remaining looks like +# <name> = <value> +# (but = and surrounding spaces are optional, hence can't remove all spaces). +# Change this to #ifndef DEFAULT_name@#define DEFAULT_name "value"@#endif, +# then change the @'s to newlines (sed isn't good at multiline replacements). +# +# No backslash-newline escapes in the long sed replacement because that +# will turn into a space in the output. +# +# Without the $TEXMF/dbtex/etc. substitutions, if the cnf file was +# not found, the compile-time paths would be of little use, since TEXMF +# (etc.) wouldn't be defined. Alternatively, we could have a way to +# specify compile-time default values for variables in general, but I +# think it's better to keep the last-resort paths as simple as possible. +# +# The definition of DEFAULT_TEXMF (and other variables) +# that winds up in the final paths.h will not be used. +$(kpathsea_dir)/paths.h: texmf.cnf + echo "/* paths.h: Generated from texmf.cnf `date`. */" >$@ + sed -e 's/%.*//' -e 's/^[ ]*//' -e 's/[ ]*$$//' texmf.cnf \ + | grep '^[ ]*[A-Z1_]*[ =]' \ + | sed '/^$$/d' \ + | sed 's/^\([^ =]*\)[ ]*=*[ ]*\(.*\)/#ifndef DEFAULT_\1@#define DEFAULT_\1 "\2"@#endif/' \ + | tr @ '\012' \ + | sed -e 's@\$$TEXMF@$(texmf)@g' \ + -e 's@\$$dbtex@$(texinputdir)@g' \ + -e 's@\$$dbfonts@$(fontdir)@g' \ + -e 's@\$$VARTEXFONTS@/var/tex/fonts@g' \ + -e 's@\$$prefix@$(prefix)@g' \ + >>$@ + +# Need an extra definition for this. Dependencies included below. +tex-file.o: + $(KPATHSEA_CC) -DDEFAULT_FONT_SIZES='\"$(default_texsizes)\"' $(srcdir)/tex-file.c + +check: kpsewhich + ./kpsewhich -expand-var '$$TEXMF' + +install: install-exec install-data +uninstall: uninstall-exec uninstall-data + +install-exec: kpsewhich + $(SHELL) $(top_srcdir)/../mkdirchain $(bindir) $(scriptdir) \ + $(libdir) $(web2cdir) + if grep 'original MakeTeXPK --' $(scriptdir)/MakeTeXPK >/dev/null 2>&1\ + || test ! -r $(scriptdir)/MakeTeXPK; then \ + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXPK $(scriptdir)/MakeTeXPK; \ + else true; fi + if grep 'original MakeTeXMF --' $(scriptdir)/MakeTeXMF >/dev/null 2>&1\ + || test ! -r $(scriptdir)/MakeTeXMF; then \ + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXMF $(scriptdir)/MakeTeXMF; \ + else true; fi + if grep 'original MakeTeXTFM --' $(scriptdir)/MakeTeXTFM >/dev/null 2>&1\ + || test ! -r $(scriptdir)/MakeTeXTFM; then \ + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXTFM $(scriptdir)/MakeTeXTFM; \ + else true; fi + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXls-R $(scriptdir)/MakeTeXls-R + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXcommon $(web2cdir)/MakeTeXcommon + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXmkdir $(web2cdir)/MakeTeXmkdir + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXnames $(web2cdir)/MakeTeXnames + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXnames.cnf $(web2cdir)/MakeTeXnames.cnf + $(INSTALL_SCRIPT) $(srcdir)/MakeTeXupdate $(web2cdir)/MakeTeXupdate + $(INSTALL_LIBTOOL_LIBS) $(libdir) lib$(library).la + $(INSTALL_LIBTOOL_PROG) $(bindir) kpsewhich +uninstall-exec: + rm -f $(bindir)/kpsewhich + +install-data: texmf.cnf kpathsea.info + $(SHELL) $(top_srcdir)/../mkdirchain $(texmf) $(infodir) $(web2cdir) + if grep 'original texmf.cnf --' $(web2cdir)/texmf.cnf >/dev/null 2>&1 \ + || test ! -r $(web2cdir)/texmf.cnf; then \ + $(INSTALL_DATA) texmf.cnf $(web2cdir)/texmf.cnf; \ + else true; fi + $(INSTALL_DATA) $(srcdir)/kpathsea.info $(infodir)/kpathsea.info + $(SHELL) $(top_srcdir)/../mkdirchain $(includedir)/kpathsea + for f in $(install_headers); do \ + $(INSTALL_DATA) $$f $(includedir)/kpathsea/$$f; done + rm -f $(includedir)/kpathsea/c-auto.h + $(POSTINSTALL) + test -r $(infodir)/dir || $(INSTALL_DATA) $(top_srcdir)/../dir $(infodir) + if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ + install-info --info-dir=$(infodir) $(infodir)/kpathsea.info; \ + else true; fi + +uninstall-data: + rm -f $(infodir)/kpathsea.info* + for f in $(install_headers); do rm -f $(includedir)/$$f; done + +# distdir is used by other distributions; they define $(distdir). +distdir: doc $(library).dvi $(library).h + rm -rf $(distdir) + mkdir -p $(distdir) + ln $(ln_files) klibtool.version $(distdir) + touch *.info* + ln MakeTeX* *.info* *.texi $(library).aux $(library).cps $(distdir) + ln BUGS CONFIGURE HIER PROJECTS *.ac $(distdir) + touch kpathsea.h # to avoid .cps.h rule on Solaris + cd $(distdir) && rm -f paths.h + cd $(distdir) && add-version $(version) version.c + +# I don't use this, but other programmers want it. acconfig.h is an +# autoheader input file, not an includable C header. Bad name. +$(library).h: always + rm -f $@ + ls -1 *.h | grep -v acconfig.h \ + | sed -e 's,^,#include <kpathsea/,' -e s',$$,>,' >$@ + touch -r `ls -1t *.h | tail +2 | head -1` $@ +always: +.PHONY: always + +ac_include ../make/config.make + +info: $(library).info +dvi: $(library).dvi + +$(library).info: bugs.texi hier.texi install.texi unixtex.texi + +##ifdef HOSTNAME +##INSTALL: install.texi +## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +## add-info-toc $@ +##BUGS: bugs.texi +## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +## add-info-toc $@ +##HIER: hier.texi +## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +##unixtex.ftp: unixtex.texi +## $(MAKEINFO) $(one_info) $(MAKEINFO_FLAGS) $< -o $@ +##doc: info HIER BUGS INSTALL unixtex.ftp +##endif + +ac_include ../make/clean.make + +mostlyclean:: + rm -f kpsewhich *.lo + rm -rf PROF PROF_SHARED SHARED STATIC +distclean:: + rm -f paths.h texmf.cnf texmf.sed + +ac_include ../make/rdepend.make +absolute.lo: absolute.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ + ../kpathsea/c-pathch.h +atou.lo: atou.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +basename.lo: basename.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h +cnf.lo: cnf.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/c-ctype.h \ + ../kpathsea/cnf.h ../kpathsea/db.h ../kpathsea/str-list.h \ + ../kpathsea/hash.h ../kpathsea/line.h ../kpathsea/paths.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/tex-file.h ../kpathsea/variable.h +concat.lo: concat.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +concat3.lo: concat3.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +concatn.lo: concatn.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/concatn.h \ + ../kpathsea/c-vararg.h +db.lo: db.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ + ../kpathsea/c-fopen.h ../kpathsea/c-pathch.h ../kpathsea/db.h \ + ../kpathsea/str-list.h ../kpathsea/hash.h ../kpathsea/line.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/readable.h ../kpathsea/tex-file.h ../kpathsea/variable.h +debug.lo: debug.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +dir.lo: dir.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-dir.h \ + ../kpathsea/c-stat.h \ + ../kpathsea/hash.h +elt-dirs.lo: elt-dirs.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/expand.h ../kpathsea/fn.h ../kpathsea/pathsearch.h \ + ../kpathsea/str-llist.h ../kpathsea/xopendir.h ../kpathsea/c-dir.h +expand.lo: expand.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/expand.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/tilde.h ../kpathsea/variable.h +extend-fname.lo: extend-fname.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +file-p.lo: file-p.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/xstat.h \ + ../kpathsea/c-stat.h +find-suffix.lo: find-suffix.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h +fn.lo: fn.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/fn.h +fontmap.lo: fontmap.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h \ + ../kpathsea/c-fopen.h ../kpathsea/fontmap.h ../kpathsea/hash.h \ + ../kpathsea/line.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/str-list.h ../kpathsea/tex-file.h +getopt.lo: getopt.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h getopt.h +getopt1.lo: getopt1.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h getopt.h +hash.lo: hash.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/hash.h \ + ../kpathsea/str-list.h +kdefault.lo: kdefault.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/default.h +kpsewhich.o: kpsewhich.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h \ + ../kpathsea/c-pathch.h ../kpathsea/expand.h ../kpathsea/getopt.h \ + ../kpathsea/line.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/proginit.h ../kpathsea/tex-file.h ../kpathsea/tex-glyph.h \ + ../kpathsea/variable.h +line.lo: line.c +magstep.lo: magstep.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/magstep.h +make-suffix.lo: make-suffix.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h +path-elt.lo: path-elt.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h +pathsearch.lo: pathsearch.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/absolute.h ../kpathsea/expand.h ../kpathsea/db.h \ + ../kpathsea/str-list.h ../kpathsea/pathsearch.h \ + ../kpathsea/str-llist.h ../kpathsea/readable.h ../kpathsea/variable.h +proginit.lo: proginit.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/proginit.h ../kpathsea/tex-file.h +progname.lo: progname.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ + ../kpathsea/c-pathch.h ../kpathsea/c-stat.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h +putenv.lo: putenv.c +readable.lo: readable.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-stat.h \ + ../kpathsea/readable.h ../kpathsea/tex-hush.h ../kpathsea/truncate.h +rm-suffix.lo: rm-suffix.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +str-list.lo: str-list.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/str-list.h +str-llist.lo: str-llist.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/str-llist.h +strcasecmp.lo: strcasecmp.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +strstr.lo: strstr.c +strtol.lo: strtol.c config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +tex-file.lo: tex-file.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/c-vararg.h ../kpathsea/cnf.h ../kpathsea/default.h \ + ../kpathsea/expand.h ../kpathsea/fontmap.h ../kpathsea/hash.h \ + ../kpathsea/paths.h ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/tex-file.h ../kpathsea/tex-make.h ../kpathsea/variable.h +tex-glyph.lo: tex-glyph.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/absolute.h \ + ../kpathsea/expand.h ../kpathsea/fontmap.h ../kpathsea/hash.h \ + ../kpathsea/pathsearch.h ../kpathsea/str-llist.h \ + ../kpathsea/tex-glyph.h ../kpathsea/tex-file.h ../kpathsea/tex-make.h \ + ../kpathsea/variable.h +tex-hush.lo: tex-hush.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/pathsearch.h \ + ../kpathsea/str-llist.h ../kpathsea/tex-hush.h ../kpathsea/variable.h +tex-make.lo: tex-make.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/c-pathch.h ../kpathsea/concatn.h ../kpathsea/c-vararg.h \ + ../kpathsea/db.h ../kpathsea/str-list.h ../kpathsea/fn.h \ + ../kpathsea/magstep.h ../kpathsea/readable.h ../kpathsea/tex-make.h \ + ../kpathsea/tex-file.h ../kpathsea/variable.h +tilde.lo: tilde.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathch.h \ + ../kpathsea/tilde.h +truncate.lo: truncate.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-namemx.h \ + ../kpathsea/c-pathch.h ../kpathsea/c-pathmx.h ../kpathsea/truncate.h +uppercasify.lo: uppercasify.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h +variable.lo: variable.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-ctype.h \ + ../kpathsea/cnf.h ../kpathsea/fn.h ../kpathsea/variable.h +version.lo: version.c +xcalloc.lo: xcalloc.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xfopen.lo: xfopen.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xfseek.lo: xfseek.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xftell.lo: xftell.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xgetcwd.lo: xgetcwd.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-pathmx.h +xmalloc.lo: xmalloc.c +xopendir.lo: xopendir.c ../kpathsea/config.h c-auto.h \ + ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/xopendir.h \ + ../kpathsea/c-dir.h +xputenv.lo: xputenv.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h +xrealloc.lo: xrealloc.c +xstat.lo: xstat.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/xstat.h \ + ../kpathsea/c-stat.h +xstrdup.lo: xstrdup.c ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h
new file mode 100644 --- /dev/null +++ b/kpathsea/NEWS @@ -0,0 +1,162 @@ +This file records noteworthy changes. + +3.0 (7 February 1997) +* Distribution terms changed to the GNU Library General Public License. +* Default directory structure matches the TDS standard. The most + important change is in the fonts/ directory: the file type (tfm, pk) + is now directly underneath fonts/. Also, mft/ is now at the top level. + `modeless' is used for gsftopk/ps2pk/etc.-generated fonts. +* Change in searching algorithm: if the name already has a suffix + (foo.sty), search for it by itself first, before appending the default + suffix (foo.sty.tex). This loses if you have an executable named + foo.bar, with documentation in foo.bar.tex (foo.bar will be found + first). But this is unusual, and the other case is common. +* Environment variables PATH_program (e.g., TEXINPUTS_latex) checked + for, as with configuration file values (TEXINPUTS.latex). +* Multiple TEXMF trees supported, via the following new facility: +* Shell brace expansion {foo,bar} implemented, thanks to Bash. +* Multiple ls-R files supported via the TEXMFDBS path. +* An ``alias'' database for files in ls-R supported, to handle 8.3 problems. +* Directories in the ls-R file can be relative (./) as well as absolute (/). +* New MakeTeX{PK,TFM,MF} scripts with more features, based on teTeX's. +* DVIPSMAKEPK (etc.) actually overrides the name `MakeTeXPK', as documented. +* MakeTeX* can be globally disabled via configure options. +* Support for building as a shared library with configure --enable-shared. +* Directories whose names begin with `.' are ignored. +* Some warnings can be suppressed by TEX_HUSH cnf value or envvar. +* kpsewhich has many new capabilities, documented via --help and in the manual. +* texfonts.map parsing has an include directive, and @c is a comment. +* Input lines in texmf.cnf can be continued with \. +* TEXMFLOG can be set in texmf.cnf, as previously documented. +* SELFAUTODIR and SELFAUTOPARENT are defined according to the location + of the binary, and used to search for texmf.cnf. +* /// (or more) is equivalent to //. +* If $HOME = / (as with root on some systems), avoid creating // in paths. +* Support for AFM, PostScript Type 1 font, source, documentation, Omega, + and MetaPost-related file formats. +* New header kpathsea.h with all #include files. +* Under DOS, ls-R lines need not start with . or / or \ (e.g., c:). +* Amiga support. + +2.6 (9 January 1995) +* MakeTeXPK installed from kpathsea, instead of each driver. +* MakeTeXPK.site looked for in texmf/web2c, instead of texmf/dvips. +* texmf.cnf installed and looked for in texmf/web2c, instead of texmf. +* If a mode is not explicitly specified, search all subdirectories (this + was actually in a previous release). +* install-sh only looked for in the top-level directory. +* kpsewhich replaces and generalizes kpsexpand. + +2.5 (15 December 1994) +* Go back to calling db_insert after a successful MakeTeXPK, and check + for lack of an ls-R. +* Handle case of magstep -.5 for MakeTeXPK properly. + +2.4 (28 October 1994) +* Avoid calling db_insert, which caused a segmentation fault. + +2.3 (26 October 1994) +* Extra :'s in an envvar value, referring to the texmf.cnf value, work. +* Names like dpi600/cmr10.pk can be found in ls-R. +* KPATHSEA_DEBUG environment variable checked. +* Directories like pk/ljfour directly under $TEXMF/fonts are found. +* New standalone program, kpsexpand, optionally compiled and installed, + to do variable expansion (not path searching). +* Debugging output written to stderr instead of stdout. +* pxlNNN support removed; I never intended to support `pxl1500', and + pxl300 is never used. + +2.2 (14 October 1994) +* MakeTeXPK invoked for the any_glyph type; this is for xdvik. +* MakeTeXPK sources $(psheaderdir)/MakeTeXPK.site if it exists. +* pxlNNN/cmr10.pk searched for (as well as dpiNNN/cmr10.pk and cmr10.NNNpk) + +2.1 (12 September 1994) +* Manual goes through TeX, and .cps/.aux files are in the distribution. +* INSTALL* variables set at the top level. +* Dependency on GNU tr making paths.h and texmf.sed (->texmf.cnf) removed. +* texmf.cnf installed if it didn't previously exist. + +2.0 (8 September 1994) +* Runtime configuration file support; see the manual. +* Both dpi600/cmr10.pk and cmr10.600pk are searched for. +* ls-R matches $TEXMF//latex2e vs. $TEXMF//latex209. +* $TEXMFLOG, if set, specifies a filename for logging successful searches. +* All directory entries beginning with `.' are ignored, not just `.' and `..'. +* Default path for PK and GF fonts includes the mode name. +* ls-R is in $TEXMFROOT instead of hardwired at compile time. +* More debugging flags, and they can be set with client program options. +* If MakeTeX{PK,TFM} fail, or aren't invoked, a file missfont.log is + written with the requisite commands, as in dvips. +* More 328/329/330 fixes, maybe for the last time. +* The override font paths (XDVIFONTS etc.) apply only to glyph (PK/GF) + searches, not TFM or VF. +* -g is not the default when linking, to avoid unnecessarily large binaries + (due to static libraries) under Linux. +* configure checks for a smart putenv. +* Stat results are cached to speed up disk searches. + +1.8 (2 April 1994) +* New target install-info, so the documentation can be installed without + the headers. +* Existing but unreadable files are complained about, instead of just ignored. +* A leading %% in a path element forbids searching the disk for that + element; only a db will be searched (if it exists). +* The db is only used if it might be relevant to a given path element, + not searched first regardless. + +1.7 (1 March 1994) +* Searches can use an externally-built ls-R ``database'', for speed. +* `VPATH = .' lines removed from generated Makefile, for broken Sun make. +* A path foo//tfm finds foo/tfm as well as foo/*/tfm. + +1.6 (3 February 1994) +* Memory fault in copying long paths fixed. +* More variables passed down from the top-level Makefile. +* Mention SMART_PUTENV in the INSTALL file, and fix bug in xputenv.c + when one envvar is a proper prefix of another. +* More attempts at eliminating magstephalf annoyances. +* Directory name substitutions are done globally when creating paths.h. +* Various changes for DOS. + +1.5 (24 January 1994) +* Default paths changed. +* Defining GCC_WCHAR lets GCC define wchar_t. +* EXIT_FAILURE and EXIT_SUCCESS defined in all cases (if they're not already). +* str[r]chr never redefined (I hope). + +1.4 (3 November 1993) +* Check closest fallback font size. +* All default paths (including dvips') in paths.h.in, not the Makefile. +* Rearrange directory lists so that dirs in which a file is found + migrate to the top. +* Update for Autoconf 1.7. + +1.3 (6 October 1993) +* Fix free of non-malloced memory bug. +* Fix uninitialized gf path bug. +* mkdirchain invoked as an absolute filename. + +1.2 (27 September 1993) +* Running MakeTeXPK is tried before the fallback resolutions. +* The final bitmap name uses a variable spec, so DOS & OS/2 can get + dpi300/cmr10.pk. +* Document TeX-specific features. +* Dpi passed to MakeTeXPK via the envvar KPATHSEA_DPI instead of MAKETEX_DPI. + +1.1 (26 August 1993) +* Installation fixes. + +1.0 (5 August 1993) +* Routines to look up TeX font files, default path specifications, etc. +* Sort-of pattern matching: /foo//bar matches subdirectories + /foo/a/bar, /foo/b/bar, /foo/a1/a2/bar, etc. +* $var and ${var} expansion. +* Support for MakeTeX... scripts. +* Support for fallback resolutions and font. +* Lazy evaluation of path elements. +* Some runtime debugging support. + +0.2 (12 May 1993) + +First general release as a standalone library.
new file mode 100644 --- /dev/null +++ b/kpathsea/PROJECTS @@ -0,0 +1,23 @@ +Here are some ideas for improvements. If you would like to contribute, +please send mail to me (kb@mail.tug.org) first. + + +If the library is built shared, it would be nice if the binaries did not +have it as a dependency; as it is, all of Web2c gets rebuilt if the +library changes, even though logically only relinking (maybe not even +that) is necessary. This is because if the Web2c programs themselves +get relinked (as they do), we must reconvert the web programs. + +For multiple texmf.cnf files (or multiple dvips configuration files), +replace extra :'s by the value from the next file in the path, rather +than the value from the next level. + +Support runtime registration of file types to search for, not just +compile-time. Either by a procedure call, or by reading a configuration +file. Implies putting the envvar list into the kpse_format_info_type struct. + +cd during filesystem operations, to minimize the pathname +length. Implies always using xgetwd. + +Separate the routines needed for path searching, and others that are here +only because it's a common place -- i.e., a kutil library.
new file mode 100644 --- /dev/null +++ b/kpathsea/README @@ -0,0 +1,19 @@ +This directory contains the Kpathsea[rch] library, which implements +generic path searching, configuration, and TeX-specific file searching. + +See `NEWS' for changes by release, `ChangeLog` for all changes. +See `INSTALL' for installation instructions. +See `BUGS' for bug reporting details. +See `CONFIGURE' for details on running Autoconf-generated configure scripts. +See `PROJECTS' for future improvements you might like to work on. + +Suggestions for improvements in either the library or the documentation, +no matter how small, are welcome. But please read ./BUGS before sending +a bug report. + +This is free software. See the files COPYING* for copying permissions. +The top-level headers are `pathsearch.h' for the generic path searching +support, and `tex-{file,glyph}.h' for the TeX-specific support. + +kb@mail.tug.org +Member of the League for Programming Freedom -- write lpf@uunet.uu.net.
new file mode 100644 --- /dev/null +++ b/kpathsea/absolute.c @@ -0,0 +1,61 @@ +/* absolute.c: Test if a filename is absolute or explicitly relative. + +Copyright (C) 1993, 94, 95 Karl Berry. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include <kpathsea/config.h> + +#include <kpathsea/absolute.h> +#include <kpathsea/c-pathch.h> + +#ifdef DOSISH +#include <kpathsea/c-ctype.h> /* for ISALPHA */ +#endif /* DOS */ + + +/* Sorry this is such a system-dependent mess, but I can't see any way + to usefully generalize. */ + +boolean +kpse_absolute_p P2C(const_string, filename, boolean, relative_ok) +{ +#ifdef VMS +#include <string.h> + return strcspn (filename, "]>:") != strlen (filename); +#else /* not VMS */ + boolean absolute = IS_DIR_SEP (*filename) +#ifdef DOSISH + || ISALPHA (*filename) && IS_DEVICE_SEP (filename[1]) +#endif /* DOSISH */ +#ifdef AMIGA + /* Colon anywhere means a device. */ + || strchr (filename, ':') +#endif /* AMIGA */ + ; + boolean explicit_relative + = relative_ok +#ifdef AMIGA + /* Leading / is like `../' on Unix and DOS. Allow Unix syntax, + too, though, because of possible patch programs like + `UnixDirsII' by Martin Scott. */ + && IS_DIR_SEP (*filename) || 0 +#endif /* AMIGA */ + && (*filename == '.' && (IS_DIR_SEP (filename[1]) + || (filename[1] == '.' && IS_DIR_SEP (filename[2])))); + + return absolute || explicit_relative; +#endif /* not VMS */ +}
new file mode 100644 --- /dev/null +++ b/kpathsea/absolute.h @@ -0,0 +1,31 @@ +/* absolute.h: Declare absolute filename predicate. + +Copyright (C) 1993, 94 Karl Berry. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_ABSOLUTE_H +#define KPATHSEA_ABSOLUTE_H + +#include <kpathsea/types.h> +#include <kpathsea/c-proto.h> + + +/* True if FILENAME is absolute (/foo) or, if RELATIVE_OK is true, + explicitly relative (./foo, ../foo), else false (foo). */ + +extern boolean kpse_absolute_p P2H(const_string filename, boolean relative_ok); + +#endif /* not KPATHSEA_ABSOLUTE_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/acconfig.h @@ -0,0 +1,76 @@ +/* acconfig.h -- used by autoheader when generating c-auto.h.in. + + If you're thinking of editing acconfig.h to fix a configuration + problem, don't. Edit the c-auto.h file created by configure, + instead. Even better, fix configure to give the right answer. */ + +/* kpathsea/configure.in tests for these functions with + kb_AC_KLIBTOOL_REPLACE_FUNCS, and naturally Autoheader doesn't know + about that macro. Since the shared library stuff is all preliminary + anyway, I decided not to change Autoheader, but rather to hack them + in here. */ +#undef HAVE_BASENAME +#undef HAVE_PUTENV +#undef HAVE_STRCASECMP +#undef HAVE_STRTOL +#undef HAVE_STRSTR + +@TOP@ + +/* Define if your putenv doesn't waste space when the same environment + variable is assigned more than once, with different (malloced) + values. This is true only on NetBSD/FreeBSD, as far as I know. See + xputenv.c. */ +#undef SMART_PUTENV + +/* Define if you are using GNU libc or otherwise have global variables + `program_invocation_name' and `program_invocation_short_name'. */ +#undef HAVE_PROGRAM_INVOCATION_NAME + +/* Define if you get clashes concerning wchar_t, between X's include + files and system includes. */ +#undef FOIL_X_WCHAR_T + +/* tex: Define to enable --ipc. */ +#undef IPC + +/* all: Define to enable running scripts when missing input files. */ +#define MAKE_TEX_MF_BY_DEFAULT 0 +#define MAKE_TEX_PK_BY_DEFAULT 0 +#define MAKE_TEX_TEX_BY_DEFAULT 0 +#define MAKE_TEX_TFM_BY_DEFAULT 0 +#define MAKE_OMEGA_OFM_BY_DEFAULT 0 +#define MAKE_OMEGA_OCP_BY_DEFAULT 0 + +/* web2c: Define if gcc asm needs _ on external symbols. */ +#undef ASM_NEEDS_UNDERSCORE + +/* web2c: Define when using system-specific files for arithmetic. */ +#undef ASM_SCALED_FRACTION + +/* web2c: Define to enable HackyInputFileNameForCoreDump.tex. */ +#undef FUNNY_CORE_DUMP + +/* web2c: Define to disable architecture-independent dump files. + Faster on LittleEndian architectures. */ +#undef NO_DUMP_SHARE + +/* web2c: Default editor for interactive `e' option. */ +#define EDITOR "vi +%d %s" + +/* web2c: Window system support for Metafont. */ +#undef HP2627WIN +#undef MFTALKWIN +#undef NEXTWIN +#undef REGISWIN +#undef SUNWIN +#undef TEKTRONIXWIN +#undef UNITERMWIN +#undef X11WIN + +/* xdvik: Define if you have SIGIO, F_SETOWN, and FASYNC. */ +#undef HAVE_SIGIO + +/* xdvik: Define to avoid using any toolkit (and consequently omit lots + of features). */ +#undef NOTOOL
new file mode 100644 --- /dev/null +++ b/kpathsea/atou.c @@ -0,0 +1,30 @@ +/* atou.c: like atoi, but if the number is negative, abort. + +Copyright (C) 1992, 95 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include "config.h" + +unsigned +atou P1C(const_string, s) +{ + int i = atoi (s); + + if (i < 0) + FATAL1 ("I expected a positive number, not %d", i); + + return i; +}
new file mode 100644 --- /dev/null +++ b/kpathsea/basename.c @@ -0,0 +1,49 @@ +/* basename.c: return the last element in a path. + +Copyright (C) 1992, 94, 95, 96 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* Have to include this first to get c-auto.h. */ +#include <kpathsea/config.h> + +#ifndef HAVE_BASENAME /* rest of file */ + +#include <kpathsea/c-pathch.h> + +/* Return NAME with any leading path stripped off. This returns a + pointer into NAME. For example, `basename ("/foo/bar.baz")' + returns "bar.baz". */ + +const_string +basename P1C(const_string, name) +{ + const_string base = NULL; + unsigned len = strlen (name); + + for (len = strlen (name); len > 0; len--) { + if (IS_DIR_SEP (name[len - 1]) || IS_DEVICE_SEP (name[len - 1])) { + base = name + len; + break; + } + } + + if (!base) + base = name; + + return base; +} + +#endif /* not HAVE_BASENAME */
new file mode 100644 --- /dev/null +++ b/kpathsea/bugs.texi @@ -0,0 +1,836 @@ +@ifclear version +@defcodeindex fl +@defcodeindex op +@end ifclear + +@node Reporting bugs +@section Reporting bugs + +@cindex reporting bugs +@cindex bugs, reporting + +@ifset version +(A copy of this chapter is in the file @file{kpathsea/BUGS}.) +@end ifset + +@flindex tex-k@@mail.tug.org @r{(bug address)} +@cindex bug address +If you have problems or suggestions, please report them to +@email{tex-k@@mail.tug.org} using the bug checklist below. + +Please report bugs in the documentation; not only factual errors or +inconsistent behavior, but unclear or incomplete explanations, typos, +wrong fonts, @dots{} + +@menu +* Bug checklist:: What to include in a good bug report. +* Mailing lists:: Joining the bugs or announcements mailing lists. +* Debugging:: Analyzing runtime problems. +* Logging:: Recording searches. +* Common problems:: When things go wrong. +@end menu + + +@node Bug checklist +@subsection Bug checklist + +@cindex checklist for bug reports +@cindex bug checklist + +Before reporting a bug, please check below to be sure it isn't already +known (@pxref{Common problems}). + +Bug reports should be sent via electronic mail to +@email{tex-k@@mail.tug.org}, or by postal mail to 135 Center Hill Road / +Plymouth, MA 02360 / USA. + +The general principle is that a good bug report includes all the +information necessary for reproduction. Therefore, to enable +investigation, your report should include the following: + +@itemize @bullet +@item +@cindex version numbers, determining +The version number(s) of the program(s) involved, and of Kpathsea +itself. You can get the former by giving a sole option @samp{--version} +to the program, and the latter by running @samp{kpsewhich --version}. +The @file{NEWS} and @file{ChangeLog} files also contain the version +number. + +@item +@pindex uname +The hardware, operating system (including version number), compiler, and +@code{make} program you are using (the output of @code{uname -a} is a +start on the first two, though often incomplete). If the bug involves +the X window system, include X version and supplier information as well +(examples: X11R6 from MIT; X11R4 from HP; OpenWindows 3.3 bundled with +SunOS 4.1.4). + +@item +@flindex config.log +Any options you gave to @code{configure}. This is recorded in the +@file{config.status} files. + +@cindex configuration bugs +@flindex config.status +If you are reporting a bug in @samp{configure} itself, it's probably +system-dependent, and it will be unlikely the maintainers can do +anything useful if you merely report that thus-and-such is broken. +Therefore, you need to do some additional work: for some bugs, you can +look in the file @file{config.log} where the test that failed should +appear, along with the compiler invocation and source program in +question. You can then compile it yourself by hand, and discover why +the test failed. Other @samp{configure} bugs do not involve the +compiler; in that case, the only recourse is to inspect the +@code{configure} shell script itself, or the Autoconf macros that +generated @code{configure}. + +@item +The log of all debugging output, if the bug is in path searching. You +can get this by setting the environment variable @code{KPATHSEA_DEBUG} +to @samp{-1} before running the program. Please look at the log +yourself to make sure the behavior is really a bug before reporting it; +perhaps ``old'' environment variable settings are causing files not to +be found, for example. + +@item +The contents of any input files necessary to reproduce the bug. For +bugs in DVI-reading programs, for example, this generally means a DVI +file (and any EPS or other files it uses)---@TeX{} source files are +helpful, but the DVI file is necessary, because that's the actual +program input. + +@cindex shar@r{, recommended} +GNU @code{shar}, available from @url{ftp://prep.ai.mit.edu/pub/gnu} is +a convenient way of packaging multiple (possibly binary) files for +electronic mail. If you feel your input files are too big to send by +email, you can ftp them to @url{ftp://ftp.tug.org/incoming} (that +directory is writable, but not readable). + +@item +@cindex context diff +@cindex sending patches +@flindex ChangeLog @r{entry} +If you are sending a patch (do so if you can!), please do so in the form +of a context diff (@samp{diff -c}) against the original distribution +source. Any other form of diff is either not as complete or harder for +me to understand. Please also include a @file{ChangeLog} entry. + +@item +@cindex stack trace +@cindex debugger +@cindex crashes, reporting +@cindex core dumps, reporting +@cindex null pointers, dereferencing +@pindex gdb@r{, recommended} +If the bug involved is an actual crash (i.e., core dump), it is easy and +useful to include a stack trace from a debugger (I recommend the GNU +debugger GDB, available from @url{ftp://prep.ai.mit.edu/pub/gnu}). If +the cause is apparent (a @code{NULL} value being dereferenced, for +example), please send the details along. If the program involved is +@TeX{} or Metafont, and the crash is happening at apparently-sound code, +however, the bug may well be in the compiler, rather than in the program +or the library (@pxref{TeX or Metafont failing,, @TeX{} or Metafont +failing}). + +@item +Any additional information that will be helpful in reproducing, +diagnosing, or fixing the bug. +@end itemize + + +@node Mailing lists +@subsection Mailing lists + +@cindex mailing lists +@cindex bug mailing list +@cindex announcement mailing list + +Web2c and Kpathsea in general are discussed on the mailing list +@email{tex-k@@mail.tug.org}. +@flindex tex-k-request@@mail.tug.org +To join, email @email{tex-k-request@@mail.tug.org} with a line +consisting of + +@example +subscribe @var{you}@@@var{your.preferred.email.address} +@end example + +@noindent in the body of the message. + +You do not need to join to submit a report, nor will it affect whether +you get a response. There is no Usenet newsgroup equivalent (if you can +be the one to set this up, email @samp{tex-k-request}). Traffic on the +list is fairly light, and is mainly bug reports and enhancement requests +to the software. The best way to decide if you want to join or not is +read some of the archives from @url{ftp://ftp.tug.org/mail/archives/tex-k/}. + +Be aware that large data files are sometimes included in bug reports. +If this is a problem for you, do not join the list. + +@flindex tex-archive@@math.utah.edu +@cindex announcement mailing list +If you only want announcements of new releases, not bug reports and +discussion, join @email{tex-archive@@math.utah.edu} (via mail to +@email{tex-archive-request@@math.utah.edu}). + +@cindex @TeX{} help mailing list +@cindex La@TeX{} help mailing list +@cindex Usenet @TeX{} newsgroup +@cindex newsgroup for @TeX{} +@cindex help, mailing list for general @TeX{} +@flindex info-tex@@shsu.edu +@flindex comp.text.tex +If you are looking for general @TeX{} help, such as how to use La@TeX{}, +please use the mailing list @email{info-tex@@shsu.edu} mailing list, +which is gatewayed to the @samp{comp.text.tex} Usenet newsgroup (or post +to the newsgroup; the gateway is bidirectional). + + +@node Debugging +@subsection Debugging + +@cindex debugging +@cindex runtime debugging +@cindex options for debugging + +@vindex kpathsea_debug +@flindex debug.h +Kpathsea provides a number of runtime debugging options, detailed below +by their names and corresponding numeric values. When the files you +expect aren't being found, the thing to do is enable these options and +examine the output. + +You can set these with some runtime argument (e.g., @samp{-d}) to the +program; in that case, you should use the numeric values described in +the program's documentation (which, for Dvipsk and Xdvik, are different +than those below). It's best to give the @samp{-d} (or whatever) option +first, for maximal output. Dvipsk and Xdvik have additional +program-specific debugging options as well. + +@vindex KPATHSEA_DEBUG +@vindex kpathsea_debug +You can also set the environment variable @code{KPATHSEA_DEBUG}; in this +case, you should use the numbers below. Also, if you run the program +under a debugger and set the variable @code{kpathsea_debug}, Also use +the numbers below + +@kindex -1 @r{debugging value} +In any case, by far the simplest value to use is @samp{-1}, which will +turn on all debugging output. This is usually better than guessing +which particular values will yield the output you need. + +@cindex debugging output +@cindex standard error and debugging output +Debugging output always goes to standard error, so you can redirect it +easily. For example, in Bourne-compatible shells: +@example +dvips -d -1 @dots{} 2>/tmp/debug +@end example + +@cindex Kpsewhich, and debugging +It is sometimes helpful to run the standalone Kpsewhich utility +(@pxref{Invoking kpsewhich}), instead of the original program. + +@cindex numeric debugging values +In any case, you can @emph{not} use the @emph{names} below; you must +always use somebody's numbers. (Sorry.) To set more than one +option, just sum the corresponding numbers. + +@vtable @code +@item KPSE_DEBUG_STAT @r{(1)} +Report @samp{stat}(2) calls. This is useful for verifying that your +directory structure is not forcing Kpathsea to do many additional file +tests (@pxref{Slow path searching}, and @pxref{Subdirectory +expansion}). If you are using an up-to-date @file{ls-R} database +(@pxref{Filename database}), this should produce no output unless a +nonexistent file that must exist is searched for. + +@item KPSE_DEBUG_HASH @r{(2)} +Report lookups in all hash tables: @file{ls-R} and @file{aliases} +(@pxref{Filename database}); font aliases (@pxref{Fontmap}); and config +file values (@pxref{Config files}). Useful when expected values are not +being found, e.g.., file searches are looking at the disk instead of +using @file{ls-R}. + +@item KPSE_DEBUG_FOPEN @r{(4)} +@findex fopen@r{, redefined} +Report file openings and closings. Especially useful when your system's +file table is full, for seeing which files have been opened but never +closed. In case you want to set breakpoints in a debugger: this works by +redefining @samp{fopen} (@samp{fclose}) to be @samp{kpse_fopen_trace} +(@samp{kpse_fclose_trace}). + +@item KPSE_DEBUG_PATHS @r{(8)} +@tindex kpse_format_info_type +Report general path information for each file type Kpathsea is asked to +search. This is useful when you are trying to track down how a +particular path got defined---from @file{texmf.cnf}, @file{config.ps}, +an environment variable, the compile-time default, etc. This is the +contents of the @code{kpse_format_info_type} structure defined in +@file{tex-file.h}. + +@item KPSE_DEBUG_EXPAND @r{(16)} +Report the directory list corresponding to each path element Kpathsea +searches. This is only relevant when Kpathsea searches the disk, since +@file{ls-R} searches don't look through directory lists in this way. + +@item KPSE_DEBUG_SEARCH @r{(32)} +Report on each file search: the name of the file searched for, the path +searched in, whether or not the file must exist (when drivers search for +@file{cmr10.vf}, it need not exist), and whether or not we are +collecting all occurrences of the file in the path (as with, e.g., +@file{texmf.cnf} and @file{texfonts.map}), or just the first (as with +most lookups). This can help you correlate what Kpathsea is doing with +what is in your input file. +@end vtable + +@cindex @samp{kdebug:} +@vindex hash_summary_only @r{variable for debugging} +@cindex hash table buckets, printing +Debugging output from Kpathsea is always written to standard error, and +begins with the string @samp{kdebug:}. (Except for hash table buckets, +which just start with the number, but you can only get that output +running under a debugger. See comments at the @code{hash_summary_only} +variable in @file{kpathsea/db.c}.) + + +@node Logging +@subsection Logging + +@cindex log file + +@cindex logging successful searches +@cindex recording successful searches +@cindex usage patterns, finding +@cindex disk usage, reducing +Kpathsea can record the time and filename found for each successful +search. This may be useful in finding good candidates for deletion when +your filesystem is full, or in discovering usage patterns +at your site. + +@vindex TEXMFLOG +To do this, define the environment or config file variable +@code{TEXMFLOG}. The value is the name of the file to append the +information to. The file is created if it doesn't exist, and appended +to if it does. + +@cindex epoch, seconds since +@findex time @r{system call} +Each successful search turns into one line in the log file: two words +separated by a space. The first word is the time of the search, as the +integer number of seconds since ``the epoch'', i.e., UTC midnight 1 +January 1970 (more precisely, the result of the @code{time} system +call). The second word is the filename. + +For example, after @code{setenv TEXMFLOG /tmp/log}, running Dvips on +@file{story.dvi} appends the following lines: + +@example +774455887 /usr/local/share/texmf/dvips/config.ps +774455887 /usr/local/share/texmf/dvips/psfonts.map +774455888 /usr/local/share/texmf/dvips/texc.pro +774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk +774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk +774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk +774455889 /usr/local/share/texmf/dvips/texc.pro +@end example + +@cindex privacy, semblance of +@noindent Only filenames that are absolute are recorded, to preserve +some semblance of privacy. + + +@node Common problems +@subsection Common problems + +@cindex common problems +@cindex problems, common +@cindex FAQ, Kpathsea + +Here are some common problems with configuration, compilation, linking, +execution, @dots{} + +@menu +* Unable to find files:: If your program can't find fonts (or whatever). +* Slow path searching:: If it takes forever to find anything. +* Unable to generate fonts:: If MakeTeXPK fails. +* TeX or Metafont failing:: Likely compiler bugs. + +* XtStrings:: When _XtStrings is undefined. +* dlopen:: When dlopen is undefined. +* ShellWidgetClass:: For dynamic linking troubles under OpenWindows. +* Pointer combination warnings:: For old compilers that don't grok char *. +@end menu + +@node Unable to find files +@subsubsection Unable to find files + +@cindex unable to find files +@cindex files, unable to find + +If a program complains it cannot find fonts (or other input files), any +of several things might be wrong. In any case, you may find the +debugging options helpful. @xref{Debugging}. + +@itemize @bullet +@item +Perhaps you simply haven't installed all the necessary files; the basic +fonts and input files are distributed separately from the programs. +@xref{unixtex.ftp}. + +@item +@flindex /etc/profile +@cindex environment variables, old +You have (perhaps unknowingly) told Kpathsea to use search paths that +don't reflect where the files actually are. One common cause is having +environment variables set from a previous installation, thus overriding +what you carefully set in @file{texmf.cnf} (@pxref{Supported file +formats}). System @file{/etc/profile} or other files such may be the +culprit. + +@item +@cindex symbolic links not found +@cindex leaf directories wrongly guessed +Your files reside in a directory that is only pointed to via a symbolic +link, in a leaf directory and is not listed in @file{ls-R}. + +Unfortunately, Kpathsea's subdirectory searching has an irremediable +deficiency: If a directory @var{d} being searched for subdirectories +contains plain files and symbolic links to other directories, but no +true subdirectories, @var{d} will be considered a leaf directory, i.e., +the symbolic links will not be followed. @xref{Subdirectory expansion}. + +You can work around this problem by creating an empty dummy subdirectory +in @var{d}. Then @var{d} will no longer be a leaf, and the symlinks will +be followed. + +The directory immediately followed by the @samp{//} in the path +specification, however, is always searched for subdirectories, even if +it is a leaf. Presumably you would not have asked for the directory to +be searched for subdirectories if you didn't want it to be. + +@item +If the fonts (or whatever) don't already exist, @code{MakeTeXPK} (or +@code{MakeTeXMF} or @code{MakeTeXTFM}) will try to create them. If +these rather complicated shell scripts fail, you'll eventually get an +error message saying something like @samp{Can't find font +@var{fontname}}. The best solution is to fix (or at least report) the +bug in @code{MakeTeXPK}; the workaround is to generate the necessary +fonts by hand with Metafont, or to grab them from a CTAN site +(@pxref{unixtex.ftp}). + +@item +There is a bug in the library. @xref{Reporting bugs}. +@end itemize + + +@node Slow path searching +@subsubsection Slow path searching + +@cindex excessive startup time +@cindex slow startup time +@cindex startup time, excessive + +If your program takes an excessively long time to find fonts or other +input files, but does eventually succeed, here are some possible culprits: + +@itemize @bullet +@item +Most likely, you just have a lot of directories to search, and that +takes a noticeable time. The solution is to create and maintain a +separate @file{ls-R} file that lists all the files in your main @TeX{} +hierarchy. @xref{Filename database}. Kpathsea always uses @file{ls-R} +if it's present; there's no need to recompile or reconfigure any of the +programs. + +@item +Your recursively-searched directories (e.g., +@file{/usr/local/share/texmf/fonts//}), contain a mixture of files and +directories. This prevents Kpathsea from using a useful optimization +(@pxref{Subdirectory expansion}). + +It is best to have only directories (and perhaps a @file{README}) in the +upper levels of the directory structure, and it's very important to have +@emph{only} files, and no subdirectories, in the leaf directories where +the dozens of TFM, PK, or whatever files reside. +@end itemize + +In any case, you may find the debugging options helpful in determining +precisely when the disk or network is being pounded. @xref{Debugging}. + + +@node Unable to generate fonts +@subsubsection Unable to generate fonts + +@cindex unable to generate fonts +@cindex font generation failures + +This can happen if either @code{MakeTeXPK} hasn't been installed +properly, or if the local installation of Metafont isn't correct. + +@cindex Metafont installation +If @code{mf} is a command not found by @code{MakeTeXPK}, then you need +to install Metafont (@pxref{unixtex.ftp}). + +@cindex Metafont using the wrong resolution +@cindex resolution, wrong +If Metafont runs, but generates fonts at the wrong resolution, you need +to be sure the @samp{M} and @samp{D} lines in your Dvips configuration +file match (@pxref{Config files,,, dvips, Dvips}). For example, if +@code{MakeTeXPK} is generating 300@dmn{dpi} fonts, but you need +600@dmn{dpi} fonts, you should have: +@example +M ljfour +D 600 +@end example + +@flindex .2602gf +@flindex 2602gf +@cindex Metafont making too-large fonts +@cindex proof mode +@cindex online Metafont display, spurious +If Metafont runs but generates fonts at a resolution of 2602@dmn{dpi} +(and prints out the name of each character as well as just a character +number, and maybe tries to display the characters), then your Metafont +base file probably hasn't been made properly. (It's using the default +@code{proof} mode, instead of an actual device mode.) To make a proper +@file{plain.base}, assuming the local mode definitions are contained in +a file @file{modes.mf}, run the following command (assuming Unix): + +@example +inimf "plain; input modes; dump" +@end example + +@noindent +@flindex plain.base +Then copy the @file{plain.base} file from the current directory to where +the base files are stored on your system +(@file{/usr/local/share/texmf/web2c} by default), and make a link +(either hard or soft) from @file{plain.base} to @file{mf.base} in that +directory. +@xref{inimf invocation,,, web2c, Web2c}. + + +@node TeX or Metafont failing +@subsubsection @TeX{} or Metafont failing + +@cindex @TeX{} failures +@cindex Metafont failures +@cindex compiler bugs +If @TeX{} or Metafont get a segmentation fault or otherwise fail while +running a normal input file, the problem is usually a compiler bug +(unlikely as that may sound). Even if the trip and trap tests are +passed, problems may lurk. Optimization occasionally causes trouble in +programs other than @TeX{} and Metafont themselves, too. + +Insufficient swap space may also cause core dumps or other erratic +behavior. + +@cindex optimization caveat +For a workaround, if you enabled any optimization flags, it's best to +omit optimization entirely. In any case, the way to find the facts is +to run the program under the debugger and see where it's failing. + +@cindex GNU C compiler bugs +@cindex system C compiler bugs +Also, if you have trouble with a system C compiler, I advise trying the +GNU C compiler. And vice versa, unfortunately; but in that case I also +recommend reporting a bug to the GCC mailing list; @pxref{Bugs,,, gcc, +Using and Porting GNU CC}. + +@cindex compiler bugs, finding +To report compiler bugs effectively requires perseverance and +perspicacity: you must find the miscompiled line, and that usually +involves delving backwards in time from the point of error, checking +through @TeX{}'s (or whatever program's) data structures. Things are +not helped by all-too-common bugs in the debugger itself. Good luck. + + +@ignore +@node Empty Makefiles +@subsubsection Empty Makefiles + +@cindex Makefiles, empty +@pindex sed @r{error from @code{configure}} +@pindex configure @r{error from @code{sed}} +@cindex NetBSD @code{configure} error +@cindex FreeBSD @code{configure} error +@cindex Mach10 @code{configure} error +@cindex AIX 4.1 @code{configure} error + +On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), @code{configure} +cannot properly create the Makefiles. Instead, you get an error +something like this: + +@example +prompt$ ./configure +@dots{} +creating Makefile +sed: 1: "\\@@^ac_include make/pat ...": \ can not be used as a string delimiter +@end example + +So far as I know, the bug here is in @code{/bin/sh} on these systems. I +don't have access to a machine running any of them, so if someone can +find a workaround that avoids the quoting bug, I'd be most +grateful. (Search for @code{ac_include} in the @code{configure} script +to get to the problematic code.) + +It should work to run @code{bash configure}, instead of using +@code{/bin/sh}. You can get Bash from +@url{ftp://prep.ai.mit.edu/pub/gnu} and mirrors. + + +@node wchar_t +@subsubsection @code{wchar_t} + +@vindex FOIL_X_WCHAR_T +@tindex wchar_t + +The upshot of all the following is that if you get error messages +regarding @code{wchar_t}, try defining @code{NO_FOIL_X_WCHAR_T} (for +Web2c) or @code{FOIL_X_WCHAR_T} (for everything else), as in: + +@example +make XCFLAGS=-DNO_FOIL_X_WCHAR_T @var{other-make-options} +@end example + +@flindex Xlib.h +@flindex stddef.h +@code{wchar_t} has caused infinite trouble. None of my code ever uses +@code{wchar_t}; all I want to do is include X header files and various +system header files, possibly compiling with GCC. This seems an +impossible task! The basic problem is that the X11 header +@file{<Xlib.h>} and GCC's @file{<stddef.h>} have conflicting definitions +for @code{wchar_t}. + +The particulars: @file{<X11/Xlib.h>} from MIT X11R5 defines +@code{wchar_t} if @code{X_WCHAR} is defined, which is defined if +@code{X_NOT_STDC_ENV} is defined, and we define @emph{that} if +@code{STDC_HEADERS} is not defined (@samp{configure} decides if +@code{STDC_HEADERS} gets defined). But when compiling with GCC on SunOS +4.1.x, @code{STDC_HEADERS} is not defined (@file{string.h} doesn't +declare the @samp{mem}* functions), so we do get X's +@code{wchar_t}---and we also get GCC's @code{wchar_t} from its +@file{<stddef.h>}. Conflict. + +On the other hand, SunOS 4.1.1 with some other X configurations actually +needs GCC to define @code{wchar_t}, and fails otherwise. + +My current theory is to define @code{wchar_t} to a nonsense symbol +before the X include files are read; that way its definition (if any) +will be ignored by other system include files. Going along with that, +define @code{X_WCHAR} to tell X not to use @file{<stddef.h>}, that we've +already included, but instead to make its own definition. + +But this is not the end of the story. The X11 include files distributed +with DG/UX 5.4.2 for the Aviion have been modified to include +@file{<_int_wchar_t.h>} if @code{X_WCHAR}, so our @code{#define} will +not have any typedef to change---but the uses of @code{wchar_t} in the X +include files will be changed to reference this undefined symbol. So +there's nothing to foil in this case. I don't know how to detect this +automatically, so it's up to you to define @code{NO_FOIL_X_WCHAR_T} +yourself. +@end ignore + +@node XtStrings +@subsubsection @code{XtStrings} + +@findex XtStrings +You may find that linking X programs results in an error from the linker +that @samp{XtStrings} is undefined, something like this: + +@example +gcc -o virmf @dots{} +@dots{}/x11.c:130: undefined reference to `XtStrings' +@end example + +This generally happens because of a mismatch between the X include files +with which you compiled and the X libraries with which you linked; +often, the include files are from MIT and the libraries from Sun. + +The solution is to use the same X distribution for compilation and +linking. Probably @samp{configure} was unable to guess the proper +directories from your installation. You can use the @code{configure} +options @samp{--x-includes=@var{path}} and +@samp{--x-libraries=@var{path}} to explicitly specify them. + + +@node dlopen +@subsubsection @code{dlopen} + +@cindex static linking and @code{dlsym} +@flindex dlopen +@flindex dlsym +@flindex dlclose +@flindex wcstombs +@flindex libdl.a +(This section adapted from the file @file{dlsym.c} in the X distribution.) + +The @code{Xlib} library uses the standard C function @code{wcstombs}. +Under SunOS 4.1, @code{wcstombs} uses the @samp{dlsym} interface defined +in @file{libdl.so}. Unfortunately, the SunOS 4.1 distribution does not +include a static @samp{libdl.a} library. + +As a result, if you try to link an X program statically under SunOS, you +may get undefined references to @code{dlopen}, @code{dlsym}, and +@code{dlclose}. One workaround is to include these definitions +when you link: + +@example +void *dlopen() @{ return 0; @} +void *dlsym() @{ return 0; @} +int dlclose() @{ return -1; @} +@end example + +@flindex dlsym.c +@noindent These are contained in the @file{dlsym.c} file in the MIT X +distribution. + + +@node ShellWidgetClass +@subsubsection @code{ShellWidgetClass} + +@cindex dynamic linking problems with OpenWin libraries +@cindex OpenWin libraries, dynamic linking problems +@findex get_wmShellWidgetClass +@findex get_applicationShellWidgetClass + +@flindex comp.sys.sun.admin @r{FAQ} +@cindex FAQ, @t{comp.sys.sun.admin} +(This section adapted from the @t{comp.sys.sun.admin} FAQ.) + +If you are linking with Sun's OpenWindows libraries in SunOS 4.1.x, you +may get undefined symbols @code{_get_wmShellWidgetClass} and +@code{_get_applicationShellWidgetClass} when linking. This problem does +not arise using the standard MIT X libraries under SunOS. + +@findex Xmu @r{library problems} +The cause is bugs in the @code{Xmu} shared library as shipped from Sun. +There are several fixes: + +@itemize @bullet + +@item Install the free MIT distribution from @samp{ftp.x.org} and mirrors. + +@item Get the OpenWindows patches listed below. + +@item Statically link the @code{Xmu} library into the executable. + +@item Avoid using @code{Xmu} at all. If you are compiling +Metafont, @pxref{Online Metafont graphics,,, web2c, Web2c}. If you are +compiling Xdvi, see the @code{-DNOTOOL} option in @file{xdvik/INSTALL}. + +@item Ignore the errors. The binary runs fine regardless. + +@end itemize + +@cindex Sun OpenWin patches +@cindex patches, Sun OpenWin +Here is the information for getting the two patches: + +@display +Patch ID: 100512-02 +Bug ID's: 1086793, 1086912, 1074766 +Description: 4.1.x OpenWindows 3.0 @code{libXt} jumbo patch + +Patch ID: 100573-03 +Bug ID: 1087332 +Description: 4.1.x OpenWindows 3.0 undefined symbols when using shared @code{libXmu}. +@end display + +@cindex static linking +The way to statically link with @code{libXmu} depends on whether you are +using a Sun compiler (e.g., @code{cc}) or @code{gcc}. If the latter, +alter the @code{x_libs} Make variable to include + +@opindex -static +@opindex -dynamic +@example +-static -lXmu -dynamic +@end example + +@opindex -Bstatic +@opindex -Bdynamic +If you are using the Sun compiler, use @samp{-Bstatic} and @samp{-Bdynamic}. + + +@node Pointer combination warnings +@subsubsection Pointer combination warnings + +@cindex warnings, pointer combinations +@cindex pointer combination warnings +@cindex illegal pointer combination warnings +@pindex cc @r{warnings} +When compiling with old C compilers, you may get some warnings about +``illegal pointer combinations''. These are spurious; just ignore them. +I decline to clutter up the source with casts to get rid of them. + +@c This isn't worth including any more, OSF 1.x is too old. +@c The other XtInherit problem (R4 Xlib on Suns) should never come up, +@c but the answer from the X faq is included anyway. +@c +@c @node XtInherit +@c @subsubsection @code{XtInherit} +@c +@c @findex XtInherit @r{bug on OSF/1} +@c @cindex OSF/1 loader bug and @code{XtInherit} +@c @cindex Alpha OSF/1 loader bug and @code{XtInherit} +@c +@c On DEC OSF/1 1.x systems, the loader has a bug that manifests itself in +@c the following error (all on one line, but for the sake of the paper +@c width it's broken here): +@c +@c @example +@c xdvik/xdvi: /sbin/loader: Fatal Error: search_for_undefineds: +@c symbol _XtInherit should not have any relocation entry +@c @end example +@c +@c @noindent According to Michael Rickabaugh @code{<mjr@@quarry.enet.dec.com>}: +@c +@c @quotation +@c This is a bug fixed in DEC OSF/1 2.0. +@c +@c If you know how, installing @file{/sbin/loader} from a 2.0 system onto a +@c 1.3 system will work. Make sure that @file{/usr} is @emph{not} mounted +@c when you do this. (If you forget about umounting @code{/usr}, it is +@c possible most of your filesystems will become corrupted.) +@c +@c Otherwise, I suggest getting a later CD and running +@c @file{/usr/sbin/installupdate}. +@c @end quotation +@c +@c Alternatively, you may be able to use the freely available X11 libraries +@c that come with the MIT distribution (on @file{ftp.x.org}, for example). +@c +@c Linking statically, perhaps only with some of the X libraries, may also +@c work. +@c +@c The Sun XtInherit weirdness, from the comp.windows.x FAQ: +@c Subject: 126)! What are these problems with "*_XtInherit* not found" on the Sun? +@c When I link a X program that I wrote on a SunOS 4.0.3 or 4.1 machine I get the +@c error "ld.so: symbol not found *_XtInherit*". +@c +@c What you are seeing is a side-effect of a kludge in the R4 libXt.a to +@c get Sun shared libraries working. Apparently, you can't share a function that +@c is both called and compared, as *_XtInherit* is. This was handled by putting +@c *_XtInherit* in the same file as a function that is always used, thereby +@c guaranteeing that it would be loaded -- that is, in Initialize.c, where +@c XtToolkitInitialize() and XtInitialize() reside. These routines would normally +@c be called. +@c +@c You are probably seeing this error because your program is not a normal +@c Xt-based program and does not call XtToolkitInitialize() anywhere. +@c 1) it may be a program that uses Xt functions but never opens a +@c connection to the X server. [OSF/Motif's 1.1.0 UIL had this problem; it called +@c XtMalloc() and other Xt functions.] The solution is to add the call to your +@c program; the function does not have to be executed, just linked in. +@c 2) alternatively, your program doesn't need any Xt functions and is +@c correct in not calling XtToolkitInitialize() -- it may be an Xlib or XView +@c program. In this case, you can remove -lXt from your link command. +@c +@c It should not be necessary to link the shared libraries statically, +@c although this will certainly solve the problem. + +@c * Empty Makefiles:: If configure gives you sed errors. +@c * wchar_t:: For wchar_t difficulties.
new file mode 100644 --- /dev/null +++ b/kpathsea/c-auto.h @@ -0,0 +1,106 @@ +/* c-auto.h. Generated automatically by configure. */ +/* c-auto.h.in. Generated automatically from configure.in by autoheader. */ +/* acconfig.h -- used by autoheader when generating c-auto.h.in. + + If you're thinking of editing acconfig.h to fix a configuration + problem, don't. Edit the c-auto.h file created by configure, + instead. Even better, fix configure to give the right answer. */ + +/* kpathsea/configure.in tests for these functions with + kb_AC_KLIBTOOL_REPLACE_FUNCS, and naturally Autoheader doesn't know + about that macro. Since the shared library stuff is all preliminary + anyway, I decided not to change Autoheader, but rather to hack them + in here. */ +#define HAVE_BASENAME 1 +#define HAVE_PUTENV 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRTOL 1 +#define HAVE_STRSTR 1 + + +/* Define if the closedir function returns void instead of int. */ +/* #undef CLOSEDIR_VOID */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if your putenv doesn't waste space when the same environment + variable is assigned more than once, with different (malloced) + values. This is true only on NetBSD/FreeBSD, as far as I know. See + xputenv.c. */ +/* #undef SMART_PUTENV */ + +/* Define if you are using GNU libc or otherwise have global variables + `program_invocation_name' and `program_invocation_short_name'. */ +/* #undef HAVE_PROGRAM_INVOCATION_NAME */ + +/* all: Define to enable running scripts when missing input files. */ +#define MAKE_TEX_MF_BY_DEFAULT 1 +#define MAKE_TEX_PK_BY_DEFAULT 1 +#define MAKE_TEX_TEX_BY_DEFAULT 0 +#define MAKE_TEX_TFM_BY_DEFAULT 1 +#define MAKE_OMEGA_OFM_BY_DEFAULT 0 +#define MAKE_OMEGA_OCP_BY_DEFAULT 0 + +/* Define if you have the basename function. */ +#define HAVE_BASENAME 1 + +/* Define if you have the bcopy function. */ +#define HAVE_BCOPY 1 + +/* Define if you have the getwd function. */ +#define HAVE_GETWD 1 + +/* Define if you have the putenv function. */ +#define HAVE_PUTENV 1 + +/* Define if you have the strcasecmp function. */ +#define HAVE_STRCASECMP 1 + +/* Define if you have the strstr function. */ +#define HAVE_STRSTR 1 + +/* Define if you have the strtol function. */ +#define HAVE_STRTOL 1 + +/* Define if you have the <assert.h> header file. */ +#define HAVE_ASSERT_H 1 + +/* Define if you have the <dirent.h> header file. */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the <float.h> header file. */ +#define HAVE_FLOAT_H 1 + +/* Define if you have the <limits.h> header file. */ +#define HAVE_LIMITS_H 1 + +/* Define if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define if you have the <ndir.h> header file. */ +/* #undef HAVE_NDIR_H */ + +/* Define if you have the <pwd.h> header file. */ +#define HAVE_PWD_H 1 + +/* Define if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the <sys/dir.h> header file. */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define if you have the <sys/ndir.h> header file. */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define if you have the <sys/param.h> header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1
new file mode 100644 --- /dev/null +++ b/kpathsea/c-auto.h.in @@ -0,0 +1,105 @@ +/* c-auto.h.in. Generated automatically from configure.in by autoheader. */ +/* acconfig.h -- used by autoheader when generating c-auto.h.in. + + If you're thinking of editing acconfig.h to fix a configuration + problem, don't. Edit the c-auto.h file created by configure, + instead. Even better, fix configure to give the right answer. */ + +/* kpathsea/configure.in tests for these functions with + kb_AC_KLIBTOOL_REPLACE_FUNCS, and naturally Autoheader doesn't know + about that macro. Since the shared library stuff is all preliminary + anyway, I decided not to change Autoheader, but rather to hack them + in here. */ +#undef HAVE_BASENAME +#undef HAVE_PUTENV +#undef HAVE_STRCASECMP +#undef HAVE_STRTOL +#undef HAVE_STRSTR + + +/* Define if the closedir function returns void instead of int. */ +#undef CLOSEDIR_VOID + +/* Define to empty if the keyword does not work. */ +#undef const + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if your putenv doesn't waste space when the same environment + variable is assigned more than once, with different (malloced) + values. This is true only on NetBSD/FreeBSD, as far as I know. See + xputenv.c. */ +#undef SMART_PUTENV + +/* Define if you are using GNU libc or otherwise have global variables + `program_invocation_name' and `program_invocation_short_name'. */ +#undef HAVE_PROGRAM_INVOCATION_NAME + +/* all: Define to enable running scripts when missing input files. */ +#define MAKE_TEX_MF_BY_DEFAULT 0 +#define MAKE_TEX_PK_BY_DEFAULT 0 +#define MAKE_TEX_TEX_BY_DEFAULT 0 +#define MAKE_TEX_TFM_BY_DEFAULT 0 +#define MAKE_OMEGA_OFM_BY_DEFAULT 0 +#define MAKE_OMEGA_OCP_BY_DEFAULT 0 + +/* Define if you have the basename function. */ +#undef HAVE_BASENAME + +/* Define if you have the bcopy function. */ +#undef HAVE_BCOPY + +/* Define if you have the getwd function. */ +#undef HAVE_GETWD + +/* Define if you have the putenv function. */ +#undef HAVE_PUTENV + +/* Define if you have the strcasecmp function. */ +#undef HAVE_STRCASECMP + +/* Define if you have the strstr function. */ +#undef HAVE_STRSTR + +/* Define if you have the strtol function. */ +#undef HAVE_STRTOL + +/* Define if you have the <assert.h> header file. */ +#undef HAVE_ASSERT_H + +/* Define if you have the <dirent.h> header file. */ +#undef HAVE_DIRENT_H + +/* Define if you have the <float.h> header file. */ +#undef HAVE_FLOAT_H + +/* Define if you have the <limits.h> header file. */ +#undef HAVE_LIMITS_H + +/* Define if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define if you have the <ndir.h> header file. */ +#undef HAVE_NDIR_H + +/* Define if you have the <pwd.h> header file. */ +#undef HAVE_PWD_H + +/* Define if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define if you have the <sys/dir.h> header file. */ +#undef HAVE_SYS_DIR_H + +/* Define if you have the <sys/ndir.h> header file. */ +#undef HAVE_SYS_NDIR_H + +/* Define if you have the <sys/param.h> header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H
new file mode 100644 --- /dev/null +++ b/kpathsea/c-ctype.h @@ -0,0 +1,81 @@ +/* c-ctype.h: ASCII-safe versions of the <ctype.h> macros. + +Copyright (C) 1992 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_CTYPE_H +#define KPATHSEA_C_CTYPE_H + +#include <ctype.h> + +/* Be sure we have `isascii'. */ +#ifndef isascii +#define isascii(c) 1 +#endif + +#define ISALNUM(c) (isascii (c) && isalnum(c)) +#define ISALPHA(c) (isascii (c) && isalpha(c)) +#define ISASCII isascii +#define ISCNTRL(c) (isascii (c) && iscntrl(c)) +#define ISDIGIT(c) (isascii (c) && isdigit (c)) +#define ISGRAPH(c) (isascii (c) && isgraph(c)) +#define ISLOWER(c) (isascii (c) && islower(c)) +#define ISPRINT(c) (isascii (c) && isprint(c)) +#define ISPUNCT(c) (isascii (c) && ispunct(c)) +#define ISSPACE(c) (isascii (c) && isspace(c)) +#define ISUPPER(c) (isascii (c) && isupper(c)) +#define ISXDIGIT(c) (isascii (c) && isxdigit(c)) +#define TOASCII toascii +#define TOLOWER(c) (ISUPPER (c) ? tolower (c) : (c)) +#define TOUPPER(c) (ISLOWER (c) ? toupper (c) : (c)) + +/* This isn't part of the usual <ctype.h>, but it's useful sometimes. */ +#ifndef isblank +#define isblank(c) ((c) == ' ' || (c) == '\t') +#endif + + +/* Here's why this mess is necessary: + +From: meyering@cs.utexas.edu (Jim Meyering) +Date: Wed, 25 Nov 1992 09:52:33 -0600 +Subject: ss-921123: using isascii with <ctype.h> macros + + Yesterday some cursory regression testing found that GNU od + (in an upcoming release of textutils) generated incorrect output + when run on an SGI indigo because isprint ('\377') returned true. + Of course, '\377' is not a printing character; the problem lay + in using isprint without first making sure its integer argument + corresponded to an ascii code. + + MORAL: always guard uses of ctype macros with isascii if it's available. + An obvious alternative is to avoid <ctype.h> and define and use your + own versions of the ctype macros. + + A pretty clean approach to using <ctype.h> and isascii was + suggested by David MacKenzie: + + #ifndef isascii + #define isascii(c) 1 + #endif + + #define ISDIGIT(c) (isascii (c) && isdigit (c)) + #define ISPRINT(c) (isascii (c) && isprint (c)) + ... + + then, use ISDIGIT, etc. instead of isdigit, etc. */ + +#endif /* not KPATHSEA_C_CTYPE_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-dir.h @@ -0,0 +1,44 @@ +/* c-dir.h: directory headers. + +Copyright (C) 1992, 93, 94 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_DIR_H +#define KPATHSEA_C_DIR_H + +/* Use struct dirent instead of struct direct. */ +#ifdef HAVE_DIRENT_H +#include <dirent.h> +#define NAMLEN(dirent) strlen ((dirent)->d_name) +#else /* not DIRENT */ +#define dirent direct +#define NAMLEN(dirent) ((dirent)->d_namlen) + +#ifdef HAVE_SYS_NDIR_H +#include <sys/ndir.h> +#endif + +#ifdef HAVE_SYS_DIR_H +#include <sys/dir.h> +#endif + +#ifdef HAVE_NDIR_H +#include <ndir.h> +#endif + +#endif /* not DIRENT */ + +#endif /* not KPATHSEA_C_DIR_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-errno.h @@ -0,0 +1,27 @@ +/* c-errno.h: <errno.h> and the errno variable. + +Copyright (C) 1992 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_ERRNO_H +#define KPATHSEA_C_ERRNO_H + +#include <errno.h> +#ifndef errno +extern int errno; +#endif + +#endif /* not KPATHSEA_C_ERRNO_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-fopen.h @@ -0,0 +1,65 @@ +/* c-fopen.h: how to open files with fopen. + +Copyright (C) 1992, 94, 95, 96 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef C_FOPEN_H +#define C_FOPEN_H + +/* How to open a text file: */ +#ifndef FOPEN_A_MODE +#define FOPEN_A_MODE "a" +#endif + +#ifndef FOPEN_R_MODE +#define FOPEN_R_MODE "r" +#endif + +#ifndef FOPEN_W_MODE +#define FOPEN_W_MODE "w" +#endif + +/* How to open a binary file for reading: */ +#ifndef FOPEN_RBIN_MODE +#ifdef DOS +#define FOPEN_RBIN_MODE "r+b" +#else +#if defined (VMS) || defined (VMCMS) || defined (OS2) || defined (WIN32) +#define FOPEN_RBIN_MODE "rb" +#else +#define FOPEN_RBIN_MODE "r" +#endif /* not (VM/CMS or VMS or OS2 or WIN32) */ +#endif /* not DOS */ +#endif /* not FOPEN_RBIN_MODE */ + +/* How to open a binary file for writing: */ +#ifndef FOPEN_WBIN_MODE +#ifdef DOS +#define FOPEN_WBIN_MODE "w+b" +#else +#if defined (OS2) || defined (WIN32) +#define FOPEN_WBIN_MODE "wb" +#else +#ifdef VMCMS +#define FOPEN_WBIN_MODE "wb, lrecl=1024, recfm=f" +#else +#define FOPEN_WBIN_MODE "w" +#endif /* not VM/CMS */ +#endif /* not (OS2 or WIN32) */ +#endif /* not DOS */ +#endif /* not FOPEN_WBIN_MODE */ + +#endif /* not C_FOPEN_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-limits.h @@ -0,0 +1,36 @@ +/* c-limits.h: include the system parameter file. + +Copyright (C) 1992, 93, 96 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef C_LIMITS_H +#define C_LIMITS_H + +#ifdef HAVE_LIMITS_H +#include <limits.h> +#else +#include <kpathsea/systypes.h> +#ifdef HAVE_SYS_PARAM_H +#include <sys/param.h> +#endif +#endif /* not HAVE_LIMITS_H */ + +/* Some systems may have the floating-point limits in the above. */ +#if defined (HAVE_FLOAT_H) && !defined (FLT_MAX) +#include <float.h> +#endif + +#endif /* not C_LIMITS_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-memstr.h @@ -0,0 +1,82 @@ +/* c-memstr.h: memcpy, strchr, etc. + +Copyright (C) 1992, 93, 94, 95, 97 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_MEMSTR_H +#define KPATHSEA_C_MEMSTR_H + +/* <X11/Xfuncs.h> tries to declare bcopy etc., which can only conflict. */ +#define _XFUNCS_H_ + +/* Just to be complete, we make both the system V/ANSI and the BSD + versions of the string functions available. */ +#if defined (STDC_HEADERS) || defined (HAVE_STRING_H) +#if 0 /* OK, we'll try without; seems to be unnecessary now. */ +#define SYSV /* so <X11/Xos.h> knows not to include <strings.h> */ +#endif /* 0 */ +#include <string.h> + +/* An ANSI string.h and pre-ANSI memory.h might conflict. */ +#if !defined (STDC_HEADERS) && defined (HAVE_MEMORY_H) +#include <memory.h> +#endif /* not STDC_HEADERS and HAVE_MEMORY_H */ + +/* Do not define these if we are not STDC_HEADERS, because in that + case X11/Xos.h defines `strchr' to be `index'. */ +#ifdef STDC_HEADERS +/* Let's hope that if index/rindex are defined, they're defined to the + right thing. */ +#ifndef index +#define index strchr +#endif +#ifndef rindex +#define rindex strrchr +#endif +#endif /* STDC_HEADERS */ + +#ifndef HAVE_BCOPY +#ifndef bcmp +#define bcmp(s1, s2, len) memcmp ((s1), (s2), (len)) +#endif +#ifndef bcopy +#define bcopy(from, to, len) memcpy ((to), (from), (len)) +#endif +#ifndef bzero +#define bzero(s, len) memset ((s), 0, (len)) +#endif +#endif /* not HAVE_BCOPY */ + +#else /* not (STDC_HEADERS or HAVE_STRING_H) */ + +#include <strings.h> + +#ifndef strchr +#define strchr index +#endif +#ifndef strrchr +#define strrchr rindex +#endif + +#define memcmp(s1, s2, n) bcmp ((s1), (s2), (n)) +#define memcpy(to, from, len) bcopy ((from), (to), (len)) + +extern char *strtok (); +extern char *strstr (); + +#endif /* not (STDC_HEADERS or HAVE_STRING_H) */ + +#endif /* not KPATHSEA_C_MEMSTR_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-minmax.h @@ -0,0 +1,84 @@ +/* c-minmax.h: define INT_MIN, etc. Assume a 32-bit machine if the + values aren't defined. + +Copyright (C) 1992, 93 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_MINMAX_H +#define KPATHSEA_C_MINMAX_H + +#include <kpathsea/c-limits.h> + +/* Declared in <limits.h> on ANSI C systems. If the system doesn't + define it, we use the minimum ANSI values -- except for `int'; we + assume 32-bit integers. */ + +#ifndef SCHAR_MIN +#define SCHAR_MIN (-127) +#endif +#ifndef SCHAR_MAX +#define SCHAR_MAX 128 +#endif +#ifndef UCHAR_MAX +#define UCHAR_MAX 255 +#endif + +#ifndef SHRT_MIN +#define SHRT_MIN (-32767) +#endif +#ifndef SHRT_MAX +#define SHRT_MAX 32767 +#endif +#ifndef USHRT_MAX +#define USHRT_MAX 65535 +#endif + +#ifndef INT_MIN +#define INT_MIN (-2147483647) +#endif +#ifndef INT_MAX +#define INT_MAX 2147483647 +#endif +#ifndef UINT_MAX +#define UINT_MAX 4294967295 +#endif + +#ifndef LONG_MIN +#define LONG_MIN INT_MIN +#endif +#ifndef LONG_MAX +#define LONG_MAX INT_MAX +#endif +#ifndef ULONG_MAX +#define ULONG_MAX UINT_MAX +#endif + +/* Declared in <float.h> on ANSI C systems. */ +#ifndef DBL_MIN +#define DBL_MIN 1e-37 +#endif +#ifndef DBL_MAX +#define DBL_MAX 1e+37 +#endif + +#ifndef FLT_MIN +#define FLT_MIN 1e-37 +#endif +#ifndef FLT_MAX +#define FLT_MAX 1e+37 +#endif + +#endif /* not KPATHSEA_C_MINMAX_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-namemx.h @@ -0,0 +1,36 @@ +/* c-namemx.h: define NAME_MAX, the maximum length of a single + component in a filename. No such limit may exist, or may vary + depending on the filesystem. + +Copyright (C) 1992, 93 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_NAME_MX_H +#define KPATHSEA_C_NAME_MX_H + +#include <kpathsea/c-limits.h> + +/* Most likely the system will truncate filenames if it is not POSIX, + and so we can use the BSD value here. */ +#ifndef _POSIX_NAME_MAX +#define _POSIX_NAME_MAX 255 +#endif + +#ifndef NAME_MAX +#define NAME_MAX _POSIX_NAME_MAX +#endif + +#endif /* not KPATHSEA_C_NAME_MX_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-pathch.h @@ -0,0 +1,101 @@ +/* c-pathch.h: define the characters which separate components of + filenames and environment variable paths. + +Copyright (C) 1992, 93, 95, 97 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef C_PATHCH_H +#define C_PATHCH_H + +#include <kpathsea/c-ctype.h> + +/* What separates filename components? */ +#ifndef DIR_SEP +#ifdef VMS +#define DIR_SEP ':' +#define DIR_SEP_STRING ":" +#else +#ifdef DOSISH +/* Either \'s or 's work. Wayne Sullivan's web2pc prefers /, so we'll + go with that. */ +#define DIR_SEP '/' +#define DIR_SEP_STRING "/" +#define IS_DEVICE_SEP(ch) ((ch) == ':') +#define NAME_BEGINS_WITH_DEVICE(name) \ + (ISALPHA(*(name)) && IS_DEVICE_SEP((name)[1])) +/* On DOS, it's good to allow both \ and / between directories. */ +#define IS_DIR_SEP(ch) ((ch) == '/' || (ch) == '\\') +#else +#ifdef AMIGA +#define DIR_SEP '/' +#define DIR_SEP_STRING "/" +#define IS_DIR_SEP(ch) ((ch) == '/' || (ch) == ':') +#define IS_DEVICE_SEP(ch) ((ch) == ':') +#else +#ifdef VMCMS +#define DIR_SEP ' ' +#define DIR_SEP_STRING " " +#else +#define DIR_SEP '/' +#define DIR_SEP_STRING "/" +#endif /* not VM/CMS */ +#endif /* not AMIGA */ +#endif /* not DOSISH */ +#endif /* not VMS */ +#endif /* not DIR_SEP */ + +#ifndef IS_DIR_SEP +#define IS_DIR_SEP(ch) ((ch) == DIR_SEP) +#endif +#ifndef IS_DEVICE_SEP /* No `devices' on, e.g., Unix. */ +#define IS_DEVICE_SEP(ch) 0 +#endif +#ifndef NAME_BEGINS_WITH_DEVICE +#define NAME_BEGINS_WITH_DEVICE(name) 0 +#endif + + +/* What separates elements in environment variable path lists? */ +#ifndef ENV_SEP +#ifdef VMS +#define ENV_SEP ',' +#define ENV_SEP_STRING "," +#else +#ifdef DOSISH +#define ENV_SEP ';' +#define ENV_SEP_STRING ";" +#else +#ifdef AMIGA +#define ENV_SEP ';' +#define ENV_SEP_STRING ";" +#else +#ifdef VMCMS +#define ENV_SEP ' ' +#define ENV_SEP_STRING " " +#else +#define ENV_SEP ':' +#define ENV_SEP_STRING ":" +#endif /* not VM/CMS */ +#endif /* not AMIGA */ +#endif /* not DOS */ +#endif /* not VMS */ +#endif /* not ENV_SEP */ + +#ifndef IS_ENV_SEP +#define IS_ENV_SEP(ch) ((ch) == ENV_SEP) +#endif + +#endif /* not C_PATHCH_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-pathmx.h @@ -0,0 +1,42 @@ +/* c-pathmx.h: define PATH_MAX, the maximum length of a filename. + Since no such limit may exist, it's preferable to dynamically grow + filenames as needed. + +Copyright (C) 1992, 93 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_PATH_MX_H +#define KPATHSEA_C_PATH_MX_H + +#include <kpathsea/c-limits.h> + +/* Cheat and define this as a manifest constant no matter what, instead + of using pathconf. I forget why we want to do this. */ + +#ifndef _POSIX_PATH_MAX +#define _POSIX_PATH_MAX 255 +#endif + +#ifndef PATH_MAX +#ifdef MAXPATHLEN +#define PATH_MAX MAXPATHLEN +#else +#define PATH_MAX _POSIX_PATH_MAX +#endif +#endif /* not PATH_MAX */ + + +#endif /* not KPATHSEA_C_PATH_MAX_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-proto.h @@ -0,0 +1,76 @@ +/* c-proto.h: macros to include or discard prototypes. + +Copyright (C) 1992, 93, 95, 96 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_PROTO_H +#define KPATHSEA_C_PROTO_H + +#if !defined(WIN32) || (defined(_DLL) && !defined(_IMPORT)) +#define DllImport +#else +#define DllImport __declspec(dllimport) +#endif + +/* These macros munge function declarations to make them work in both + cases. The P?H macros are used for declarations, the P?C for + definitions. Cf. <ansidecl.h> from the GNU C library. P1H(void) + also works for definitions of routines which take no args. */ + +#if __STDC__ + +#define AA(args) args /* For an arbitrary number; ARGS must be in parens. */ + +#define P1H(p1) (p1) +#define P2H(p1,p2) (p1, p2) +#define P3H(p1,p2,p3) (p1, p2, p3) +#define P4H(p1,p2,p3,p4) (p1, p2, p3, p4) +#define P5H(p1,p2,p3,p4,p5) (p1, p2, p3, p4, p5) +#define P6H(p1,p2,p3,p4,p5,p6) (p1, p2, p3, p4, p5, p6) + +#define P1C(t1,n1)(t1 n1) +#define P2C(t1,n1, t2,n2)(t1 n1, t2 n2) +#define P3C(t1,n1, t2,n2, t3,n3)(t1 n1, t2 n2, t3 n3) +#define P4C(t1,n1, t2,n2, t3,n3, t4,n4)(t1 n1, t2 n2, t3 n3, t4 n4) +#define P5C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5) \ + (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5) +#define P6C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5, t6,n6) \ + (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6) + +#else /* not __STDC__ */ + +#define AA(args) () + +#define P1H(p1) () +#define P2H(p1, p2) () +#define P3H(p1, p2, p3) () +#define P4H(p1, p2, p3, p4) () +#define P5H(p1, p2, p3, p4, p5) () +#define P6H(p1, p2, p3, p4, p5, p6) () + +#define P1C(t1,n1) (n1) t1 n1; +#define P2C(t1,n1, t2,n2) (n1,n2) t1 n1; t2 n2; +#define P3C(t1,n1, t2,n2, t3,n3) (n1,n2,n3) t1 n1; t2 n2; t3 n3; +#define P4C(t1,n1, t2,n2, t3,n3, t4,n4) (n1,n2,n3,n4) \ + t1 n1; t2 n2; t3 n3; t4 n4; +#define P5C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5) (n1,n2,n3,n4,n5) \ + t1 n1; t2 n2; t3 n3; t4 n4; t5 n5; +#define P6C(t1,n1, t2,n2, t3,n3, t4,n4, t5,n5, t6,n6) (n1,n2,n3,n4,n5,n6) \ + t1 n1; t2 n2; t3 n3; t4 n4; t5 n5; t6 n6; + +#endif /* not __STDC__ */ + +#endif /* not KPATHSEA_C_PROTO_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-stat.h @@ -0,0 +1,61 @@ +/* c-stat.h: declarations for using stat(2). + +Copyright (C) 1993, 96 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_STAT_H +#define KPATHSEA_STAT_H + +#include <kpathsea/systypes.h> +#include <sys/stat.h> + +#ifdef WIN32 +#include <io.h> +#define stat _stat +#endif /* WIN32 */ + +/* POSIX predicates for testing file attributes. */ + +#if !defined (S_ISBLK) && defined (S_IFBLK) +#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +#endif +#if !defined (S_ISCHR) && defined (S_IFCHR) +#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +#endif +#if !defined (S_ISDIR) && defined (S_IFDIR) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#endif +#if !defined (S_ISREG) && defined (S_IFREG) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#endif +#if !defined (S_ISFIFO) && defined (S_IFIFO) +#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) +#endif +#if !defined (S_ISLNK) && defined (S_IFLNK) +#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +#endif +#if !defined (S_ISSOCK) && defined (S_IFSOCK) +#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) +#endif +#if !defined (S_ISMPB) && defined (S_IFMPB) /* V7 */ +#define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) +#define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) +#endif +#if !defined (S_ISNWK) && defined (S_IFNWK) /* HP/UX */ +#define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) +#endif + +#endif /* not KPATHSEA_STAT_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-std.h @@ -0,0 +1,98 @@ +/* c-std.h: the first header files. + +Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_STD_H +#define KPATHSEA_C_STD_H + +/* Header files that essentially all of our sources need, and + that all implementations have. We include these first, to help with + NULL being defined multiple times. */ +#include <math.h> +#include <stdio.h> + +/* Be sure we have constants from <unistd.h>. */ +#include <kpathsea/c-unistd.h> + +#ifdef HAVE_STDLIB_H +#include <stdlib.h> +/* Include <stdlib.h> before <stddef.h>, to help avoid NULL + redefinitions on some systems. (We don't include <stddef.h> + ourselves any more, but FYI.) */ +#else +/* It's impossible to say for sure what the system will deign to put in + <stdlib.h>, but let's hope it's at least this. */ +extern char *getenv (); +#endif /* not HAVE_STDLIB_H */ + +#ifdef WIN32 +#include <malloc.h> +#else +#ifndef STDC_HEADERS +#ifndef ALLOC_RETURN_TYPE +#ifdef DOSISH +#define ALLOC_RETURN_TYPE void +#else +#define ALLOC_RETURN_TYPE char +#endif /* not DOSISH */ +#endif /* not ALLOC_RETURN_TYPE */ +extern ALLOC_RETURN_TYPE *calloc (), *malloc (), *realloc (); +#endif /* not STDC_HEADERS */ +#endif /* not WIN32 */ + +/* SunOS 4.1.1 gets STDC_HEADERS defined, but it doesn't provide + EXIT_FAILURE. So far no system has defined one of EXIT_FAILURE and + EXIT_SUCCESS without the other. */ +#ifndef EXIT_SUCCESS +#ifdef VMS +#define EXIT_SUCCESS 1 +#define EXIT_FAILURE 0 +#else +#define EXIT_SUCCESS 0 +#define EXIT_FAILURE 1 +#endif +#endif /* not EXIT_SUCCESS */ + +/* strchr vs. index, memcpy vs. bcopy, etc. */ +#include <kpathsea/c-memstr.h> + +/* Error numbers and errno declaration. */ +#include <kpathsea/c-errno.h> + +/* Numeric minima and maxima. */ +#include <kpathsea/c-minmax.h> + +/* Assertions are too useful to not make generally available. */ +#ifdef HAVE_ASSERT_H +#include <assert.h> +#else +#define assert(expr) /* as nothing */ +#endif + +#ifdef VMS +#include <unixlib.h> +#include <unixio.h> +#else +#ifndef WIN32 +/* `popen' and `pclose' are part of POSIX.2, not POSIX.1. So + STDC_HEADERS isn't enough. */ +extern FILE *popen (); +extern int pclose (); +#endif /* not WIN32 */ +#endif /* not VMS */ + +#endif /* not KPATHSEA_C_STD_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-unistd.h @@ -0,0 +1,53 @@ +/* c-unistd.h: ensure we have constants from <unistd.h>. Included from + c-std.h. + +Copyright (C) 1992, 93 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef KPATHSEA_C_UNISTD_H +#define KPATHSEA_C_UNISTD_H + +/* <unistd.h> is allowed to depend on <sys/types.h>. */ +#include <kpathsea/systypes.h> + +#if HAVE_UNISTD_H +#include <unistd.h> +#endif + +#include <kpathsea/c-std.h> + +/* For fseek. */ +#ifndef SEEK_SET +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#endif /* not SEEK_SET */ + +/* For access. */ +#ifndef F_OK +#define F_OK 0 +#define X_OK 1 +#define W_OK 2 +#define R_OK 4 +#endif /* not F_OK */ + +#ifndef STDIN_FILENO +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 +#endif /* not STDIN_FILENO */ + +#endif /* not KPATHSEA_C_UNISTD_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/c-vararg.h @@ -0,0 +1,61 @@ +/* c-vararg.h: Top layer for stdarg and varargs. + +Copyright (C) 1993 Karl Berry. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef C_VARARG_H +#define C_VARARG_H + +/* See `kpathsea/init-path.c' for an example of use. The idea is to say + PVAR1(type1, parameter1, ap) in the function header, and then end + the function with two }}'s. We do this to avoid having to specify + the argument list (with types) twice -- once in the function header, + and once in a (hypothetical) VA_START1. */ + +#if __STDC__ +#include <stdarg.h> + +#define PVAR1H(p1) (p1, ...) +#define PVAR2H(p1, p2) (p1, p2, ...) +#define PVAR3H(p1, p2, p3) (p1, p2, p3, ...) + +#define PVAR1C(t1, n1, ap) \ + (t1 n1, ...) { va_list ap; va_start (ap, n1); +#define PVAR2C(t1, n1, t2, n2, ap) \ + (t1 n1, t2 n2, ...) { va_list ap; va_start (ap, n2); +#define PVAR3C(t1, n1, t2, n2, t3, n3, ap) \ + (t1 n1, t2 n2, t3 n3, ...) { va_list ap; va_start (ap, n3); + +#else /* not __STDC__ */ +#include <varargs.h> + +#define PVAR1H(p1) () +#define PVAR2H(p1, p2) () +#define PVAR3H(p1, p2, p3) () + +#define PVAR1C(t1, n1, ap) \ + (va_alist) va_dcl { t1 n1; va_list ap; va_start (ap); \ + n1 = va_arg (ap, t1); +#define PVAR2C(t1, n1, t2, n2, ap) \ + (va_alist) va_dcl { t1 n1; t2 n2; va_list ap; va_start (ap); \ + n1 = va_arg (ap, t1); n2 = va_arg (ap, t2); +#define PVAR3C(t1, n1, t2, n2, t3, n3, ap) \ + (va_alist) va_dcl { t1 n1; t2 n2; t3 n3; va_list ap; va_start (ap); \ + n1 = va_arg (ap, t1); n2 = va_arg (ap, t2); \ + n3 = va_arg (ap, t3); +#endif /* not __STDC__ */ + +#endif /* not C_VARARG_H */
new file mode 100644 --- /dev/null +++ b/kpathsea/cnf.c @@ -0,0 +1,261 @@ +/* cnf.c: read config files. + +Copyright (C) 1994, 95, 96, 97 Karl Berry. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#include <kpathsea/config.h> +#include <kpathsea/c-fopen.h> +#include <kpathsea/c-ctype.h> +#include <kpathsea/cnf.h> +#include <kpathsea/db.h> +#include <kpathsea/hash.h> +#include <kpathsea/line.h> +#include <kpathsea/paths.h> +#include <kpathsea/pathsearch.h> +#include <kpathsea/progname.h> +#include <kpathsea/tex-file.h> +#include <kpathsea/variable.h> + +/* By using our own hash table, instead of the environment, we + complicate variable expansion (because we have to look in two + places), but we don't bang so much on the system. DOS and System V + have very limited environment space. Also, this way + `kpse_init_format' can distinguish between values originating from + the cnf file and ones from environment variables, which can be useful + for users trying to figure out what's going on. */ +static hash_table_type cnf_hash; +#define CNF_HASH_SIZE 751 +#define CNF_NAME "texmf.cnf" + +/* Do a single line in a cnf file: if it's blank or a comment, skip it. + Otherwise, parse <variable>[.<program>] [=] <value>. Do + this even if the <variable> is already set in the environment, since + the envvalue might contain a trailing :, in which case we'll be + looking for the cnf value. */ + +static void +do_line P1C(string, line) +{ + unsigned len; + string start; + string value, var; + string prog = NULL; + + /* Skip leading whitespace. */ + while (ISSPACE (*line)) + line++; + + /* More to do only if we have non-comment material left. */ + if (*line == 0 || *line == '%' || *line == '#') + return; + + /* The variable name is everything up to the next space or = or `.'. */ + start = line; + while (!ISSPACE (*line) && *line != '=' && *line != '.') + line++; + + /* `line' is now one character past the end of the variable name. */ + len = line - start; + var = xmalloc (len + 1); + strncpy (var, start, len); + var[len] = 0; + + /* If the variable is qualified with a program name, we might be + ignoring it. */ + while (ISSPACE (*line)) + line++; + if (*line == '.') { + /* Skip spaces, then everything up to the next space or =. */ + line++; + while (ISSPACE (*line)) + line++; + start = line; + while (!ISSPACE (*line) && *line != '=') + line++; + + /* It's annoying to repeat all this, but making a tokenizing + subroutine would be just as long and annoying. */ + len = line - start; + prog = xmalloc (len + 1); + strncpy (prog, start, len); + prog[len] = 0; + + /* If we are running `prog', fine; otherwise, we're done. */ + assert (program_invocation_short_name); + if (!FILESTRCASEEQ (prog, program_invocation_short_name)) { + free (prog); + free (var); + return; + } + } + + /* Skip whitespace, an optional =, more whitespace. */ + while (ISSPACE (*line)) + line++; + if (*line == '=') { + line++; + while (ISSPACE (*line)) + line++; + } + + /* The value is whatever remains. Remove trailing whitespace. */ + start = line; + len = strlen (start); + while (ISSPACE (start[len - 1]) && len > 0) + len--; + + value = xmalloc (len + 1); + strncpy (value, start, len); + value[len] = 0; + + /* Suppose we want to write a single texmf.cnf that can be used under + both NT and Unix. This is feasible except for the path separators + : on Unix, ; on NT. We can't switch NT to allowing :'s, since : + is the drive separator. So we switch Unix to allowing ;'s. On the + other hand, we don't want to change IS_ENV_SEP and all the rest. + + So, simply translate all ;'s in the path + values to :'s if we are a Unix binary. (Fortunately we don't use ; + in other kinds of texmf.cnf values.) + + If you really want to put ; in your filenames, add + -DALLOW_SEMICOLON_IN_FILENAMES. (And there's no way to get :'s in + your filenames, sorry.) */ + +/* gcc -ansi doesn't predefine `unix', since ANSI forbids it. And AIX + generally doesn't predefine unix, who knows why. */ +#ifndef unix +#if defined (__unix__) || defined (_AIX) +#define unix +#endif +#endif + +#if !defined (ALLOW_SEMICOLON_IN_FILENAMES) && defined (unix) + { + string loc; + for (loc = value; *loc; loc++) { + if (*loc == ';') + *loc = ':'; + } + } +#endif + + /* We want TEXINPUTS.prog to override plain TEXINPUTS. The simplest + way is to put both in the hash table (so we don't have to write + hash_delete and hash_replace, and keep track of values' sources), + and then look up the .prog version first in `kpse_cnf_get'. */ + if (prog) { + string lhs = concat3 (var, ".", prog); + free (var); + free (prog); + var = lhs; + } + hash_insert (&cnf_hash, var, value); + + /* We could check that anything remaining is preceded by a comment + character, but let's not bother. */ +} + +/* Read all the configuration files in the path. */ + +static void +read_all_cnf P1H(void) +{ + string *cnf_files; + const_string cnf_path = kpse_init_format (kpse_cnf_format); + + cnf_hash = hash_create (CNF_HASH_SIZE); + + for (cnf_files = kpse_all_path_search (cnf_path, CNF_NAME); + cnf_files && *cnf_files; cnf_files++) { + string line; + string cnf_filename = *cnf_files; + FILE *cnf_file = xfopen (cnf_filename, FOPEN_R_MODE);