summaryrefslogtreecommitdiff
path: root/dviware/umddvi/lib/readme
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/umddvi/lib/readme')
-rw-r--r--dviware/umddvi/lib/readme248
1 files changed, 248 insertions, 0 deletions
diff --git a/dviware/umddvi/lib/readme b/dviware/umddvi/lib/readme
new file mode 100644
index 0000000000..521f2dedad
--- /dev/null
+++ b/dviware/umddvi/lib/readme
@@ -0,0 +1,248 @@
+This directory is for library routines. They are hopefully now 99%
+portable, but only time (and new machines) will tell.
+
+File Functions
+----------------------------------------------------------------------
+bcopy.s bcopy(from, to, count)
+ char *from, *to;
+ int count;
+
+ Copies `count' bytes from location `from' to
+ location `to'
+----------------------------------------------------------------------
+bzero.s bzero(addr, count)
+ char *addr;
+ int count;
+
+ Zeroes `count' bytes starting at location `addr'
+----------------------------------------------------------------------
+error.c error(quit, errno, fmt, arg1, arg2, ...)
+ int quit, errno;
+ char *fmt;
+
+ Prints the message in `fmt' to stderr as would
+ fprintf, along with the (optional) system error
+ associated with `errno'. If `quit' is nonzero,
+ does an exit(quit). Give 0 for errno to suppress
+ the system error part.
+----------------------------------------------------------------------
+findpost.c FindPostAmble(f)
+ FILE *f;
+
+ Repositions the file `f' (using fseek(3S)) to
+ the beginning of the postamble, such that the next
+ getc from f should return DVI_POST.
+
+ Returns 0 if successful, -1 otherwise.
+----------------------------------------------------------------------
+fio.c GetLong(f)
+[See also FILE *f;
+../h/fio.h]
+ Gets a `long' from file `f' in the format written
+ by PutLong. [This should actually be an `i32'
+ function but I am too lazy to go fix that now.]
+ ------------------------------------------------------
+ Get3Byte(f)
+ FILE *f;
+
+ Gets a 3 byte integer from file `f' in the format
+ written by Put3Byte. The value is sign extended.
+ ------------------------------------------------------
+ GetWord(f)
+ FILE *f;
+
+ Gets a 2 byte integer from file `f'. The value is
+ sign extended.
+ ------------------------------------------------------
+ GetByte(f)
+ FILE *f;
+
+ Gets a 1 byte integer from file `f'. The value is
+ sign extended.
+
+ All of these have counterparts in ../h/fio.h which
+ may be used in speed-critical routines. However, these
+ differ from the fGet* versions in that:
+ + these check for EOF (and call error if found);
+ + these sign extend their return values.
+----------------------------------------------------------------------
+getopt.c extern char *optarg;
+[From Henry extern int optind;
+Spencer @
+U of Toronto int
+Zoology] getopt(argc, argv, optstring)
+ int argc;
+ char **argv;
+ char *optstring;
+
+ `argv' and `argc' should be those given to main().
+ getopt scans command line arguments according to the
+ string in `optstring'. Arguments are considered to
+ start with `-'. A quick example:
+
+ switch (getopt(argc, argv, "bco:s:")) {
+ case 'b': ...
+
+ would allow the options `-b', `-c', `-o argument', and
+ and `-s argument', and would return 'b', 'c', 'o', or
+ 's', if one of those were specified. If getopt runs out
+ of arguments, it returns EOF; if it encounters an invalid
+ option letter (e.g., `-z' in this example) it returns '?'.
+
+ If the option has an argument, getopt leaves `optarg'
+ pointing to it.
+
+ After getopt returns EOF, the remaining arguments (if
+ any) are in argv[optind] through argv[argc - 1].
+----------------------------------------------------------------------
+***deprecated***
+machint.s machint(addr, count)
+ int *addr;
+ int count;
+
+ Converts `count' 4 byte integers at location `addr'
+ to machine order. This is used to convert arrays of
+ integers in the order generated and written by PutLong
+ and GetLong to and from machine order.
+----------------------------------------------------------------------
+***deprecated***
+machintnop.c machint(addr, count)
+ int *addr;
+ int count;
+
+ No-op version for Suns & Pyramids.
+----------------------------------------------------------------------
+***deprecated***
+pxl.c double DMagFactor(magfactor)
+ int magfactor;
+
+ Returns magfactor/1000.0, with some extra fiddling
+ to get more precise values for the various \magstep's
+ that are commonly used.
+ ------------------------------------------------------
+ char *GenPXLFileName(nm, mag, designsize, globalmag, path)
+ char *nm;
+ int mag, designsize, globalmag;
+ char *path;
+
+ Returns (in static storage) the name of the PXL
+ file given the name of the font `nm', the DVI
+ magnification (`at size') `mag', the design
+ size `designsize', an additional magnification
+ of `globalmag/1000.0', and the assumed path
+ `path'. If path is zero (or *path is 0), the
+ constant PXLPATH (from ../h/pxl.h) is used instead.
+ `Path' should normally be the value of the
+ environment variable ``TEXFONTS''.
+ ------------------------------------------------------
+ struct pxltail *ReadPXLFile(nm, getrast)
+ char *nm;
+ int getrast;
+
+ Reads the named PXL file and returns a pointer to
+ a built-up struct pxltail. `Nm' should be the
+ name as returned by GenPXLFileName. If `getrast'
+ is nonzero, the character rasters will also be
+ read in, and the raster pointers in the chinfo
+ structures will be set to point to each character's
+ raster (or to 0 if the raster is completely blank).
+----------------------------------------------------------------------
+***XXX***
+rotate.c PerformRotation(ch, deg)
+ struct chinfo *ch;
+ int deg;
+
+ Rotates the bitmap of the character `ch', and
+ exchanges the height and width fields so that the
+ new bitmap is indistinguishable from the original
+ as far as those values are concerned. `deg' is
+ the number of degrees of rotation desired and must
+ be a multiple of 90. Currently only -90 (and 270)
+ degree rotations are supported (this is one quarter
+ turn clockwise).
+
+ The rotation is done in place.
+
+ In general, this should only be used in the final
+ output stages of a device that needs `landscape
+ mode' output.
+----------------------------------------------------------------------
+***XXX***
+scaletfm.c ScaleTFMWidths(px, z)
+ struct pxltail *px;
+ i32 z;
+
+ Scales all the TFM widths in px->px_info according to
+ the scale factor `z', which should be the `at size'
+ from a DVI file (i.e., a number in scaled points).
+
+ i32 ScaleOneWidth(width, z)
+ i32 width, z;
+
+ Scales the (single) TFM width `width' by `z'.
+----------------------------------------------------------------------
+scanpost.c ScanPostAmble(f, headerfunc, fontfunc)
+ FILE *f;
+ int (*headerfunc)(), (*fontfunc)();
+
+ Scans the postamble of a DVI file. The given functions
+ are called with the information gleaned from reading the
+ postamble. Headerfunc is called once, and fontfunc once
+ per font definition.
+
+ See ../h/postamble.h for the definitions of the
+ parameters passed to the two functions.
+----------------------------------------------------------------------
+search.c struct search *SCreate(dsize)
+ unsigned dsize;
+
+ Creates a search table; keys are i32 integers, data
+ objects are of size dsize and of unspecified type. A
+ null pointer is returned if the table cannot be created.
+
+ SEnumerate(table, func)
+ struct search *table;
+ int (*func)();
+
+ Invokes the given function on each object in the table.
+ The function is handed a "char *" pointer to the objects
+ as its first argument and the i32 key as its second.
+ (The return value from (*func)(), if any, is ignored;
+ technically it should be void (*func)(), but that is
+ not implemented quite right in many Unix compilers...)
+
+ char *SSearch(table, key, disp)
+ struct search *table;
+ i32 key;
+ int *disp;
+
+ Searches for a given key within the given search
+ table. A number of dispositions can be specified;
+ see ../h/search.h for the flags that can be specified
+ in *disp. *disp is modified before return to set
+ the reason for the search success or failure. The
+ return value is a pointer to the user data area
+ for the given key if found, otherwise NULL.
+
+ WARNING: data areas may move on future searches that
+ create new data objects.
+----------------------------------------------------------------------
+seek.c int Seekable(fd)
+ int fd;
+
+ Returns true iff the Unix file fd is randomly
+ accessible. (In particular, pipes are not.)
+
+ int MakeSeekable(f)
+ FILE *f;
+
+ If the stdio file f is not seekable, MakeSeekable
+ forces it to be so, by copying it to a temporary
+ file. MakeSeekable returns zero on success; -1
+ indicates failure.
+----------------------------------------------------------------------
+strsave.c char *strsave(s)
+ char *s;
+
+ Saves a malloc()ed copy of the C string s. (Beware:
+ exits if out of memory.)