db/update/Playlist: prepend "../" only for relative URIs
Prepending "../" to absolute URIs would break them.
This commit is contained in:
parent
1761fb14af
commit
8e0d39ae94
1
NEWS
1
NEWS
|
@ -3,6 +3,7 @@ ver 0.22.10 (not yet released)
|
|||
- support "albumart" for virtual tracks in CUE sheets
|
||||
* database
|
||||
- simple: fix crash bug
|
||||
- simple: fix absolute paths in CUE "as_directory" entries
|
||||
* input
|
||||
- curl: fix crash bug after stream with Icy metadata was closed by peer
|
||||
- tidal: remove defunct unmaintained plugin
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "playlist/SongEnumerator.hxx"
|
||||
#include "storage/FileInfo.hxx"
|
||||
#include "storage/StorageInterface.hxx"
|
||||
#include "fs/Traits.hxx"
|
||||
#include "util/StringFormat.hxx"
|
||||
#include "Log.hxx"
|
||||
|
||||
|
@ -70,7 +71,14 @@ UpdateWalk::UpdatePlaylistFile(Directory &parent, std::string_view name,
|
|||
|
||||
auto db_song = std::make_unique<Song>(std::move(*song),
|
||||
*directory);
|
||||
db_song->target = "../" + db_song->filename;
|
||||
db_song->target =
|
||||
PathTraitsUTF8::IsAbsoluteOrHasScheme(db_song->filename.c_str())
|
||||
? db_song->filename
|
||||
/* prepend "../" to relative paths to
|
||||
go from the virtual directory
|
||||
(DEVICE_PLAYLIST) to the containing
|
||||
directory */
|
||||
: "../" + db_song->filename;
|
||||
db_song->filename = StringFormat<64>("track%04u",
|
||||
++track);
|
||||
|
||||
|
|
Loading…
Reference in New Issue