Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: tools/checkwps/checkwps.c
- ===================================================================
- --- tools/checkwps/checkwps.c (revision 26245)
- +++ tools/checkwps/checkwps.c (working copy)
- @@ -229,6 +229,8 @@
- }
- #endif
- +FILE* updatefile = NULL;
- +
- int main(int argc, char **argv)
- {
- int res;
- @@ -246,6 +248,7 @@
- {
- printf("Usage: checkwps [OPTIONS] filename.wps [filename2.wps]...\n");
- printf("\nOPTIONS:\n");
- + printf("\t-u FILENAME\t\tUpdate skin to new format, output to FILENAME\n");
- printf("\t-v\t\tverbose\n");
- printf("\t-vv\t\tmore verbose\n");
- printf("\t-vvv\t\tvery verbose\n");
- @@ -260,6 +263,16 @@
- i++;
- wps_verbose_level++;
- }
- + if (argv[1][i] == 'u')
- + {
- + updatefile = fopen(argv[2], "w");
- + if (!updatefile)
- + {
- + printf("Couldnt open '%s'\n", argv[2]);
- + return 1;
- + }
- + filearg++;
- + }
- }
- skin_buffer_init();
- Index: apps/gui/skin_engine/skin_parser.c
- ===================================================================
- --- apps/gui/skin_engine/skin_parser.c (revision 26245)
- +++ apps/gui/skin_engine/skin_parser.c (working copy)
- @@ -39,9 +39,12 @@
- #define lang_is_rtl() (false)
- #define DEBUGF printf
- #endif /*WPSEDITOR*/
- +extern FILE* updatefile;
- +#define UPDATE_SKIN(...) fprintf(updatefile, __VA_ARGS__)
- #else
- #include "debug.h"
- #include "language.h"
- +#define UPDATE_SKIN(...)
- #endif /*__PCTOOL__*/
- #include <ctype.h>
- @@ -147,6 +150,19 @@
- return 0;
- }
- +static void dump_new_args(const char *start, const char *end, bool printend)
- +{
- + UPDATE_SKIN("(");
- + while (start != end)
- + {
- + UPDATE_SKIN("%c", (*start == '|')?',':*start);
- + start++;
- + }
- + if (printend)
- + UPDATE_SKIN(")");
- +}
- +
- +
- #ifdef HAVE_LCD_BITMAP
- static int parse_viewport_display(const char *wps_bufptr,
- struct wps_token *token, struct wps_data *wps_data);
- @@ -507,6 +523,7 @@
- immediately after the first eol, i.e. to the start of the next line */
- static int skip_end_of_line(const char *wps_bufptr)
- {
- + UPDATE_SKIN("\n");
- line_number++;
- int skip = 0;
- while(*(wps_bufptr + skip) != '\n')
- @@ -655,12 +672,13 @@
- {
- if (subimage >= img->num_subimages)
- return WPS_ERROR_INVALID_PARAM;
- -
- + UPDATE_SKIN("(%c%c)", label, wps_bufptr[1]);
- /* Store sub-image number to display in high bits */
- token->value.i = label | (subimage << 8);
- return 2; /* We have consumed 2 bytes */
- } else {
- token->value.i = label;
- + UPDATE_SKIN("(%c)", label);
- return 1; /* We have consumed 1 byte */
- }
- }
- @@ -689,7 +707,7 @@
- if (!(ptr = parse_list("ssdd", NULL, '|', ptr, &id, &filename, &x, &y)))
- return WPS_ERROR_INVALID_PARAM;
- -
- + dump_new_args(wps_bufptr+1, ptr, (token->type == WPS_TOKEN_IMAGE_DISPLAY));
- /* Check there is a terminating | */
- if (*ptr != '|')
- return WPS_ERROR_INVALID_PARAM;
- @@ -729,6 +747,7 @@
- if (img->num_subimages <= 0)
- return WPS_ERROR_INVALID_PARAM;
- + UPDATE_SKIN(",%d)", img->num_subimages);
- }
- struct skin_token_list *item = new_skin_token_list_item(NULL, img);
- if (!item)
- @@ -758,7 +777,7 @@
- if (!(ptr = parse_list("ds", NULL, '|', ptr, &id, &filename)))
- return WPS_ERROR_INVALID_PARAM;
- -
- + dump_new_args(wps_bufptr+1, ptr, true);
- /* Check there is a terminating | */
- if (*ptr != '|')
- return WPS_ERROR_INVALID_PARAM;
- @@ -796,10 +815,12 @@
- return WPS_ERROR_INVALID_PARAM;
- }
- token->value.i = letter;
- + UPDATE_SKIN("(%c)", letter);
- return 1;
- }
- #ifdef HAVE_LCD_BITMAP
- +/* FIXME for the skin updater */
- static int parse_playlistview_text(struct playlistviewer *viewer,
- enum info_line_type line, char* text)
- {
- @@ -910,10 +931,12 @@
- length = parse_playlistview_text(viewer, TRACK_HAS_INFO, ptr);
- if (length < 0)
- return WPS_ERROR_INVALID_PARAM;
- - length = parse_playlistview_text(viewer, TRACK_HAS_NO_INFO, ptr+length);
- + ptr+=length;
- + length = parse_playlistview_text(viewer, TRACK_HAS_NO_INFO, ptr);
- if (length < 0)
- return WPS_ERROR_INVALID_PARAM;
- -
- + ptr+=length;
- + dump_new_args(wps_bufptr+1, ptr, true);
- return skip_end_of_line(wps_bufptr);
- }
- #endif
- @@ -924,6 +947,7 @@
- {
- (void)token; /* Kill warnings */
- const char *ptr = wps_bufptr;
- + const char* params_start;
- struct skin_viewport *skin_vp = skin_buffer_alloc(sizeof(struct skin_viewport));
- @@ -944,6 +968,8 @@
- if (*ptr == 'i')
- {
- + UPDATE_SKIN("i");
- + params_start = ptr+2;
- if (*(ptr+1) == '|')
- {
- char label = *(ptr+2);
- @@ -966,8 +992,10 @@
- }
- else if (*ptr == 'l')
- {
- + UPDATE_SKIN("l");
- if (*(ptr+1) == '|')
- {
- + params_start = ptr+2;
- char label = *(ptr+2);
- if (label >= 'a' && label <= 'z')
- {
- @@ -979,6 +1007,8 @@
- ptr += 3;
- }
- }
- + else
- + params_start = ptr+1;
- if (*ptr != '|')
- return WPS_ERROR_INVALID_PARAM;
- @@ -987,7 +1017,7 @@
- /* format: %V|x|y|width|height|font|fg_pattern|bg_pattern| */
- if (!(ptr = viewport_parse_viewport(vp, curr_screen, ptr, '|')))
- return WPS_ERROR_INVALID_PARAM;
- -
- + dump_new_args(params_start, ptr, true);
- /* Check for trailing | */
- if (*ptr != '|')
- return WPS_ERROR_INVALID_PARAM;
- @@ -1031,11 +1061,15 @@
- /* format: %X|filename.bmp| or %Xd */
- if (*(wps_bufptr) == 'd')
- {
- + UPDATE_SKIN("(d)");
- wps_data->backdrop = NULL;
- return skip_end_of_line(wps_bufptr);
- }
- else if (!error)
- + {
- + dump_new_args(wps_bufptr+1, strchr(wps_bufptr+1, '|'), true);
- wps_data->backdrop = (char*)wps_bufptr + 1;
- + }
- }
- #endif
- if (error)
- @@ -1070,6 +1104,7 @@
- if (!end || (size_t)(end-ptr+1) > sizeof temp)
- return WPS_ERROR_INVALID_PARAM;
- strlcpy(temp, ptr,end-ptr+1);
- + dump_new_args(wps_bufptr+1, end, true);
- if (token->type == WPS_TOKEN_TRANSLATEDSTRING)
- {
- @@ -1105,6 +1140,7 @@
- {
- char val[] = { *wps_bufptr, '\0' };
- token->value.i = atoi(val);
- + UPDATE_SKIN("(%d)", token->value.i);
- (void)wps_data; /* Kill warnings */
- return 1;
- }
- @@ -1158,6 +1194,8 @@
- break;
- }
- }
- + else
- + UPDATE_SKIN("(%d)", token->value.i);
- token->value.i = val;
- return skip;
- @@ -1226,6 +1264,7 @@
- return 0;
- return WPS_ERROR_INVALID_PARAM;
- }
- + dump_new_args(wps_bufptr+1, ptr, true);
- if (LIST_VALUE_PARSED(set, PB_FILENAME)) /* filename */
- pb->bm.data = (char*)filename;
- @@ -1326,6 +1365,10 @@
- /* format: %Cl|x|y|[[l|c|r]mwidth]|[[t|c|b]mheight]| */
- newline = strchr(wps_bufptr, '\n');
- + const char* args_end = newline;
- + while (args_end > wps_bufptr+1 && *args_end!='|')
- + args_end--;
- + dump_new_args(wps_bufptr+1,args_end, true);
- _pos = wps_bufptr;
- @@ -1542,7 +1585,7 @@
- if (!(ptr = parse_list("dddds", NULL, '|', ptr, &x, &y, &w, &h, &action)))
- return WPS_ERROR_INVALID_PARAM;
- -
- + dump_new_args(wps_bufptr+1, ptr, true);
- /* Check there is a terminating | */
- if (*ptr != '|')
- return WPS_ERROR_INVALID_PARAM;
- @@ -1621,6 +1664,7 @@
- case ';':
- case '#':
- /* escaped characters */
- + UPDATE_SKIN("%c", *wps_bufptr);
- token->type = WPS_TOKEN_CHARACTER;
- token->value.c = *wps_bufptr;
- taglen = 1;
- @@ -1629,6 +1673,7 @@
- case '?':
- /* conditional tag */
- + UPDATE_SKIN("?");
- token->type = WPS_TOKEN_CONDITIONAL;
- level++;
- condindex[level] = wps_data->num_tokens;
- @@ -1648,6 +1693,7 @@
- taglen = (tag->type != WPS_TOKEN_UNKNOWN) ? strlen(tag->name) : 2;
- token->type = tag->type;
- curr_line->curr_subline->line_type |= tag->refresh_type;
- + UPDATE_SKIN("%s", tag->name);
- /* if the tag has a special parsing function, we call it */
- if (tag->parse_func)
- @@ -1820,6 +1866,7 @@
- /* Regular tag */
- case '%':
- + UPDATE_SKIN("%%");
- if ((ret = parse_token(wps_bufptr, data)) < 0)
- {
- fail = PARSE_FAIL_COND_INVALID_PARAM;
- @@ -1840,7 +1887,7 @@
- fail = PARSE_FAIL_UNCLOSED_COND;
- break;
- }
- -
- + UPDATE_SKIN(";");
- if (!skin_start_new_subline(curr_line, data->num_tokens))
- fail = PARSE_FAIL_LIMITS_EXCEEDED;
- @@ -1853,6 +1900,7 @@
- fail = PARSE_FAIL_COND_SYNTAX_ERROR;
- break;
- }
- + UPDATE_SKIN("<");
- wps_bufptr += check_feature_tag(wps_bufptr,
- data->tokens[data->num_tokens-1].type);
- data->tokens[data->num_tokens].type = WPS_TOKEN_CONDITIONAL_START;
- @@ -1866,6 +1914,7 @@
- fail = PARSE_FAIL_INVALID_CHAR;
- break;
- }
- + UPDATE_SKIN(">");
- data->tokens[data->num_tokens].type = WPS_TOKEN_CONDITIONAL_END;
- if (lastcond[level])
- @@ -1889,6 +1938,7 @@
- fail = PARSE_FAIL_INVALID_CHAR;
- break;
- }
- + UPDATE_SKIN("|");
- data->tokens[data->num_tokens].type = WPS_TOKEN_CONDITIONAL_OPTION;
- if (lastcond[level])
- @@ -1911,8 +1961,17 @@
- fail = PARSE_FAIL_UNCLOSED_COND;
- break;
- }
- -
- - wps_bufptr += skip_end_of_line(wps_bufptr);
- + else
- + {
- + UPDATE_SKIN("#");
- + while(*wps_bufptr != '\n')
- + {
- + UPDATE_SKIN("%c", *wps_bufptr);
- + wps_bufptr++;
- + }
- + UPDATE_SKIN("\n");
- + wps_bufptr++;
- + }
- break;
- /* End of this line */
- @@ -1926,6 +1985,7 @@
- data->tokens[data->num_tokens].type = WPS_TOKEN_CHARACTER;
- data->tokens[data->num_tokens].value.c = '\n';
- data->tokens[data->num_tokens].next = false;
- + UPDATE_SKIN("\n");
- data->num_tokens++;
- if (!skin_start_new_line(curr_vp, data->num_tokens))
- @@ -1994,6 +2054,7 @@
- /* another occurrence of an existing string */
- data->tokens[data->num_tokens].value.data = list->token->value.data;
- }
- + UPDATE_SKIN("%s", (char*)data->tokens[data->num_tokens].value.data);
- data->tokens[data->num_tokens].type = WPS_TOKEN_STRING;
- data->num_tokens++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement