--- lib/stackio.c 2006/07/20 16:06:41 1.20 +++ lib/stackio.c 2006/11/22 15:36:31 @@ -388,15 +388,17 @@ closedir(dirfd); - if (fnsz) qsort(fnames, fnsz, sizeof(char *), namecompare); - for (i=0; (i<fnsz); i++) { - htnames_t *newitem = malloc(sizeof(htnames_t)); - newitem->name = fnames[i]; - newitem->next = fnlist; - fnlist = newitem; - } + if (fnsz) { + qsort(fnames, fnsz, sizeof(char *), namecompare); + for (i=0; (i<fnsz); i++) { + htnames_t *newitem = malloc(sizeof(htnames_t)); + newitem->name = fnames[i]; + newitem->next = fnlist; + fnlist = newitem; + } - xfree(fnames); + xfree(fnames); + } } char *stackfgets(strbuffer_t *buffer, char *extraincl) @@ -438,7 +440,7 @@ xfree(tmp->name); xfree(tmp); return stackfgets(buffer, extraincl); } - else { + else if (fnlist) { htnames_t *tmp = fnlist; errprintf("WARNING: Cannot open include file '%s', line was:%s\n", fnlist->name, buffer); @@ -447,6 +449,11 @@ if (eol) *eol = '\n'; return result; } + else { + /* Empty directory include - return a blank line */ + *result = '\0'; + return result; + } } } else if (result == NULL) {