[NTG-pdftex] [ pdftex-Patches-434 ] Remove queued map item handling

noreply at sarovar.org noreply at sarovar.org
Tue Jan 17 22:57:07 CET 2006

Patches item #434, was opened at 2005-10-13 01:08
You can respond by visiting: 

Category: Fonts
>Group: v1.30.0
Status: Open
>Resolution: Accepted
Priority: 5
Submitted By: Hartmut Henkel (hhenkel)
>Assigned to: Taco Hoekwater (taco)
Summary: Remove queued map item handling

Initial Comment:
Remove queued map item handling from mapfile.c

Formerly all items from \pdfmapfile{+-=mapfile} or
\pdfmapline{+-=mapline} were queued up in a list until
the next font was selected; then the whole list was
processed, e. g. all queued mapfiles or maplines read in.

When one gave \pdfmapfile{mapfile} or
\pdfmapline{mapline} without +-=, the pending list was
cleared. The only practical use for this was to prevent
reading in the default mapfile. But this can be done
simpler, without queuing.

With this patch all \pdfmapfile{+-=mapfile} or
\pdfmapline{+-=mapline} requests are processed
completely and immediately without queuing, which means
that if e. g. a \pdfmapfile{+-=mapfile} primitive is
scanned, the mapfile will be read in right away. This
happens independently from selecting a font.

When \pdfmapfile{+-=mapfile} or \pdfmapline{+-=mapline}
is scanned, and there is a default mapfile, it is read
first and then the mapfile. Reading of the default
mapfile can be disabled by \pdfmapfile{} or
\pdfmapline{} or \pdfmapfile{mapfile} or
\pdfmapline{mapline} without +-= as long as the default
mapfile hasn't already been read in.

Latest when the first font is requested, the default
mapfile will be read, if this hasn't already been
disabled by the mentioned primitives. Apart from
possibly reading the default mapfile, there is no other
action when a font is requested, since the
\pdfmapfile{+-=mapfile} or \pdfmapline{+-=mapline}
primitives have already acted right away when they were

The effects of this patch are the following:

* Initial mapfile reading still can be blocked in the
usual way.

* The difficult to describe queuing mechanism has gone,
code gets simpler.

* Mapfile reading happens directly by the primitives.

* Therefore it's possible to use \pdfretval with the
primitives, to check success of the mapfile/line
reading (not yet implemented).

* As the return value is connected to the \pdfmapfile
or \pdfmapline call, one can easier implement other map
setting primitives and give them return values. This
was not possible before, as the queuing was inbetween.

* For any standard use, the patch should be compatible
to the former queuing method.

The mapfile.c is a patched version of the mapfile.c
from Thanh's subfont patch pdftex-20050924.patch.gz for

Hope it doesn't sound too messy :-) For discussion.

Regards, Hartmut


You can respond by visiting: 

More information about the ntg-pdftex mailing list