diff options
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c index bb9466c134..48d79600d2 100644 --- a/apps/gui/skin_engine/skin_tokens.c +++ b/apps/gui/skin_engine/skin_tokens.c | |||
@@ -733,10 +733,14 @@ static const char* NOINLINE get_lif_token_value(struct gui_wps *gwps, | |||
733 | { | 733 | { |
734 | int a = lif->num_options; | 734 | int a = lif->num_options; |
735 | int b; | 735 | int b; |
736 | bool number_set = true; | ||
736 | struct wps_token *liftoken = SKINOFFSETTOPTR(get_skin_buffer(gwps->data), lif->token); | 737 | struct wps_token *liftoken = SKINOFFSETTOPTR(get_skin_buffer(gwps->data), lif->token); |
737 | const char* out_text = get_token_value(gwps, liftoken, offset, buf, buf_size, &a); | 738 | const char* out_text = get_token_value(gwps, liftoken, offset, buf, buf_size, &a); |
738 | if (a == -1 && liftoken->type != SKIN_TOKEN_VOLUME) | 739 | if (a == -1 && liftoken->type != SKIN_TOKEN_VOLUME) |
740 | { | ||
739 | a = (out_text && *out_text) ? 1 : 0; | 741 | a = (out_text && *out_text) ? 1 : 0; |
742 | number_set = false; | ||
743 | } | ||
740 | switch (lif->operand.type) | 744 | switch (lif->operand.type) |
741 | { | 745 | { |
742 | case STRING: | 746 | case STRING: |
@@ -749,6 +753,9 @@ static const char* NOINLINE get_lif_token_value(struct gui_wps *gwps, | |||
749 | break; | 753 | break; |
750 | } | 754 | } |
751 | case INTEGER: | 755 | case INTEGER: |
756 | if (!number_set && out_text && *out_text >= '0' && *out_text <= '9') | ||
757 | a = atoi(out_text); | ||
758 | /* fall through */ | ||
752 | case DECIMAL: | 759 | case DECIMAL: |
753 | b = lif->operand.data.number; | 760 | b = lif->operand.data.number; |
754 | break; | 761 | break; |