From 1d9065a073a8f8ac707a6fa2e7683755f1b82df0 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Wed, 10 May 2006 19:30:21 +0000 Subject: Make /Widths arrays for fonts more compact by using FirstChar and LastChar to skip unused code points. [originally from svn r6673] --- bk_pdf.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/bk_pdf.c b/bk_pdf.c index 8eda320..5edf592 100644 --- a/bk_pdf.c +++ b/bk_pdf.c @@ -164,11 +164,20 @@ void pdf_backend(paragraph *sourceform, keywordlist *keywords, { object *widths = new_object(&olist); - objtext(font, "/FirstChar 0\n/LastChar 255\n/Widths "); + int firstchar = -1, lastchar = -1; + char buf[80]; + for (i = 0; i < 256; i++) + if (fe->indices[i] >= 0) { + if (firstchar < 0) firstchar = i; + lastchar = i; + } + sprintf(buf, "/FirstChar %d\n/LastChar %d\n/Widths ", + firstchar, lastchar); + objtext(font, buf); objref(font, widths); objtext(font, "\n"); objtext(widths, "[\n"); - for (i = 0; i < 256; i++) { + for (i = firstchar; i <= lastchar; i++) { char buf[80]; double width; if (fe->indices[i] < 0) -- cgit v1.1