+ if (!*cf) {
+ newcf = malloc(sizeof(struct gconffile) * 2);
+ if (!newcf)
+ return 0;
+ memset(newcf, 0, sizeof(struct gconffile) * 2);
+ } else {
+ for (i = 0; (*cf)[i].data || (*cf)[i].path; i++);
+ newcf = realloc(*cf, sizeof(struct gconffile) * (i + 2));
+ if (!newcf)
+ return 0;
+ memmove(newcf + 1, newcf, sizeof(struct gconffile) * (i + 1));
+ memset(newcf, 0, sizeof(struct gconffile));
+ }
+ newcf[0].data = data;
+ *cf = newcf;
+ return 1;
+}
+
+FILE *pushgconffile(struct gconffile **cf, FILE *file, const char *description) {
+ int i;
+ struct gconffile *newcf;
+ char *desc;
+
+ if (!file) {
+ debug(DBG_INFO, "could not read config from %s", description);