changeset 88476:47c2e6825a1e

(struct charset): New member `code_space_mask'.
author Kenichi Handa <handa@m17n.org>
date Fri, 10 May 2002 03:55:12 +0000
parents 9d54c1d6cd0a
children 5f974cbba7b3
files src/charset.h
diffstat 1 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/charset.h	Fri May 10 03:54:48 2002 +0000
+++ b/src/charset.h	Fri May 10 03:55:12 2002 +0000
@@ -132,9 +132,20 @@
   /* Dimension of the charset: 1, 2, 3, or 4.  */
   int dimension;
 
-  /* Minimum byte code in each dimension.  */
+  /* Byte code range of each dimension.  <code_space>[4N] is a mininum
+     byte code of the (N+1)th dimension, <code_space>[4N+1] is a
+     maximum byte code of the (N+1)th dimension, <code_space>[4N+2] is
+     (<code_space>[4N+1] - <code_space>[4N] + 1), <code_space>[4N+3]
+     is a number of characters containd in the first to (N+1)th
+     dismesions.  We get `char-index' of a `code-point' from this
+     information.  */
   int code_space[16];
 
+  /* If B is a byte of Nth dimension of a code-point, the (N-1)th bit
+     of code_space_mask[B] is set.  This array is used to quickly
+     check if a code-point is in a valid range.  */
+  unsigned char *code_space_mask;
+
   /* 1 if there's no gap in code-points.  */
   int code_linear_p;