aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDai Sato <satodai@w3m.jp>2007-05-23 11:34:09 +0000
committerDai Sato <satodai@w3m.jp>2007-05-23 11:34:09 +0000
commite67286c23ca100e3abc3aba9c21906436d836d63 (patch)
tree078d83c304afdc6e0ad44cfdaf891b0cf55ebfac
parentquote URLs with non-ASCII local directory names. [w3m-dev 04212] (diff)
downloadw3m-e67286c23ca100e3abc3aba9c21906436d836d63.tar.gz
w3m-e67286c23ca100e3abc3aba9c21906436d836d63.zip
[w3m-dev 04213] update Unicode charcters' width
-rw-r--r--ChangeLog8
-rw-r--r--libwc/map/ucs_wide.map11
-rw-r--r--libwc/ucs.c3
-rw-r--r--libwc/ucs.h1
4 files changed, 16 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index d29fe9c..507c532 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-05-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
+
+ * [w3m-dev 04213] update Unicode characters' width
+ * libwc/ucs.c, libwc/ucs.h, libwc/map/ucs_wide.map:
+ catch-up to EastAsianWidth-5.0.0.txt.
+
2007-04-19 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 04212] quote URL of local dir
@@ -8805,4 +8811,4 @@ a * [w3m-dev 03276] compile error on EWS4800
* release-0-2-1
* import w3m-0.2.1
-$Id: ChangeLog,v 1.977 2007/04/19 12:07:02 inu Exp $
+$Id: ChangeLog,v 1.978 2007/05/23 11:34:09 inu Exp $
diff --git a/libwc/map/ucs_wide.map b/libwc/map/ucs_wide.map
index 714e4c5..9d79f54 100644
--- a/libwc/map/ucs_wide.map
+++ b/libwc/map/ucs_wide.map
@@ -1,14 +1,15 @@
-#define N_ucs_wide_map 10
+#define N_ucs_wide_map 11
static wc_map ucs_wide_map[ N_ucs_wide_map ] = {
{ 0x1100, 0x115F },
- { 0x2E80, 0x3009 },
- { 0x300C, 0x3019 },
- { 0x301C, 0x303E },
- { 0x3040, 0xA4CF },
+ { 0x2329, 0x232A },
+ { 0x2E80, 0x303E },
+ { 0x3040, 0x4DBF },
+ { 0x4E00, 0xA4CF },
{ 0xAC00, 0xD7A3 },
{ 0xF900, 0xFAFF },
+ { 0xFE10, 0xFE19 },
{ 0xFE30, 0xFE6F },
{ 0xFF00, 0xFF5F },
{ 0xFFE0, 0xFFE6 },
diff --git a/libwc/ucs.c b/libwc/ucs.c
index b9dfec3..2534b5a 100644
--- a/libwc/ucs.c
+++ b/libwc/ucs.c
@@ -522,7 +522,8 @@ wc_is_ucs_wide(wc_uint32 ucs)
return (wc_map_range_search((wc_uint16)ucs,
ucs_wide_map, N_ucs_wide_map) != NULL);
else
- return ((ucs & ~0xFFFF) == WC_C_UCS4_PLANE2);
+ return ((ucs & ~0xFFFF) == WC_C_UCS4_PLANE2 ||
+ (ucs & ~0xFFFF) == WC_C_UCS4_PLANE3);
}
wc_bool
diff --git a/libwc/ucs.h b/libwc/ucs.h
index 21c7070..5003bac 100644
--- a/libwc/ucs.h
+++ b/libwc/ucs.h
@@ -22,6 +22,7 @@
#define WC_C_CANCEL_TAG 0xE007F
#define WC_C_UCS4_PLANE1 0x10000
#define WC_C_UCS4_PLANE2 0x20000
+#define WC_C_UCS4_PLANE3 0x30000
#define wc_ucs_tag_to_ucs(c) ((c) & WC_C_UNICODE_MASK)
#define wc_ucs_tag_to_tag(c) ((c) >> 24)