projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added structure year and date.
[idzebra-moved-to-github.git]
/
bfile
/
mfile.c
diff --git
a/bfile/mfile.c
b/bfile/mfile.c
index
6b7be96
..
31bc486
100644
(file)
--- a/
bfile/mfile.c
+++ b/
bfile/mfile.c
@@
-4,7
+4,13
@@
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: mfile.c,v $
* 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
* C++ compilation.
*
* Revision 1.33 1999/05/12 13:08:06 adam
@@
-164,12
+170,12
@@
static int scan_areadef(MFile_area ma, const char *name, const char *ad)
dirname[i] = '\0';
if (*ad++ != ':')
{
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)
{
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')
return -1;
}
while (*ad == ' ' || *ad == '\t')
@@
-234,13
+240,13
@@
static int file_position(MFile mf, int pos, int offset)
{
if (!mf->wr && errno == ENOENT && off == 0)
return -2;
{
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)
{
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;
return -1;
}
mf->cur_file = c;
@@
-273,7
+279,7
@@
MFile_area mf_init(const char *name, const char *spec)
ma->dirs = 0;
if (scan_areadef(ma, name, spec) < 0)
{
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 */
return 0;
}
/* look at each directory */
@@
-281,7
+287,8
@@
MFile_area mf_init(const char *name, const char *spec)
{
if (!(dd = opendir(dirp->name)))
{
{
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 */
return 0;
}
/* look at each file */
@@
-380,6
+387,30
@@
void mf_destroy(MFile_area ma)
xfree (ma);
}
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.
/*
* Open a metafile.
* If !ma, Use MF_DEFAULT_AREA.