[cairo] Re: [cairo-commit] 5 commits - src/cairo-pdf-surface.c src/cairo-ps-surface.c src/cairo-scaled-font-subsets-private.h src/cairo-truetype-subset.c src/cairo-type1-fallback.c src/cairo-type1-subset.c

Adrian Johnson ajohnson at redneon.com
Mon Oct 16 15:44:42 PDT 2006


Behdad Esfahbod wrote:
> On Sun, 2006-10-15 at 09:57 -0400, Adrian Johnson wrote:
>> diff-tree 753763ff258760688ef5a594a204fa8f2be7e4a4 (from
>> 216c759d463ca407e1baea4090c782074567cbe2)
>> Author: Adrian Johnson <ajohnson at redneon.com>
>> Date:   Sun Oct 15 23:09:35 2006 +0930
>>
>>     Type1 subsetting: Don't put .notdef in Encoding when there are 256
>> glyphs
>>     
>>     Type1 subsetting adds the .notdef glyph to the subset because the
>> Type 1
>>     spec requires that it be defined. However if the subset already
>> has
>>     256 glyphs, this will cause the Encoding vector to have 257
>> entries
>>     which ghostscript does not like.
> 
> Hi Adrian,
> 
> How does it compare to the PS standard?  Shouldn't every font have
> a .notdef glyph?
> 

The .notdef charstring is still defined in the font as required. .notdef
is only required in unused positions in the Encoding array.

The Encoding array is initialized to .notdef

    0 1 255 {1 index exch /.notdef put} for

followed by a put for each glyph

dup 0 /A put
dup 1 /B put
dup 2 /C put
 ...
dup 256 /.notdef put

My patch removes the last .notdef put.



More information about the cairo mailing list