20 |
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
21 |
Boston, MA 02111-1307, USA. */ |
Boston, MA 02111-1307, USA. */ |
22 |
|
|
|
#ifdef emacs |
|
23 |
#include <config.h> |
#include <config.h> |
|
#endif |
|
24 |
|
|
25 |
#include <stdio.h> |
#include <stdio.h> |
26 |
|
|
|
#ifdef emacs |
|
|
|
|
27 |
#include "lisp.h" |
#include "lisp.h" |
28 |
#include "charset.h" |
#include "charset.h" |
29 |
#include "ccl.h" |
#include "ccl.h" |
30 |
#include "coding.h" |
#include "coding.h" |
31 |
|
|
|
#else /* not emacs */ |
|
|
|
|
|
#include "mulelib.h" |
|
|
|
|
|
#endif /* not emacs */ |
|
|
|
|
32 |
/* This contains all code conversion map available to CCL. */ |
/* This contains all code conversion map available to CCL. */ |
33 |
Lisp_Object Vcode_conversion_map_vector; |
Lisp_Object Vcode_conversion_map_vector; |
34 |
|
|
852 |
|
|
853 |
#ifdef CCL_DEBUG |
#ifdef CCL_DEBUG |
854 |
#define CCL_DEBUG_BACKTRACE_LEN 256 |
#define CCL_DEBUG_BACKTRACE_LEN 256 |
855 |
int ccl_backtrace_table[CCL_BACKTRACE_TABLE]; |
int ccl_backtrace_table[CCL_DEBUG_BACKTRACE_LEN]; |
856 |
int ccl_backtrace_idx; |
int ccl_backtrace_idx; |
857 |
#endif |
#endif |
858 |
|
|
1424 |
op = hash_lookup (h, make_number (reg[RRR]), NULL); |
op = hash_lookup (h, make_number (reg[RRR]), NULL); |
1425 |
if (op >= 0) |
if (op >= 0) |
1426 |
{ |
{ |
1427 |
op = HASH_VALUE (h, op); |
Lisp_Object opl; |
1428 |
if (!CHAR_VALID_P (op, 0)) |
opl = HASH_VALUE (h, op); |
1429 |
|
if (!CHAR_VALID_P (XINT (opl), 0)) |
1430 |
CCL_INVALID_CMD; |
CCL_INVALID_CMD; |
1431 |
SPLIT_CHAR (XINT (op), reg[RRR], i, j); |
SPLIT_CHAR (XINT (opl), reg[RRR], i, j); |
1432 |
if (j != -1) |
if (j != -1) |
1433 |
i = (i << 7) | j; |
i = (i << 7) | j; |
1434 |
reg[rrr] = i; |
reg[rrr] = i; |
1449 |
op = hash_lookup (h, make_number (i), NULL); |
op = hash_lookup (h, make_number (i), NULL); |
1450 |
if (op >= 0) |
if (op >= 0) |
1451 |
{ |
{ |
1452 |
op = HASH_VALUE (h, op); |
Lisp_Object opl; |
1453 |
if (!INTEGERP (op)) |
opl = HASH_VALUE (h, op); |
1454 |
|
if (!INTEGERP (opl)) |
1455 |
CCL_INVALID_CMD; |
CCL_INVALID_CMD; |
1456 |
reg[RRR] = XINT (op); |
reg[RRR] = XINT (opl); |
1457 |
reg[7] = 1; /* r7 true for success */ |
reg[7] = 1; /* r7 true for success */ |
1458 |
} |
} |
1459 |
else |
else |
2063 |
return 0; |
return 0; |
2064 |
} |
} |
2065 |
|
|
|
#ifdef emacs |
|
|
|
|
2066 |
DEFUN ("ccl-program-p", Fccl_program_p, Sccl_program_p, 1, 1, 0, |
DEFUN ("ccl-program-p", Fccl_program_p, Sccl_program_p, 1, 1, 0, |
2067 |
doc: /* Return t if OBJECT is a CCL program name or a compiled CCL program code. |
doc: /* Return t if OBJECT is a CCL program name or a compiled CCL program code. |
2068 |
See the documentation of `define-ccl-program' for the detail of CCL program. */) |
See the documentation of `define-ccl-program' for the detail of CCL program. */) |
2402 |
defsubr (&Sregister_ccl_program); |
defsubr (&Sregister_ccl_program); |
2403 |
defsubr (&Sregister_code_conversion_map); |
defsubr (&Sregister_code_conversion_map); |
2404 |
} |
} |
|
|
|
|
#endif /* emacs */ |
|