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

@ -36,33 +36,34 @@ public final class Locale implements java.io.Serializable, Cloneable
public Locale (String languageCode, String countryCode)
{
language = languageCode.toLowerCase();
country = countryCode.toUpperCase();
hashcode = languageCode.hashCode() ^ countryCode.hashCode();
this (languageCode, countryCode, "");
}
public Locale (String languageCode, String countryCode,
String variantCode)
{
this (languageCode, countryCode);
variant = variantCode;
hashcode ^= variantCode.hashCode();
// We must explicitly check the arguments.
if (languageCode == null || countryCode == null
|| variantCode == null)
throw new NullPointerException ();
language = languageCode.toLowerCase();
country = countryCode.toUpperCase();
variant = variantCode.toUpperCase();
hashcode = (languageCode.hashCode()
^ countryCode.hashCode()
^ variantCode.hashCode());
}
public Object clone ()
{
return (Object) new Locale (language, country, variant);
}
{
return (Object) new Locale (language, country, variant);
}
public boolean equals (Object obj)
{
if (! (obj instanceof Locale))
return false;
Locale loc = (Locale) obj;
if ((language == null && loc.language != null)
|| (country == null && loc.country != null)
|| (variant == null && loc.variant != null))
return false;
return (language.equals(loc.language)
&& country.equals(loc.country)
&& variant.equals(loc.variant));
@ -115,7 +116,7 @@ public final class Locale implements java.io.Serializable, Cloneable
result.append(language);
result.append('_');
result.append(country);
if (variant != null && variant.length() > 0)
if (variant.length() > 0)
{
result.append('_');
result.append(variant);