[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cp-patches] Patch: FYI: break iterator fix for eclipse,
Tom Tromey <=