diff options
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 4 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.c | 4 | ||||
-rw-r--r-- | apps/gui/skin_engine/wps_internals.h | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 3899f605f3..340cbbdb01 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c | |||
@@ -824,6 +824,10 @@ static int parse_substring_tag(struct skin_element* element, | |||
824 | else | 824 | else |
825 | ss->length = get_param(element, 1)->data.number; | 825 | ss->length = get_param(element, 1)->data.number; |
826 | ss->token = get_param_code(element, 2)->data; | 826 | ss->token = get_param_code(element, 2)->data; |
827 | if (element->params_count > 3) | ||
828 | ss->expect_number = !strcmp(get_param_text(element, 3), "number"); | ||
829 | else | ||
830 | ss->expect_number = false; | ||
827 | token->value.data = PTRTOSKINOFFSET(skin_buffer, ss); | 831 | token->value.data = PTRTOSKINOFFSET(skin_buffer, ss); |
828 | return 0; | 832 | return 0; |
829 | } | 833 | } |
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c index 82d96f6993..765102513a 100644 --- a/apps/gui/skin_engine/skin_tokens.c +++ b/apps/gui/skin_engine/skin_tokens.c | |||
@@ -942,6 +942,10 @@ const char *get_token_value(struct gui_wps *gwps, | |||
942 | buf = &buf[start_byte]; | 942 | buf = &buf[start_byte]; |
943 | 943 | ||
944 | buf[byte_len] = '\0'; | 944 | buf[byte_len] = '\0'; |
945 | if (ss->expect_number && | ||
946 | intval && (buf[0] >= '0' && buf[0] <= '9')) | ||
947 | *intval = atoi(buf) + 1; /* so 0 is the first item */ | ||
948 | |||
945 | return buf; | 949 | return buf; |
946 | } | 950 | } |
947 | return NULL; | 951 | return NULL; |
diff --git a/apps/gui/skin_engine/wps_internals.h b/apps/gui/skin_engine/wps_internals.h index 9c3fa1b5bc..c55c8d2515 100644 --- a/apps/gui/skin_engine/wps_internals.h +++ b/apps/gui/skin_engine/wps_internals.h | |||
@@ -286,6 +286,7 @@ struct logical_if { | |||
286 | struct substring { | 286 | struct substring { |
287 | int start; | 287 | int start; |
288 | int length; | 288 | int length; |
289 | bool expect_number; | ||
289 | OFFSETTYPE(struct wps_token *) token; | 290 | OFFSETTYPE(struct wps_token *) token; |
290 | }; | 291 | }; |
291 | 292 | ||