X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=bfile%2Fmfile.c;h=4fce68e06e3489d79893a60c9133d0a63c3246bc;hb=c8bb72d81cc3496fdfc7143e6fa5216fdb1a60f9;hp=6afd61129a2c20918ef14b98304e7404d20753fc;hpb=c1a85f9caaa8476a69b392349e90b7c4981e7db3;p=idzebra-moved-to-github.git diff --git a/bfile/mfile.c b/bfile/mfile.c index 6afd611..4fce68e 100644 --- a/bfile/mfile.c +++ b/bfile/mfile.c @@ -4,7 +4,15 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: mfile.c,v $ - * Revision 1.39 2000-05-05 13:48:03 adam + * Revision 1.41 2000-11-29 14:24:01 adam + * Script configure uses yaz pthreads options. Added locking for + * zebra_register_{lock,unlock}. + * + * 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 +315,16 @@ 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) - { - logf (LOG_DEBUG, "bf: %s is not a part-file.", dent->d_name); - continue; - } + 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")) + 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 */