# HG changeset patch # User Kenichi Handa # Date 932990304 0 # Node ID ee9bfbc340baeb107bc57ab2346518460b737c85 # Parent 0d081383b5b85e068c4dec6ffedc8dd5d4202dfb (w32_find_ccl_program): Get compiled CCL code by just calling setup_coding_system. diff -r 0d081383b5b8 -r ee9bfbc340ba src/w32fns.c --- a/src/w32fns.c Mon Jul 26 11:57:35 1999 +0000 +++ b/src/w32fns.c Mon Jul 26 11:58:24 1999 +0000 @@ -41,6 +41,7 @@ #include "w32heap.h" #include "termhooks.h" #include "coding.h" +#include "ccl.h" #include #include @@ -6197,10 +6198,7 @@ w32_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) { @@ -6209,26 +6207,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; } }