diff --git a/src/mcopy.cpp b/src/mcopy.cpp index 14b1abf..2db70b4 100644 --- a/src/mcopy.cpp +++ b/src/mcopy.cpp @@ -112,15 +112,18 @@ void get_metadata_from_file(const Settings& settings, const std::string& format, get_comment(), get_extension(), }; - #ifdef _WIN32 std::vector the_forbidden_characters{'<', '>', ':', '"', '/', '\\', '|', '?', '*'}; #else std::vector the_forbidden_characters{'/'}; #endif - for (const auto& it : {&data.title, &data.album, &data.artist, &data.track, &data.year, &data.genre, &data.comment, &data.extension}) { - for (const auto& c : the_forbidden_characters) - static_cast(std::remove_if(it->begin(), it->end(), [&c](char _c) { return c == _c; })); + + const std::vector data_members = {&data.title, &data.album, &data.artist, &data.track, &data.year, &data.genre, &data.comment, &data.extension}; + + for (const auto& it : data_members) { + for (const auto& c : the_forbidden_characters) { + it->erase(std::remove_if(it->begin(), it->end(), [&c](char _c) { return c == _c; }), it->end()); + } } std::unordered_map delim_map{