[COMMIT] x 2; Re: Still a few bugs in the system...

Aidan Kehoe <[email protected]>
Newsgroups gmane.emacs.xemacs.patches,gmane.emacs.xemacs.beta
Message-ID <[email protected]>
 Ar an séú lá déag de mí Márta, scríobh Vin Shelton: 

 > After a few days away, I had some problems with my latest 21.5 builds:

Thank you Vin, these both now work for me with corresponding systems and
configure lines, please get back to me if there are still issues.

APPROVE COMMIT

Note: these two patches have been committed.

# HG changeset patch
# User Aidan Kehoe <[email protected]>
# Date 1426552179 0
#      Tue Mar 17 00:29:39 2015 +0000
# Node ID df50aaeddca5679fba85dc8b1ebc8fd708c02028
# Parent  04b8549344077926229ea11d7f5d96967d03441c
Don't tickle an unreasonable but standard C lib limitation, thank you Vin!

src/ChangeLog addition:

2015-03-17  Aidan Kehoe  <[email protected]>

	* data.c (fill_ichar_array):
	Be a bit more careful never to supply the C library's isupper()
	with a value outside of that range specified by the C
	standard. Thank you Vin Shelton for reporting the Linux
	segmentation violation this provokes, and happy St. Patrick's Day
	to everyone reading the XEmacs lists!

diff -r 04b854934407 -r df50aaeddca5 src/ChangeLog
--- a/src/ChangeLog	Mon Mar 16 09:03:22 2015 +0000
+++ b/src/ChangeLog	Tue Mar 17 00:29:39 2015 +0000
@@ -1,3 +1,12 @@
+2015-03-17  Aidan Kehoe  <[email protected]>
+
+	* data.c (fill_ichar_array):
+	Be a bit more careful never to supply the C library's isupper()
+	with a value outside of that range specified by the C
+	standard. Thank you Vin Shelton for reporting the Linux
+	segmentation violation this provokes, and happy St. Patrick's Day
+	to everyone reading the XEmacs lists!
+
 2015-03-08  Aidan Kehoe  <[email protected]>
   
 	* data.c (Fparse_integer):
diff -r 04b854934407 -r df50aaeddca5 src/data.c
--- a/src/data.c	Mon Mar 16 09:03:22 2015 +0000
+++ b/src/data.c	Tue Mar 17 00:29:39 2015 +0000
@@ -1484,9 +1484,15 @@
 	}
       /* Maybe our own case infrastructure is not available yet. Use the C
          library's. */
-      else if (isupper (range->ch) && !isupper (cctable[valint]))
+      else if (current_buffer == NULL)
         {
-	  cctable[valint] = range->ch;          
+	  /* The C library can't necessarily handle values outside of
+	     the range EOF to CHAR_MAX, inclusive. */
+	  assert (range->ch == EOF || range->ch <= CHAR_MAX);
+	  if (isupper (range->ch) && !isupper (cctable[valint]))
+	    {
+	      cctable[valint] = range->ch;
+	    }
         }
       /* Otherwise, save it if this character has a numerically lower value
          (preferring ASCII over fullwidth Chinese and so on). */

# HG changeset patch
# User Aidan Kehoe <[email protected]>
# Date 1426553268 0
#      Tue Mar 17 00:47:48 2015 +0000
# Node ID 58e72e27fb816c54211fcdaeec7729b97bcdae9c
# Parent  df50aaeddca5679fba85dc8b1ebc8fd708c02028
Don't rely on zero termination for Vfixnum_to_char_map, thank you Vin.

lisp/ChangeLog addition:

	(vars_of_data): Don't rely on zero termination here for
	Vfixnum_to_char_map, give an explicit bytecount. Again, thank you
	Vin!

diff -r df50aaeddca5 -r 58e72e27fb81 src/ChangeLog
--- a/src/ChangeLog	Tue Mar 17 00:29:39 2015 +0000
+++ b/src/ChangeLog	Tue Mar 17 00:47:48 2015 +0000
@@ -6,6 +6,9 @@
 	standard. Thank you Vin Shelton for reporting the Linux
 	segmentation violation this provokes, and happy St. Patrick's Day
 	to everyone reading the XEmacs lists!
+	(vars_of_data): Don't rely on zero termination here for
+	Vfixnum_to_char_map, give an explicit bytecount. Again, thank you
+	Vin!
 
 2015-03-08  Aidan Kehoe  <[email protected]>
   
diff -r df50aaeddca5 -r 58e72e27fb81 src/data.c
--- a/src/data.c	Tue Mar 17 00:29:39 2015 +0000
+++ b/src/data.c	Tue Mar 17 00:47:48 2015 +0000
@@ -4302,7 +4302,9 @@
     /* Sigh, we can't call build_fixnum_to_char_map() on Vdigit_fixnum_map,
        this is too early in the boot sequence to map across a char table. Do
        it by hand. */
-    Vfixnum_to_char_map = build_ascstring (fixnum_tab);
+    ASSERT_ASCTEXT_ASCII_LEN (fixnum_tab, 36 * MAX_ICHAR_LEN);
+    Vfixnum_to_char_map
+	    = make_string ((const Ibyte*) fixnum_tab, 36 * MAX_ICHAR_LEN);
     staticpro (&Vfixnum_to_char_map);
   }
 

-- 
‘Tramadol is further fed to cattle […] when working them […] (as draft
animals) so that the animals do not get tired quickly. …’
	— Angewandte Chemie, Sept 2014, describing the social context of
	(synthetic) tramadol having been found in Cameroon tree roots.

_______________________________________________
XEmacs-Patches mailing list
[email protected]
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.