User: aidan   
  Date: 06/07/08 18:16:01
  Modified:    xemacs/src ChangeLog lisp.h redisplay.c syntax.h text.c
Log:
Fix a Mule build failure, update comments.
Revision  Changes    Path
1.986     +11 -0     XEmacs/xemacs/src/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/ChangeLog,v
retrieving revision 1.985
retrieving revision 1.986
diff -u -p -r1.985 -r1.986
--- ChangeLog	2006/07/08 09:17:59	1.985
+++ ChangeLog	2006/07/08 16:15:54	1.986
@@ -1,5 +1,16 @@
 2006-07-08  Aidan Kehoe  <kehoea(a)parhasard.net>
 
+	* lisp.h:
+	* redisplay.c (add_octal_runes):
+	* syntax.h:
+	* text.c
+	Change some comments to reflect a 21-bit character space. 
+	* text.c (non_ascii_valid_ichar_p):
+	Check that no character value is greater than 2^^21, not
+	2^^19. This fixes the Mule build when error-checking is turned on.
+
+2006-07-08  Aidan Kehoe  <kehoea(a)parhasard.net>
+
 	* symbols.c (Fsubr_name):
 	Use the CHECK_SUBR macro instead of the GNU code's explicit if
 	statement.
1.143     +1 -1      XEmacs/xemacs/src/lisp.h
Index: lisp.h
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/lisp.h,v
retrieving revision 1.142
retrieving revision 1.143
diff -u -p -r1.142 -r1.143
--- lisp.h	2006/05/06 08:09:36	1.142
+++ lisp.h	2006/07/08 16:15:56	1.143
@@ -399,7 +399,7 @@ typedef signed char SChbyte;
 
 /* To the user, a buffer is made up of characters.  In the non-Mule world,
    characters and Ibytes are equivalent, restricted to the range 0 - 255.
-   In the Mule world, many more characters are possible (19 bits worth,
+   In the Mule world, many more characters are possible (21 bits worth,
    more or less), and a character requires (typically) 1 to 4 Ibytes for
    its representation in a buffer or string.  Note that the representation
    of a character by itself, in a variable, is very different from its
1.100     +1 -1      XEmacs/xemacs/src/redisplay.c
Index: redisplay.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/redisplay.c,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -p -r1.99 -r1.100
--- redisplay.c	2006/04/25 14:02:09	1.99
+++ redisplay.c	2006/07/08 16:15:56	1.100
@@ -1428,7 +1428,7 @@ add_octal_runes (pos_data *data)
   if (data->ch >= 0x100)
     {
       /* If the character is an extended Mule character, it could have
-	 up to 19 bits.  For the moment, we treat it as a seven-digit
+	 up to 21 bits.  For the moment, we treat it as a seven-digit
 	 octal number.  This is not that pretty, but whatever. */
       data->ch = (7 & (orig_char >> 18)) + '0';
       ADD_NEXT_OCTAL_RUNE_CHAR;
1.15      +1 -1      XEmacs/xemacs/src/syntax.h
Index: syntax.h
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/syntax.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -p -r1.14 -r1.15
--- syntax.h	2006/02/21 11:33:46	1.14
+++ syntax.h	2006/07/08 16:15:57	1.15
@@ -149,7 +149,7 @@ WORD_SYNTAX_P (Lisp_Object table, Ichar 
   the tag and the comment bits.
 
   Clearly, such a scheme will not work for Mule, because the matching
-  paren could be any character and as such requires 19 bits, which
+  paren could be any character and as such requires 21 bits, which
   we don't got.
 
   Remember that under Mule we use char tables instead of vectors.
1.28      +7 -9      XEmacs/xemacs/src/text.c
Index: text.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/text.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -p -r1.27 -r1.28
--- text.c	2006/06/19 18:19:38	1.27
+++ text.c	2006/07/08 16:15:57	1.28
@@ -215,13 +215,11 @@ Boston, MA 02111-1307, USA.  */
       this to 2048, and further shrinkage would become uncomfortable.
       No such problems exist in XEmacs.
 
-      Composite characters could be represented as 0x8D C1 C2 C3,
-      where each C[1-3] is in the range 0xA0 - 0xFF.  This allows
-      for slightly under 2^20 (one million) composite characters
-      over the XEmacs process lifetime, and you only need to
-      increase the size of a Mule character from 19 to 21 bits.
-      Or you could use 0x8D C1 C2 C3 C4, allowing for about
-      85 million (slightly over 2^26) composite characters.
+      Composite characters could be represented as 0x8D C1 C2 C3, where each
+      C[1-3] is in the range 0xA0 - 0xFF.  This allows for slightly under
+      2^20 (one million) composite characters over the XEmacs process
+      lifetime. Or you could use 0x8D C1 C2 C3 C4, allowing for about 85
+      million (slightly over 2^26) composite characters.
 
    ==========================================================================
                                10. Internal API's
@@ -4695,8 +4693,8 @@ non_ascii_valid_ichar_p (Ichar ch)
 {
   int f1, f2, f3;
 
-  /* Must have only lowest 19 bits set */
-  if (ch & ~0x7FFFF)
+  /* Must have only lowest 21 bits set */
+  if (ch & ~0x1FFFFF)
     return 0;
 
   f1 = ichar_field1 (ch);