-package jp.sourceforge.moreemacs.utils;\r
-\r
-import java.util.Arrays;\r
-import java.util.List;\r
-import java.util.Locale;\r
-\r
-import com.ibm.icu.lang.UCharacter;\r
-import com.ibm.icu.lang.UProperty;\r
-\r
-public final class CharacterUtils {\r
- private CharacterUtils() {}\r
-\r
- private static List<String> EAST_ASIAN_LANGS =\r
- Arrays.asList("ja", "vi", "kr", "zh");\r
-\r
- public static int getWidth(int codePoint) {\r
- return getWidth(codePoint, Locale.getDefault());\r
- }\r
-\r
- public static int getWidth(int codePoint, Locale locale) {\r
- if(locale == null) {\r
- throw new NullPointerException("locale is null");\r
- }\r
- int value = UCharacter.getIntPropertyValue(codePoint, \r
- UProperty.EAST_ASIAN_WIDTH);\r
- switch(value) {\r
- case UCharacter.EastAsianWidth.NARROW:\r
- case UCharacter.EastAsianWidth.NEUTRAL:\r
- case UCharacter.EastAsianWidth.HALFWIDTH:\r
- return 1;\r
- case UCharacter.EastAsianWidth.FULLWIDTH:\r
- case UCharacter.EastAsianWidth.WIDE:\r
- return 2;\r
- case UCharacter.EastAsianWidth.AMBIGUOUS:\r
- if(EAST_ASIAN_LANGS.contains(locale.getLanguage())) {\r
- return 2;\r
- } else {\r
- return 1;\r
- }\r
- default:\r
- return 1;\r
- }\r
- }\r
-}\r
+package jp.sourceforge.moreemacs.utils;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+import com.ibm.icu.lang.UCharacter;
+import com.ibm.icu.lang.UProperty;
+
+public final class CharacterUtils {
+ private CharacterUtils() {}
+
+ private static List<String> EAST_ASIAN_LANGS =
+ Arrays.asList("ja", "vi", "kr", "zh");
+
+ public static int getWidth(int codePoint) {
+ return getWidth(codePoint, Locale.getDefault());
+ }
+
+ public static int getWidth(int codePoint, Locale locale) {
+ if(locale == null) {
+ throw new NullPointerException("locale is null");
+ }
+ int value = UCharacter.getIntPropertyValue(codePoint,
+ UProperty.EAST_ASIAN_WIDTH);
+ switch(value) {
+ case UCharacter.EastAsianWidth.NARROW:
+ case UCharacter.EastAsianWidth.NEUTRAL:
+ case UCharacter.EastAsianWidth.HALFWIDTH:
+ return 1;
+ case UCharacter.EastAsianWidth.FULLWIDTH:
+ case UCharacter.EastAsianWidth.WIDE:
+ return 2;
+ case UCharacter.EastAsianWidth.AMBIGUOUS:
+ if(EAST_ASIAN_LANGS.contains(locale.getLanguage())) {
+ return 2;
+ } else {
+ return 1;
+ }
+ default:
+ return 1;
+ }
+ }
+}