changeset 22122:dfae9bc3731d

Change term translation to code conversion, then change terms unify/unification to translate/translation respectively throughtout the file.
author Kenichi Handa <handa@m17n.org>
date Mon, 18 May 1998 00:59:38 +0000
parents 6e79a15594ab
children 42a41d39c4fb
files src/ccl.c
diffstat 1 files changed, 195 insertions(+), 206 deletions(-) [+]
line wrap: on
line diff
--- a/src/ccl.c	Mon May 18 00:59:38 1998 +0000
+++ b/src/ccl.c	Mon May 18 00:59:38 1998 +0000
@@ -40,8 +40,8 @@
 
 #endif /* not emacs */
 
-/* Where is stored translation tables for CCL program.  */
-Lisp_Object Vccl_translation_table_vector;
+/* This contains all code conversion map avairable to CCL.  */
+Lisp_Object Vcode_conversion_map_vector;
 
 /* Alist of fontname patterns vs corresponding CCL program.  */
 Lisp_Object Vfont_ccl_encoder_alist;
@@ -50,20 +50,15 @@
    Ex: (get 'ccl-big5-encoder 'ccl-program) returns ccl program vector.  */
 Lisp_Object Qccl_program;
 
-/* These symbols are properties which associate with ccl translation
-   tables and their ID respectively.  */
-Lisp_Object Qccl_translation_table;
-Lisp_Object Qccl_translation_table_id;
+/* These symbols are properties which associate with code conversion
+   map and their ID respectively.  */
+Lisp_Object Qcode_conversion_map;
+Lisp_Object Qcode_conversion_map_id;
 
 /* Symbols of ccl program have this property, a value of the property
    is an index for Vccl_protram_table. */
 Lisp_Object Qccl_program_idx;
 
-/* These symbols are properties which associate with character
-   unification tables and their ID respectively.  */
-Lisp_Object Qunification_table;
-Lisp_Object Qunification_table_id;
-
 /* Vector of CCL program names vs corresponding program data.  */
 Lisp_Object Vccl_program_table;
 
@@ -446,126 +441,128 @@
 #define CCL_WriteMultibyteChar2	0x01 /* Write Multibyte Character
 					1:ExtendedCOMMNDRrrRRRrrrXXXXX  */
 
-/* Unify a character whose code point is reg[rrr] the charset ID is
-   reg[RRR] with a unification table whose ID is reg[Rrr].
+/* Translate a character whose code point is reg[rrr] and the charset
+   ID is reg[RRR] by a character translation table whose ID is
+   reg[Rrr].
 
-   A unified character is set in reg[rrr] (code point) and reg[RRR]
+   A translated character is set in reg[rrr] (code point) and reg[RRR]
    (charset ID).  */
 
-#define CCL_UnifyCharacter	0x02 /* Unify Multibyte Character
+#define CCL_TranslateCharacter	0x02 /* Translate a multibyte character
 					1:ExtendedCOMMNDRrrRRRrrrXXXXX  */
 
-/* Unify a character whose code point is reg[rrr] and the charset ID
-   is reg[RRR] with a unification table whose ID is ARGUMENT.
+/* Translate a character whose code point is reg[rrr] and the charset
+   ID is reg[RRR] by a character translation table whose ID is
+   ARGUMENT.
 
-   A unified character is set in reg[rrr] (code point) and reg[RRR]
+   A translated character is set in reg[rrr] (code point) and reg[RRR]
    (charset ID).  */
 
-#define CCL_UnifyCharacterConstTbl 0x03 /* Unify Multibyte Character
-					   1:ExtendedCOMMNDRrrRRRrrrXXXXX
-					   2:ARGUMENT(Unification Table ID)
-					*/
+#define CCL_TranslateCharacterConstTbl 0x03 /* Translate a multibyte character
+					       1:ExtendedCOMMNDRrrRRRrrrXXXXX
+					       2:ARGUMENT(Translation Table ID)
+					    */
 
