diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2012-03-27 23:42:00 +1100 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2012-03-27 23:42:00 +1100 |
commit | b2202a3d7cce23c20192c1b62cf2f934f78f61df (patch) | |
tree | 8603ebf8d23bd44d29b322a0809c6a8327560533 /apps/gui/skin_engine/skin_tokens.c | |
parent | 215ac639ff82a5064d3a24db005ddd49ec9e1429 (diff) | |
download | rockbox-b2202a3d7cce23c20192c1b62cf2f934f78f61df.tar.gz rockbox-b2202a3d7cce23c20192c1b62cf2f934f78f61df.zip |
skin_engine: Allow negative numbers for the start offset in %ss
i.e %ss(-1, -, %ia) will get the last letter in the %ia tag
Change-Id: I6b2764d30c072b549e7424fc6e847ec48850b46a
Diffstat (limited to 'apps/gui/skin_engine/skin_tokens.c')
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c index 29ddad4c5b..1bb5b8e555 100644 --- a/apps/gui/skin_engine/skin_tokens.c +++ b/apps/gui/skin_engine/skin_tokens.c | |||
@@ -927,7 +927,10 @@ const char *get_token_value(struct gui_wps *gwps, | |||
927 | if (utf8_len < ss->start) | 927 | if (utf8_len < ss->start) |
928 | return NULL; | 928 | return NULL; |
929 | 929 | ||
930 | start_byte = utf8seek(token_val, ss->start); | 930 | if (ss->start < 0) |
931 | start_byte = utf8seek(token_val, ss->start + utf8_len); | ||
932 | else | ||
933 | start_byte = utf8seek(token_val, ss->start); | ||
931 | 934 | ||
932 | if (ss->length < 0 || (ss->start + ss->length) > utf8_len) | 935 | if (ss->length < 0 || (ss->start + ss->length) > utf8_len) |
933 | end_byte = strlen(token_val); | 936 | end_byte = strlen(token_val); |