comparison src/coding.c @ 21664:4097e558fa19

(setup_coding_system): For a type 4 coding system, FLAGS member of coding spec is a cons of CCL program symbols.
author Kenichi Handa <handa@m17n.org>
date Mon, 20 Apr 1998 02:14:57 +0000
parents 8043d47984fd
children 64c815fe1bdc
comparison
equal deleted inserted replaced
21663:a03ddc4a728b 21664:4097e558fa19
3043 coding->type = coding_type_ccl; 3043 coding->type = coding_type_ccl;
3044 coding->common_flags 3044 coding->common_flags
3045 |= CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK; 3045 |= CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
3046 { 3046 {
3047 Lisp_Object val = XVECTOR (coding_spec)->contents[4]; 3047 Lisp_Object val = XVECTOR (coding_spec)->contents[4];
3048 Lisp_Object decoder, encoder;
3049
3048 if (CONSP (val) 3050 if (CONSP (val)
3049 && VECTORP (XCONS (val)->car) 3051 && SYMBOLP (XCONS (val)->car)
3050 && VECTORP (XCONS (val)->cdr)) 3052 && !NILP (decoder = Fget (XCONS (val)->car, Qccl_program_idx))
3053 && (decoder = Fcdr (Faref (Vccl_program_table, decoder)))
3054 && SYMBOLP (XCONS (val)->cdr)
3055 && !NILP (encoder = Fget (XCONS (val)->cdr, Qccl_program_idx))
3056 && (encoder = Fcdr (Faref (Vccl_program_table, encoder))))
3051 { 3057 {
3052 setup_ccl_program (&(coding->spec.ccl.decoder), XCONS (val)->car); 3058 setup_ccl_program (&(coding->spec.ccl.decoder), decoder);
3053 setup_ccl_program (&(coding->spec.ccl.encoder), XCONS (val)->cdr); 3059 setup_ccl_program (&(coding->spec.ccl.encoder), encoder);
3054 } 3060 }
3055 else 3061 else
3056 goto label_invalid_coding_system; 3062 goto label_invalid_coding_system;
3057 } 3063 }
3058 coding->common_flags |= CODING_REQUIRE_FLUSHING_MASK; 3064 coding->common_flags |= CODING_REQUIRE_FLUSHING_MASK;