summaryrefslogtreecommitdiff
path: root/Build/source/texk/xdvik/tfmload.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/xdvik/tfmload.c')
-rw-r--r--Build/source/texk/xdvik/tfmload.c120
1 files changed, 0 insertions, 120 deletions
diff --git a/Build/source/texk/xdvik/tfmload.c b/Build/source/texk/xdvik/tfmload.c
deleted file mode 100644
index 6d2ceb1c9b6..00000000000
--- a/Build/source/texk/xdvik/tfmload.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* This code was stolen from dvips for xdvi use. The file itself did
- * not carry any licensing info. According to other filed the code
- * either public domain, or, in the worst case, GPL.
- *
- * Loads a tfm file. It marks the characters as undefined.
- *
- * Modified for use by xdvi/t1 by Nicolai Langfeldt */
-
-#include <stdio.h>
-
-#include "xdvi-config.h"
-#include "xdvi.h"
-#include "util.h"
-#include "tfmload.h"
-
-#ifdef T1LIB
-
-#include "kpathsea/tex-file.h"
-
-int fallbacktfm = 0;
-
-Boolean
-tfmload(const char *name, long *design, long *widths, long *fontdimen2)
-{
- int i;
- int li;
- int nw, hd;
- int bc, ec;
- int f_param_off, f_param_num;
- long wtab[256];
- unsigned short chardat[256];
- char *filename;
- FILE *curfnt;
-
- fallbacktfm = 0;
-
- filename = kpse_find_tfm(name);
-
- if (filename == NULL) {
- filename = kpse_find_tfm("cmr10.tfm");
- if (fallbacktfm == 0)
- fallbacktfm = 1;
- }
-
- if (filename == NULL)
- return False;
-
- curfnt = XFOPEN(filename, "r");
-
- if (curfnt == NULL)
- return False;
-
- /* Next, we read the font data from the tfm file, and store it in
- * our own array. */
-
- /* Lengths section, 16 bit unsigned quanities */
- li = get_bytes(curfnt, 2); /* lf = length of file, in words(4 bytes) */
- hd = get_bytes(curfnt, 2); /* lh = length of header data, in words */
- bc = get_bytes(curfnt, 2); /* bc = lowest charcode */
- ec = get_bytes(curfnt, 2); /* ec = largest charcode */
- nw = get_bytes(curfnt, 2); /* nw = number of width words */
- f_param_off = get_bytes(curfnt, 2); /* nh = number of height words */
- f_param_off += get_bytes(curfnt, 2); /* nd = number of depth words */
- f_param_off += get_bytes(curfnt, 2); /* ni = number of italic words */
- f_param_off += get_bytes(curfnt, 2); /* nl = number of words in lig/kern table */
- f_param_off += get_bytes(curfnt, 2); /* nk = number of words in the kern table */
- f_param_off += get_bytes(curfnt, 2); /* ne = number of words in the extensible char tab */
- f_param_num = get_bytes(curfnt, 2); /* np = number of font parameter words */
-
- /* Header, 32 bit signed quantities */
- (void)get_bytes(curfnt, 4); /* header[0]: checksum */
- *design = get_bytes(curfnt, 4); /* header[1]: design size */
-
- /* Skip the rest: header[2..(hd-1)] */
- for (i = 2; i < hd; i++)
- li = get_bytes(curfnt, 4);
-
- /* Initialize to undef value */
- for (i = 0; i < 256; i++) {
- chardat[i] = 256;
- widths[i] = 0;
- }
-
- /* The charinfo array: */
- for (i = bc; i <= ec; i++) {
- chardat[i] = get_byte(curfnt); /* 8 bits of width index */
- (void)get_byte(curfnt); /* skip */
- (void)get_bytes(curfnt, 2); /* skip, jump */
- }
-
- /* The (compressed!) width table */
- for (i = 0; i < nw; i++)
- wtab[i] = get_bytes(curfnt, 4);
-
- /* skip to font parameter words */
- for (i = 0; i < f_param_off; i++)
- (void)get_bytes(curfnt, 4);
-
- /* read fontdimen2 (width of space) */
- for (i = 0; i < f_param_num; i++) {
- long l = get_bytes(curfnt, 4);
- if (i == 1) {
- *fontdimen2 = l;
- if (globals.debug & DBG_T1)
- fprintf(stderr, "fontdimen2 of %s: %ld\n", filename, *fontdimen2);
- }
-
- }
- (void)fclose(curfnt);
-
- /* Now we have the table and the indexes. Expand into a directly
- mapped width array */
- for (i = bc; i <= ec; i++)
- if (chardat[i] != 256)
- widths[i] = wtab[chardat[i]];
-
- return True;
-}
-
-#endif /* T1LIB */