Commit d2bc5a70 authored by Kenichi Handa's avatar Kenichi Handa

(struct ccl_program): Members eol_type and multibyte

deleted.  New members src_multibyte, dst_multibyte, consumed, and
(struct ccl_spec): Members decoder and encoder deleted.  New
memeber ccl.
(ccl_driver): Prototype updated.
(Qccl, Qcclp, Fccl_program_p): Extern them.
parent c10842ea
/* Header for CCL (Code Conversion Language) interpreter.
Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
Copyright (C) 2001, 2002
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H13PRO009
This file is part of GNU Emacs.
......@@ -53,16 +56,14 @@ struct ccl_program {
many times bigger the output buffer
should be than the input buffer. */
int stack_idx; /* How deep the call of CCL_Call is nested. */
int eol_type; /* When the CCL program is used for
encoding by a coding system, set to
the eol_type of the coding system.
In other cases, always
int multibyte; /* 1 if the source text is multibyte. */
int src_multibyte; /* 1 if the input buffer is multibyte. */
int dst_multibyte; /* 1 if the output buffer is multibyte. */
int cr_consumed; /* Flag for encoding DOS-like EOL
format when the CCL program is used
for encoding by a coding
system. */
int consumed;
int produced;
int suppress_error; /* If nonzero, don't insert error
message in the output. */
int eight_bit_control; /* Set to nonzero if CCL_WRITE_CHAR
......@@ -73,13 +74,13 @@ struct ccl_program {
coding_system. */
struct ccl_spec {
struct ccl_program decoder;
struct ccl_program encoder;
unsigned char valid_codes[256];
struct ccl_program ccl;
int cr_carryover; /* CR carryover flag. */
unsigned char eight_bit_carryover[MAX_MULTIBYTE_LENGTH];
#define CODING_SPEC_CCL_PROGRAM(coding) ((coding)->spec.ccl.ccl)
/* Alist of fontname patterns vs corresponding CCL program. */
extern Lisp_Object Vfont_ccl_encoder_alist;
......@@ -87,8 +88,7 @@ extern Lisp_Object Vfont_ccl_encoder_alist;
execution of ccl program CCL_PROG (symbol or vector). */
extern int setup_ccl_program P_ ((struct ccl_program *, Lisp_Object));
extern int ccl_driver P_ ((struct ccl_program *, unsigned char *,
unsigned char *, int, int, int *));
extern void ccl_driver P_ ((struct ccl_program *, int *, int *, int, int));
/* Vector of CCL program names vs corresponding program data. */
extern Lisp_Object Vccl_program_table;
......@@ -97,4 +97,14 @@ extern Lisp_Object Vccl_program_table;
is an index for Vccl_protram_table. */
extern Lisp_Object Qccl_program_idx;
extern Lisp_Object Qccl, Qcclp;
EXFUN (Fccl_program_p, 1);
#define CHECK_CCL_PROGRAM(x) \
do { \
if (NILP (Fccl_program_p (x))) \
x = wrong_type_argument (Qcclp, (x)); \
} while (0);
#endif /* EMACS_CCL_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment