The following reply was made to PR bin/153257; it has been noted by GNATS.

From: Pedro Giffuni <[email protected]>
To: "[email protected]" <[email protected]>
Cc:  
Subject: Re: bin/153257: [libc] [patch] regex(3): Add support for \< and \>
 word delimiters
Date: Sat, 03 May 2014 14:28:16 -0500

 This is a multi-part message in MIME format.
 --------------000307060206030505090808
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 Updated patch to include documentation changes.
 
 --------------000307060206030505090808
 Content-Type: text/plain; charset=us-ascii;
  name="patch-regex-svr4.txt"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="patch-regex-svr4.txt"
 
 Index: lib/libc/regex/re_format.7
 ===================================================================
 --- lib/libc/regex/re_format.7 (revision 265253)
 +++ lib/libc/regex/re_format.7 (working copy)
 @@ -314,6 +314,13 @@
  .St -p1003.2 ,
  and should be used with
  caution in software intended to be portable to other systems.
 +The additional word delimiters  
 +.Ql \e<
 +and
 +.Ql \e> 
 +are provided to ease compatibility with traditional
 +.Xr svr4 4
 +systems but are not portable and should be avoided.
  .Pp
  In the event that an RE could match more than one substring of a given
  string,
 Index: lib/libc/regex/regcomp.c
 ===================================================================
 --- lib/libc/regex/regcomp.c   (revision 265253)
 +++ lib/libc/regex/regcomp.c   (working copy)
 @@ -412,7 +412,17 @@
        case '\\':
                (void)REQUIRE(MORE(), REG_EESCAPE);
                wc = WGETNEXT();
 -              ordinary(p, wc);
 +              switch (wc) {
 +              case '<':
 +                      EMIT(OBOW, 0);
 +                      break;
 +              case '>':
 +                      EMIT(OEOW, 0);
 +                      break;
 +              default:
 +                      ordinary(p, wc);
 +                      break;
 +              }
                break;
        case '{':               /* okay as ordinary except if digit follows */
                (void)REQUIRE(!MORE() || !isdigit((uch)PEEK()), REG_BADRPT);
 @@ -569,10 +579,15 @@
        case '[':
                p_bracket(p);
                break;
 +      case BACKSL|'<':
 +              EMIT(OBOW, 0);
 +              break;
 +      case BACKSL|'>':
 +              EMIT(OEOW, 0);
 +              break;
        case BACKSL|'{':
                SETERROR(REG_BADRPT);
 -              break;
 -      case BACKSL|'(':
 +              break;  case BACKSL|'(':
                p->g->nsub++;
                subno = p->g->nsub;
                if (subno < NPAREN)
 
 --------------000307060206030505090808--
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to