freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master 937507d 2/2: [ftview] Show empty charmaps if er


From: Werner Lemberg
Subject: [freetype2-demos] master 937507d 2/2: [ftview] Show empty charmaps if error, including UVS.
Date: Sun, 21 Nov 2021 23:21:18 -0500 (EST)

branch: master
commit 937507d710470989f6a8706d9b4a8d73a518cebf
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>

    [ftview] Show empty charmaps if error, including UVS.
    
    * src/ftcommon.c (get_last_char): Call `FT_Set_Charmap` and handle
    its errors effectively setting `num_indices` to 0.
    * src/ftview.c (event_index_change, event_encoding_change): Updated.
---
 src/ftcommon.c | 4 ++--
 src/ftview.c   | 9 +++++++--
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/ftcommon.c b/src/ftcommon.c
index 3453657..efa9d93 100644
--- a/src/ftcommon.c
+++ b/src/ftcommon.c
@@ -681,8 +681,8 @@
     FT_UInt   gidx;
 
 
-    /* activate charmap */
-    face->charmap = face->charmaps[idx];
+    if ( FT_Set_Charmap ( face, face->charmaps[idx] ) )
+      return -1;
 
     do
     {
diff --git a/src/ftview.c b/src/ftview.c
index 0578d78..3b44ea3 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -956,7 +956,7 @@
 
     if ( status.offset < 0 )
       status.offset = 0;
-    else if ( status.offset >= num_indices )
+    if ( status.offset >= num_indices )
       status.offset = num_indices - 1;
 
     return old_offset == status.offset ? 0 : 1;
@@ -986,7 +986,12 @@
 
     FTDemo_Set_Current_Font( handle, font );
 
-    status.offset = handle->encoding == FT_ENCODING_ORDER ? 0 : 0x20;
+    if ( handle->encoding == FT_ENCODING_ORDER )
+      status.offset = 0;
+    else if ( font->num_indices <= 0x20 )  /* including UVS */
+      status.offset = font->num_indices - 1;
+    else
+      status.offset = 0x20;
 
     return 1;
   }



reply via email to

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