-/* Iterate looking up TABLEs for reg[rrr] starting from the Nth (N =
-   reg[RRR]) TABLE until some value is found.
+/* Iterate looking up MAPs for reg[rrr] starting from the Nth (N =
+   reg[RRR]) MAP until some value is found.
 
-   Each TABLE is a Lisp vector whose element is number, nil, t, or
+   Each MAP is a Lisp vector whose element is number, nil, t, or
    lambda.
-   If the element is nil, ignore the table and proceed to the next table.
+   If the element is nil, ignore the map and proceed to the next map.
    If the element is t or lambda, finish without changing reg[rrr].
    If the element is a number, set reg[rrr] to the number and finish.
 
-   Detail of the table structure is descibed in the comment for
-   CCL_TranslateMultipleMap below.  */
+   Detail of the map structure is descibed in the comment for
+   CCL_MapMultiple below.  */
 
-#define CCL_IterateMultipleMap	0x10 /* Iterate Multiple Map
+#define CCL_IterateMultipleMap	0x10 /* Iterate multiple maps
 					1:ExtendedCOMMNDXXXRRRrrrXXXXX
-					2:NUMBER of TABLEs
-					3:TABLE-ID1
-					4:TABLE-ID2
+					2:NUMBER of MAPs
+					3:MAP-ID1
+					4:MAP-ID2
 					...
 				     */ 
 
-/* Translate code point reg[rrr] by TABLEs starting from the Nth (N =
-   reg[RRR]) table.
+/* Map the code in reg[rrr] by MAPs starting from the Nth (N =
+   reg[RRR]) map.
 
-   TABLEs are suppried in the succeeding CCL codes as follows:
+   MAPs are suppried in the succeeding CCL codes as follows:
 
-   When CCL program gives this nested structure of table to this command:
-	((TABLE-ID11
-	  TABLE-ID12
-	  (TABLE-ID121 TABLE-ID122 TABLE-ID123)
-	  TABLE-ID13)
-	 (TABLE-ID21
-	  (TABLE-ID211 (TABLE-ID2111) TABLE-ID212)
-	  TABLE-ID22)),
+   When CCL program gives this nested structure of map to this command:
+	((MAP-ID11
+	  MAP-ID12
+	  (MAP-ID121 MAP-ID122 MAP-ID123)
+	  MAP-ID13)
+	 (MAP-ID21
+	  (MAP-ID211 (MAP-ID2111) MAP-ID212)
+	  MAP-ID22)),
    the compiled CCL codes has this sequence:
-	CCL_TranslateMultipleMap (CCL code of this command)
-	16 (total number of TABLEs and SEPARATERs)
+	CCL_MapMultiple (CCL code of this command)
+	16 (total number of MAPs and SEPARATERs)
 	-7 (1st SEPARATER)
-	TABLE-ID11
-	TABLE-ID12
+	MAP-ID11
+	MAP-ID12
 	-3 (2nd SEPARATER)
-	TABLE-ID121
-	TABLE-ID122
-	TABLE-ID123
-	TABLE-ID13
+	MAP-ID121
+	MAP-ID122
+	MAP-ID123
+	MAP-ID13
 	-7 (3rd SEPARATER)
-	TABLE-ID21
+	MAP-ID21
 	-4 (4th SEPARATER)
-	TABLE-ID211
+	MAP-ID211
 	-1 (5th SEPARATER)
-	TABLE_ID2111
-	TABLE-ID212
-	TABLE-ID22
+	MAP_ID2111
+	MAP-ID212
+	MAP-ID22
 
    A value of each SEPARATER follows this rule:
-	TABLE-SET := SEPARATOR [(TABLE-ID | TABLE-SET)]+
-	SEPARATOR := -(number of TABLE-IDs and SEPARATORs in the TABLE-SET)
+	MAP-SET := SEPARATOR [(MAP-ID | MAP-SET)]+
+	SEPARATOR := -(number of MAP-IDs and SEPARATORs in the MAP-SET)
 
-   (*)....Nest level of TABLE-SET must not be over than MAX_TABLE_SET_LEVEL.
+   (*)....Nest level of MAP-SET must not be over than MAX_MAP_SET_LEVEL.
 
-   When some table fails to translate (i.e. it doesn't have a value
-   for reg[rrr]), the translation is treated as identity.
+   When some map fails to map (i.e. it doesn't have a value for
+   reg[rrr]), the mapping is treated as identity.
 
-   The translation is iterated for all tables in each table set (set
-   of tables separators by a SEPARATOR) except the case that lambda is
+   The mapping is iterated for all maps in each map set (set of maps
+   separators by a SEPARATOR) except the case that lambda is
    encountered (see below).
 
-   Each table is a Lisp vector of the following format (a) or (b):
+   Each map is a Lisp vector of the following format (a) or (b):
 	(a)......[STARTPOINT VAL1 VAL2 ...]
 	(b)......[t VAL STARTPOINT ENDPOINT],
    where
-	STARTPOINT is an offset to be used for indexing a table,
-	ENDPOINT is a maxmum index number of a table,
+	STARTPOINT is an offset to be used for indexing a map,
+	ENDPOINT is a maxmum index number of a map,
 	VAL and VALn is a number, nil, t, or lambda.  
 
-   Valid index range of a table of type (a) is:
-	STARTPOINT <= index < STARTPOINT + table_size - 1
-   Valid index range of a table of type (b) is:
+   Valid index range of a map of type (a) is:
+	STARTPOINT <= index < STARTPOINT + map_size - 1
+   Valid index range of a map of type (b) is:
 	STARTPOINT <= index < ENDPOINT
 
-   If VALn is nil, the table is ignored and translation proceed to the
-   next table.
+   If VALn is nil, the map is ignored and mapping proceed to the next
+   map.
    In VALn is t, reg[rrr] is reverted to the original value and
-   translation proceed to the next table.
-   If VALn is lambda, translation in the current TABLE-SET finishes
-   and proceed to the upper level TABLE-SET.  */
+   mapping proceed to the next map.
+   If VALn is lambda, mapping in the current MAP-SET finishes
+   and proceed to the upper level MAP-SET.  */
 
