changeset 25068:0d081383b5b8

(x_find_ccl_program): Get compiled CCL code by just calling setup_coding_system.
author Kenichi Handa <handa@m17n.org>
date Mon, 26 Jul 1999 11:57:35 +0000
parents 23910b121ced
children ee9bfbc340ba
files src/xterm.c
diffstat 1 files changed, 11 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/src/xterm.c	Mon Jul 26 11:56:56 1999 +0000
+++ b/src/xterm.c	Mon Jul 26 11:57:35 1999 +0000
@@ -12077,10 +12077,7 @@
 x_find_ccl_program (fontp)
      struct font_info *fontp;
 {
-  extern Lisp_Object Vfont_ccl_encoder_alist, Vccl_program_table;
-  extern Lisp_Object Qccl_program_idx;
-  extern Lisp_Object resolve_symbol_ccl_program ();
-  Lisp_Object list, elt, ccl_prog, ccl_id;
+  Lisp_Object list, elt;
 
   for (list = Vfont_ccl_encoder_alist; CONSP (list); list = XCONS (list)->cdr)
     {
@@ -12089,26 +12086,16 @@
 	  && STRINGP (XCONS (elt)->car)
 	  && (fast_c_string_match_ignore_case (XCONS (elt)->car, fontp->name)
 	      >= 0))
-	{
-	  if (SYMBOLP (XCONS (elt)->cdr) &&
-	      (!NILP (ccl_id = Fget (XCONS (elt)->cdr, Qccl_program_idx))))
-	    {
-	      ccl_prog = XVECTOR (Vccl_program_table)->contents[XUINT (ccl_id)];
-	      if (!CONSP (ccl_prog)) continue;
-	      ccl_prog = XCONS (ccl_prog)->cdr;
-	    }
-	  else
-	    {
-	      ccl_prog = XCONS (elt)->cdr;
-	      if (!VECTORP (ccl_prog)) continue;
-	    }
-	    
-	  fontp->font_encoder
-	    = (struct ccl_program *) xmalloc (sizeof (struct ccl_program));
-	  setup_ccl_program (fontp->font_encoder,
-			     resolve_symbol_ccl_program (ccl_prog));
-	  break;
-	}
+	break;
+    }
+  if (! NILP (list))
+    {
+      struct ccl_program *ccl = xmalloc (sizeof (struct ccl_program));
+
+      if (setup_ccl_program (ccl, XCONS (elt)->cdr) < 0)
+	xfree (ccl);
+      else
+	fontp->font_encoder = ccl;
     }
 }