- if (!strchr(cfg->variable, '.')) {
- config_add(config_tree, cfg);
- node->data = NULL;
- list_unlink_node(cmdline_conf, node);
- }
+
+ if(!prefix && strchr(cfg->variable, '.'))
+ continue;
+
+ if(prefix && (strncmp(prefix, cfg->variable, prefix_len) || cfg->variable[prefix_len] != '.'))
+ continue;
+
+ config_add(config_tree, cfg);
+ node->data = NULL;
+ list_unlink_node(cmdline_conf, node);