summaryrefslogtreecommitdiff
path: root/apps/gui
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2012-03-27 23:42:00 +1100
committerJonathan Gordon <rockbox@jdgordon.info>2012-03-27 23:42:00 +1100
commitb2202a3d7cce23c20192c1b62cf2f934f78f61df (patch)
tree8603ebf8d23bd44d29b322a0809c6a8327560533 /apps/gui
parent215ac639ff82a5064d3a24db005ddd49ec9e1429 (diff)
downloadrockbox-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')
-rw-r--r--apps/gui/skin_engine/skin_tokens.c5
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);