From: ben Date: Wed, 10 May 2006 19:30:21 +0000 (+0000) Subject: Make /Widths arrays for fonts more compact by using FirstChar and LastChar X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/commitdiff_plain/9fb062fcd9118fca1fdde8c906077243b71fe186 Make /Widths arrays for fonts more compact by using FirstChar and LastChar to skip unused code points. git-svn-id: svn://svn.tartarus.org/sgt/halibut@6673 cda61777-01e9-0310-a592-d414129be87e --- 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)