* Use: Translates an expiry or deletion time.
*/
-time_t exptime(const char *p)
+static time_t exptime(const char *p)
{
size_t sz = strlen(p);
if (strncmp(p, "expired", sz) == 0)
key_fulltag(k, &d);
DPUTC(&d, ' ');
- key_write(k->k, &d, kf);
+ if (!key_write(k->k, &d, kf)) dstr_puts(&d, "struct:[]");
DPUTC(&d, ' ');
dstr_write(&d, fp);
DRESET(&d);
if ((how & KOPEN_MASK) == KOPEN_READ) {
f->f &= ~KF_WRITE;
- fclose(f->fp);
+ if (f->fp) fclose(f->fp);
f->fp = 0;
}
k->exp = k->del = exp;
k->c = 0;
k->type = (char *)type; /* temporarily */
- sym_create(&k->a);
if ((e = insert(f, k)) != 0)
DESTROY(k);
else {
k->k = key_newstring(KCAT_SHARE, "<unset>");
k->type = xstrdup(type);
+ sym_create(&k->a);
*kk = k;
f->f |= KF_MODIFIED;
}