X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=bfile%2Fmfile.c;h=0d37fdec2efe85aad2805bfe0b420cd7bd4d72bb;hp=6afd61129a2c20918ef14b98304e7404d20753fc;hb=289af445bf7c8042b46200f9f2af18049ae049fb;hpb=7149e5607a0d473d958ed1758728cc343b56d681 diff --git a/bfile/mfile.c b/bfile/mfile.c index 6afd611..0d37fde 100644 --- a/bfile/mfile.c +++ b/bfile/mfile.c @@ -4,7 +4,11 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: mfile.c,v $ - * Revision 1.39 2000-05-05 13:48:03 adam + * Revision 1.40 2000-10-17 12:37:09 adam + * Fixed notification of live-updates. Fixed minor problem with mf_init + * where it didn't handle shadow area file names correctly. + * + * Revision 1.39 2000/05/05 13:48:03 adam * Fixed locking for metafiles. * * Revision 1.38 2000/03/20 19:08:35 adam @@ -307,13 +311,19 @@ MFile_area mf_init(const char *name, const char *spec) /* look at each file */ while ((dent = readdir(dd))) { - if (*dent->d_name == '.') - continue; - if (sscanf(dent->d_name, "%[^-]-%d.mf", metaname, &number) != 2) + int len = strlen(dent->d_name); + const char *cp = strrchr (dent->d_name, '-'); + if (strchr (".-", *dent->d_name)) + continue; + if (len < 5 || !cp || strcmp (dent->d_name + len - 3, ".mf")) { - logf (LOG_DEBUG, "bf: %s is not a part-file.", dent->d_name); - continue; + logf (LOG_WARN, "bf: %s is not a part-file.", dent->d_name); + continue; } + number = atoi(cp+1); + memcpy (metaname, dent->d_name, cp - dent->d_name); + metaname[ cp - dent->d_name] = '\0'; + for (meta_f = ma->mfiles; meta_f; meta_f = meta_f->next) { /* known metafile */