diff options
| author | Frank Gevaerts <frank@gevaerts.be> | 2011-09-11 15:29:56 +0000 |
|---|---|---|
| committer | Frank Gevaerts <frank@gevaerts.be> | 2011-09-11 15:29:56 +0000 |
| commit | bce46a755d65194d71992572e293daa781977818 (patch) | |
| tree | 31146a9dabb1c129e8fc17e0e7a9c9eca252b272 /apps | |
| parent | 7179490b5fd93213c248ae1b2d70ab4626dbf548 (diff) | |
| download | rockbox-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.c | 9 |
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; |