emacs-diffs
[Top][All Lists]
Advanced

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

master 473313d2a8 2/2: Fix nsfont breakage since 6b1ed2f2c99a1c2da56c5f4


From: Po Lu
Subject: master 473313d2a8 2/2: Fix nsfont breakage since 6b1ed2f2c99a1c2da56c5f434570c438cad6576d
Date: Tue, 6 Sep 2022 21:52:47 -0400 (EDT)

branch: master
commit 473313d2a85a7ae73daf5cc7c205f6285286eecf
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Fix nsfont breakage since 6b1ed2f2c99a1c2da56c5f434570c438cad6576d
    
    * nsfont.m (ns_spec_to_descriptor): Fix coding style, also
    handle `monospace' special family.
    (ns_descriptor_to_entity): Fix reporting of spacing on fonts.
    (ns_findfonts): Fix coding style.
---
 src/nsfont.m | 244 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 118 insertions(+), 126 deletions(-)

diff --git a/src/nsfont.m b/src/nsfont.m
index b54118afe5..d072b5ce77 100644
--- a/src/nsfont.m
+++ b/src/nsfont.m
@@ -324,106 +324,98 @@ ns_get_family (Lisp_Object font_spec)
 static NSFontDescriptor *
 ns_spec_to_descriptor (Lisp_Object font_spec)
 {
-    NSFontDescriptor *fdesc;
-    NSMutableDictionary *fdAttrs = [NSMutableDictionary new];
-    NSString *family = ns_get_family (font_spec);
-    NSMutableDictionary *tdict = [NSMutableDictionary new];
+  NSFontDescriptor *fdesc;
+  NSMutableDictionary *fdAttrs = [NSMutableDictionary new];
+  NSString *family = ns_get_family (font_spec);
+  NSMutableDictionary *tdict = [NSMutableDictionary new];
 
-    Lisp_Object tem;
+  Lisp_Object tem;
 
-    tem = FONT_SLANT_SYMBOLIC (font_spec);
-    if (!NILP (tem))
-      {
-       if (EQ (tem, Qitalic) || EQ (tem, Qoblique))
-         [tdict setObject: [NSNumber numberWithFloat: 1.0]
-                   forKey: NSFontSlantTrait];
-       else if (EQ (tem, intern ("reverse-italic")) ||
-                EQ (tem, intern ("reverse-oblique")))
-         [tdict setObject: [NSNumber numberWithFloat: -1.0]
-                   forKey: NSFontSlantTrait];
-       else
-         [tdict setObject: [NSNumber numberWithFloat: 0.0]
-                   forKey: NSFontSlantTrait];
-      }
+  tem = FONT_SLANT_SYMBOLIC (font_spec);
+  if (!NILP (tem))
+    {
+      if (EQ (tem, Qitalic) || EQ (tem, Qoblique))
+       [tdict setObject: [NSNumber numberWithFloat: 1.0]
+                 forKey: NSFontSlantTrait];
+      else if (EQ (tem, intern ("reverse-italic"))
+              || EQ (tem, intern ("reverse-oblique")))
+       [tdict setObject: [NSNumber numberWithFloat: -1.0]
+                 forKey: NSFontSlantTrait];
+      else
+       [tdict setObject: [NSNumber numberWithFloat: 0.0]
+                 forKey: NSFontSlantTrait];
+    }
 
-    tem = FONT_WIDTH_SYMBOLIC (font_spec);
-    if (!NILP (tem))
-      {
-       if (EQ (tem, Qcondensed))
-         [tdict setObject: [NSNumber numberWithFloat: -1.0]
-                   forKey: NSFontWidthTrait];
-       else if (EQ (tem, Qexpanded))
-         [tdict setObject: [NSNumber numberWithFloat: 1.0]
-                   forKey: NSFontWidthTrait];
-       else
-         [tdict setObject: [NSNumber numberWithFloat: 0.0]
-                   forKey: NSFontWidthTrait];
-      }
+  tem = FONT_WIDTH_SYMBOLIC (font_spec);
+  if (!NILP (tem))
+    {
+      if (EQ (tem, Qcondensed))
+       [tdict setObject: [NSNumber numberWithFloat: -1.0]
+                 forKey: NSFontWidthTrait];
+      else if (EQ (tem, Qexpanded))
+       [tdict setObject: [NSNumber numberWithFloat: 1.0]
+                 forKey: NSFontWidthTrait];
+      else
+       [tdict setObject: [NSNumber numberWithFloat: 0.0]
+                 forKey: NSFontWidthTrait];
+    }
 
-    tem = FONT_WEIGHT_SYMBOLIC (font_spec);
+  tem = FONT_WEIGHT_SYMBOLIC (font_spec);
 
-    if (!NILP (tem))
-      {
-       if (EQ (tem, Qbold))
-         {
-           [tdict setObject: [NSNumber numberWithFloat: 1.0]
-                     forKey: NSFontWeightTrait];
-         }
-       else if (EQ (tem, Qlight))
-         {
-           [tdict setObject: [NSNumber numberWithFloat: -1.0]
-                     forKey: NSFontWeightTrait];
-         }
-       else
-         {
-           [tdict setObject: [NSNumber numberWithFloat: 0.0]
-                     forKey: NSFontWeightTrait];
-         }
-      }
+  if (!NILP (tem))
+    {
+      if (EQ (tem, Qbold))
+       {
+         [tdict setObject: [NSNumber numberWithFloat: 1.0]
+                   forKey: NSFontWeightTrait];
+       }
+      else if (EQ (tem, Qlight))
+       {
+         [tdict setObject: [NSNumber numberWithFloat: -1.0]
+                   forKey: NSFontWeightTrait];
+       }
+      else
+       {
+         [tdict setObject: [NSNumber numberWithFloat: 0.0]
+                   forKey: NSFontWeightTrait];
+       }
+    }
 
-    tem = AREF (font_spec, FONT_SPACING_INDEX);
+  tem = AREF (font_spec, FONT_SPACING_INDEX);
 
-    if (family != nil)
-      {
-       [fdAttrs setObject: family
-                   forKey: NSFontFamilyAttribute];
-      }
+  if (family != nil)
+    [fdAttrs setObject: family
+               forKey: NSFontFamilyAttribute];
 
-    if (FIXNUMP (tem))
-      {
-       if (XFIXNUM (tem) != FONT_SPACING_PROPORTIONAL)
-         {
-           [fdAttrs setObject: [NSNumber numberWithBool:YES]
-                       forKey: NSFontFixedAdvanceAttribute];
-         }
-       else
-         {
-           [fdAttrs setObject: [NSNumber numberWithBool:NO]
-                       forKey: NSFontFixedAdvanceAttribute];
-         }
-      }
+  if (FIXNUMP (tem))
+    {
+      if (XFIXNUM (tem) != FONT_SPACING_PROPORTIONAL)
+       [fdAttrs setObject: [NSNumber numberWithBool: YES]
+                   forKey: NSFontFixedAdvanceAttribute];
+      else
+       [fdAttrs setObject: [NSNumber numberWithBool: NO]
+                   forKey: NSFontFixedAdvanceAttribute];
+    }
 
-    /* Handle special families such as ``fixed'' or ``Sans Serif''.  */
+  /* Handle special families such as ``fixed'', ``monospace'' or
+     ``Sans Serif''.  */
 
-    if ([family isEqualToString: @"fixed"])
-      {
-       [fdAttrs setObject: [[NSFont userFixedPitchFontOfSize: 0] familyName]
-                   forKey: NSFontFamilyAttribute];
-      }
-    else if ([family isEqualToString: @"Sans Serif"])
-      {
-       [fdAttrs setObject: [[NSFont userFontOfSize: 0] familyName]
-                   forKey: NSFontFamilyAttribute];
-      }
+  if ([family isEqualToString: @"fixed"]
+      || [family isEqualToString: @"monospace"])
+    [fdAttrs setObject: [[NSFont userFixedPitchFontOfSize: 0] familyName]
+               forKey: NSFontFamilyAttribute];
+  else if ([family isEqualToString: @"Sans Serif"])
+    [fdAttrs setObject: [[NSFont userFontOfSize: 0] familyName]
+               forKey: NSFontFamilyAttribute];
 
-    [fdAttrs setObject: tdict forKey: NSFontTraitsAttribute];
+  [fdAttrs setObject: tdict forKey: NSFontTraitsAttribute];
 
-    fdesc = [[[NSFontDescriptor fontDescriptorWithFontAttributes: fdAttrs]
-               retain] autorelease];
+  fdesc = [[[NSFontDescriptor fontDescriptorWithFontAttributes: fdAttrs]
+            retain] autorelease];
 
-    [tdict release];
-    [fdAttrs release];
-    return fdesc;
+  [tdict release];
+  [fdAttrs release];
+  return fdesc;
 }
 
 
@@ -477,7 +469,7 @@ ns_descriptor_to_entity (NSFontDescriptor *desc,
   ASET (font_entity, FONT_SIZE_INDEX, make_fixnum (0));
   ASET (font_entity, FONT_AVGWIDTH_INDEX, make_fixnum (0));
   ASET (font_entity, FONT_SPACING_INDEX,
-       make_fixnum ((data.specified & GS_SPECIFIED_WIDTH && data.monospace_p)
+       make_fixnum ((data.specified & GS_SPECIFIED_SPACING && data.monospace_p)
                     ? FONT_SPACING_MONO : FONT_SPACING_PROPORTIONAL));
 
   ASET (font_entity, FONT_EXTRA_INDEX, extra);
@@ -792,53 +784,53 @@ static NSSet
 static Lisp_Object
 ns_findfonts (Lisp_Object font_spec, BOOL isMatch)
 {
-    Lisp_Object tem, list = Qnil;
-    NSFontDescriptor *fdesc;
-    NSArray *all_descs;
-    GSFontEnumerator *enumerator = [GSFontEnumerator sharedEnumerator];
+  Lisp_Object tem, list = Qnil;
+  NSFontDescriptor *fdesc;
+  NSArray *all_descs;
+  GSFontEnumerator *enumerator = [GSFontEnumerator sharedEnumerator];
 
-    NSSet *cFamilies;
+  NSSet *cFamilies;
 
-    block_input ();
-    if (NSFONT_TRACE)
-      {
-       fprintf (stderr, "nsfont: %s for fontspec:\n    ",
-                (isMatch ? "match" : "list"));
-       debug_print (font_spec);
-      }
+  block_input ();
+  if (NSFONT_TRACE)
+    {
+      fprintf (stderr, "nsfont: %s for fontspec:\n    ",
+              (isMatch ? "match" : "list"));
+      debug_print (font_spec);
+    }
 
-    cFamilies = ns_get_covering_families (ns_get_req_script (font_spec), 0.90);
+  cFamilies = ns_get_covering_families (ns_get_req_script (font_spec), 0.90);
 
-    fdesc = ns_spec_to_descriptor (font_spec);
-    all_descs = [enumerator availableFontDescriptors];
+  fdesc = ns_spec_to_descriptor (font_spec);
+  all_descs = [enumerator availableFontDescriptors];
 
-    for (NSFontDescriptor *desc in all_descs)
-      {
-       if (![cFamilies containsObject:
-                [desc objectForKey: NSFontFamilyAttribute]])
-           continue;
-       if (!ns_font_descs_match_p (fdesc, desc))
-         continue;
-
-        tem = ns_descriptor_to_entity (desc,
-                                      AREF (font_spec, FONT_EXTRA_INDEX),
-                                       NULL);
-        if (isMatch)
-          return tem;
-       list = Fcons (tem, list);
-      }
+  for (NSFontDescriptor *desc in all_descs)
+    {
+      if (![cFamilies containsObject:
+                 [desc objectForKey: NSFontFamilyAttribute]])
+       continue;
+      if (!ns_font_descs_match_p (fdesc, desc))
+       continue;
+
+      tem = ns_descriptor_to_entity (desc,
+                                    AREF (font_spec, FONT_EXTRA_INDEX),
+                                    NULL);
+      if (isMatch)
+       return tem;
+      list = Fcons (tem, list);
+    }
 
-    unblock_input ();
+  unblock_input ();
 
-    /* Return something if was a match and nothing found.  */
-    if (isMatch)
-      return ns_fallback_entity ();
+  /* Return something if was a match and nothing found.  */
+  if (isMatch)
+    return ns_fallback_entity ();
 
-    if (NSFONT_TRACE)
-       fprintf (stderr, "    Returning %"pD"d entities.\n",
-                list_length (list));
+  if (NSFONT_TRACE)
+    fprintf (stderr, "    Returning %"pD"d entities.\n",
+            list_length (list));
 
-    return list;
+  return list;
 }
 
 



reply via email to

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