diff options
author | Andrzej Rybczak <electricityispower@gmail.com> | 2014-11-15 20:00:33 +0100 |
---|---|---|
committer | Andrzej Rybczak <electricityispower@gmail.com> | 2014-11-15 20:03:40 +0100 |
commit | 1a1105793d2a044163a48b4539240b37e95518d9 (patch) | |
tree | 06a73ff31e63b53f0a7ad1aa812aa002106a6a6d | |
parent | 5d75becca9452af1de9322d8633a91f77537ffc7 (diff) |
remove support for PDCurses
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | configure.ac | 36 | ||||
-rw-r--r-- | src/actions.cpp | 4 | ||||
-rw-r--r-- | src/configuration.cpp | 4 | ||||
-rw-r--r-- | src/ncmpcpp.cpp | 2 | ||||
-rw-r--r-- | src/title.cpp | 4 | ||||
-rw-r--r-- | src/window.cpp | 34 | ||||
-rw-r--r-- | src/window.h | 8 |
8 files changed, 15 insertions, 78 deletions
@@ -10,6 +10,7 @@ ncmpcpp-0.7 (????-??-??) * Find backward/forward function is now incremental. * Support for 256 colors and customization of background colors has been added. * Multiple configuration files via command line arguments are now accepted. In addition, by default ncmpcpp attempts to read both $HOME/.ncmpcpp/config and $XDG_CONFIG_HOME/ncmpcpp/config (in this order). +* Support for PDCurses has been removed due to the library being unmaintained and buggy. ncmpcpp-0.6.2 (????-??-??) diff --git a/configure.ac b/configure.ac index 192e8b90..6cfde691 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,6 @@ AC_ARG_ENABLE(clock, AS_HELP_STRING([--enable-clock], [Enable clock screen @<:@d AC_ARG_ENABLE(unicode, AS_HELP_STRING([--enable-unicode], [Enable utf8 support @<:@default=yes@:>@]), [unicode=$enableval], [unicode=yes]) AC_ARG_WITH(curl, AS_HELP_STRING([--with-curl], [Enable fetching lyrics from the Internet @<:@default=auto@:>@]), [curl=$withval], [curl=auto]) AC_ARG_WITH(fftw, AS_HELP_STRING([--with-fftw], [Enable fftw support (required for frequency spectrum vizualization) @<:@default=auto@:>@]), [fftw=$withval], [fftw=auto]) -AC_ARG_WITH(pdcurses, AS_HELP_STRING([--with-pdcurses[=LIBNAME]], [Link against pdcurses instead of ncurses @<:@default=XCurses@:>@]), [pdcurses=$withval], [pdcurses=no]) AC_ARG_WITH(taglib, AS_HELP_STRING([--with-taglib], [Enable tag editor @<:@default=auto@:>@]), [taglib=$withval], [taglib=auto]) if test "$outputs" = "yes"; then @@ -226,35 +225,23 @@ AC_CHECK_HEADERS([pthread.h], dnl ======================== dnl = checking for ncurses = dnl ======================== -if test "$pdcurses" = "no" ; then - if test "$unicode" = "yes" ; then - curses_config_bin="ncursesw6-config ncursesw5-config" - AC_DEFINE([NCMPCPP_UNICODE], [1], [enables unicode support]) - else - curses_config_bin="ncurses6-config ncurses5-config" - fi +if test "$unicode" = "yes" ; then + curses_config_bin="ncursesw6-config ncursesw5-config" + AC_DEFINE([NCMPCPP_UNICODE], [1], [enables unicode support]) else - if test "$pdcurses" = "yes" ; then - pdcurses_lib=XCurses - curses_config_bin=xcurses-config - else - pdcurses_lib=$pdcurses - fi - AC_DEFINE([USE_PDCURSES], [1], [enables pdcurses support]) + curses_config_bin="ncurses6-config ncurses5-config" fi + AC_PATH_PROGS(CURSES_CONFIG, $curses_config_bin) if test "$CURSES_CONFIG" != "" ; then CPPFLAGS="$CPPFLAGS `$CURSES_CONFIG --cflags`" LDFLAGS="$LDFLAGS `$CURSES_CONFIG --libs`" fi -if test "$pdcurses" = "no" ; then - AC_CHECK_LIB(ncursesw, initscr, - curses_lib=ncursesw, - curses_lib=ncurses - ) -else - curses_lib=$pdcurses_lib -fi +AC_CHECK_LIB(ncursesw, initscr, + curses_lib=ncursesw, + curses_lib=ncurses +) + AC_CHECK_LIB($curses_lib, initscr, if test "$CURSES_CONFIG" = "" ; then LDFLAGS="$LDFLAGS -l$curses_lib" @@ -262,9 +249,6 @@ AC_CHECK_LIB($curses_lib, initscr, , AC_MSG_ERROR([$curses_lib library is required]) ) -if test "$pdcurses" != "no" ; then - AC_CHECK_LIB($curses_lib, Xinitscr, AC_DEFINE([XCURSES], [1], [x11 pdcurses available]), ) -fi AC_CHECK_HEADERS([curses.h], , AC_MSG_ERROR([missing curses.h header])) dnl ====================== diff --git a/src/actions.cpp b/src/actions.cpp index c6977942..9f89ab13 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -184,9 +184,6 @@ void resizeScreen(bool reload_main_window) using Global::wHeader; using Global::wFooter; -# if defined(USE_PDCURSES) - resize_term(0, 0); -# else // update internal screen dimensions if (reload_main_window) { @@ -194,7 +191,6 @@ void resizeScreen(bool reload_main_window) endwin(); refresh(); } -# endif MainHeight = LINES-(Config.design == Design::Alternative ? 7 : 4); diff --git a/src/configuration.cpp b/src/configuration.cpp index d58002f7..55304048 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -128,11 +128,7 @@ bool configure(int argc, char **argv) # ifdef HAVE_FFTW3_H << " fftw" # endif - # ifdef USE_PDCURSES - << " pdcurses" - # else << " ncurses" - # endif # ifdef HAVE_TAGLIB_H << " taglib" # endif diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index eeb78f1c..fe1322c5 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -75,9 +75,7 @@ namespace std::cerr.rdbuf(cerr_buffer); errorlog.close(); Mpd.Disconnect(); -# ifndef USE_PDCURSES // destroying screen somehow crashes pdcurses NC::destroyScreen(); -# endif // USE_PDCURSES windowTitle(""); } } diff --git a/src/title.cpp b/src/title.cpp index f2bdc0c8..c2f16726 100644 --- a/src/title.cpp +++ b/src/title.cpp @@ -26,15 +26,11 @@ #include "title.h" #include "utility/wide_string.h" -#ifdef USE_PDCURSES -void windowTitle(const std::string &) { } -#else void windowTitle(const std::string &status) { if (strcmp(getenv("TERM"), "linux") && Config.set_window_title) std::cout << "\033]0;" << status << "\7" << std::flush; } -#endif // USE_PDCURSES void drawHeader() { diff --git a/src/window.cpp b/src/window.cpp index c787157f..e19519f7 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -672,30 +672,19 @@ bool Window::FDCallbacksListEmpty() const int Window::readKey() { int result; - // if there are characters in input queue, get them and - // return immediately. + // if there are characters in input queue, + // get them and return immediately. if (!m_input_queue.empty()) { result = m_input_queue.front(); m_input_queue.pop(); return result; } - // in pdcurses polling stdin doesn't work, so we can't poll - // both stdin and other file descriptors in one select. the - // workaround is to set the timeout of select to 0, poll - // other file descriptors and then wait for stdin input with - // the given timeout. unfortunately, this results in delays - // since ncmpcpp doesn't see that data arrived while waiting - // for input from stdin, but it seems there is no better option. fd_set fdset; FD_ZERO(&fdset); -# if !defined(USE_PDCURSES) FD_SET(STDIN_FILENO, &fdset); timeval timeout = { m_window_timeout/1000, (m_window_timeout%1000)*1000 }; -# else - timeval timeout = { 0, 0 }; -# endif int fd_max = STDIN_FILENO; for (FDCallbacks::const_iterator it = m_fds.begin(); it != m_fds.end(); ++it) @@ -707,19 +696,13 @@ int Window::readKey() if (select(fd_max+1, &fdset, 0, 0, m_window_timeout < 0 ? 0 : &timeout) > 0) { -# if !defined(USE_PDCURSES) result = FD_ISSET(STDIN_FILENO, &fdset) ? wgetch(m_window) : ERR; -# endif // !USE_PDCURSES for (FDCallbacks::const_iterator it = m_fds.begin(); it != m_fds.end(); ++it) if (FD_ISSET(it->first, &fdset)) it->second(); } -# if !defined(USE_PDCURSES) else result = ERR; -# else - result = wgetch(m_window); -# endif return result; } @@ -778,20 +761,7 @@ int Window::getY() bool Window::hasCoords(int &x, int &y) { -# ifndef USE_PDCURSES return wmouse_trafo(m_window, &y, &x, 0); -# else - // wmouse_trafo is broken in pdcurses, use our own implementation - size_t u_x = x, u_y = y; - if (u_x >= m_start_x && u_x < m_start_x+m_width - && u_y >= m_start_y && u_y < m_start_y+m_height) - { - x -= m_start_x; - y -= m_start_y; - return true; - } - return false; -# endif } bool Window::runPromptHook(const char *arg, bool *done) const diff --git a/src/window.h b/src/window.h index d6f8854a..07b294ba 100644 --- a/src/window.h +++ b/src/window.h @@ -23,10 +23,6 @@ #include "config.h" -#ifdef USE_PDCURSES -# define NCURSES_MOUSE_VERSION 1 -#endif - #include "curses.h" #include "gcc.h" @@ -94,12 +90,12 @@ #undef KEY_ENTER #define KEY_ENTER 13 -#if !defined(USE_PDCURSES) && NCURSES_MOUSE_VERSION == 1 +#if NCURSES_MOUSE_VERSION == 1 // NOTICE: define BUTTON5_PRESSED to be BUTTON2_PRESSED with additional mask // (I noticed that it sometimes returns 134217728 (2^27) instead of expected // mask, so the modified define does it right. # define BUTTON5_PRESSED (BUTTON2_PRESSED | (1U << 27)) -#endif // !defined(USE_PDCURSES) && NCURSES_MOUSE_VERSION == 1 +#endif // NCURSES_MOUSE_VERSION == 1 // undefine macros with colliding names #undef border |