summaryrefslogtreecommitdiff
path: root/navit/gui/internal/gui_internal_command.c
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-12-25 10:39:34 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-12-25 10:39:34 +0000
commit687fdcc4fb060dc1079ecc2d9dfa1456e5f556d7 (patch)
tree5d8949a771eb2a3973a4c8171249d2d085296210 /navit/gui/internal/gui_internal_command.c
parent87e746a48fe089d81958599e67326660b2dcc447 (diff)
downloadnavit-687fdcc4fb060dc1079ecc2d9dfa1456e5f556d7.tar.gz
Add:gui_internal:Added debug command and let write command accept multiple arguments
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5317 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/gui/internal/gui_internal_command.c')
-rw-r--r--navit/gui/internal/gui_internal_command.c42
1 files changed, 33 insertions, 9 deletions
diff --git a/navit/gui/internal/gui_internal_command.c b/navit/gui/internal/gui_internal_command.c
index 21bd21be1..380b17699 100644
--- a/navit/gui/internal/gui_internal_command.c
+++ b/navit/gui/internal/gui_internal_command.c
@@ -992,23 +992,46 @@ gui_internal_cmd2_quit(struct gui_priv *this, char *function, struct attr **in,
static void
gui_internal_cmd_write(struct gui_priv * this, char *function, struct attr **in, struct attr ***out, int *valid)
{
- char *str=NULL,*str2=NULL;
+ char *str=NULL;
dbg(1,"enter %s %p %p %p\n",function,in,out,valid);
- if (!in || !in[0])
+ if (!in)
return;
- dbg(1,"%s\n",attr_to_name(in[0]->type));
- if (ATTR_IS_STRING(in[0]->type)) {
- str=in[0]->u.str;
- }
- if (ATTR_IS_COORD_GEO(in[0]->type)) {
- str=str2=coordinates_geo(in[0]->u.coord_geo, '\n');
+ while (*in) {
+ dbg(1,"%s\n",attr_to_name((*in)->type));
+ if (ATTR_IS_STRING((*in)->type)) {
+ str=g_strconcat_printf(str,"%s",(*in)->u.str);
+ }
+ if (ATTR_IS_COORD_GEO((*in)->type)) {
+ char *str2=coordinates_geo((*in)->u.coord_geo, '\n');
+ str=g_strconcat_printf(str,"%s",str2);
+ g_free(str2);
+ }
+ in++;
}
if (str) {
str=g_strdup_printf("<html>%s</html>\n",str);
+#if 0
+ dbg(0,"%s\n",str);
+#endif
gui_internal_html_parse_text(this, str);
}
g_free(str);
- g_free(str2);
+}
+
+static void
+gui_internal_cmd_debug(struct gui_priv * this, char *function, struct attr **in, struct attr ***out, int *valid)
+{
+ char *str;
+ dbg(0,"begin\n");
+ if (in) {
+ while (*in) {
+ str=attr_to_text(*in, NULL, 0);
+ dbg(0,"%s:%s\n",attr_to_name((*in)->type),str);
+ in++;
+ g_free(str);
+ }
+ }
+ dbg(0,"done\n");
}
static void
@@ -1069,6 +1092,7 @@ static struct command_table commands[] = {
{"back",command_cast(gui_internal_cmd2_back)},
{"back_to_map",command_cast(gui_internal_cmd2_back_to_map)},
{"bookmarks",command_cast(gui_internal_cmd2)},
+ {"debug",command_cast(gui_internal_cmd_debug)},
{"formerdests",command_cast(gui_internal_cmd2)},
{"get_data",command_cast(gui_internal_get_data)},
{"layouts_page",command_cast(gui_internal_cmd_layouts_page)},