]> code.delx.au - gnu-emacs/blobdiff - src/macfont.m
Rework C source files to avoid ^(
[gnu-emacs] / src / macfont.m
index cfe0e0a2b9209f15f5659e99643b5a79253c5ff3..c9082a58415cb58392c7029fdc8b301eebb0b95f 100644 (file)
@@ -1,12 +1,12 @@
 /* Font driver on Mac OSX Core text.
-   Copyright (C) 2009-2015 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -771,7 +771,7 @@ mac_font_descriptor_get_adjusted_weight (CTFontDescriptorRef desc, CGFloat val)
 {
   long percent_val = lround (val * 100);
 
-  if (percent_val == -40 || percent_val == 56)
+  if (percent_val == -40)
     {
       CTFontRef font = NULL;
       CFStringRef name =
@@ -786,19 +786,10 @@ mac_font_descriptor_get_adjusted_weight (CTFontDescriptorRef desc, CGFloat val)
        {
          CFIndex weight = mac_font_get_weight (font);
 
-         if (percent_val == -40)
-           {
-             /* Workaround for crash when displaying Oriya characters
-                with Arial Unicode MS on OS X 10.11.  */
-             if (weight == 5)
-               val = 0;
-           }
-         else                  /* percent_val == 56 */
-           {
-             if (weight == 9)
-               /* Adjustment for HiraginoSans-W7 on OS X 10.11.  */
-               val = 0.4;
-           }
+         /* Workaround for crash when displaying Oriya characters
+            with Arial Unicode MS on OS X 10.11.  */
+         if (weight == 5)
+           val = 0;
          CFRelease (font);
        }
     }
@@ -2765,7 +2756,6 @@ macfont_has_char (Lisp_Object font, int c)
 static unsigned
 macfont_encode_char (struct font *font, int c)
 {
-  struct macfont_info *macfont_info = (struct macfont_info *) font;
   CGGlyph glyph;
 
   block_input ();
@@ -3427,18 +3417,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);
     }
 
@@ -4046,8 +4042,6 @@ mac_register_font_driver (struct frame *f)
 void
 syms_of_macfont (void)
 {
-  static struct font_driver mac_font_driver;
-
   /* Core Text, for Mac OS X.  */
   DEFSYM (Qmac_ct, "mac-ct");
   macfont_driver.type = Qmac_ct;