PAT draws small-scale (world and country-level) physical, political, and statistical maps, and flexibly lists information about world places. It does what a traditional paper atlas does, but interactively. PAT's intended user is the student, hobbyist, researcher, webmaster, or other non-professional. PAT is designed to be portable; it has the bare minimum of operating-system dependencies and is written in stable, well-known C. Any system with an ANSI C compiler and ISO runtime libraries can run PAT. PAT's abstract device model can accomodate any raster device; it comes with drivers for TTY, GIF, JPEG, PNG, X11, GRX, and others. PAT is multilingual and supports Unicode. Program messages have been translated to English and French so far. PAT can be run interactively, or batch-style from the command line and/or with scripts.
ucpp is a C preprocessor. It is designed to be quick and light, but still fully compliant to the ISO standard 9899:1999, also known as C99. ucpp can be compiled as a stand-alone program or linked to some other code; in the latter case, ucpp will output tokens, one at a time, on demand, as an integrated lexer. ucpp operates in two modes: in lexer mode, ucpp is linked to some other code and outputs a stream of tokens where each call to the lex() function will yield one token; in non-lexer mode, ucpp preprocesses text and outputs the resulting text to a file descriptor. If linked to some other code, the cpp() function must be called repeatedly, otherwise ucpp is a stand-alone binary.