Hello community, here is the log from the commit of package ncmpcpp for openSUSE:Factory checked in at 2018-04-13 12:50:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ncmpcpp (Old) and /work/SRC/openSUSE:Factory/.ncmpcpp.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ncmpcpp" Fri Apr 13 12:50:28 2018 rev:3 rq:595793 version:0.8.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ncmpcpp/ncmpcpp.changes 2018-02-07 18:42:46.876339855 +0100 +++ /work/SRC/openSUSE:Factory/.ncmpcpp.new/ncmpcpp.changes 2018-04-13 12:50:49.729251160 +0200 @@ -1,0 +2,15 @@ +Wed Apr 11 21:06:27 UTC 2018 - avin...@opensuse.org + +- Update to 0.8.2 + * Help screen: fixed display of EoF keycode + * Fixed possible integer overflow when resizing screen + * Fixed fetching lyrics from lyricsmania.com, metrolyrics.com + and sing365.com + * Search engine now properly interacts with filtering + * Fixed redraw of separator after interface switch while MPD was + stopped + * Reset position of a window when fetching lyrics + * Fixed compilation with ICU >= 61. +- cleanup with spec-cleaner + +------------------------------------------------------------------- Old: ---- ncmpcpp-0.8.1.tar.gz New: ---- ncmpcpp-0.8.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ncmpcpp.spec ++++++ --- /var/tmp/diff_new_pack.bk0IKH/_old 2018-04-13 12:50:51.725178847 +0200 +++ /var/tmp/diff_new_pack.bk0IKH/_new 2018-04-13 12:50:51.725178847 +0200 @@ -1,7 +1,7 @@ # # spec file for package ncmpcpp # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,10 +17,10 @@ Name: ncmpcpp -Version: 0.8.1 +Version: 0.8.2 Release: 0 Summary: Music Player Daemon Client -License: GPL-2.0 +License: GPL-2.0-only Group: Productivity/Multimedia/Sound/Players URL: https://rybczak.net/ncmpcpp Source: https://github.com/arybczak/ncmpcpp/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz @@ -28,13 +28,8 @@ BuildRequires: automake BuildRequires: curl-devel BuildRequires: fftw-devel -BuildRequires: libtag-devel -BuildRequires: libtool -BuildRequires: pkgconfig(ncursesw) -BuildRequires: pkgconfig -BuildRequires: readline-devel -BuildRequires: pkgconfig(libmpdclient) -Requires: mpd > 0.16 +BuildRequires: gcc +BuildRequires: gcc-c++ BuildRequires: libboost_filesystem-devel BuildRequires: libboost_headers-devel BuildRequires: libboost_locale-devel @@ -42,8 +37,13 @@ BuildRequires: libboost_regex-devel BuildRequires: libboost_system-devel BuildRequires: libboost_thread-devel -BuildRequires: gcc -BuildRequires: gcc-c++ +BuildRequires: libtag-devel +BuildRequires: libtool +BuildRequires: pkgconfig +BuildRequires: readline-devel +BuildRequires: pkgconfig(libmpdclient) +BuildRequires: pkgconfig(ncursesw) +Requires: mpd > 0.16 %description ncmpcpp is an ncurses client for MPD (Music Player Daemon), inspired @@ -66,8 +66,9 @@ rm -rf "%{buildroot}%{_datadir}/doc" %files -%doc AUTHORS COPYING NEWS doc/config doc/bindings -%{_bindir}/ncmpcpp -%{_mandir}/man1/ncmpcpp.1%{ext_man} +%license COPYING +%doc AUTHORS NEWS doc/config doc/bindings +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1%{?ext_man} %changelog ++++++ ncmpcpp-0.8.1.tar.gz -> ncmpcpp-0.8.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/NEWS new/ncmpcpp-0.8.2/NEWS --- old/ncmpcpp-0.8.1/NEWS 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/NEWS 2018-04-11 20:40:52.000000000 +0200 @@ -1,3 +1,12 @@ +ncmpcpp-0.8.2 (2018-04-11) +* Help screen: fixed display of EoF keycode +* Fixed possible integer overflow when resizing screen +* Fixed fetching lyrics from lyricsmania.com, metrolyrics.com and sing365.com +* Search engine now properly interacts with filtering +* Fixed redraw of separator after interface switch while MPD was stopped +* Reset position of a window when fetching lyrics +* Fixed compilation with ICU >= 61. + ncmpcpp-0.8.1 (2017-10-11) * Setting 'colors_enabled' to 'no' no longer results in a crash. * Using '--quiet' command line argument no longer results in a crash. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/configure.ac new/ncmpcpp-0.8.2/configure.ac --- old/ncmpcpp-0.8.1/configure.ac 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/configure.ac 2018-04-11 20:40:52.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([ncmpcpp], [0.8.1]) +AC_INIT([ncmpcpp], [0.8.2]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_HEADERS(config.h) AM_INIT_AUTOMAKE([subdir-objects]) @@ -105,7 +105,7 @@ old_LIBS="$LIBS" AC_SUBST(ICU_CFLAGS) AC_SUBST(ICU_LIBS) - CPPFLAGS="$CPPFLAGS $ICU_CFLAGS" + CPPFLAGS="$CPPFLAGS $ICU_CFLAGS -DU_USING_ICU_NAMESPACE=0" LIBS="$LIBS $ICU_LIBS" AC_MSG_CHECKING([whether boost.regex was compiled with ICU support]) AC_LINK_IFELSE([AC_LANG_PROGRAM([ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/actions.cpp new/ncmpcpp-0.8.2/src/actions.cpp --- old/ncmpcpp-0.8.1/src/actions.cpp 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/actions.cpp 2018-04-11 20:40:52.000000000 +0200 @@ -219,7 +219,7 @@ getch(); } - MainHeight = LINES-(Config.design == Design::Alternative ? 7 : 4); + MainHeight = std::max(LINES-(Config.design == Design::Alternative ? 7 : 4), 0); validateScreenSize(); @@ -258,7 +258,7 @@ using Global::MainHeight; MainStartY = Config.design == Design::Alternative ? 5 : 2; - MainHeight = LINES-(Config.design == Design::Alternative ? 7 : 4); + MainHeight = std::max(LINES-(Config.design == Design::Alternative ? 7 : 4), 0); if (!Config.header_visibility) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/bindings.cpp new/ncmpcpp-0.8.2/src/bindings.cpp --- old/ncmpcpp-0.8.1/src/bindings.cpp 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/bindings.cpp 2018-04-11 20:40:52.000000000 +0200 @@ -314,6 +314,8 @@ result += L"Left"; else if (key == NC::Key::Right) result += L"Right"; + else if (key == NC::Key::EoF) + result += L"EoF"; else if (key >= NC::Key::F1 && key <= NC::Key::F9) { result += L"F"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/lyrics_fetcher.cpp new/ncmpcpp-0.8.2/src/lyrics_fetcher.cpp --- old/ncmpcpp-0.8.1/src/lyrics_fetcher.cpp 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/lyrics_fetcher.cpp 2018-04-11 20:40:52.000000000 +0200 @@ -119,7 +119,12 @@ auto first = boost::sregex_iterator(data.begin(), data.end(), rx); auto last = boost::sregex_iterator(); for (; first != last; ++first) - result.push_back(first->str(1)); + { + std::string content; + for (size_t i = 1; i < first->size(); ++i) + content += first->str(i); + result.push_back(std::move(content)); + } return result; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/lyrics_fetcher.h new/ncmpcpp-0.8.2/src/lyrics_fetcher.h --- old/ncmpcpp-0.8.1/src/lyrics_fetcher.h 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/lyrics_fetcher.h 2018-04-11 20:40:52.000000000 +0200 @@ -88,7 +88,7 @@ virtual const char *name() const override { return "metrolyrics.com"; } protected: - virtual const char *regex() const override { return "<div class=\"lyrics-body\">(.*?)</div>"; } + virtual const char *regex() const override { return "<div class=\"lyrics-body\">(.*?)<!--WIDGET.*?<!-- Second Section -->(.*?)<!--WIDGET.*?<!-- Third Section -->(.*?)</div>"; } virtual bool isURLOk(const std::string &url) override; }; @@ -98,7 +98,7 @@ virtual const char *name() const override { return "lyricsmania.com"; } protected: - virtual const char *regex() const override { return "<div class=\"lyrics-body\".*?</strong>(.*?)</div>"; } + virtual const char *regex() const override { return "<div class=\"lyrics-body\".*?</div>(.*?)</div>"; } }; struct Sing365Fetcher : public GoogleLyricsFetcher @@ -106,7 +106,7 @@ virtual const char *name() const override { return "sing365.com"; } protected: - virtual const char *regex() const override { return "<div class=\"content\">.*?</script>(.*?)<script>"; } + virtual const char *regex() const override { return "<div class=\"content\">.*?</script></div>(.*?)<script>"; } }; struct JustSomeLyricsFetcher : public GoogleLyricsFetcher diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/regex_filter.h new/ncmpcpp-0.8.2/src/regex_filter.h --- old/ncmpcpp-0.8.1/src/regex_filter.h 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/regex_filter.h 2018-04-11 20:40:52.000000000 +0200 @@ -42,12 +42,12 @@ struct StripDiacritics { - static void convert(UnicodeString &s) + static void convert(icu::UnicodeString &s) { if (m_converter == nullptr) { - ErrorCode result; - m_converter = Transliterator::createInstance( + icu::ErrorCode result; + m_converter = icu::Transliterator::createInstance( "NFD; [:M:] Remove; NFC", UTRANS_FORWARD, result); if (result.isFailure()) throw std::runtime_error( @@ -58,10 +58,10 @@ } private: - static Transliterator *m_converter; + static icu::Transliterator *m_converter; }; -Transliterator *StripDiacritics::m_converter; +icu::Transliterator *StripDiacritics::m_converter; #endif // BOOST_REGEX_ICU @@ -99,8 +99,8 @@ #ifdef BOOST_REGEX_ICU if (ignore_diacritics) { - auto us = UnicodeString::fromUTF8( - StringPiece(convertString<char, CharT>::apply(s))); + auto us = icu::UnicodeString::fromUTF8( + icu::StringPiece(convertString<char, CharT>::apply(s))); StripDiacritics::convert(us); return boost::u32regex_search(us, rx); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/screens/browser.cpp new/ncmpcpp-0.8.2/src/screens/browser.cpp --- old/ncmpcpp-0.8.1/src/screens/browser.cpp 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/screens/browser.cpp 2018-04-11 20:40:52.000000000 +0200 @@ -153,10 +153,8 @@ { case DisplayMode::Columns: if (Config.titles_visibility) - { w.setTitle(Display::Columns(w.getWidth())); - break; - } + break; case DisplayMode::Classic: w.setTitle(""); break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/screens/lyrics.cpp new/ncmpcpp-0.8.2/src/screens/lyrics.cpp --- old/ncmpcpp-0.8.1/src/screens/lyrics.cpp 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/screens/lyrics.cpp 2018-04-11 20:40:52.000000000 +0200 @@ -278,6 +278,7 @@ { stopDownload(); w.clear(); + w.reset(); m_song = s; if (loadLyrics(w, lyricsFilename(m_song))) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/screens/playlist.cpp new/ncmpcpp-0.8.2/src/screens/playlist.cpp --- old/ncmpcpp-0.8.1/src/screens/playlist.cpp 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/screens/playlist.cpp 2018-04-11 20:40:52.000000000 +0200 @@ -95,12 +95,11 @@ { case DisplayMode::Columns: if (Config.titles_visibility) - { w.setTitle(Display::Columns(w.getWidth())); - break; - } + break; case DisplayMode::Classic: w.setTitle(""); + break; } hasToBeResized = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/screens/search_engine.cpp new/ncmpcpp-0.8.2/src/screens/search_engine.cpp --- old/ncmpcpp-0.8.1/src/screens/search_engine.cpp 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/screens/search_engine.cpp 2018-04-11 20:40:52.000000000 +0200 @@ -194,12 +194,11 @@ { case DisplayMode::Columns: if (Config.titles_visibility) - { w.setTitle(Display::Columns(w.getWidth())); - break; - } + break; case DisplayMode::Classic: w.setTitle(""); + break; } hasToBeResized = 0; } @@ -243,6 +242,7 @@ bool SearchEngine::allowsSearching() { + ScopedUnfilteredMenu<SEItem> sunfilter(ReapplyFilter::Yes, w); return w.rbegin()->value().isSong(); } @@ -425,6 +425,7 @@ { for (size_t i = 0; i < ConstraintsNumber; ++i) itsConstraints[i].clear(); + w.clearFilter(); w.reset(); Prepare(); Statusbar::print("Search state reset"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ncmpcpp-0.8.1/src/status.cpp new/ncmpcpp-0.8.2/src/status.cpp --- old/ncmpcpp-0.8.1/src/status.cpp 2017-10-12 13:29:51.000000000 +0200 +++ new/ncmpcpp-0.8.2/src/status.cpp 2018-04-11 20:40:52.000000000 +0200 @@ -594,6 +594,8 @@ if (Statusbar::isUnlocked() && Config.statusbar_visibility) *wFooter << NC::XY(0, 1) << NC::TermManip::ClearToEOL; + if (Progressbar::isUnlocked()) + Progressbar::draw(0, 0); return; }