changeset 64277:72dab4f8f589

(try_font_list) [MAC_OS]: Try font family name beginning with that for ASCII.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Wed, 13 Jul 2005 09:13:19 +0000
parents 0a062d2d75f3
children b5d88178dd8d
files src/xfaces.c
diffstat 1 files changed, 15 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/xfaces.c	Wed Jul 13 09:12:59 2005 +0000
+++ b/src/xfaces.c	Wed Jul 13 09:13:19 2005 +0000
@@ -6745,14 +6745,21 @@
     nfonts = try_alternative_families (f, try_family, registry, fonts);
 
 #ifdef MAC_OS
-  /* When realizing the default face and a font spec does not matched
-     exactly, Emacs looks for ones with the same registry as the
-     default font.  On the Mac, this is mac-roman, which does not work
-     if the family is -etl-fixed, e.g.  The following widens the
-     choices and fixes that problem.  */
-  if (nfonts == 0 && STRINGP (try_family) && STRINGP (registry)
-      && xstricmp (SDATA (registry), "mac-roman") == 0)
-    nfonts = try_alternative_families (f, try_family, Qnil, fonts);
+  if (nfonts == 0 && STRINGP (try_family) && STRINGP (registry))
+    if (xstricmp (SDATA (registry), "mac-roman") == 0)
+      /* When realizing the default face and a font spec does not
+	 matched exactly, Emacs looks for ones with the same registry
+	 as the default font.  On the Mac, this is mac-roman, which
+	 does not work if the family is -etl-fixed, e.g.  The
+	 following widens the choices and fixes that problem.  */
+      nfonts = try_alternative_families (f, try_family, Qnil, fonts);
+    else if (SBYTES (try_family) > 0
+	     && SREF (try_family, SBYTES (try_family) - 1) != '*')
+      /* Some Central European/Cyrillic font family names have the
+	 Roman counterpart name as their prefix.  */
+      nfonts = try_alternative_families (f, concat2 (try_family,
+						     build_string ("*")),
+					 registry, fonts);
 #endif
 
   if (EQ (try_family, family))