Author: tilman
Date: Sun Feb 23 05:40:06 2025
New Revision: 1923992

URL: http://svn.apache.org/viewvc?rev=1923992&view=rev
Log:
PDFBOX-5961: support 3 / 4 byte input values

Modified:
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java

Modified: 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java?rev=1923992&r1=1923991&r2=1923992&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java 
(original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java 
Sun Feb 23 05:40:06 2025
@@ -197,8 +197,16 @@ public class CMap
      */
     void addCharMapping(byte[] codes, String unicode)
     {
-        unicodeToByteCodes.put(unicode, CMapStrings.getByteValue(codes));
-        charToUnicode.put(CMapStrings.getIndexValue(codes), unicode);
+        if (codes.length <= 2)
+        {
+            unicodeToByteCodes.put(unicode, CMapStrings.getByteValue(codes));
+            charToUnicode.put(CMapStrings.getIndexValue(codes), unicode);
+        }
+        else
+        {
+            unicodeToByteCodes.put(unicode, codes.clone());
+            charToUnicode.put(toInt(codes, codes.length), unicode);
+        }
         // fixme: ugly little hack
         if (SPACE.equals(unicode))
         {


Reply via email to