summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2006-05-22 04:34:06 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2006-05-22 04:34:06 +0000
commitdc683af2e3834e7f615a1520dc1434085f63f89e (patch)
tree1ab9933885e51cd2a99eea12e2837e67820d08e0
parent79dc51f72e5882a49323648bc5ca17b52e1b4a0a (diff)
downloadpango-dc683af2e3834e7f615a1520dc1434085f63f89e.tar.gz
Bug 341922 – pango should handle more characters as zero width Patch
2006-05-22 Behdad Esfahbod <behdad@gnome.org> Bug 341922 – pango should handle more characters as zero width Patch from Roozbeh Pournader * pango/pango-utils.c (pango_is_zero_width): Handle the following too: U+00AD SOFT HYPHEN U+034F COMBINING GRAPHEME JOINER U+2060 WORD JOINER U+2061 FUNCTION APPLICATION U+2062 INVISIBLE TIMES U+2063 INVISIBLE SEPARATOR
-rw-r--r--ChangeLog14
-rw-r--r--pango/pango-utils.c22
2 files changed, 32 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 2d640c30..82a73a76 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2006-05-22 Behdad Esfahbod <behdad@gnome.org>
+
+ Bug 341922 – pango should handle more characters as zero width
+ Patch from Roozbeh Pournader
+
+ * pango/pango-utils.c (pango_is_zero_width): Handle the following too:
+
+ U+00AD SOFT HYPHEN
+ U+034F COMBINING GRAPHEME JOINER
+ U+2060 WORD JOINER
+ U+2061 FUNCTION APPLICATION
+ U+2062 INVISIBLE TIMES
+ U+2063 INVISIBLE SEPARATOR
+
2006-05-22 Tor Lillqvist <tml@novell.com>
* pango/pangowin32.c (pango_win32_font_get_metrics): Calculate
diff --git a/pango/pango-utils.c b/pango/pango-utils.c
index 7758c27f..dd3f8f56 100644
--- a/pango/pango-utils.c
+++ b/pango/pango-utils.c
@@ -1787,22 +1787,36 @@ pango_is_zero_width (gunichar ch)
{
/* Zero Width characters:
*
+ * 00AD SOFT HYPHEN
+ * 034F COMBINING GRAPHEME JOINER
+ *
* 200B ZERO WIDTH SPACE
* 200C ZERO WIDTH NON-JOINER
* 200D ZERO WIDTH JOINER
* 200E LEFT-TO-RIGHT MARK
* 200F RIGHT-TO-LEFT MARK
+ *
* 2028 LINE SEPARATOR
+ *
* 202A LEFT-TO-RIGHT EMBEDDING
* 202B RIGHT-TO-LEFT EMBEDDING
* 202C POP DIRECTIONAL FORMATTING
* 202D LEFT-TO-RIGHT OVERRIDE
* 202E RIGHT-TO-LEFT OVERRIDE
+ *
+ * 2060 WORD JOINER
+ * 2061 FUNCTION APPLICATION
+ * 2062 INVISIBLE TIMES
+ * 2063 INVISIBLE SEPARATOR
+ *
* FEFF ZERO WIDTH NO-BREAK SPACE
*/
- return ((ch & ~(gunichar)0x003F) == 0x2000 && (
+ return ((ch & ~(gunichar)0x007F) == 0x2000 && (
(ch >= 0x200B && ch <= 0x200F) ||
- ch == 0x2028 ||
- (ch >= 0x202A && ch <= 0x202E)
- )) || ch == 0xFEFF;
+ (ch >= 0x202A && ch <= 0x202E) ||
+ (ch >= 0x2060 && ch <= 0x2063) ||
+ (ch == 0x2028)
+ )) || G_UNLIKELY (ch == 0x00AD
+ || ch == 0x034F
+ || ch == 0xFEFF);
}