-#define CCL_TranslateMultipleMap 0x11 /* Translate Multiple Map
+#define CCL_MapMultiple 0x11	/* Mapping by multiple code conversion maps
 					 1:ExtendedCOMMNDXXXRRRrrrXXXXX
 					 2:N-2
 					 3:SEPARATOR_1 (< 0)
-					 4:TABLE-ID_1
-					 5:TABLE-ID_2
+					 4:MAP-ID_1
+					 5:MAP-ID_2
 					 ...
 					 M:SEPARATOR_x (< 0)
-					 M+1:TABLE-ID_y
+					 M+1:MAP-ID_y
 					 ...
 					 N:SEPARATOR_z (< 0)
 				      */
 
-#define MAX_TABLE_SET_LEVEL 20
+#define MAX_MAP_SET_LEVEL 20
 
 typedef struct
 {
@@ -573,29 +570,29 @@
   int orig_val;
 } tr_stack;
 
-static tr_stack translate_stack[MAX_TABLE_SET_LEVEL];
-static tr_stack *translate_stack_pointer;
+static tr_stack mapping_stack[MAX_MAP_SET_LEVEL];
+static tr_stack *mapping_stack_pointer;
 
-#define PUSH_TRANSLATE_STACK(restlen, orig)                 \
+#define PUSH_MAPPING_STACK(restlen, orig)                 \
 {                                                           \
-  translate_stack_pointer->rest_length = (restlen);         \
-  translate_stack_pointer->orig_val = (orig);               \
-  translate_stack_pointer++;                                \
+  mapping_stack_pointer->rest_length = (restlen);         \
+  mapping_stack_pointer->orig_val = (orig);               \
+  mapping_stack_pointer++;                                \
 }
 
