]>
Commit | Line | Data |
---|---|---|
7b15b786 | 1 | diff -ur o-xchat-2.4.0/src/fe-gtk/xtext.c xchat-2.4.0/src/fe-gtk/xtext.c |
2 | --- o-xchat-2.4.0/src/fe-gtk/xtext.c 2004-11-12 09:35:13.377815084 -0700 | |
3 | +++ xchat-2.4.0/src/fe-gtk/xtext.c 2004-11-12 15:30:26.501404006 -0700 | |
4 | @@ -72,9 +72,16 @@ | |
5 | #endif | |
6 | ||
7 | /* is delimiter */ | |
8 | -#define is_del(c) \ | |
9 | - (c == ' ' || c == '\n' || c == ')' || c == '(' || \ | |
10 | - c == '>' || c == '<' || c == ATTR_RESET || c == ATTR_BOLD || c == 0) | |
11 | +int is_del(const char *c) { | |
12 | + int ret; | |
13 | + ret = 0; | |
14 | + ret = (c[0] == ' ' || c[0] == '\n' || c[0] == ')' || c[0] == '(' || | |
15 | + c[0] == '>' || c[0] == '<' || c[0] == ATTR_RESET || c[0] == ATTR_BOLD || c == 0); | |
16 | + if(!ret) { | |
17 | + ret = strncmp(c, "“", 3) == 0 || strncmp(c, "”", 3) == 0; | |
18 | + } | |
19 | + return ret; | |
20 | +} | |
21 | ||
22 | #ifdef SCROLL_HACK | |
23 | /* force scrolling off */ | |
24 | @@ -1745,6 +1752,7 @@ | |
25 | int offset; | |
26 | unsigned char *str; | |
27 | unsigned char *word; | |
28 | + unsigned char *nstr; | |
29 | int len; | |
30 | int out_of_bounds = 0; | |
31 | ||
32 | @@ -1765,16 +1773,17 @@ | |
33 | ||
34 | str = ent->str + offset; | |
35 | ||
36 | - while (!is_del (*str) && str != ent->str) | |
37 | - str--; | |
38 | - word = str + 1; | |
39 | + while (!is_del(str)) | |
40 | + str = g_utf8_prev_char(str); | |
41 | + word = g_utf8_next_char(str); | |
42 | ||
43 | len = 0; | |
44 | str = word; | |
45 | - while (!is_del (*str) && len != ent->str_len) | |
46 | + while (!is_del(str) && len != ent->str_len) | |
47 | { | |
48 | - str++; | |
49 | - len++; | |
50 | + nstr = g_utf8_next_char(str); | |
51 | + len += nstr - str; | |
52 | + str = nstr; | |
53 | } | |
54 | ||
55 | if (len > 0 && word[len-1]=='.') | |
56 | @@ -3777,7 +3786,7 @@ | |
57 | } | |
58 | ||
59 | /* keep a record of the last space, for wordwrapping */ | |
60 | - if (is_del (*str)) | |
61 | + if (g_unichar_isspace(g_utf8_get_char(str))) | |
62 | { | |
63 | last_space = str; | |
64 | limit_offset = 0; |