classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] Patch: FYI: break iterator fix for eclipse


From: Tom Tromey
Subject: [cp-patches] Patch: FYI: break iterator fix for eclipse
Date: 25 Oct 2004 10:54:20 -0600

I'm checking this in.

This patch lets the Java editor in Eclipse 3 work properly.  The
editor code was relying on an undocumented part of BreakIterator,
namely that the newly-constructed iterators won't cause exceptions if
they are used before setText is called.

I documented this in BreakIterator and I've added a Mauve test.

Tom

Index: ChangeLog
from  Tom Tromey  <address@hidden>

        * gnu/java/text/WordBreakIterator.java (WordBreakIterator): Don't
        initialize `iter'.
        * gnu/java/text/SentenceBreakIterator.java
        (SentenceBreakIterator): Don't initialize `iter'.
        * gnu/java/text/LineBreakIterator.java (LineBreakIterator): Don't
        initialize `iter'.
        * gnu/java/text/CharacterBreakIterator.java
        (CharacterBreakIterator): Don't initialize `iter'.
        * gnu/java/text/BaseBreakIterator.java (BaseBreakIterator): New
        constructor.
        * java/text/BreakIterator.java: Updated documentation.

Index: java/text/BreakIterator.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/text/BreakIterator.java,v
retrieving revision 1.7.24.1
diff -u -r1.7.24.1 BreakIterator.java
--- java/text/BreakIterator.java 12 Oct 2004 14:53:14 -0000 1.7.24.1
+++ java/text/BreakIterator.java 25 Oct 2004 16:44:02 -0000
@@ -1,5 +1,5 @@
 /* BreakIterator.java -- Breaks text into elements
-   Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2001, 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -49,6 +49,10 @@
  * type is created by calling one of the static factory methods, not
  * by directly calling a constructor.
  *
+ * The standard iterators created by the factory methods in this
+ * class will be valid upon creation.  That is, their methods will
+ * not cause exceptions if called before you call setText().
+ *
  * @author Tom Tromey <address@hidden>
  * @author Aaron M. Renn (address@hidden)
  * @date March 19, 1999
Index: gnu/java/text/BaseBreakIterator.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/text/BaseBreakIterator.java,v
retrieving revision 1.2
diff -u -r1.2 BaseBreakIterator.java
--- gnu/java/text/BaseBreakIterator.java 22 Jan 2002 22:40:02 -0000 1.2
+++ gnu/java/text/BaseBreakIterator.java 25 Oct 2004 16:44:03 -0000
@@ -1,5 +1,5 @@
 /* BaseBreakIterator.java -- Base class for default BreakIterators
-   Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -40,6 +40,7 @@
 
 import java.text.BreakIterator;
 import java.text.CharacterIterator;
+import java.text.StringCharacterIterator;
 
 /**
  * @author Tom Tromey <address@hidden>
@@ -48,6 +49,14 @@
 
 public abstract class BaseBreakIterator extends BreakIterator
 {
+  public BaseBreakIterator ()
+  {
+    // It isn't documented, but break iterators are created in a
+    // working state; their methods won't throw exceptions before
+    // setText().
+    iter = new StringCharacterIterator("");
+  }
+
   public int current ()
   {
     return iter.getIndex();
Index: gnu/java/text/CharacterBreakIterator.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/text/CharacterBreakIterator.java,v
retrieving revision 1.2.82.1
diff -u -r1.2.82.1 CharacterBreakIterator.java
--- gnu/java/text/CharacterBreakIterator.java 20 May 2004 23:33:53 -0000 
1.2.82.1
+++ gnu/java/text/CharacterBreakIterator.java 25 Oct 2004 16:44:03 -0000
@@ -1,5 +1,5 @@
 /* CharacterBreakIterator.java - Default character BreakIterator.
-   Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -69,7 +69,6 @@
 
   public CharacterBreakIterator ()
   {
-    iter = null;               // FIXME?
   }
 
   private CharacterBreakIterator (CharacterBreakIterator other)
Index: gnu/java/text/LineBreakIterator.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/text/LineBreakIterator.java,v
retrieving revision 1.2.82.1
diff -u -r1.2.82.1 LineBreakIterator.java
--- gnu/java/text/LineBreakIterator.java 20 May 2004 23:33:53 -0000 1.2.82.1
+++ gnu/java/text/LineBreakIterator.java 25 Oct 2004 16:44:03 -0000
@@ -1,5 +1,5 @@
 /* LineBreakIterator.java - Default word BreakIterator.
-   Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -55,7 +55,6 @@
 
   public LineBreakIterator ()
   {
-    iter = null;
   }
 
   private LineBreakIterator (LineBreakIterator other)
Index: gnu/java/text/SentenceBreakIterator.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/text/SentenceBreakIterator.java,v
retrieving revision 1.3.66.1
diff -u -r1.3.66.1 SentenceBreakIterator.java
--- gnu/java/text/SentenceBreakIterator.java 20 May 2004 23:33:53 -0000 1.3.66.1
+++ gnu/java/text/SentenceBreakIterator.java 25 Oct 2004 16:44:03 -0000
@@ -1,5 +1,5 @@
 /* SentenceBreakIterator.java - Default sentence BreakIterator.
-   Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2001, 2002, 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -55,7 +55,6 @@
 
   public SentenceBreakIterator ()
   {
-    iter = null;
   }
 
   private SentenceBreakIterator (SentenceBreakIterator other)
Index: gnu/java/text/WordBreakIterator.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/text/WordBreakIterator.java,v
retrieving revision 1.2.82.1
diff -u -r1.2.82.1 WordBreakIterator.java
--- gnu/java/text/WordBreakIterator.java 20 May 2004 23:33:53 -0000 1.2.82.1
+++ gnu/java/text/WordBreakIterator.java 25 Oct 2004 16:44:05 -0000
@@ -1,5 +1,5 @@
 /* WordBreakIterator.java - Default word BreakIterator.
-   Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -55,7 +55,6 @@
 
   public WordBreakIterator ()
   {
-    iter = null;
   }
 
   private WordBreakIterator (WordBreakIterator other)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]