зеркало из https://github.com/mozilla/pluotsorbet.git
Fix isLowerCase and isLowerCase bug.
This commit is contained in:
Родитель
ffb4c9172c
Коммит
9540097156
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
*
|
||||
*
|
||||
* Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1990-2009 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
|
@ -29,17 +29,116 @@ package com.sun.cldc.i18n.uclc;
|
|||
import java.io.*;
|
||||
import com.sun.cldc.i18n.*;
|
||||
|
||||
/**
|
||||
* Default class converting the case of characters.
|
||||
*
|
||||
* @version 1.0 04/04/2000
|
||||
*/
|
||||
public class DefaultCaseConverter {
|
||||
|
||||
/**
|
||||
* Determines if the specified character is a lowercase character.
|
||||
* The default case converter in CLDC only supports the ISO Latin-1
|
||||
* range of characters.
|
||||
* <p>
|
||||
* Of the ISO Latin-1 characters (character codes 0x0000 through 0x00FF),
|
||||
* the following are lowercase:
|
||||
* <p>
|
||||
* a b c d e f g h i j k l m n o p q r s t u v w x y z
|
||||
* \u00DF \u00E0 \u00E1 \u00E2 \u00E3 \u00E4 \u00E5 \u00E6 \u00E7
|
||||
* \u00E8 \u00E9 \u00EA \u00EB \u00EC \u00ED \u00EE \u00EF \u00F0
|
||||
* \u00F1 \u00F2 \u00F3 \u00F4 \u00F5 \u00F6 \u00F8 \u00F9 \u00FA
|
||||
* \u00FB \u00FC \u00FD \u00FE \u00FF
|
||||
*
|
||||
* @param ch the character to be tested.
|
||||
* @return <code>true</code> if the character is lowercase;
|
||||
* <code>false</code> otherwise.
|
||||
* @since JDK1.0
|
||||
*/
|
||||
public static boolean isLowerCase(char ch) {
|
||||
return DefaultCaseConverter.toLowerCase(ch) == ch;
|
||||
return (ch >= 'a' && ch <= 'z')
|
||||
|| (ch >= 0xDF && ch <= 0xF6)
|
||||
|| (ch >= 0xF8 && ch <= 0xFF);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the specified character is an uppercase character.
|
||||
* The default case converter in CLDC only supports the ISO Latin-1
|
||||
* range of characters.
|
||||
* <p>
|
||||
* Of the ISO Latin-1 characters (character codes 0x0000 through 0x00FF),
|
||||
* the following are uppercase:
|
||||
* <p>
|
||||
* A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
|
||||
* \u00C0 \u00C1 \u00C2 \u00C3 \u00C4 \u00C5 \u00C6 \u00C7
|
||||
* \u00C8 \u00C9 \u00CA \u00CB \u00CC \u00CD \u00CE \u00CF \u00D0
|
||||
* \u00D1 \u00D2 \u00D3 \u00D4 \u00D5 \u00D6 \u00D8 \u00D9 \u00DA
|
||||
* \u00DB \u00DC \u00DD \u00DE
|
||||
*
|
||||
* @param ch the character to be tested.
|
||||
* @return <code>true</code> if the character is uppercase;
|
||||
* <code>false</code> otherwise.
|
||||
* @see java.lang.Character#isLowerCase(char)
|
||||
* @see java.lang.Character#toUpperCase(char)
|
||||
* @since 1.0
|
||||
*/
|
||||
public static boolean isUpperCase(char ch) {
|
||||
return DefaultCaseConverter.toUpperCase(ch) == ch;
|
||||
return (ch >= 'A' && ch <= 'Z')
|
||||
|| (ch >= 0xC0 && ch <= 0xD6)
|
||||
|| (ch >= 0xD8 && ch <= 0xDE );
|
||||
}
|
||||
|
||||
public static native char toLowerCase(char ch);
|
||||
public static native char toUpperCase(char ch);
|
||||
/**
|
||||
* The given character is mapped to its lowercase equivalent; if the
|
||||
* character has no lowercase equivalent, the character itself is
|
||||
* returned. The default case converter in CLDC only supports
|
||||
* the ISO Latin-1 range of characters.
|
||||
*
|
||||
* @param ch the character to be converted.
|
||||
* @return the lowercase equivalent of the character, if any;
|
||||
* otherwise the character itself.
|
||||
* @see java.lang.Character#isLowerCase(char)
|
||||
* @see java.lang.Character#isUpperCase(char)
|
||||
* @see java.lang.Character#toUpperCase(char)
|
||||
* @since JDK1.0
|
||||
*/
|
||||
public static char toLowerCase(char ch) {
|
||||
if (isUpperCase(ch)) {
|
||||
if (ch <= 'Z') {
|
||||
return (char)(ch + ('a' - 'A'));
|
||||
} else {
|
||||
return (char)(ch + 0x20);
|
||||
}
|
||||
} else {
|
||||
return ch;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the character argument to uppercase; if the
|
||||
* character has no lowercase equivalent, the character itself is
|
||||
* returned. The default case converter in CLDC only supports
|
||||
* the ISO Latin-1 range of characters.
|
||||
*
|
||||
* @param ch the character to be converted.
|
||||
* @return the uppercase equivalent of the character, if any;
|
||||
* otherwise the character itself.
|
||||
* @see java.lang.Character#isLowerCase(char)
|
||||
* @see java.lang.Character#isUpperCase(char)
|
||||
* @see java.lang.Character#toLowerCase(char)
|
||||
* @since JDK1.0
|
||||
*/
|
||||
public static char toUpperCase(char ch) {
|
||||
if (isLowerCase(ch)) {
|
||||
if (ch <= 'z') {
|
||||
return (char)(ch - ('a' - 'A'));
|
||||
} else {
|
||||
return (char)(ch - 0x20);
|
||||
}
|
||||
} else {
|
||||
return ch;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the specified character is a digit.
|
||||
|
@ -79,4 +178,5 @@ public class DefaultCaseConverter {
|
|||
}
|
||||
return (value < radix) ? value : -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -629,14 +629,6 @@ Native.create("com/sun/cldc/io/ResourceInputStream.readBytes.(Ljava/lang/Object;
|
|||
return (len > 0) ? len : -1;
|
||||
});
|
||||
|
||||
Native.create("com/sun/cldc/i18n/uclc/DefaultCaseConverter.toLowerCase.(C)C", function(char) {
|
||||
return String.fromCharCode(char).toLowerCase().charCodeAt(0);
|
||||
});
|
||||
|
||||
Native.create("com/sun/cldc/i18n/uclc/DefaultCaseConverter.toUpperCase.(C)C", function(char) {
|
||||
return String.fromCharCode(char).toUpperCase().charCodeAt(0);
|
||||
});
|
||||
|
||||
Native.create("java/lang/ref/WeakReference.initializeWeakReference.(Ljava/lang/Object;)V", function(target) {
|
||||
this.target = target;
|
||||
});
|
||||
|
|
|
@ -308,3 +308,11 @@ Override.create("com/sun/midp/security/Permissions.getId.(Ljava/lang/String;)I",
|
|||
Override.create("com/sun/midp/security/Permissions.getName.(I)Ljava/lang/String;", function(id) {
|
||||
return "com.sun.midp";
|
||||
});
|
||||
|
||||
Override.create("com/sun/cldc/i18n/uclc/DefaultCaseConverter.toLowerCase.(C)C", function(char) {
|
||||
return String.fromCharCode(char).toLowerCase().charCodeAt(0);
|
||||
});
|
||||
|
||||
Override.create("com/sun/cldc/i18n/uclc/DefaultCaseConverter.toUpperCase.(C)C", function(char) {
|
||||
return String.fromCharCode(char).toUpperCase().charCodeAt(0);
|
||||
});
|
||||
|
|
Загрузка…
Ссылка в новой задаче