diff --git a/NEWS b/NEWS index 020606139..ab7465171 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,10 @@ ver 0.21 (not yet released) * output - alsa: non-blocking mode +ver 0.20.7 (not yet released) +* database + - simple: fix false positive directory loop detection with NFS + ver 0.20.6 (2017/03/10) * input - curl: fix headers after HTTP redirect to Shoutcast server diff --git a/doc/user.xml b/doc/user.xml index 865369c23..461d7f1b7 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -4080,7 +4080,7 @@ run (logical "and") can be used to select portions of the format string depending on the existing tag values. Example: - ~/.mpd/recorder/[%title|%name%].ogg + ~/.mpd/recorder/[%title%|%name%].ogg (use the "name" tag if no title exists) diff --git a/python/build/libs.py b/python/build/libs.py index d4b994655..7f757d93c 100644 --- a/python/build/libs.py +++ b/python/build/libs.py @@ -36,8 +36,8 @@ flac = AutotoolsProject( ) zlib = ZlibProject( - 'http://zlib.net/zlib-1.2.8.tar.xz', - '28f1205d8dd2001f26fec1e8c2cebe37', + 'http://zlib.net/zlib-1.2.11.tar.xz', + '4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066', 'lib/libz.a', ) diff --git a/src/db/plugins/simple/Directory.hxx b/src/db/plugins/simple/Directory.hxx index 6e20716ab..980ac7615 100644 --- a/src/db/plugins/simple/Directory.hxx +++ b/src/db/plugins/simple/Directory.hxx @@ -86,7 +86,7 @@ struct Directory { Directory *const parent; time_t mtime = 0; - unsigned inode = 0, device = 0; + uint64_t inode = 0, device = 0; const std::string path; diff --git a/src/decoder/plugins/PcmDecoderPlugin.cxx b/src/decoder/plugins/PcmDecoderPlugin.cxx index 85e177751..de9390c97 100644 --- a/src/decoder/plugins/PcmDecoderPlugin.cxx +++ b/src/decoder/plugins/PcmDecoderPlugin.cxx @@ -43,7 +43,8 @@ FillBuffer(DecoderClient &client, InputStream &is, B &buffer) { buffer.Shift(); auto w = buffer.Write(); - assert(!w.IsEmpty()); + if (w.IsEmpty()) + return true; size_t nbytes = decoder_read(client, is, w.data, w.size); if (nbytes == 0 && is.LockIsEOF()) diff --git a/src/output/plugins/RoarOutputPlugin.cxx b/src/output/plugins/RoarOutputPlugin.cxx index a6620f7b4..88baacbd4 100644 --- a/src/output/plugins/RoarOutputPlugin.cxx +++ b/src/output/plugins/RoarOutputPlugin.cxx @@ -287,8 +287,6 @@ roar_tag_convert(TagType type, bool *is_uuid) case TAG_MUSICBRAINZ_ALBUMID: case TAG_MUSICBRAINZ_ALBUMARTISTID: case TAG_MUSICBRAINZ_TRACKID: - *is_uuid = true; - return "HASH"; case TAG_MUSICBRAINZ_RELEASETRACKID: *is_uuid = true; return "HASH"; diff --git a/src/storage/FileInfo.hxx b/src/storage/FileInfo.hxx index 6a8bc2dd6..d768f0532 100644 --- a/src/storage/FileInfo.hxx +++ b/src/storage/FileInfo.hxx @@ -50,7 +50,7 @@ struct StorageFileInfo { * Device id and inode number. 0 means unknown / not * applicable. */ - unsigned device, inode; + uint64_t device, inode; StorageFileInfo() = default; diff --git a/src/util/ScopeExit.hxx b/src/util/ScopeExit.hxx index 0c7414f18..e93601dd4 100644 --- a/src/util/ScopeExit.hxx +++ b/src/util/ScopeExit.hxx @@ -45,7 +45,7 @@ public: explicit ScopeExitGuard(F &&f):F(std::forward(f)) {} ScopeExitGuard(ScopeExitGuard &&src) - :F(std::move(src)) { + :F(std::move(src)), enabled(src.enabled) { src.enabled = false; }