about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--manual/examples/popen.c11
-rw-r--r--posix/regex.c4
3 files changed, 13 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index bd00b8475f..1e2d1ac126 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2000-08-02  Ulrich Drepper  <drepper@redhat.com>
 
+	* posix/regex.c (compile_range): Transliate range start and end
+	characters to avoid empty range in case of REG_ICASE [PR libc/1842].
+
 	* sysdeps/unix/sysv/linux/ia64/bits/resource.h: Don't include
 	asm/resource.h.
 
diff --git a/manual/examples/popen.c b/manual/examples/popen.c
index 16ae32fa16..1b9ee826b4 100644
--- a/manual/examples/popen.c
+++ b/manual/examples/popen.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-void 
+void
 write_data (FILE * stream)
 {
   int i;
@@ -23,11 +23,16 @@ main (void)
   output = popen ("more", "w");
   if (!output)
     {
-      fprintf (stderr, "Could not run more.\n");
+      fprintf (stderr,
+	       "incorrect parameters or too many files.\n");
       return EXIT_FAILURE;
     }
   write_data (output);
-  pclose (output);
+  if (pclose (output) != 0)
+    {
+      fprintf (stderr,
+	       "Could not run more or other error.\n");
+    }
   return EXIT_SUCCESS;
 }
 /*@end group*/
diff --git a/posix/regex.c b/posix/regex.c
index 8c50446ba0..09d0a35e85 100644
--- a/posix/regex.c
+++ b/posix/regex.c
@@ -3518,9 +3518,9 @@ compile_range (range_start_char, p_ptr, pend, translate, syntax, b)
 
   /* Fetch the endpoints without translating them; the
      appropriate translation is done in the bit-setting loop below.  */
-  range_start[0] = range_start_char;
+  range_start[0] = TRANSLATE (range_start_char);
   range_start[1] = '\0';
-  range_end[0] = p[0];
+  range_end[0] = TRANSLATE (p[0]);
   range_end[1] = '\0';
 
   /* Have to increment the pointer into the pattern string, so the