diff src/xfont.c @ 91142:4bcf0716ddf4

* xfont.c (x_font_charset_alist): Moved to font.c and renamed. (xfont_registry_charsets): Likewise. Caller changed. (syms_of_xfont): Don't handle x_font_charset_alist.
author Kenichi Handa <handa@m17n.org>
date Sat, 01 Dec 2007 02:41:41 +0000
parents a31984e21969
children ca4dcecf8f88
line wrap: on
line diff
--- a/src/xfont.c	Sat Dec 01 02:41:23 2007 +0000
+++ b/src/xfont.c	Sat Dec 01 02:41:41 2007 +0000
@@ -40,24 +40,6 @@
 
 Lisp_Object Qx;
 
-/* Alist of font registry symbol and the corresponding charsets
-   information.  The information is retrieved from
-   Vfont_encoding_alist on demand.
-
-   Eash element has the form:
-	(REGISTRY . (ENCODING-CHARSET-ID . REPERTORY-CHARSET-ID))
-   or
-	(REGISTRY . nil)
-
-   In the former form, ENCODING-CHARSET-ID is an ID of a charset that
-   encodes a character code to a glyph code of a font, and
-   REPERTORY-CHARSET-ID is an ID of a charset that tells if a
-   character is supported by a font.
-
-   The latter form means that the information for REGISTRY couldn't be
-   retrieved.  */
-static Lisp_Object x_font_charset_alist;
-
 /* Prototypes of support functions.  */
 extern void x_clear_errors P_ ((Display *));
 
@@ -174,69 +156,6 @@
 	  ? NULL : pcm);
 }
 
-extern Lisp_Object find_font_encoding P_ ((Lisp_Object));
-
-/* Return encoding charset and repertory charset for REGISTRY in
-   ENCODING and REPERTORY correspondingly.  If correct information for
-   REGISTRY is available, return 0.  Otherwise return -1.  */
-
-static int
-xfont_registry_charsets (registry, encoding, repertory)
-     Lisp_Object registry;
-     struct charset **encoding, **repertory;
-{
-  Lisp_Object val;
-  int encoding_id, repertory_id;
-
-  val = assq_no_quit (registry, x_font_charset_alist);
-  if (! NILP (val))
-    {
-      val = XCDR (val);
-      if (NILP (val))
-	return -1;
-      encoding_id = XINT (XCAR (val));
-      repertory_id = XINT (XCDR (val));
-    }
-  else
-    {
-      val = find_font_encoding (SYMBOL_NAME (registry));
-      if (SYMBOLP (val) && CHARSETP (val))
-	{
-	  encoding_id = repertory_id = XINT (CHARSET_SYMBOL_ID (val));
-	}
-      else if (CONSP (val))
-	{
-	  if (! CHARSETP (XCAR (val)))
-	    goto invalid_entry;
-	  encoding_id = XINT (CHARSET_SYMBOL_ID (XCAR (val)));
-	  if (NILP (XCDR (val)))
-	    repertory_id = -1;
-	  else
-	    {
-	      if (! CHARSETP (XCDR (val)))
-		goto invalid_entry;
-	      repertory_id = XINT (CHARSET_SYMBOL_ID (XCDR (val)));
-	    }
-	}      
-      else
-	goto invalid_entry;
-      val = Fcons (make_number (encoding_id), make_number (repertory_id));
-      x_font_charset_alist
-	= nconc2 (x_font_charset_alist, Fcons (Fcons (registry, val), Qnil));
-    }
-
-  if (encoding)
-    *encoding = CHARSET_FROM_ID (encoding_id);
-  if (repertory)
-    *repertory = repertory_id >= 0 ? CHARSET_FROM_ID (repertory_id) : NULL;
-  return 0;
-
- invalid_entry:
-  x_font_charset_alist
-    = nconc2 (x_font_charset_alist, Fcons (Fcons (registry, Qnil), Qnil));
-  return -1;
-}
-
 static Lisp_Object xfont_get_cache P_ ((Lisp_Object));
 static Lisp_Object xfont_list P_ ((Lisp_Object, Lisp_Object));
 static Lisp_Object xfont_match P_ ((Lisp_Object, Lisp_Object));
@@ -567,7 +486,7 @@
   /* At first, check if we know how to encode characters for this
      font.  */
   registry = AREF (entity, FONT_REGISTRY_INDEX);
-  if (xfont_registry_charsets (registry, &encoding, &repertory) < 0)
+  if (font_registry_charsets (registry, &encoding, &repertory) < 0)
     return NULL;
 
   if (XINT (AREF (entity, FONT_SIZE_INDEX)) != 0)
@@ -781,7 +700,7 @@
   Lisp_Object registry = AREF (entity, FONT_REGISTRY_INDEX);
   struct charset *repertory;
 
-  if (xfont_registry_charsets (registry, NULL, &repertory) < 0)
+  if (font_registry_charsets (registry, NULL, &repertory) < 0)
     return -1;
   if (! repertory)
     return -1;
@@ -903,9 +822,6 @@
 void
 syms_of_xfont ()
 {
-  staticpro (&x_font_charset_alist);
-  x_font_charset_alist = Qnil;
-
   DEFSYM (Qx, "x");
   xfont_driver.type = Qx;
   register_font_driver (&xfont_driver, NULL);