emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-30 5c3d340e001 2/2: Fix format 2 cmap handling in sfnt.c


From: Pip Cet
Subject: emacs-30 5c3d340e001 2/2: Fix format 2 cmap handling in sfnt.c
Date: Sun, 11 Aug 2024 06:33:23 -0400 (EDT)

branch: emacs-30
commit 5c3d340e001187ad027bc0328f738938a2bc32c5
Author: Pip Cet <pipcet@protonmail.com>
Commit: Pip Cet <pipcet@protonmail.com>

    Fix format 2 cmap handling in sfnt.c
    
    This code is untested as no font with a format 2 cmap could be found.
    
    * src/sfnt.c (sfnt_lookup_glyph_2): Fix typos.  Assume single-byte
    encodings use character codes 0, 1, ..., 255 rather than 0, 256, ...,
    65280.
---
 src/sfnt.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/sfnt.c b/src/sfnt.c
index b235c795ef7..1ed492b7506 100644
--- a/src/sfnt.c
+++ b/src/sfnt.c
@@ -1093,10 +1093,10 @@ sfnt_lookup_glyph_2 (sfnt_char character,
   unsigned char *slice;
   uint16_t glyph;
 
-  if (character > 65335)
+  if (character > 65535)
     return 0;
 
-  i = character >> 16;
+  i = character >> 8;
   j = character & 0xff;
   k = format2->sub_header_keys[i] / 8;
 
@@ -1129,9 +1129,9 @@ sfnt_lookup_glyph_2 (sfnt_char character,
        return 0;
     }
 
-  /* k is 0, so glyph_index_array[i] is the glyph.  */
-  return (i < format2->num_glyphs
-         ? format2->glyph_index_array[i]
+  /* k is 0, so glyph_index_array[j] is the glyph.  */
+  return (j < format2->num_glyphs
+         ? format2->glyph_index_array[j]
          : 0);
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]