diff options
author | Jeffrey Stedfast <fejj@gnome.org> | 2011-04-27 04:15:06 +0400 |
---|---|---|
committer | Jeffrey Stedfast <fejj@gnome.org> | 2011-04-27 04:15:06 +0400 |
commit | 3ebf299adf3a4f9dbc8d9b5e3c812515d3b5a630 (patch) | |
tree | 20687f4ee88640bfd19e6f82fe47a463c3f293fd /eglib | |
parent | 0d400a4025dbad03c4d7d184fd3be4b2a321e09b (diff) |
I'm an idiot. Fixed g_utf8_strlen()
Diffstat (limited to 'eglib')
-rw-r--r-- | eglib/src/gutf8.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/eglib/src/gutf8.c b/eglib/src/gutf8.c index c151e1f0506..67b2cfe2fc7 100644 --- a/eglib/src/gutf8.c +++ b/eglib/src/gutf8.c @@ -226,28 +226,29 @@ glong g_utf8_strlen (const gchar *str, gssize max_len) { const guchar *inptr = (const guchar *) str; - glong len = 0, n; + glong clen = 0, len = 0, n; if (max_len == 0) return 0; if (max_len < 0) { - while (*inptr) + while (*inptr) { inptr += g_utf8_jump_table[*inptr]; - - return inptr - (const guchar *) str; + len++; + } } else { while (len < max_len && *inptr) { n = g_utf8_jump_table[*inptr]; - if ((len + n) > max_len) + if ((clen + n) > max_len) break; inptr += n; - len += n; + clen += n; + len++; } - - return len; } + + return len; } gunichar |