On 23:22 Mon 24 Jan     , Pekka Enberg wrote:
> On 22 January 2011 19:38, Pekka Enberg <penb...@kernel.org> wrote:
> >> From: Ivan Maidanski <iv...@mail.ru>
> >>
> >> 2010-07-02  Ivan Maidanski  <iv...@mail.ru>
> >>
> >>        * java/util/regex/Pattern.java:
> >>        (quote): Implement new 1.5 Java API method.
> >> ---
> >>  ChangeLog                    |    5 +++++
> >>  java/util/regex/Pattern.java |   37 ++++++++++++++++++++++++++++++++++++-
> >>  2 files changed, 41 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/ChangeLog b/ChangeLog
> >> index 4d0bf6d..52b4760 100644
> >> --- a/ChangeLog
> >> +++ b/ChangeLog
> >> @@ -1,3 +1,8 @@
> >> +2010-07-02  Ivan Maidanski  <iv...@mail.ru>
> >> +
> >> +       * java/util/regex/Pattern.java:
> >> +       (quote): Implement new 1.5 Java API method.
> >> +
> >>  2011-01-21  Pekka Enberg <penb...@kernel.org>
> >>
> >>        * java/lang/Class.java:
> >> diff --git a/java/util/regex/Pattern.java b/java/util/regex/Pattern.java
> >> index 7d1fc84..2aae9bb 100644
> >> --- a/java/util/regex/Pattern.java
> >> +++ b/java/util/regex/Pattern.java
> >> @@ -1,5 +1,6 @@
> >>  /* Pattern.java -- Compiled regular expression ready to be applied.
> >> -   Copyright (C) 2002, 2004, 2005, 2007 Free Software Foundation, Inc.
> >> +   Copyright (C) 2002, 2004, 2005, 2007, 2010
> >> +   Free Software Foundation, Inc.
> >>
> >>  This file is part of GNU Classpath.
> >>
> >> @@ -37,6 +38,8 @@ exception statement from your version. */
> >>
> >>  package java.util.regex;
> >>
> >> +import gnu.java.lang.CPStringBuilder;
> >> +
> >>  import gnu.java.util.regex.RE;
> >>  import gnu.java.util.regex.REException;
> >>  import gnu.java.util.regex.RESyntax;
> >> @@ -260,6 +263,38 @@ public final class Pattern implements Serializable
> >>   }
> >>
> >>   /**
> >> +   * Returns a literal pattern for the specified String.
> >> +   *
> >> +   * @since 1.5
> >> +   */
> >> +  public static String quote(String str)
> >> +  {
> >> +    int eInd = str.indexOf("\\E");
> >> +    if (eInd < 0)
> >> +      {
> >> +        // No need to handle backslashes.
> >> +        return "\\Q" + str + "\\E";
> >> +      }
> >> +
> >> +    CPStringBuilder sb = new CPStringBuilder(str.length() + 16);
> >> +    sb.append("\\Q"); // start quote
> >> +
> >> +    int pos = 0;
> >> +    do
> >> +      {
> >> +        // A backslash is quoted by another backslash;
> >> +        // 'E' is not needed to be quoted.
> >> +        sb.append(str.substring(pos, eInd))
> >> +          .append("\\E" + "\\\\" + "E" + "\\Q");
> >> +        pos = eInd + 2;
> >> +      } while ((eInd = str.indexOf("\\E", pos)) >= 0);
> >> +
> >> +    sb.append(str.substring(pos, str.length()))
> >> +      .append("\\E"); // end quote
> >> +    return sb.toString();
> >> +  }
> >> +
> >> +  /**
> >>    * Return the regular expression used to construct this object.
> >>    * @specnote Prior to JDK 1.5 this method had a different behavior
> >>    * @since 1.5
> 
> On Sun, Jan 23, 2011 at 2:38 AM, Dr Andrew John Hughes
> <gnu_and...@member.fsf.org> wrote:
> > The javadoc is incomplete; the parameter and return value are not 
> > documented.
> >
> > Do you have some test cases for this?
> 
> No, I don't. Ivan, do you have test cases for this? If not, I can
> write one for Mauve.
> 

Oh this is one of Ivan's?  I didn't spot that.  Which number is it?
(so I don't review it all over again ;-) )

A test case would be great.  I can't really review this patch well without
knowing what it's supposed to be doing.
-- 
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

Support Free Java!
Contribute to GNU Classpath and IcedTea
http://www.gnu.org/software/classpath
http://icedtea.classpath.org
PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint = F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8

Reply via email to