-#define POP_TRANSLATE_STACK(restlen, orig)                  \
+#define POP_MAPPING_STACK(restlen, orig)                  \
 {                                                           \
-  translate_stack_pointer--;                                \
-  (restlen) = translate_stack_pointer->rest_length;         \
-  (orig) = translate_stack_pointer->orig_val;               \
+  mapping_stack_pointer--;                                \
+  (restlen) = mapping_stack_pointer->rest_length;         \
+  (orig) = mapping_stack_pointer->orig_val;               \
 }                                                           \
 
-#define CCL_TranslateSingleMap	0x12 /* Translate Single Map
+#define CCL_MapSingle		0x12 /* Map by single code conversion map
 					1:ExtendedCOMMNDXXXRRRrrrXXXXX
-					2:TABLE-ID
+					2:MAP-ID
 					------------------------------
-					Translate reg[rrr] by TABLE-ID.
-					If some valid translation is found,
+					Map reg[rrr] by MAP-ID.
+					If some valid mapping is found,
 					  set reg[rrr] to the result,
 					else
 					  set reg[RRR] to -1.
@@ -1205,7 +1202,7 @@
 
 	      break;
 
-	    case CCL_UnifyCharacter:
+	    case CCL_TranslateCharacter:
 	      i = reg[RRR]; /* charset */
 	      if (i == CHARSET_ASCII)
 		i = reg[rrr] & 0x7F;
@@ -1221,7 +1218,8 @@
 	      else
 		i = ((i - 0xE0) << 14) | (reg[rrr] & 0x3FFF);
 
-	      op = unify_char (UNIFICATION_ID_TABLE (reg[Rrr]), i, -1, 0, 0);
+	      op = translate_char (GET_TRANSLATION_TABLE (reg[Rrr]),
+				   i, -1, 0, 0);
 	      SPLIT_CHAR (op, reg[RRR], i, j);
 	      if (j != -1)
 		i = (i << 7) | j;
@@ -1229,7 +1227,7 @@
 	      reg[rrr] = i;
 	      break;
 
-	    case CCL_UnifyCharacterConstTbl:
+	    case CCL_TranslateCharacterConstTbl:
 	      op = XINT (ccl_prog[ic]); /* table */
 	      ic++;
 	      i = reg[RRR]; /* charset */
@@ -1247,7 +1245,7 @@
 	      else
 		i = ((i - 0xE0) << 14) | (reg[rrr] & 0x3FFF);
 
-	      op = unify_char (UNIFICATION_ID_TABLE (op), i, -1, 0, 0);
+	      op = translate_char (GET_TRANSLATION_TABLE (op), i, -1, 0, 0);
 	      SPLIT_CHAR (op, reg[RRR], i, j);
 	      if (j != -1)
 		i = (i << 7) | j;
