emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master ecedfd6: * src/macfont.m (mac_font_descriptor_suppo


From: YAMAMOTO Mitsuharu
Subject: [Emacs-diffs] master ecedfd6: * src/macfont.m (mac_font_descriptor_supports_languages): Regard "zh" as synonym of "zh-Hans".
Date: Wed, 30 Sep 2015 10:06:03 +0000

branch: master
commit ecedfd66fc18e9db206c9f9a49fd5226561f94a9
Author: YAMAMOTO Mitsuharu <address@hidden>
Commit: YAMAMOTO Mitsuharu <address@hidden>

    * src/macfont.m (mac_font_descriptor_supports_languages): Regard "zh" as 
synonym of "zh-Hans".
---
 src/macfont.m |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/macfont.m b/src/macfont.m
index cfe0e0a..bab9f7c 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -3427,18 +3427,24 @@ mac_font_descriptor_supports_languages 
(CTFontDescriptorRef descriptor,
     result = false;
   else
     {
-      CFIndex desc_languages_count, i, languages_count;
+      CFRange range = CFRangeMake (0, CFArrayGetCount (desc_languages));
+      CFIndex i, languages_count = CFArrayGetCount (languages);
 
-      desc_languages_count = CFArrayGetCount (desc_languages);
-      languages_count = CFArrayGetCount (languages);
       for (i = 0; i < languages_count; i++)
-        if (!CFArrayContainsValue (desc_languages,
-                                   CFRangeMake (0, desc_languages_count),
-                                   CFArrayGetValueAtIndex (languages, i)))
-          {
-            result = false;
-            break;
-          }
+       {
+         CFStringRef language = CFArrayGetValueAtIndex (languages, i);
+
+         if (!CFArrayContainsValue (desc_languages, range, language)
+             /* PingFang SC contains "zh" and "zh-Hant" as covered
+                languages, but does not contain "zh-Hans".  */
+             && !(CFEqual (language, CFSTR ("zh-Hans"))
+                  && CFArrayContainsValue (desc_languages, range,
+                                           CFSTR ("zh"))))
+           {
+             result = false;
+             break;
+           }
+       }
       CFRelease (desc_languages);
     }
 



reply via email to

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