PatchSet 7164 
Date: 2006/03/23 20:48:57
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
fix for debian bug 357427

2006-03-23  Dalibor Topic  <[EMAIL PROTECTED]>

        Fix for Debian bug #357427

        * libraries/javalib/vmspecific/java/lang/String.java
        (replace, offsetByCodePoints): Merged in from GNU Classpath's
        String implementation.

Members: 
        ChangeLog:1.4682->1.4683 
        libraries/javalib/vmspecific/java/lang/String.java:1.2->1.3 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4682 kaffe/ChangeLog:1.4683
--- kaffe/ChangeLog:1.4682      Thu Mar 23 20:00:08 2006
+++ kaffe/ChangeLog     Thu Mar 23 20:48:57 2006
@@ -5,6 +5,14 @@
 
 2006-03-23  Dalibor Topic  <[EMAIL PROTECTED]>
 
+       Fix for Debian bug #357427
+
+       * libraries/javalib/vmspecific/java/lang/String.java 
+       (replace, offsetByCodePoints): Merged in from GNU Classpath's 
+       String implementation.
+
+2006-03-23  Dalibor Topic  <[EMAIL PROTECTED]>
+
        * README, WHATSNEW: Added information about Blackfin support.
 
 2006-03-23  Kang Shuo  <[EMAIL PROTECTED]>
Index: kaffe/libraries/javalib/vmspecific/java/lang/String.java
diff -u kaffe/libraries/javalib/vmspecific/java/lang/String.java:1.2 
kaffe/libraries/javalib/vmspecific/java/lang/String.java:1.3
--- kaffe/libraries/javalib/vmspecific/java/lang/String.java:1.2        Sat Nov 
26 20:30:30 2005
+++ kaffe/libraries/javalib/vmspecific/java/lang/String.java    Thu Mar 23 
20:49:08 2006
@@ -977,4 +977,57 @@
   {
     return this.indexOf(s.toString()) != -1;
   }
+
+  /**
+   * Returns a string that is this string with all instances of the sequence
+   * represented by <code>target</code> replaced by the sequence in 
+   * <code>replacement</code>.
+   * @param target the sequence to be replaced
+   * @param replacement the sequence used as the replacement
+   * @return the string constructed as above
+   */
+  public String replace (CharSequence target, CharSequence replacement)
+  {
+    String targetString = target.toString();
+    String replaceString = replacement.toString();
+    int targetLength = target.length();
+    int replaceLength = replacement.length();
+    
+    int startPos = this.indexOf(targetString);
+    StringBuilder result = new StringBuilder(this);    
+    while (startPos != -1)
+      {
+        // Replace the target with the replacement
+        result.replace(startPos, startPos + targetLength, replaceString);
+
+        // Search for a new occurrence of the target
+        startPos = result.indexOf(targetString, startPos + replaceLength);
+      }
+    return result.toString();
+  }
+  
+  /**
+   * Return the index into this String that is offset from the given index by 
+   * <code>codePointOffset</code> code points.
+   * @param index the index at which to start
+   * @param codePointOffset the number of code points to offset
+   * @return the index into this String that is <code>codePointOffset</code>
+   * code points offset from <code>index</code>.
+   * 
+   * @throws IndexOutOfBoundsException if index is negative or larger than the
+   * length of this string.
+   * @throws IndexOutOfBoundsException if codePointOffset is positive and the
+   * substring starting with index has fewer than codePointOffset code points.
+   * @throws IndexOutOfBoundsException if codePointOffset is negative and the
+   * substring ending with index has fewer than (-codePointOffset) code points.
+   * @since 1.5
+   */
+  public int offsetByCodePoints(int index, int codePointOffset)
+  {
+    if (index < 0 || index > count)
+      throw new IndexOutOfBoundsException();
+    
+    return Character.offsetByCodePoints(value, offset, count, offset + index,
+                                        codePointOffset);
+  }
 }

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to