ports/print/tex-xdvik/files/patch-texk-xdvik-vf.c

25 lines
945 B
C

--- texk/xdvik/vf.c.orig 2008-02-11 22:47:58 UTC
+++ texk/xdvik/vf.c
@@ -126,7 +126,7 @@ read_VF_index(struct font *fontp, wide_b
len = get_bytes(VF_file, 4);
cc = get_bytes(VF_file, 4);
width = get_bytes(VF_file, 4);
- if ((resource.omega && cc >= 65536)
+ if ((resource.omega && cc >= 0x110000)
|| (!resource.omega && cc >= 256)) {
XDVI_WARNING((stderr, "Virtual character %lu in font %s ignored.",
cc, fontp->fontname));
@@ -141,6 +141,13 @@ read_VF_index(struct font *fontp, wide_b
}
if (resource.omega) {
maxcc = (cc > maxcc) ? cc : maxcc;
+ if (cc > fontp->maxchar) {
+ int i = 65536 * ((int)(cc / 65536)+1);
+ fontp->macro = xrealloc(fontp->macro, sizeof(struct macro) * i);
+ memset((char *)&fontp->macro[fontp->maxchar+1], 0,
+ (i-fontp->maxchar-1) * sizeof(struct macro));
+ fontp->maxchar = i-1;
+ }
}
m = &fontp->macro[cc];
m->dvi_adv = width * fontp->dimconv;