summaryrefslogtreecommitdiff
path: root/src/ccl.h
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1997-02-20 07:02:49 +0000
committerKarl Heuer <kwzh@gnu.org>1997-02-20 07:02:49 +0000
commit29ce3607c99f8b6f8c8971ab2768175f3674fcb9 (patch)
treebd6fe5058bf419dd8d69bdc2c13ffbe9c4abfdb8 /src/ccl.h
parentd58e6703b3d19cdda2b640b6784ab17b8048cb51 (diff)
downloademacs-29ce3607c99f8b6f8c8971ab2768175f3674fcb9.tar.gz
Initial revision
Diffstat (limited to 'src/ccl.h')
-rw-r--r--src/ccl.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/ccl.h b/src/ccl.h
new file mode 100644
index 00000000000..ebda0cc1595
--- /dev/null
+++ b/src/ccl.h
@@ -0,0 +1,53 @@
+/* Header for CCL (Code Conversion Language) interpreter.
+
+ Copyright (C) 1995 Free Software Foundation, Inc.
+ Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#ifndef _CCL_H
+#define _CCL_H
+
+/* Structure to hold information about running CCL code. Read
+ comments in the file ccl.c for the detail of each field. */
+struct ccl_program {
+ int size; /* Size of the compiled code. */
+ Lisp_Object *prog; /* Pointer into the compiled code. */
+ int ic; /* Instruction Counter (index for PROG). */
+ int eof_ic; /* Instruction Counter for end-of-file
+ processing code. */
+ int reg[8]; /* CCL registers, reg[7] is used for
+ condition flag of relational
+ operations. */
+ int last_block; /* Set to 1 while processing the last
+ block. */
+ int status; /* Exit status of the CCL program. */
+ int buf_magnification; /* Output buffer magnification. How
+ many times bigger the output buffer
+ should be than the input buffer. */
+};
+
+/* This data type is used for the spec field of the structure
+ coding_system. */
+
+struct ccl_spec {
+ struct ccl_program decoder;
+ struct ccl_program encoder;
+};
+
+/* Alist of fontname patterns vs corresponding CCL program. */
+extern Lisp_Object Vfont_ccl_encoder_alist;
+
+#endif /* _CCL_H */