GNU Info

Info Node: (kpathsea.info)Programming overview

(kpathsea.info)Programming overview


Next: Calling sequence Up: Programming
Enter node , (file) or (file)node

Programming overview
====================

  Aside from this manual, your best source of information is the source
to the programs I've modified to use Kpathsea (Note: Introduction).
Of those, Dviljk is probably the simplest, and hence a good place to
start.  Xdvik adds VF support and the complication of X resources.
Dvipsk adds the complication of its own config files.  Web2c is source
code I also maintain, so it uses Kpathsea rather straightforwardly, but
is of course complicated by the Web to C translation.  Finally,
Kpsewhich is a small utility program whose sole purpose is to exercise
the main path-searching functionality.

  Beyond these examples, the `.h' files in the Kpathsea source describe
the interfaces and functionality (and of course the `.c' files define
the actual routines, which are the ultimate documentation).
`pathsearch.h' declares the basic searching routine.  `tex-file.h' and
`tex-glyph.h' define the interfaces for looking up particular kinds of
files.  You may wish to use `#include <kpathsea/kpathsea.h>', which
includes every Kpathsea header.

  The library provides no way for an external program to register new
file types: `tex-file.[ch]' must be modified to do this. For example,
Kpathsea has support for looking up Dvips config files, even though no
program other than Dvips will likely ever want to do so.  I felt this
was acceptable, since along with new file types should also come new
defaults in `texmf.cnf' (and its descendant `paths.h'), since it's
simplest for users if they can modify one configuration file for all
kinds of paths.

  Kpathsea does not parse any formats itself; it barely opens any files.
Its primary purpose is to return filenames.  The GNU font utilities does
contain libraries to read TFM, GF, and PK files, as do the programs
above, of course.


automatically generated by info2www version 1.2.2.9