diff options
author | ailin-nemui <ailin-nemui@users.noreply.github.com> | 2016-09-21 15:59:33 +0200 |
---|---|---|
committer | ailin-nemui <ailin-nemui@users.noreply.github.com> | 2016-09-21 15:59:33 +0200 |
commit | ac73255483a42851db6a54ae4f0d5040e94608a2 (patch) | |
tree | 23c38bc6224171640d44be3269053948dd1a92e8 /src/fe-common/core/formats.c | |
parent | 13f4026ae0f0d5422f3163576d4c2eff8754176a (diff) | |
parent | d9b4cb34dccd7fb77e1d222333f3018ff947899c (diff) | |
download | irssi-ac73255483a42851db6a54ae4f0d5040e94608a2.zip |
Merge branch 'master' into integrate/0.8.20
Diffstat (limited to 'src/fe-common/core/formats.c')
-rw-r--r-- | src/fe-common/core/formats.c | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/src/fe-common/core/formats.c b/src/fe-common/core/formats.c index d9a51201..9aa7698d 100644 --- a/src/fe-common/core/formats.c +++ b/src/fe-common/core/formats.c @@ -422,33 +422,17 @@ void format_create_dest_tag(TEXT_DEST_REC *dest, void *server, window_find_closest(server, target, level); } -static int advance (char const **str, gboolean utf8) -{ - if (utf8) { - gunichar c; - - c = g_utf8_get_char(*str); - *str = g_utf8_next_char(*str); - - return unichar_isprint(c) ? mk_wcwidth(c) : 1; - } else { - *str += 1; - - return 1; - } -} - /* Return length of text part in string (ie. without % codes) */ int format_get_length(const char *str) { GString *tmp; int len; - gboolean utf8; + int utf8; int adv = 0; g_return_val_if_fail(str != NULL, 0); - utf8 = is_utf8() && g_utf8_validate(str, -1, NULL); + utf8 = string_policy(str); tmp = g_string_new(NULL); len = 0; @@ -467,7 +451,7 @@ int format_get_length(const char *str) len++; } - len += advance(&str, utf8); + len += string_advance(&str, utf8); } g_string_free(tmp, TRUE); @@ -482,12 +466,12 @@ int format_real_length(const char *str, int len) GString *tmp; const char *start; const char *oldstr; - gboolean utf8; + int utf8; int adv = 0; g_return_val_if_fail(str != NULL, 0); g_return_val_if_fail(len >= 0, 0); - utf8 = is_utf8() && g_utf8_validate(str, -1, NULL); + utf8 = string_policy(str); start = str; tmp = g_string_new(NULL); @@ -509,7 +493,7 @@ int format_real_length(const char *str, int len) } oldstr = str; - len -= advance(&str, utf8); + len -= string_advance(&str, utf8); if (len < 0) str = oldstr; } |