Commit 6350089e authored by Max Kellermann's avatar Max Kellermann

Merge tag 'v0.19.13'

release v0.19.13
parents 8e5a67ed 79f2f8cd
...@@ -48,11 +48,13 @@ ver 0.20 (not yet released) ...@@ -48,11 +48,13 @@ ver 0.20 (not yet released)
* update * update
- apply .mpdignore matches to subdirectories - apply .mpdignore matches to subdirectories
ver 0.19.13 (not yet released) ver 0.19.13 (2016/02/23)
* tags * tags
- aiff, riff: fix ID3 chunk padding - aiff, riff: fix ID3 chunk padding
* decoder * decoder
- ffmpeg: support the TAK codec - ffmpeg: support the TAK codec
* fix disappearing duration of remote songs during playback
* initialize supplementary groups with glibc 2.19+
ver 0.19.12 (2015/12/15) ver 0.19.12 (2015/12/15)
* fix assertion failure on malformed UTF-8 tag * fix assertion failure on malformed UTF-8 tag
......
...@@ -229,6 +229,7 @@ if test x$host_is_linux = xyes; then ...@@ -229,6 +229,7 @@ if test x$host_is_linux = xyes; then
fi fi
AC_CHECK_FUNCS(getpwnam_r getpwuid_r) AC_CHECK_FUNCS(getpwnam_r getpwuid_r)
AC_CHECK_FUNCS(initgroups)
AC_CHECK_FUNCS(fnmatch) AC_CHECK_FUNCS(fnmatch)
AC_CHECK_FUNCS(strndup) AC_CHECK_FUNCS(strndup)
......
...@@ -188,6 +188,14 @@ public: ...@@ -188,6 +188,14 @@ public:
tag = std::move(other.tag); tag = std::move(other.tag);
} }
/**
* Similar to the MoveTagFrom(), but move only the #TagItem
* array.
*/
void MoveTagItemsFrom(DetachedSong &&other) {
tag.MoveItemsFrom(std::move(other.tag));
}
time_t GetLastModified() const { time_t GetLastModified() const {
return mtime; return mtime;
} }
......
...@@ -37,7 +37,7 @@ playlist::TagModified(DetachedSong &&song) ...@@ -37,7 +37,7 @@ playlist::TagModified(DetachedSong &&song)
DetachedSong &current_song = queue.GetOrder(current); DetachedSong &current_song = queue.GetOrder(current);
if (song.IsSame(current_song)) if (song.IsSame(current_song))
current_song.MoveTagFrom(std::move(song)); current_song.MoveTagItemsFrom(std::move(song));
queue.ModifyAtOrder(current); queue.ModifyAtOrder(current);
queue.IncrementVersion(); queue.IncrementVersion();
......
...@@ -80,9 +80,17 @@ struct Tag { ...@@ -80,9 +80,17 @@ struct Tag {
Tag &operator=(Tag &&other) { Tag &operator=(Tag &&other) {
duration = other.duration; duration = other.duration;
has_playlist = other.has_playlist; has_playlist = other.has_playlist;
MoveItemsFrom(std::move(other));
return *this;
}
/**
* Similar to the move operator, but move only the #TagItem
* array.
*/
void MoveItemsFrom(Tag &&other) {
std::swap(items, other.items); std::swap(items, other.items);
std::swap(num_items, other.num_items); std::swap(num_items, other.num_items);
return *this;
} }
/** /**
......
...@@ -103,7 +103,7 @@ daemonize_set_user(void) ...@@ -103,7 +103,7 @@ daemonize_set_user(void)
(int)user_gid); (int)user_gid);
} }
#ifdef _BSD_SOURCE #ifdef HAVE_INITGROUPS
/* init supplementary groups /* init supplementary groups
* (must be done before we change our uid) * (must be done before we change our uid)
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment