]>
Commit | Line | Data |
---|---|---|
c0630684 | 1 | diff -ur xchat-gnome-0.8-o/src/fe-gnome/xtext.c xchat-gnome-0.8/src/fe-gnome/xtext.c |
2 | --- xchat-gnome-0.8-o/src/fe-gnome/xtext.c 2005-11-26 16:26:03.000000000 -0700 | |
3 | +++ xchat-gnome-0.8/src/fe-gnome/xtext.c 2005-12-20 21:36:01.000000000 -0700 | |
4 | @@ -80,9 +80,16 @@ | |
5 | #include "marshallers.h" | |
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 | @@ -1802,6 +1809,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 | @@ -1822,16 +1830,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 | @@ -3835,7 +3844,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; | |
65 | Only in xchat-gnome-0.8/src/fe-gnome: xtext.c.orig |