summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2011-09-11 15:29:56 +0000
committerFrank Gevaerts <frank@gevaerts.be>2011-09-11 15:29:56 +0000
commitbce46a755d65194d71992572e293daa781977818 (patch)
tree31146a9dabb1c129e8fc17e0e7a9c9eca252b272 /apps
parent7179490b5fd93213c248ae1b2d70ab4626dbf548 (diff)
downloadrockbox-bce46a755d65194d71992572e293daa781977818.zip
rockbox-bce46a755d65194d71992572e293daa781977818.tar.gz
rockbox-bce46a755d65194d71992572e293daa781977818.tar.bz2
rockbox-bce46a755d65194d71992572e293daa781977818.tar.xz
Make %ss utf8-aware
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30508 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/skin_engine/skin_tokens.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c
index a4f0814..51da8c1 100644
--- a/apps/gui/skin_engine/skin_tokens.c
+++ b/apps/gui/skin_engine/skin_tokens.c
@@ -877,18 +877,19 @@ const char *get_token_value(struct gui_wps *gwps,
int ret_len = ss->length;
if (token_val)
{
- int len = strlen(token_val);
+ int len = utf8length(token_val);
if (len < ss->start)
return NULL;
+ int realstart = utf8seek(token_val, ss->start);
if (ret_len < 0)
- ret_len = strlen(token_val) - ss->start;
+ ret_len = strlen(token_val) - realstart;
if (token_val != buf)
{
- memcpy(buf, &token_val[ss->start], ret_len);
+ memcpy(buf, &token_val[realstart], ret_len);
}
else
{
- buf = &buf[ss->start];
+ buf = &buf[realstart];
}
buf[ret_len] = '\0';
return buf;