Mercurial > emacs
annotate src/ccl.h @ 69478:e8bb5df2ba7a
Add index entries around each paragraph rather than depend on entries
from beginning of node. Doing so ensures that index entries are less
likely to be forgotten if text is cut and pasted, and are necessary
anyway if the references are on a separate page. It seems that
makeinfo is now (v. 4.8) only producing one index entry per node, so
there is no longer any excuse not to. Use subheading instead of
heading. The incorrect use of heading produced very large fonts in
Info--as large as the main heading.
(From Bill Wohler): MH-E never did appear in Emacs 21--MH-E versions 6
and 7 appeared *around* the time of these Emacs releases.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Wed, 15 Mar 2006 00:26:12 +0000 |
parents | 547f2b420666 |
children | 6ee41fdd69ff 7beb78bc1f8e |
rev | line source |
---|---|
17052 | 1 /* Header for CCL (Code Conversion Language) interpreter. |
67658 | 2 Copyright (C) 1995, 1998, 2000 |
3 National Institute of Advanced Industrial Science and Technology (AIST) | |
4 Registration Number H14PRO021 | |
17052 | 5 |
17071 | 6 This file is part of GNU Emacs. |
7 | |
8 GNU Emacs is free software; you can redistribute it and/or modify | |
9 it under the terms of the GNU General Public License as published by | |
10 the Free Software Foundation; either version 2, or (at your option) | |
11 any later version. | |
17052 | 12 |
17071 | 13 GNU Emacs is distributed in the hope that it will be useful, |
14 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 GNU General Public License for more details. | |
17052 | 17 |
17071 | 18 You should have received a copy of the GNU General Public License |
19 along with GNU Emacs; see the file COPYING. If not, write to | |
64084 | 20 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
21 Boston, MA 02110-1301, USA. */ | |
17052 | 22 |
29569
2d148b8db59b
(EMACS_CCL_H): Renamed from _CCL_H.
Kenichi Handa <handa@m17n.org>
parents:
25065
diff
changeset
|
23 #ifndef EMACS_CCL_H |
2d148b8db59b
(EMACS_CCL_H): Renamed from _CCL_H.
Kenichi Handa <handa@m17n.org>
parents:
25065
diff
changeset
|
24 #define EMACS_CCL_H |
17052 | 25 |
20721
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
26 /* Macros for exit status of CCL program. */ |
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
27 #define CCL_STAT_SUCCESS 0 /* Terminated successfully. */ |
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
28 #define CCL_STAT_SUSPEND_BY_SRC 1 /* Terminated by empty input. */ |
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
29 #define CCL_STAT_SUSPEND_BY_DST 2 /* Terminated by output buffer full. */ |
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
30 #define CCL_STAT_INVALID_CMD 3 /* Terminated because of invalid |
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
31 command. */ |
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
32 #define CCL_STAT_QUIT 4 /* Terminated because of quit. */ |
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
33 |
17052 | 34 /* Structure to hold information about running CCL code. Read |
35 comments in the file ccl.c for the detail of each field. */ | |
36 struct ccl_program { | |
62800 | 37 int idx; /* Index number of the CCL program. |
38 -1 means that the program was given | |
39 by a vector, not by a program | |
40 name. */ | |
17052 | 41 int size; /* Size of the compiled code. */ |
42 Lisp_Object *prog; /* Pointer into the compiled code. */ | |
43 int ic; /* Instruction Counter (index for PROG). */ | |
44 int eof_ic; /* Instruction Counter for end-of-file | |
45 processing code. */ | |
46 int reg[8]; /* CCL registers, reg[7] is used for | |
47 condition flag of relational | |
48 operations. */ | |
20721
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
49 int private_state; /* CCL instruction may use this |
30755
c9a72e24976c
(struct ccl_program): New member multibyte.
Kenichi Handa <handa@m17n.org>
parents:
29723
diff
changeset
|
50 for private use, mainly for saving |
c9a72e24976c
(struct ccl_program): New member multibyte.
Kenichi Handa <handa@m17n.org>
parents:
29723
diff
changeset
|
51 internal states on suspending. |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
36412
diff
changeset
|
52 This variable is set to 0 when ccl is |
20721
b5b97880b7d0
Definition of macros CCL_STAT_XXX are moved from ccl.c to here.
Kenichi Handa <handa@m17n.org>
parents:
20306
diff
changeset
|
53 set up. */ |
17052 | 54 int last_block; /* Set to 1 while processing the last |
55 block. */ | |
56 int status; /* Exit status of the CCL program. */ | |
57 int buf_magnification; /* Output buffer magnification. How | |
58 many times bigger the output buffer | |
59 should be than the input buffer. */ | |
24689
46d2dc61ec31
(struct ccl_program): New member stack_idx.
Kenichi Handa <handa@m17n.org>
parents:
22875
diff
changeset
|
60 int stack_idx; /* How deep the call of CCL_Call is nested. */ |
29723
9d85d8264c59
(struct ccl_program): New member eol_type.
Kenichi Handa <handa@m17n.org>
parents:
29569
diff
changeset
|
61 int eol_type; /* When the CCL program is used for |
9d85d8264c59
(struct ccl_program): New member eol_type.
Kenichi Handa <handa@m17n.org>
parents:
29569
diff
changeset
|
62 encoding by a coding system, set to |
34817
41f50ad22d7a
(struct ccl_program): New member cr_consumed.
Kenichi Handa <handa@m17n.org>
parents:
30755
diff
changeset
|
63 the eol_type of the coding system. |
41f50ad22d7a
(struct ccl_program): New member cr_consumed.
Kenichi Handa <handa@m17n.org>
parents:
30755
diff
changeset
|
64 In other cases, always |
41f50ad22d7a
(struct ccl_program): New member cr_consumed.
Kenichi Handa <handa@m17n.org>
parents:
30755
diff
changeset
|
65 CODING_EOL_LF. */ |
41f50ad22d7a
(struct ccl_program): New member cr_consumed.
Kenichi Handa <handa@m17n.org>
parents:
30755
diff
changeset
|
66 int multibyte; /* 1 if the source text is multibyte. */ |
41f50ad22d7a
(struct ccl_program): New member cr_consumed.
Kenichi Handa <handa@m17n.org>
parents:
30755
diff
changeset
|
67 int cr_consumed; /* Flag for encoding DOS-like EOL |
41f50ad22d7a
(struct ccl_program): New member cr_consumed.
Kenichi Handa <handa@m17n.org>
parents:
30755
diff
changeset
|
68 format when the CCL program is used |
41f50ad22d7a
(struct ccl_program): New member cr_consumed.
Kenichi Handa <handa@m17n.org>
parents:
30755
diff
changeset
|
69 for encoding by a coding |
29723
9d85d8264c59
(struct ccl_program): New member eol_type.
Kenichi Handa <handa@m17n.org>
parents:
29569
diff
changeset
|
70 system. */ |
35528
4ca44cbfa530
(sturct ccl_program): New member suppress_error.
Kenichi Handa <handa@m17n.org>
parents:
34891
diff
changeset
|
71 int suppress_error; /* If nonzero, don't insert error |
4ca44cbfa530
(sturct ccl_program): New member suppress_error.
Kenichi Handa <handa@m17n.org>
parents:
34891
diff
changeset
|
72 message in the output. */ |
51328
2466e5a90751
(struct ccl_program) <eight_bit_control: Comment fixed.
Kenichi Handa <handa@m17n.org>
parents:
49600
diff
changeset
|
73 int eight_bit_control; /* If nonzero, ccl_driver counts all |
2466e5a90751
(struct ccl_program) <eight_bit_control: Comment fixed.
Kenichi Handa <handa@m17n.org>
parents:
49600
diff
changeset
|
74 eight-bit-control bytes written by |
2466e5a90751
(struct ccl_program) <eight_bit_control: Comment fixed.
Kenichi Handa <handa@m17n.org>
parents:
49600
diff
changeset
|
75 CCL_WRITE_CHAR. After execution, |
2466e5a90751
(struct ccl_program) <eight_bit_control: Comment fixed.
Kenichi Handa <handa@m17n.org>
parents:
49600
diff
changeset
|
76 if no such byte is written, set |
2466e5a90751
(struct ccl_program) <eight_bit_control: Comment fixed.
Kenichi Handa <handa@m17n.org>
parents:
49600
diff
changeset
|
77 this value to zero. */ |
17052 | 78 }; |
79 | |
80 /* This data type is used for the spec field of the structure | |
81 coding_system. */ | |
82 | |
83 struct ccl_spec { | |
84 struct ccl_program decoder; | |
85 struct ccl_program encoder; | |
22875
b33307c77a17
(ccl_spec): New member valid_codes.
Kenichi Handa <handa@m17n.org>
parents:
21550
diff
changeset
|
86 unsigned char valid_codes[256]; |
29723
9d85d8264c59
(struct ccl_program): New member eol_type.
Kenichi Handa <handa@m17n.org>
parents:
29569
diff
changeset
|
87 int cr_carryover; /* CR carryover flag. */ |
34891
b9b14e62fe38
(struct ccl_spec): New member eight_bit_carryover.
Kenichi Handa <handa@m17n.org>
parents:
34817
diff
changeset
|
88 unsigned char eight_bit_carryover[MAX_MULTIBYTE_LENGTH]; |
17052 | 89 }; |
90 | |
91 /* Alist of fontname patterns vs corresponding CCL program. */ | |
92 extern Lisp_Object Vfont_ccl_encoder_alist; | |
93 | |
20306
275d6855275a
Add declaration of setup_ccl_program and ccl_driver.
Andreas Schwab <schwab@suse.de>
parents:
18341
diff
changeset
|
94 /* Setup fields of the structure pointed by CCL appropriately for the |
25065
6f92f7a071c9
(setup_ccl_program): The type is changed to `int'.
Kenichi Handa <handa@m17n.org>
parents:
24689
diff
changeset
|
95 execution of ccl program CCL_PROG (symbol or vector). */ |
6f92f7a071c9
(setup_ccl_program): The type is changed to `int'.
Kenichi Handa <handa@m17n.org>
parents:
24689
diff
changeset
|
96 extern int setup_ccl_program P_ ((struct ccl_program *, Lisp_Object)); |
20306
275d6855275a
Add declaration of setup_ccl_program and ccl_driver.
Andreas Schwab <schwab@suse.de>
parents:
18341
diff
changeset
|
97 |
62800 | 98 /* Check if CCL is updated or not. If not, re-setup members of CCL. */ |
99 extern int check_ccl_update P_ ((struct ccl_program *)); | |
100 | |
20306
275d6855275a
Add declaration of setup_ccl_program and ccl_driver.
Andreas Schwab <schwab@suse.de>
parents:
18341
diff
changeset
|
101 extern int ccl_driver P_ ((struct ccl_program *, unsigned char *, |
275d6855275a
Add declaration of setup_ccl_program and ccl_driver.
Andreas Schwab <schwab@suse.de>
parents:
18341
diff
changeset
|
102 unsigned char *, int, int, int *)); |
275d6855275a
Add declaration of setup_ccl_program and ccl_driver.
Andreas Schwab <schwab@suse.de>
parents:
18341
diff
changeset
|
103 |
21550
dddb0d1318aa
(Vccl_program_table, Qccl_program_idx): Extern them.
Kenichi Handa <handa@m17n.org>
parents:
20721
diff
changeset
|
104 /* Vector of CCL program names vs corresponding program data. */ |
dddb0d1318aa
(Vccl_program_table, Qccl_program_idx): Extern them.
Kenichi Handa <handa@m17n.org>
parents:
20721
diff
changeset
|
105 extern Lisp_Object Vccl_program_table; |
dddb0d1318aa
(Vccl_program_table, Qccl_program_idx): Extern them.
Kenichi Handa <handa@m17n.org>
parents:
20721
diff
changeset
|
106 |
dddb0d1318aa
(Vccl_program_table, Qccl_program_idx): Extern them.
Kenichi Handa <handa@m17n.org>
parents:
20721
diff
changeset
|
107 /* Symbols of ccl program have this property, a value of the property |
dddb0d1318aa
(Vccl_program_table, Qccl_program_idx): Extern them.
Kenichi Handa <handa@m17n.org>
parents:
20721
diff
changeset
|
108 is an index for Vccl_protram_table. */ |
dddb0d1318aa
(Vccl_program_table, Qccl_program_idx): Extern them.
Kenichi Handa <handa@m17n.org>
parents:
20721
diff
changeset
|
109 extern Lisp_Object Qccl_program_idx; |
dddb0d1318aa
(Vccl_program_table, Qccl_program_idx): Extern them.
Kenichi Handa <handa@m17n.org>
parents:
20721
diff
changeset
|
110 |
29569
2d148b8db59b
(EMACS_CCL_H): Renamed from _CCL_H.
Kenichi Handa <handa@m17n.org>
parents:
25065
diff
changeset
|
111 #endif /* EMACS_CCL_H */ |
52401 | 112 |
113 /* arch-tag: 14681df7-876d-43de-bc71-6b78e23a4e3c | |
114 (do not change this comment) */ |