+++ /dev/null
-diff -ur o-xchat-2.4.0/src/fe-gtk/xtext.c xchat-2.4.0/src/fe-gtk/xtext.c
---- o-xchat-2.4.0/src/fe-gtk/xtext.c 2004-11-12 09:35:13.377815084 -0700
-+++ xchat-2.4.0/src/fe-gtk/xtext.c 2004-11-12 15:30:26.501404006 -0700
-@@ -72,9 +72,16 @@
- #endif
-
- /* is delimiter */
--#define is_del(c) \
-- (c == ' ' || c == '\n' || c == ')' || c == '(' || \
-- c == '>' || c == '<' || c == ATTR_RESET || c == ATTR_BOLD || c == 0)
-+int is_del(const char *c) {
-+ int ret;
-+ ret = 0;
-+ ret = (c[0] == ' ' || c[0] == '\n' || c[0] == ')' || c[0] == '(' ||
-+ c[0] == '>' || c[0] == '<' || c[0] == ATTR_RESET || c[0] == ATTR_BOLD || c == 0);
-+ if(!ret) {
-+ ret = strncmp(c, "“", 3) == 0 || strncmp(c, "”", 3) == 0;
-+ }
-+ return ret;
-+}
-
- #ifdef SCROLL_HACK
- /* force scrolling off */
-@@ -1745,6 +1752,7 @@
- int offset;
- unsigned char *str;
- unsigned char *word;
-+ unsigned char *nstr;
- int len;
- int out_of_bounds = 0;
-
-@@ -1765,16 +1773,17 @@
-
- str = ent->str + offset;
-
-- while (!is_del (*str) && str != ent->str)
-- str--;
-- word = str + 1;
-+ while (!is_del(str))
-+ str = g_utf8_prev_char(str);
-+ word = g_utf8_next_char(str);
-
- len = 0;
- str = word;
-- while (!is_del (*str) && len != ent->str_len)
-+ while (!is_del(str) && len != ent->str_len)
- {
-- str++;
-- len++;
-+ nstr = g_utf8_next_char(str);
-+ len += nstr - str;
-+ str = nstr;
- }
-
- if (len > 0 && word[len-1]=='.')
-@@ -3777,7 +3786,7 @@
- }
-
- /* keep a record of the last space, for wordwrapping */
-- if (is_del (*str))
-+ if (g_unichar_isspace(g_utf8_get_char(str)))
- {
- last_space = str;
- limit_offset = 0;