]> code.delx.au - gnu-emacs/blobdiff - src/fontset.c
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-25
[gnu-emacs] / src / fontset.c
index baa56ad3a6ff112d914d3a44c2f18c861aa71c0a..4c54d636398915eb8fc86b9f89d6907e73086129 100644 (file)
@@ -774,6 +774,23 @@ make_fontset (frame, name, base)
 }
 
 
+/* Set the ASCII font of the default fontset to FONTNAME if that is
+   not yet set.  */
+void
+set_default_ascii_font (fontname)
+     Lisp_Object fontname;
+{
+  if (! CONSP (FONTSET_ASCII (Vdefault_fontset)))
+    {
+      int id = fs_query_fontset (fontname, 2);
+
+      if (id >= 0)
+       fontname = XCDR (FONTSET_ASCII (FONTSET_FROM_ID (id)));
+      FONTSET_ASCII (Vdefault_fontset)
+       = Fcons (make_number (0), fontname);
+    }
+}
+
 \f
 /********** INTERFACES TO xfaces.c, xfns.c, and dispextern.h **********/
 
@@ -1410,7 +1427,7 @@ appended.  By default, FONT-SPEC overrides the previous settings.  */)
      Lisp_Object name, target, font_spec, frame, add;
 {
   Lisp_Object fontset;
-  Lisp_Object font_def, registry;
+  Lisp_Object font_def, registry, family;
   Lisp_Object encoding, repertory;
   Lisp_Object range_list;
   struct charset *charset = NULL;
@@ -1441,16 +1458,13 @@ appended.  By default, FONT-SPEC overrides the previous settings.  */)
            CHECK_STRING (AREF (font_spec, j));
            ASET (font_spec, j, Fdowncase (AREF (font_spec, j)));
          }
+      family = AREF (font_spec, FONT_SPEC_FAMILY_INDEX);
       /* REGISTRY should not be omitted.  */
       CHECK_STRING (AREF (font_spec, FONT_SPEC_REGISTRY_INDEX));
-      registry = Fdowncase (AREF (font_spec, FONT_SPEC_REGISTRY_INDEX));
-      ASET (font_spec, FONT_SPEC_REGISTRY_INDEX, registry);
-
+      registry = AREF (font_spec, FONT_SPEC_REGISTRY_INDEX);
     }
   else if (CONSP (font_spec))
     {
-      Lisp_Object family;
-
       family = XCAR (font_spec);
       registry = XCDR (font_spec);
 
@@ -1474,7 +1488,7 @@ appended.  By default, FONT-SPEC overrides the previous settings.  */)
   if (STRINGP (font_spec))
     encoding = find_font_encoding (font_spec);
   else
-    encoding = find_font_encoding (registry);
+    encoding = find_font_encoding (concat2 (family, registry));
   if (SYMBOLP (encoding))
     {
       CHECK_CHARSET (encoding);
@@ -2132,21 +2146,6 @@ syms_of_fontset ()
   FONTSET_ID (Vdefault_fontset) = make_number (0);
   FONTSET_NAME (Vdefault_fontset)
     = build_string ("-*-*-*-*-*-*-*-*-*-*-*-*-fontset-default");
-  {
-    Lisp_Object default_ascii_font;
-
-#if defined (macintosh)
-    default_ascii_font
-      = build_string ("-apple-monaco-medium-r-*--*-120-*-*-*-*-mac-roman");
-#elif defined (WINDOWSNT)
-    default_ascii_font
-      = build_string ("-*-courier new-normal-r-*-*-*-100-*-*-*-*-iso8859-1");
-#else
-    default_ascii_font
-      = build_string ("-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1");
-#endif
-    FONTSET_ASCII (Vdefault_fontset) = default_ascii_font;
-  }
   AREF (Vfontset_table, 0) = Vdefault_fontset;
   next_fontset_id = 1;