Author: tilman
Revision: 1938040
Property Name: svn:log
Action: modified

Property diff:
--- old property value
+++ new property value
@@ -1 +1,22 @@
-PDFBOX-6251: don't override CID mappings by inherited maps, by Patrick 
Corless; closes #515
\ No newline at end of file
+PDFBOX-6251: don't override CID mappings by inherited maps, by Patrick Corless 
and Claude Opus 5; closes #515
+
+A CMap that starts with usecmap may redefine any code it inherits, but useCmap
+merged the used CMap's cidchar/cidrange mappings into the same collections as 
the
+importing CMap's own. usecmap is read from the header, so the used CMap's 
mappings
+landed there first, and since toCID scans the range list first-match, an 
inherited
+range beat the mapping the CMap declared for the same code.
+
+ETenms-B5-H exists only to do such an override: it uses ETen-B5-H and remaps
+0x20-0x7E to the proportional latin CIDs 1-95, yet toCID(0x41, 1) answered 
13681,
+the fullwidth form, instead of 34. 31 of the 92 bundled predefined CMaps 
declare
+mappings on top of a usecmap and all 31 were affected; 29 of them are the -V
+variants, whose own mappings select the vertical glyph forms.
+
+Keep the used CMap as a reference instead of copying its cid mappings, and ask 
it
+only for codes this CMap does not map itself. Precedence then follows the 
usecmap
+chain nearest-first at every level, so it also holds for nesting deeper than 
two
+levels and for a CMap carrying more than one usecmap. hasCIDMappings has to 
take
+the used CMaps into account, Identity-V declaring no cid mappings of its own.
+
+Co-Authored-By: Claude Opus 5 <[email protected]>
+Claude-Session: https://claude.ai/code/session_014khhepY6XDZVnwu9by9rMo
\ No newline at end of file

Reply via email to