aboutsummaryrefslogtreecommitdiffstats
path: root/src/update.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/update.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/update.c b/src/update.c
index ea8b3f820..691f533b5 100644
--- a/src/update.c
+++ b/src/update.c
@@ -25,6 +25,7 @@
#include "mapper.h"
#include "path.h"
#include "decoder_list.h"
+#include "archive_list.h"
#include "playlist.h"
#include "event_pipe.h"
#include "notify.h"
@@ -33,6 +34,7 @@
#include "conf.h"
#include "stats.h"
#include "main.h"
+#include "config.h"
#include <glib.h>
@@ -350,6 +352,9 @@ update_regular_file(struct directory *directory,
const char *name, const struct stat *st)
{
const char *suffix = uri_get_suffix(name);
+#ifdef ENABLE_ARCHIVE
+ const struct archive_plugin *archive;
+#endif
if (suffix == NULL)
return;
@@ -376,9 +381,9 @@ update_regular_file(struct directory *directory,
#ifdef ENABLE_ARCHIVE
} else if ((archive = archive_plugin_from_suffix(suffix))) {
struct archive_file *archfile;
- char pathname[MPD_PATH_MAX];
+ char *pathname;
- map_directory_child_fs(directory, name, pathname);
+ pathname = map_directory_child_fs(directory, name);
//open archive
archfile = archive->open(pathname);
if (archfile) {
@@ -404,6 +409,8 @@ update_regular_file(struct directory *directory,
} else {
g_warning("unable to open archive %s", pathname);
}
+
+ g_free(pathname);
#endif
}
}
@@ -415,10 +422,6 @@ static void
updateInDirectory(struct directory *directory,
const char *name, const struct stat *st)
{
-#ifdef ENABLE_ARCHIVE
- const struct archive_plugin *archive;
-#endif
-
assert(strchr(name, '/') == NULL);
if (S_ISREG(st->st_mode)) {