diff options
| author | Jiri Moskovcak <jmoskovc@redhat.com> | 2011-03-08 21:31:45 +0100 |
|---|---|---|
| committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2011-03-08 21:31:45 +0100 |
| commit | e2fdf6c58eba440770624d13e25a63c3d77040db (patch) | |
| tree | 37e4569af212b47339fa8e6c895e29a22eeaaecf /src/lib | |
| parent | a6ee8958dbe6f45f95fca4fa2ea1490c7035be65 (diff) | |
| download | abrt-e2fdf6c58eba440770624d13e25a63c3d77040db.tar.gz abrt-e2fdf6c58eba440770624d13e25a63c3d77040db.tar.xz abrt-e2fdf6c58eba440770624d13e25a63c3d77040db.zip | |
added event description support into xml parser
- so event now has:
action: description of what will happen when this event is used
- the main purpose is for the event selector in wizard
description: description of the event
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/event_config.c | 6 | ||||
| -rw-r--r-- | src/lib/event_xml_parser.c | 20 |
2 files changed, 18 insertions, 8 deletions
diff --git a/src/lib/event_config.c b/src/lib/event_config.c index 18019178..30335b84 100644 --- a/src/lib/event_config.c +++ b/src/lib/event_config.c @@ -31,6 +31,7 @@ void free_event_config(event_config_t *p) free(p->name); free(p->title); free(p->action); + free(p->description); for (GList *opt = p->options; opt; opt = opt->next) free_event_option(opt->data); g_list_free(p->options); @@ -42,7 +43,6 @@ void free_event_config(event_config_t *p) void load_event_config_data(void) { free_event_config_data(); - DIR *dir = opendir(EVENTS_DIR); if (!dir) return; @@ -72,12 +72,14 @@ void load_event_config_data(void) char *fullname = concat_path_file(EVENTS_DIR, dent->d_name); if (xml) load_event_description_from_file(event_config, fullname); + // if (conf) // load_event_values_from_file(event_config, fullname); free(fullname); - *ext = '\0'; + //we did ext++ so we need ext-- to point to '.' + *(--ext) = '\0'; g_hash_table_replace(g_event_config_list, xstrdup(dent->d_name), event_config); } } diff --git a/src/lib/event_xml_parser.c b/src/lib/event_xml_parser.c index 5126022e..a0e6c3c4 100644 --- a/src/lib/event_xml_parser.c +++ b/src/lib/event_xml_parser.c @@ -135,8 +135,13 @@ static void text(GMarkupParseContext *context, ui->name = _text; return; } + if(strcmp(inner_element, DESCRIPTION_ELEMENT) == 0) + { + VERB2 log("event description:'%s'", _text); + free(ui->description); + ui->description = _text; + } } - free(_text); } // Called for strings that should be re-saved verbatim in this same @@ -181,13 +186,16 @@ void load_event_description_from_file(event_config_t *event_config, const char* event_config, /*GDestroyNotify:*/ NULL); FILE* fin = fopen(filename, "r"); - size_t read_bytes = 0; - char buff[1024]; - while ((read_bytes = fread(buff, 1, 1024, fin))) + if(fin != NULL) { - g_markup_parse_context_parse(context, buff, read_bytes, NULL); + size_t read_bytes = 0; + char buff[1024]; + while ((read_bytes = fread(buff, 1, 1024, fin))) + { + g_markup_parse_context_parse(context, buff, read_bytes, NULL); + } + fclose(fin); } - fclose(fin); g_markup_parse_context_free(context); } |
