StringBuffer.java (ensureCapacity): Don't resize vector when shared.

* java/lang/StringBuffer.java (ensureCapacity): Don't resize
	vector when shared.
	* java/util/Locale.java (Locale(String,String)): Implement in
	terms of 3-argument version; variant now defaults to empty
	string.
	(toString): Assume variant is not null.
	(equals): Assume all strings are not null.
	(Locale): Throw NullPointerException if any argument is null.
	* java/util/ResourceBundle.java (getBundle): Don't try the base
	name; now implicit in partialGetBundle call.
	(trySomeGetBundle): Search for parent bundles and call setParent
	as required.
	(partialGetBundle): Added `langStop' argument.  Use
	`Locale.toString' to compute bundleName.
	(resource_cache): New static field.
	(partialGetBundle): Cache the returned resource bundle.  Now
	synchronized.
	* gnu/gcj/text/LocaleData_en.java (contents): [collatorRule] Added
	missing `<'.
	* mauve-libgcj: Enable Collator and RuleBasedCollator.
	* java/text/natCollator.cc (decomposeCharacter): `base' now
	`const'.
	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Added
	CollationElementIterator, CollationKey, Collator,
	RuleBasedCollator.
	(nat_source_files): Added natCollator.cc.
	* java/text/RuleBasedCollator.java (ceiNext): No longer static.
	(compare): Pass `this' to CollationElementIterator constructor.
	(getCollationElementIterator): Likewise.
	(ceiNext): Fix off-by-one error when finding initial substring.
	(next): Correctly mask off bits when computing return value.
	Fixed return values when one string is shorter than the other.
	* java/text/CollationElementIterator.java (collator): New field.
	(CollationElementIterator): Added collator argument.
	(next): Call ceiNext on collator object.

From-SVN: r26707
This commit is contained in:
Tom Tromey 1999-04-30 09:31:00 +00:00 committed by Tom Tromey
parent 1c609c4cbe
commit a0e894a8cc
11 changed files with 216 additions and 114 deletions

View file

@ -43,7 +43,7 @@ public class RuleBasedCollator extends Collator
}
// A helper for CollationElementIterator.next().
static int ceiNext (CollationElementIterator cei)
int ceiNext (CollationElementIterator cei)
{
if (cei.lookahead_set)
{
@ -61,7 +61,7 @@ public class RuleBasedCollator extends Collator
boolean found = false;
int i;
for (i = save; i < max; ++i)
for (i = save + 1; i <= max; ++i)
{
s = cei.text.substring(save, i);
if (prefixes.get(s) == null)
@ -108,16 +108,15 @@ public class RuleBasedCollator extends Collator
switch (strength)
{
case PRIMARY:
c |= CollationElementIterator.primaryOrder(os);
/* Fall through. */
case SECONDARY:
c |= CollationElementIterator.secondaryOrder(os);
/* Fall through. */
case TERTIARY:
c |= CollationElementIterator.tertiaryOrder(os);
c = os & ~0xffff;
break;
case SECONDARY:
c = os & ~0x00ff;
break;
case TERTIARY:
case IDENTICAL:
c = os;
break;
}
if (c != 0)
return c;
@ -128,8 +127,8 @@ public class RuleBasedCollator extends Collator
{
CollationElementIterator cs, ct;
cs = new CollationElementIterator (source);
ct = new CollationElementIterator (target);
cs = new CollationElementIterator (source, this);
ct = new CollationElementIterator (target, this);
while (true)
{
@ -140,9 +139,15 @@ public class RuleBasedCollator extends Collator
&& ot == CollationElementIterator.NULLORDER)
break;
else if (os == CollationElementIterator.NULLORDER)
return 1;
{
// Source string is shorter, so return "less than".
return -1;
}
else if (ot == CollationElementIterator.NULLORDER)
return -1;
{
// Target string is shorter, so return "greater than".
return 1;
}
if (os != ot)
return os - ot;
@ -168,7 +173,7 @@ public class RuleBasedCollator extends Collator
int max = source.length();
for (int i = 0; i < max; ++i)
decomposeCharacter (source.charAt(i), expand);
return new CollationElementIterator (expand.toString());
return new CollationElementIterator (expand.toString(), this);
}
public CollationKey getCollationKey (String source)