static char *get_epidir(void)
{
char *basedir, *epidir;
+ struct stat s;
+
basedir = get_basedir();
xasprintf(&epidir, "%s/epigrams", basedir);
free(basedir);
+ if (!OPT_GIVEN(TFORTUNE, BASEDIR) && stat(epidir, &s) < 0) {
+ free(epidir);
+ epidir = xstrdup(DATADIR "/tfortunes/epigrams");
+ INFO_LOG("falling back to system-wide epidir %s\n", epidir);
+ }
return epidir;
}
liter = linhash_iterator_new(tagtab, NULL, false);
(itemp = linhash_iterator_item(liter));
linhash_iterator_next(liter)
- )
+ ) {
+ free((char *)itemp->key);
num_tags += (long unsigned)itemp->object;
+ }
num_unique_tags = linhash_num_items(tagtab);
linhash_iterator_free(liter);
xdir = get_xdir();