@@ -1257,10 +1255,10 @@
 
 	    case CCL_IterateMultipleMap:
 	      {
-		Lisp_Object table, content, attrib, value;
+		Lisp_Object map, content, attrib, value;
 		int point, size, fin_ic;
 
-		j = XINT (ccl_prog[ic++]); /* number of tables. */
+		j = XINT (ccl_prog[ic++]); /* number of maps. */
 		fin_ic = ic + j;
 		op = reg[rrr];
 		if ((j > reg[RRR]) && (j >= 0))
@@ -1278,22 +1276,22 @@
 		for (;i < j;i++)
 		  {
 
-		    size = XVECTOR (Vccl_translation_table_vector)->size;
+		    size = XVECTOR (Vcode_conversion_map_vector)->size;
 		    point = XINT (ccl_prog[ic++]);
 		    if (point >= size) continue;
-		    table =
-		      XVECTOR (Vccl_translation_table_vector)->contents[point];
+		    map =
+		      XVECTOR (Vcode_conversion_map_vector)->contents[point];
 
-		    /* Check table varidity.  */
-		    if (!CONSP (table)) continue;
-		    table = XCONS(table)->cdr;
-		    if (!VECTORP (table)) continue;
-		    size = XVECTOR (table)->size;
+		    /* Check map varidity.  */
+		    if (!CONSP (map)) continue;
+		    map = XCONS(map)->cdr;
+		    if (!VECTORP (map)) continue;
+		    size = XVECTOR (map)->size;
 		    if (size <= 1) continue;
 
-		    content = XVECTOR (table)->contents[0];
+		    content = XVECTOR (map)->contents[0];
 
-		    /* check table type,
+		    /* check map type,
 		       [STARTPOINT VAL1 VAL2 ...] or
 		       [t ELELMENT STARTPOINT ENDPOINT]  */
 		    if (NUMBERP (content))
@@ -1301,14 +1299,14 @@
 			point = XUINT (content);
 			point = op - point + 1;
 			if (!((point >= 1) && (point < size))) continue;
-			content = XVECTOR (table)->contents[point];
+			content = XVECTOR (map)->contents[point];
 		      }
 		    else if (EQ (content, Qt))
 		      {
 			if (size != 4) continue;
-			if ((op >= XUINT (XVECTOR (table)->contents[2]))
-			    && (op < XUINT (XVECTOR (table)->contents[3])))
-			  content = XVECTOR (table)->contents[1];
+			if ((op >= XUINT (XVECTOR (map)->contents[2]))
+			    && (op < XUINT (XVECTOR (map)->contents[3])))
+			  content = XVECTOR (map)->contents[1];
 			else
 			  continue;
 		      }
@@ -1345,20 +1343,20 @@
 	      }
 	      break;
 	      
