Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/eglib
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@gnome.org>2011-04-27 04:15:06 +0400
committerJeffrey Stedfast <fejj@gnome.org>2011-04-27 04:15:06 +0400
commit3ebf299adf3a4f9dbc8d9b5e3c812515d3b5a630 (patch)
tree20687f4ee88640bfd19e6f82fe47a463c3f293fd /eglib
parent0d400a4025dbad03c4d7d184fd3be4b2a321e09b (diff)
I'm an idiot. Fixed g_utf8_strlen()
Diffstat (limited to 'eglib')
-rw-r--r--eglib/src/gutf8.c17
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