changeset 29801:3ea64112b4ba

(re_match, re_match_2): Protect calls to alloca (0). (re_comp): Cast gettext return value to avoid complaints when !HAVE_LIBINTL.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 20 Jun 2000 16:48:05 +0000
parents b64123677c0b
children 41e64655279b
files src/regex.c
diffstat 1 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/regex.c	Tue Jun 20 16:34:50 2000 +0000
+++ b/src/regex.c	Tue Jun 20 16:48:05 2000 +0000
@@ -4291,7 +4291,9 @@
 {
   int result = re_match_2_internal (bufp, NULL, 0, string, size,
 				    pos, regs, size);
+#if defined (C_ALLOCA) && !defined (REGEX_MALLOC)
   alloca (0);
+#endif
   return result;
 }
 #endif /* not emacs */
@@ -4335,7 +4337,9 @@
 
   result = re_match_2_internal (bufp, string1, size1, string2, size2,
 				pos, regs, stop);
+#if defined (C_ALLOCA) && !defined (REGEX_MALLOC)
   alloca (0);
+#endif
   return result;
 }
 
@@ -5593,7 +5597,8 @@
   if (!s)
     {
       if (!re_comp_buf.buffer)
-	return gettext ("No previous regular expression");
+        /* Yes, we're discarding `const' here if !HAVE_LIBINTL.  */
+	return (char *) gettext ("No previous regular expression");
       return 0;
     }
 
@@ -5601,12 +5606,14 @@
     {
       re_comp_buf.buffer = (unsigned char *) malloc (200);
       if (re_comp_buf.buffer == NULL)
-        return gettext (re_error_msgid[(int) REG_ESPACE]);
+        /* Yes, we're discarding `const' here if !HAVE_LIBINTL.  */
+        return (char *) gettext (re_error_msgid[(int) REG_ESPACE]);
       re_comp_buf.allocated = 200;
 
       re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH);
       if (re_comp_buf.fastmap == NULL)
-	return gettext (re_error_msgid[(int) REG_ESPACE]);
+	/* Yes, we're discarding `const' here if !HAVE_LIBINTL.  */
+	return (char *) gettext (re_error_msgid[(int) REG_ESPACE]);
     }
 
   /* Since `re_exec' always passes NULL for the `regs' argument, we