* Sebastian Hammer, Adam Dickmeiss
*
* $Log: mfile.c,v $
- * Revision 1.34 1999-05-26 07:49:12 adam
+ * Revision 1.36 1999-12-08 15:03:11 adam
+ * Implemented bf_reset.
+ *
+ * Revision 1.35 1999/10/14 14:33:50 adam
+ * Added truncation 5=106.
+ *
+ * Revision 1.34 1999/05/26 07:49:12 adam
* C++ compilation.
*
* Revision 1.33 1999/05/12 13:08:06 adam
dirname[i] = '\0';
if (*ad++ != ':')
{
- logf (LOG_FATAL, "Missing colon after path: %s", ad0);
+ logf (LOG_WARN, "Missing colon after path: %s", ad0);
return -1;
}
if (i == 0)
{
- logf (LOG_FATAL, "Empty path: %s", ad0);
+ logf (LOG_WARN, "Empty path: %s", ad0);
return -1;
}
while (*ad == ' ' || *ad == '\t')
{
if (!mf->wr && errno == ENOENT && off == 0)
return -2;
- logf (LOG_FATAL|LOG_ERRNO, "Failed to open %s", mf->files[c].path);
+ logf (LOG_WARN|LOG_ERRNO, "Failed to open %s", mf->files[c].path);
return -1;
}
if (lseek(mf->files[c].fd, (ps = pos - off) * mf->blocksize + offset,
SEEK_SET) < 0)
{
- logf (LOG_FATAL|LOG_ERRNO, "Failed to seek in %s", mf->files[c].path);
+ logf (LOG_WARN|LOG_ERRNO, "Failed to seek in %s", mf->files[c].path);
return -1;
}
mf->cur_file = c;
ma->dirs = 0;
if (scan_areadef(ma, name, spec) < 0)
{
- logf (LOG_FATAL, "Failed to access description of '%s'", name);
+ logf (LOG_WARN, "Failed to access description of '%s'", name);
return 0;
}
/* look at each directory */
{
if (!(dd = opendir(dirp->name)))
{
- logf (LOG_FATAL|LOG_ERRNO, "Failed to open %s", dirp->name);
+ logf (LOG_WARN|LOG_ERRNO, "Failed to open directory %s",
+ dirp->name);
return 0;
}
/* look at each file */
xfree (ma);
}
+void mf_reset(MFile_area ma)
+{
+ meta_file *meta_f;
+
+ if (!ma)
+ return;
+ meta_f = ma->mfiles;
+ while (meta_f)
+ {
+ int i;
+ meta_file *m = meta_f;
+
+ assert (!m->open);
+ for (i = 0; i<m->no_files; i++)
+ {
+ unlink (m->files[i].path);
+ xfree (m->files[i].path);
+ }
+ meta_f = meta_f->next;
+ xfree (m);
+ }
+ ma->mfiles = 0;
+}
+
/*
* Open a metafile.
* If !ma, Use MF_DEFAULT_AREA.