diff options
Diffstat (limited to 'src/lib/event_xml_parser.c')
-rw-r--r-- | src/lib/event_xml_parser.c | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/src/lib/event_xml_parser.c b/src/lib/event_xml_parser.c index 5bf5f411..b2037cd9 100644 --- a/src/lib/event_xml_parser.c +++ b/src/lib/event_xml_parser.c @@ -25,12 +25,19 @@ #define LONG_DESCR_ELEMENT "long-description" #define ALLOW_EMPTY_ELEMENT "allow-empty" #define NOTE_HTML_ELEMENT "note-html" -#define CREATES_ELEMENT "creates-elements" +#define CREATES_ELEMENT "creates-items" #define OPTION_ELEMENT "option" //#define ACTION_ELEMENT "action" #define NAME_ELEMENT "name" #define DEFAULT_VALUE_ELEMENT "default-value" +#define REQUIRES_ELEMENT "requires-items" +#define EXCL_BY_DEFAULT_ELEMENT "exclude-items-by-default" +#define INCL_BY_DEFAULT_ELEMENT "include-items-by-default" +#define EXCL_ALWAYS_ELEMENT "exclude-items-always" +#define EXCL_BINARY_ELEMENT "exclude-binary-items" + + struct my_parse_data { event_config_t *event_config; @@ -305,9 +312,9 @@ static void text(GMarkupParseContext *context, */ if (strcmp(inner_element, CREATES_ELEMENT) == 0) { - VERB2 log("creates_elements:'%s'", text_copy); - free(ui->creates_elements); - ui->creates_elements = text_copy; + VERB2 log("ec_creates_items:'%s'", text_copy); + free(ui->ec_creates_items); + ui->ec_creates_items = text_copy; return; } if (strcmp(inner_element, NAME_ELEMENT) == 0) @@ -363,6 +370,36 @@ static void text(GMarkupParseContext *context, } return; } + if (strcmp(inner_element, REQUIRES_ELEMENT) == 0) + { + free(ui->ec_requires_items); + ui->ec_requires_items = text_copy; + return; + } + if (strcmp(inner_element, EXCL_BY_DEFAULT_ELEMENT) == 0) + { + free(ui->ec_exclude_items_by_default); + ui->ec_exclude_items_by_default = text_copy; + return; + } + if (strcmp(inner_element, INCL_BY_DEFAULT_ELEMENT) == 0) + { + free(ui->ec_include_items_by_default); + ui->ec_include_items_by_default = text_copy; + return; + } + if (strcmp(inner_element, EXCL_ALWAYS_ELEMENT) == 0) + { + free(ui->ec_exclude_items_always); + ui->ec_exclude_items_always = text_copy; + return; + } + if (strcmp(inner_element, EXCL_BINARY_ELEMENT) == 0) + { + ui->ec_exclude_binary_items = string_to_bool(text_copy); + free(text_copy); + return; + } } free(text_copy); } |