-	    case CCL_TranslateMultipleMap:
+	    case CCL_MapMultiple:
 	      {
-		Lisp_Object table, content, attrib, value;
-		int point, size, table_vector_size;
-		int table_set_rest_length, fin_ic;
+		Lisp_Object map, content, attrib, value;
+		int point, size, map_vector_size;
+		int map_set_rest_length, fin_ic;
 
-		table_set_rest_length =
-		  XINT (ccl_prog[ic++]); /* number of tables and separators. */
-		fin_ic = ic + table_set_rest_length;
-		if ((table_set_rest_length > reg[RRR]) && (reg[RRR] >= 0))
+		map_set_rest_length =
+		  XINT (ccl_prog[ic++]); /* number of maps and separators. */
+		fin_ic = ic + map_set_rest_length;
+		if ((map_set_rest_length > reg[RRR]) && (reg[RRR] >= 0))
 		  {
 		    ic += reg[RRR];
 		    i = reg[RRR];
-		    table_set_rest_length -= i;
+		    map_set_rest_length -= i;
 		  }
 		else
 		  {
@@ -1366,44 +1364,43 @@
 		    reg[RRR] = -1;
 		    break;
 		  }
-		translate_stack_pointer = translate_stack;
+		mapping_stack_pointer = mapping_stack;
 		op = reg[rrr];
-		PUSH_TRANSLATE_STACK (0, op);
+		PUSH_MAPPING_STACK (0, op);
 		reg[RRR] = -1;
-		table_vector_size
-		  = XVECTOR (Vccl_translation_table_vector)->size;
-		for (;table_set_rest_length > 0;i++, table_set_rest_length--)
+		map_vector_size = XVECTOR (Vcode_conversion_map_vector)->size;
+		for (;map_set_rest_length > 0;i++, map_set_rest_length--)
 		  {
 		    point = XINT(ccl_prog[ic++]);
 		    if (point < 0)
 		      {
 			point = -point;
-			if (translate_stack_pointer
-			    >= &translate_stack[MAX_TABLE_SET_LEVEL])
+			if (mapping_stack_pointer
+			    >= &mapping_stack[MAX_MAP_SET_LEVEL])
 			  {
 			    CCL_INVALID_CMD;
 			  }
-			PUSH_TRANSLATE_STACK (table_set_rest_length - point,
-					      reg[rrr]);
-			table_set_rest_length = point + 1;
+			PUSH_MAPPING_STACK (map_set_rest_length - point,
+					    reg[rrr]);
+			map_set_rest_length = point + 1;
 			reg[rrr] = op;
 			continue;
 		      }
 
-		    if (point >= table_vector_size) continue;
-		    table =
-		      XVECTOR (Vccl_translation_table_vector)->contents[point];
+		    if (point >= map_vector_size) continue;
+		    map = (XVECTOR (Vcode_conversion_map_vector)
+			   ->contents[point]);
 
-		    /* Check table varidity.  */
-		    if (!CONSP (table)) continue;
-		    table = XCONS (table)->cdr;
-		    if (!VECTORP (table)) continue;
-		    size = XVECTOR (table)->size;
+		    /* Check map varidity.  */
+		    if (!CONSP (map)) continue;
+		    map = XCONS (map)->cdr;
+		    if (!VECTORP (map)) continue;
+		    size = XVECTOR (map)->size;
 		    if (size <= 1) continue;
 
-		    content = XVECTOR (table)->contents[0];
+		    content = XVECTOR (map)->contents[0];
 
-		    /* check table type,
+		    /* check map type,
 		       [STARTPOINT VAL1 VAL2 ...] or
 		       [t ELEMENT STARTPOINT ENDPOINT]  */
 		    if (NUMBERP (content))
@@ -1411,14 +1408,14 @@
 			point = XUINT (content);
 			point = op - point + 1;
 			if (!((point >= 1) && (point < size))) continue;
-			content = XVECTOR (table)->contents[point];
+			content = XVECTOR (map)->contents[point];
 		      }
 		    else if (EQ (content, Qt))
 		      {
 			if (size != 4) continue;
-			if ((op >= XUINT (XVECTOR (table)->contents[2])) &&
-			    (op < XUINT (XVECTOR (table)->contents[3])))
-			  content = XVECTOR (table)->contents[1];
+			if ((op >= XUINT (XVECTOR (map)->contents[2])) &&
+			    (op < XUINT (XVECTOR (map)->contents[3])))
+			  content = XVECTOR (map)->contents[1];
 			else
 			  continue;
 		      }
@@ -1431,8 +1428,8 @@
 		      {
 			op = XINT (content);
 			reg[RRR] = i;
-			i += table_set_rest_length;
-			POP_TRANSLATE_STACK (table_set_rest_length, reg[rrr]);
+			i += map_set_rest_length;
+			POP_MAPPING_STACK (map_set_rest_length, reg[rrr]);
 		      }
 		    else if (CONSP (content))
 		      {
@@ -1442,15 +1439,15 @@
 			  continue;
 			reg[RRR] = i;
 			op = XUINT (value);
-			i += table_set_rest_length;
-			POP_TRANSLATE_STACK (table_set_rest_length, reg[rrr]);
+			i += map_set_rest_length;
+			POP_MAPPING_STACK (map_set_rest_length, reg[rrr]);
 		      }
 		    else if (EQ (content, Qt))
 		      {
 			reg[RRR] = i;
 			op = reg[rrr];
-			i += table_set_rest_length;
-			POP_TRANSLATE_STACK (table_set_rest_length, reg[rrr]);
+			i += map_set_rest_length;
+			POP_MAPPING_STACK (map_set_rest_length, reg[rrr]);
 		      }
 		    else if (EQ (content, Qlambda))
 		      {
@@ -1464,31 +1461,31 @@
 	      reg[rrr] = op;
 	      break;
 
-	    case CCL_TranslateSingleMap:
+	    case CCL_MapSingle:
 	      {
-		Lisp_Object table, attrib, value, content;
+		Lisp_Object map, attrib, value, content;
 		int size, point;
-		j = XINT (ccl_prog[ic++]); /* table_id */
+		j = XINT (ccl_prog[ic++]); /* map_id */
 		op = reg[rrr];
-		if (j >= XVECTOR (Vccl_translation_table_vector)->size)
+		if (j >= XVECTOR (Vcode_conversion_map_vector)->size)
 		  {
 		    reg[RRR] = -1;
 		    break;
 		  }
-		table = XVECTOR (Vccl_translation_table_vector)->contents[j];
-		if (!CONSP (table))
+		map = XVECTOR (Vcode_conversion_map_vector)->contents[j];
+		if (!CONSP (map))
 		  {
 		    reg[RRR] = -1;
 		    break;
 		  }
-		table = XCONS(table)->cdr;
-		if (!VECTORP (table))
+		map = XCONS(map)->cdr;
+		if (!VECTORP (map))
 		  {
 		    reg[RRR] = -1;
 		    break;
 		  }
-		size = XVECTOR (table)->size;
-		point = XUINT (XVECTOR (table)->contents[0]);
+		size = XVECTOR (map)->size;
+		point = XUINT (XVECTOR (map)->contents[0]);
 		point = op - point + 1;
 		reg[RRR] = 0;
 		if ((size <= 1) ||
@@ -1496,7 +1493,7 @@
 		  reg[RRR] = -1;
 		else
 		  {
-		    content = XVECTOR (table)->contents[point];
+		    content = XVECTOR (map)->contents[point];
 		    if (NILP (content))
 		      reg[RRR] = -1;
 		    else if (NUMBERP (content))
@@ -1614,8 +1611,8 @@
 }
 
 /* Resolve symbols in the specified CCL code (Lisp vector).  This
-   function converts translation-table and unification-table symbols
-   embeded in the CCL code into their ID numbers.  */
+   function converts symbols of code conversion maps and character
+   translation tables embeded in the CCL code into their ID numbers.  */
 
 Lisp_Object
 resolve_symbol_ccl_program (ccl)
@@ -1636,13 +1633,13 @@
 	  if (EQ(result, ccl))
 	    result = Fcopy_sequence (ccl);
 
-	  prop = Fget (contents, Qunification_table_id);
+	  prop = Fget (contents, Qcharacter_translation_table_id);
 	  if (NUMBERP (prop))
 	    {
 	      XVECTOR (result)->contents[i] = prop;
 	      continue;
 	    }
-	  prop = Fget (contents, Qccl_translation_table_id);
+	  prop = Fget (contents, Qcode_conversion_map_id);
 	  if (NUMBERP (prop))
 	    {
 	      XVECTOR (result)->contents[i] = prop;
@@ -1860,34 +1857,33 @@
   return make_number (i);
 }
 
-/* register CCL translation table.
-   CCL translation table consists of numbers and Qt and Qnil and Qlambda.
+/* Register code conversion map.
+   A code conversion map consists of numbers, Qt, Qnil, and Qlambda.
    The first element is start code point.
-   The rest elements are translated numbers.
-   Qt shows that an original number before translation.
-   Qnil shows that an empty element.
-   Qlambda makes translation stopped.
+   The rest elements are mapped numbers.
+   Symbol t means to map to an original number before mapping.
+   Symbol nil means that the corresponding element is empty.
+   Symbol lambda menas to terminate mapping here.
 */
 
-DEFUN ("register-ccl-translation-table", Fregister_ccl_translation_table,
-       Sregister_ccl_translation_table,
+DEFUN ("register-code-conversion-map", Fregister_code_conversion_map,
+       Sregister_code_conversion_map,
        2, 2, 0,
-  "Register CCL translation table.\n\
-TABLE should be a vector. SYMBOL is used for pointing the translation table out.\n\
-Return index number of the registered translation table.")
-  (symbol, table)
-     Lisp_Object symbol, table;
+  "Register SYMBOL as code conversion map MAP.\n\
+Return index number of the registered map.")
+  (symbol, map)
+     Lisp_Object symbol, map;
 {
-  int len = XVECTOR (Vccl_translation_table_vector)->size;
+  int len = XVECTOR (Vcode_conversion_map_vector)->size;
   int i;
   Lisp_Object index;
 
   CHECK_SYMBOL (symbol, 0);
-  CHECK_VECTOR (table, 1);
+  CHECK_VECTOR (map, 1);
   
   for (i = 0; i < len; i++)
     {
-      Lisp_Object slot = XVECTOR (Vccl_translation_table_vector)->contents[i];
+      Lisp_Object slot = XVECTOR (Vcode_conversion_map_vector)->contents[i];
 
       if (!CONSP (slot))
 	break;
@@ -1895,9 +1891,9 @@
       if (EQ (symbol, XCONS (slot)->car))
 	{
 	  index = make_number (i);
-	  XCONS (slot)->cdr = table;
-	  Fput (symbol, Qccl_translation_table, table);
-	  Fput (symbol, Qccl_translation_table_id, index);
+	  XCONS (slot)->cdr = map;
+	  Fput (symbol, Qcode_conversion_map, map);
+	  Fput (symbol, Qcode_conversion_map_id, index);
 	  return index;
 	}
     }
@@ -1909,14 +1905,14 @@
 
       for (j = 0; j < len; j++)
 	XVECTOR (new_vector)->contents[j]
-	  = XVECTOR (Vccl_translation_table_vector)->contents[j];
-      Vccl_translation_table_vector = new_vector;
+	  = XVECTOR (Vcode_conversion_map_vector)->contents[j];
+      Vcode_conversion_map_vector = new_vector;
     }
 
   index = make_number (i);
-  Fput (symbol, Qccl_translation_table, table);
-  Fput (symbol, Qccl_translation_table_id, index);
-  XVECTOR (Vccl_translation_table_vector)->contents[i] = Fcons (symbol, table);
+  Fput (symbol, Qcode_conversion_map, map);
+  Fput (symbol, Qcode_conversion_map_id, index);
+  XVECTOR (Vcode_conversion_map_vector)->contents[i] = Fcons (symbol, map);
   return index;
 }
 
@@ -1933,22 +1929,15 @@
   Qccl_program_idx = intern ("ccl-program-idx");
   staticpro (&Qccl_program_idx);
 
-  Qccl_translation_table = intern ("ccl-translation-table");
-  staticpro (&Qccl_translation_table);
-
-  Qccl_translation_table_id = intern ("ccl-translation-table-id");
-  staticpro (&Qccl_translation_table_id);
+  Qcode_conversion_map = intern ("code-conversion-map");
+  staticpro (&Qcode_conversion_map);
 
-  Qunification_table = intern ("unification-table");
-  staticpro (&Qunification_table);
+  Qcode_conversion_map_id = intern ("code-conversion-map-id");
+  staticpro (&Qcode_conversion_map_id);
 
-  Qunification_table_id = intern ("unification-table-id");
-  staticpro (&Qunification_table_id);
-
-  DEFVAR_LISP ("ccl-translation-table-vector", &Vccl_translation_table_vector,
-    "Where is stored translation tables for CCL program.\n\
-Because CCL program can't access these tables except by the index of the vector.");
-  Vccl_translation_table_vector = Fmake_vector (make_number (16), Qnil);
+  DEFVAR_LISP ("code-conversion-map-vector", &Vcode_conversion_map_vector,
+    "Vector of code conversion maps.");
+  Vcode_conversion_map_vector = Fmake_vector (make_number (16), Qnil);
 
   DEFVAR_LISP ("font-ccl-encoder-alist", &Vfont_ccl_encoder_alist,
     "Alist of fontname patterns vs corresponding CCL program.\n\
@@ -1966,7 +1955,7 @@
   defsubr (&Sccl_execute);
   defsubr (&Sccl_execute_on_string);
   defsubr (&Sregister_ccl_program);
-  defsubr (&Sregister_ccl_translation_table);
+  defsubr (&Sregister_code_conversion_map);
 }
 
 #endif  /* emacs */