diff --git a/libjava/ChangeLog b/libjava/ChangeLog index e6d8de191927..24696fd1b87b 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,13 @@ +2002-07-02 Tom Tromey + David Hovemeyer + + * java/text/ChoiceFormat.java + (format(double,StringBuffer,FieldPosition)): Fix fencepost error + in check loop. + * java/text/MessageFormat.java + (format(Object[],StringBuffer,FieldPosition): Pass all arguments + to MessageFormat. + 2002-07-01 Tom Tromey * javax/naming/spi/NamingManager.java (getPlusPath): Don't create diff --git a/libjava/java/text/ChoiceFormat.java b/libjava/java/text/ChoiceFormat.java index 710a725990ef..f7bdde1e2944 100644 --- a/libjava/java/text/ChoiceFormat.java +++ b/libjava/java/text/ChoiceFormat.java @@ -1,5 +1,5 @@ /* ChoiceFormat.java -- Format over a range of numbers - Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -259,14 +259,12 @@ public class ChoiceFormat extends NumberFormat if (choiceLimits.length == 0) return appendBuf; - int index = 0; + int index = 0; if (! Double.isNaN(num) && num >= choiceLimits[0]) { for (; index < choiceLimits.length - 1; ++index) { - if (choiceLimits[index] <= num - && index != choiceLimits.length - 2 - && num < choiceLimits[index + 1]) + if (choiceLimits[index] <= num && num < choiceLimits[index + 1]) break; } } diff --git a/libjava/java/text/MessageFormat.java b/libjava/java/text/MessageFormat.java index d31d95b6bea8..f5ee3492974f 100644 --- a/libjava/java/text/MessageFormat.java +++ b/libjava/java/text/MessageFormat.java @@ -1,5 +1,5 @@ /* MessageFormat.java - Localized message formatting. - Copyright (C) 1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -373,17 +373,14 @@ public class MessageFormat extends Format if (formatter instanceof ChoiceFormat) { StringBuffer buf = new StringBuffer (); - // FIXME: don't actually know what is correct here. - // Can a sub-format refer to any argument, or just - // the single argument passed to it? Must test - // against JDK. formatter.format(thisArg, buf, ignore); MessageFormat mf = new MessageFormat (); mf.setLocale(locale); mf.applyPattern(buf.toString()); - formatter = mf; + mf.format(arguments, appendBuf, ignore); } - formatter.format(thisArg, appendBuf, ignore); + else + formatter.format(thisArg, appendBuf, ignore); } appendBuf.append(elements[i].trailer);