Merge branch 'v0.20.x'

This commit is contained in:
Max Kellermann 2017-04-24 11:44:27 +02:00
commit f6e428ac22
8 changed files with 12 additions and 9 deletions

4
NEWS
View File

@ -7,6 +7,10 @@ ver 0.21 (not yet released)
* output * output
- alsa: non-blocking mode - 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) ver 0.20.6 (2017/03/10)
* input * input
- curl: fix headers after HTTP redirect to Shoutcast server - curl: fix headers after HTTP redirect to Shoutcast server

View File

@ -4080,7 +4080,7 @@ run</programlisting>
(logical "and") can be used to select portions of (logical "and") can be used to select portions of
the format string depending on the existing tag the format string depending on the existing tag
values. Example: values. Example:
<parameter>~/.mpd/recorder/[%title|%name%].ogg</parameter> <parameter>~/.mpd/recorder/[%title%|%name%].ogg</parameter>
(use the "name" tag if no title exists) (use the "name" tag if no title exists)
</para> </para>
</entry> </entry>

View File

@ -36,8 +36,8 @@ flac = AutotoolsProject(
) )
zlib = ZlibProject( zlib = ZlibProject(
'http://zlib.net/zlib-1.2.8.tar.xz', 'http://zlib.net/zlib-1.2.11.tar.xz',
'28f1205d8dd2001f26fec1e8c2cebe37', '4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066',
'lib/libz.a', 'lib/libz.a',
) )

View File

@ -86,7 +86,7 @@ struct Directory {
Directory *const parent; Directory *const parent;
time_t mtime = 0; time_t mtime = 0;
unsigned inode = 0, device = 0; uint64_t inode = 0, device = 0;
const std::string path; const std::string path;

View File

@ -43,7 +43,8 @@ FillBuffer(DecoderClient &client, InputStream &is, B &buffer)
{ {
buffer.Shift(); buffer.Shift();
auto w = buffer.Write(); auto w = buffer.Write();
assert(!w.IsEmpty()); if (w.IsEmpty())
return true;
size_t nbytes = decoder_read(client, is, w.data, w.size); size_t nbytes = decoder_read(client, is, w.data, w.size);
if (nbytes == 0 && is.LockIsEOF()) if (nbytes == 0 && is.LockIsEOF())

View File

@ -287,8 +287,6 @@ roar_tag_convert(TagType type, bool *is_uuid)
case TAG_MUSICBRAINZ_ALBUMID: case TAG_MUSICBRAINZ_ALBUMID:
case TAG_MUSICBRAINZ_ALBUMARTISTID: case TAG_MUSICBRAINZ_ALBUMARTISTID:
case TAG_MUSICBRAINZ_TRACKID: case TAG_MUSICBRAINZ_TRACKID:
*is_uuid = true;
return "HASH";
case TAG_MUSICBRAINZ_RELEASETRACKID: case TAG_MUSICBRAINZ_RELEASETRACKID:
*is_uuid = true; *is_uuid = true;
return "HASH"; return "HASH";

View File

@ -50,7 +50,7 @@ struct StorageFileInfo {
* Device id and inode number. 0 means unknown / not * Device id and inode number. 0 means unknown / not
* applicable. * applicable.
*/ */
unsigned device, inode; uint64_t device, inode;
StorageFileInfo() = default; StorageFileInfo() = default;

View File

@ -45,7 +45,7 @@ public:
explicit ScopeExitGuard(F &&f):F(std::forward<F>(f)) {} explicit ScopeExitGuard(F &&f):F(std::forward<F>(f)) {}
ScopeExitGuard(ScopeExitGuard &&src) ScopeExitGuard(ScopeExitGuard &&src)
:F(std::move(src)) { :F(std::move(src)), enabled(src.enabled) {
src.enabled = false; src.enabled = false;
} }