update: moved code to update_regular_file()
This commit is contained in:
parent
8a562c9c71
commit
d6b229e35c
61
src/update.c
61
src/update.c
@ -347,20 +347,11 @@ update_archive_tree(struct directory *directory, char *name)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static bool
|
|
||||||
updateDirectory(struct directory *directory, const struct stat *st);
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
updateInDirectory(struct directory *directory,
|
update_regular_file(struct directory *directory,
|
||||||
const char *name, const struct stat *st)
|
const char *name, const struct stat *st)
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_ARCHIVE
|
if (hasMusicSuffix(name, 0)) {
|
||||||
const struct archive_plugin *archive;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
assert(strchr(name, '/') == NULL);
|
|
||||||
|
|
||||||
if (S_ISREG(st->st_mode) && hasMusicSuffix(name, 0)) {
|
|
||||||
struct song *song = songvec_find(&directory->songs, name);
|
struct song *song = songvec_find(&directory->songs, name);
|
||||||
|
|
||||||
if (song == NULL) {
|
if (song == NULL) {
|
||||||
@ -379,21 +370,8 @@ updateInDirectory(struct directory *directory,
|
|||||||
delete_song(directory, song);
|
delete_song(directory, song);
|
||||||
modified = true;
|
modified = true;
|
||||||
}
|
}
|
||||||
} else if (S_ISDIR(st->st_mode)) {
|
|
||||||
struct directory *subdir;
|
|
||||||
bool ret;
|
|
||||||
|
|
||||||
if (inodeFoundInParent(directory, st->st_ino, st->st_dev))
|
|
||||||
return;
|
|
||||||
|
|
||||||
subdir = make_subdir(directory, name);
|
|
||||||
assert(directory == subdir->parent);
|
|
||||||
|
|
||||||
ret = updateDirectory(subdir, st);
|
|
||||||
if (!ret)
|
|
||||||
delete_directory(subdir);
|
|
||||||
#ifdef ENABLE_ARCHIVE
|
#ifdef ENABLE_ARCHIVE
|
||||||
} else if (S_ISREG(st->st_mode) && (archive = get_archive_by_suffix(name))) {
|
} else if ((archive = get_archive_by_suffix(name))) {
|
||||||
struct archive_file *archfile;
|
struct archive_file *archfile;
|
||||||
char pathname[MPD_PATH_MAX];
|
char pathname[MPD_PATH_MAX];
|
||||||
|
|
||||||
@ -424,6 +402,37 @@ updateInDirectory(struct directory *directory,
|
|||||||
g_warning("unable to open archive %s", pathname);
|
g_warning("unable to open archive %s", pathname);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
updateDirectory(struct directory *directory, const struct stat *st);
|
||||||
|
|
||||||
|
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)) {
|
||||||
|
update_regular_file(directory, name, st);
|
||||||
|
} else if (S_ISDIR(st->st_mode)) {
|
||||||
|
struct directory *subdir;
|
||||||
|
bool ret;
|
||||||
|
|
||||||
|
if (inodeFoundInParent(directory, st->st_ino, st->st_dev))
|
||||||
|
return;
|
||||||
|
|
||||||
|
subdir = make_subdir(directory, name);
|
||||||
|
assert(directory == subdir->parent);
|
||||||
|
|
||||||
|
ret = updateDirectory(subdir, st);
|
||||||
|
if (!ret)
|
||||||
|
delete_directory(subdir);
|
||||||
} else {
|
} else {
|
||||||
g_debug("update: %s is not a directory, archive or music", name);
|
g_debug("update: %s is not a directory, archive or music", name);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user