changeset 3278:31b6db41bfc5

Update from GNU libc.
author Jim Meyering <jim@meyering.net>
date Mon, 11 Jun 2001 02:48:14 +0000
parents a2faa604f96b
children 88f18cf00605
files lib/regex.c
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lib/regex.c
+++ b/lib/regex.c
@@ -5594,6 +5594,12 @@
       size2 = size1;
       string1 = 0;
       size1 = 0;
+#ifdef MBS_SUPPORT
+      mbs_offset2 = mbs_offset1;
+      csize2 = csize1;
+      mbs_offset1 = NULL;
+      csize1 = 0;
+#endif
     }
   end1 = string1 + size1;
   end2 = string2 + size2;
@@ -5608,6 +5614,8 @@
     }
   else
     {
+      if (stop > csize1 + csize2)
+	stop = csize1 + csize2;
       end_match_1 = end1;
       mcnt = count_mbs_length(mbs_offset2, stop-csize1);
       end_match_2 = string2 + mcnt;
@@ -7085,14 +7093,15 @@
 
 	case wordbeg:
           DEBUG_PRINT1 ("EXECUTING wordbeg.\n");
-	  if (WORDCHAR_P (d) && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1)))
+	  if (!AT_STRINGS_END (d) && WORDCHAR_P (d)
+	      && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1)))
 	    break;
           goto fail;
 
 	case wordend:
           DEBUG_PRINT1 ("EXECUTING wordend.\n");
 	  if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1)
-              && (!WORDCHAR_P (d) || AT_STRINGS_END (d)))
+              && (AT_STRINGS_END (d) || !WORDCHAR_P (d)))
 	    break;
           goto fail;