Fixed notification of live-updates. Fixed minor problem with mf_init
[idzebra-moved-to-github.git] / bfile / mfile.c
index 6afd611..0d37fde 100644 (file)
@@ -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 */