From 6ac306a515e560e01fdfd36495afb034ea6a5080 Mon Sep 17 00:00:00 2001 From: Nicolas Pennequin Date: Tue, 24 Apr 2007 23:58:57 +0000 Subject: Add a new commandline switch to the simulator: "--debugwps". It enables printing of advanced (and very verbose) WPS debugging information. Also make the debugging code a bit cleaner. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13257 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/wps_debug.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++----- apps/gui/wps_parser.c | 37 +++-------------------------------- 2 files changed, 51 insertions(+), 39 deletions(-) (limited to 'apps') diff --git a/apps/gui/wps_debug.c b/apps/gui/wps_debug.c index ad9395b05d..335c994881 100644 --- a/apps/gui/wps_debug.c +++ b/apps/gui/wps_debug.c @@ -24,11 +24,19 @@ #include "gwps.h" #include "debug.h" +#define PARSE_FAIL_UNCLOSED_COND 1 +#define PARSE_FAIL_INVALID_CHAR 2 +#define PARSE_FAIL_COND_SYNTAX_ERROR 3 + +#ifdef SIMULATOR +extern bool debug_wps; +#endif + static char *next_str(bool next) { - return next ? "next" : ""; + return next ? "next " : ""; } -void dump_wps_tokens(struct wps_data *data) +static void dump_wps_tokens(struct wps_data *data) { struct wps_token *token; int i, j; @@ -358,7 +366,7 @@ void dump_wps_tokens(struct wps_data *data) DEBUGF("\n"); } -void print_line_info(struct wps_data *data) +static void print_line_info(struct wps_data *data) { int i, j; struct wps_line *line; @@ -395,7 +403,7 @@ void print_line_info(struct wps_data *data) DEBUGF("\n"); } -void print_wps_strings(struct wps_data *data) +static void print_wps_strings(struct wps_data *data) { int i, len, total_len = 0, buf_used = 0; @@ -414,7 +422,7 @@ void print_wps_strings(struct wps_data *data) } #ifdef HAVE_LCD_BITMAP -void print_img_cond_indexes(struct wps_data *data) +static void print_img_cond_indexes(struct wps_data *data) { DEBUGF("Image conditional indexes:\n"); int i; @@ -427,4 +435,39 @@ void print_img_cond_indexes(struct wps_data *data) } #endif /*HAVE_LCD_BITMAP */ +void print_debug_info(struct wps_data *data, int fail, int line) +{ +#ifdef SIMULATOR + if (debug_wps) + { + dump_wps_tokens(data); + print_line_info(data); + print_wps_strings(data); +#ifdef HAVE_LCD_BITMAP + print_img_cond_indexes(data); +#endif + } +#endif /* SIMULATOR */ + + if (fail) + { + DEBUGF("Failed parsing on line %d : ", line); + switch (fail) + { + case PARSE_FAIL_UNCLOSED_COND: + DEBUGF("Unclosed conditional"); + break; + + case PARSE_FAIL_INVALID_CHAR: + DEBUGF("Invalid conditional char (not in an open conditional)"); + break; + + case PARSE_FAIL_COND_SYNTAX_ERROR: + DEBUGF("Conditional syntax error"); + break; + } + DEBUGF("\n"); + } +} + #endif /* DEBUG */ diff --git a/apps/gui/wps_parser.c b/apps/gui/wps_parser.c index d3e8454737..ec98d95ee4 100644 --- a/apps/gui/wps_parser.c +++ b/apps/gui/wps_parser.c @@ -69,11 +69,8 @@ static const char *backdrop_bmp_name; #endif #ifdef DEBUG -/* debugging functions */ -extern void dump_wps_tokens(struct wps_data *data); -extern void print_line_info(struct wps_data *data); -extern void print_img_cond_indexes(struct wps_data *data); -extern void print_wps_strings(struct wps_data *data); +/* debugging function */ +extern void print_debug_info(struct wps_data *data, int fail, int line); #endif static void wps_reset(struct wps_data *data); @@ -795,36 +792,8 @@ static bool wps_parse(struct wps_data *data, const char *wps_bufptr) } #ifdef DEBUG - -#if 0 /* optional debugging code */ - dump_wps_tokens(data); - print_line_info(data); - print_wps_strings(data); -#ifdef HAVE_LCD_BITMAP - print_img_cond_indexes(data); + print_debug_info(data, fail, line); #endif -#endif - - if (fail) - { - DEBUGF("Failed parsing on line %d : ", line); - switch (fail) - { - case PARSE_FAIL_UNCLOSED_COND: - DEBUGF("Unclosed conditional"); - break; - - case PARSE_FAIL_INVALID_CHAR: - DEBUGF("Invalid conditional char (not in an open conditional)"); - break; - - case PARSE_FAIL_COND_SYNTAX_ERROR: - DEBUGF("Conditional syntax error"); - break; - } - DEBUGF("\n"); - } -#endif /* DEBUG */ if (fail) wps_reset(data); -- cgit v1.2.3