screen_queue: fix CMD_LIST_MOVE_*
The code now tries to keep as much as possible of the selection being
moved visible.
The code now tries to keep as much as possible of the selection being
moved visible.
list_window: export scroll-after-cursor code
This moves the list_window_check_origin code into a new, more generic
function, which is exported.
This moves the list_window_check_origin code into a new, more generic
function, which is exported.
Revert "screen_queue: use list_window_move_cursor"
I hadn't quite understood what list_window_move_cursor does, and didn't
test the change.
This reverts commit aba25b543d7a34ce46964a7f22e495cdc3b57852.
I hadn't quite understood what list_window_move_cursor does, and didn't
test the change.
This reverts commit aba25b543d7a34ce46964a7f22e495cdc3b57852.
configure.ac: update comment "Check for glib-2.4"
main: avoid gcc warning for LOCALE && !NLS
Mark charset as G_GNUC_UNUSED if ncmpc hasn't been configured with NLS.
Mark charset as G_GNUC_UNUSED if ncmpc hasn't been configured with NLS.
doc/ncmpc.lirc: fix a typo ("ncmcp")
options: remove misleading MAX_LONGOPT_LENGTH
list_window: "if ( x)" -> "if (x)"
manpage: update the search-mode documentation
Merge remote branches 'jn/doc', 'jn/stuff' and 'jn/stuff1'
screen_queue: use list_window_move_cursor
It ensures the cursor stays visible.
It ensures the cursor stays visible.
list_window: document list_window_center
fix a typo ("connectiond")
plugin: fix plugin_callback_t documentation
screen_lyrics: clarify some code
list_window.h: "non-zero" -> "true", we use bool
command: use RET instead of 13 for '\r'
command: use KEY_CTL
And add the convenience macro C().
And add the convenience macro C().
command: add macro KEY_CTL()
I copied it from tig[1], which is licensed under the GPLv2+, so we
may use the code.
[1] http://jonas.nitro.dk/tig/
I copied it from tig[1], which is licensed under the GPLv2+, so we
may use the code.
[1] http://jonas.nitro.dk/tig/
command: white space cosmetics
Restore the old idention style of the key code macros, it was
destoyed by commit f81333d (code style, indent with tabs XI).
(That's a long time ago, I know.)
Restore the old idention style of the key code macros, it was
destoyed by commit f81333d (code style, indent with tabs XI).
(That's a long time ago, I know.)
screen_artist: document add_query (some more)
screen_artist: don't use artist directly in add_query
screen_artist: add_query: add a "const"
screen_search: make SEARCH_ARTIST_TITLE part of an enum
conf.c: unbreak two short lines, remove parentheses
increase connection timeout to 5 seconds
1.5 seconds was not long enough for some MPD operations. The
disadvantage is that the user may have to wait up to 5 seconds without
screen updates, because ncmpc doesn't do full asynchronous I/O yet.
1.5 seconds was not long enough for some MPD operations. The
disadvantage is that the user may have to wait up to 5 seconds without
screen updates, because ncmpc doesn't do full asynchronous I/O yet.
mpdclient: pass integer timeout to mpdclient_connect()
Use milliseconds instead of float seconds. Reduces overhead.
Use milliseconds instead of float seconds. Reduces overhead.
screen_lyrics: prevent a double free/use after free
And a memory leak.
And a memory leak.
implement the "lyrics-timeout" config option
screen_lyrics: optionally show the plugin used
This feature is disabled by default, because I guess that most users
won't want to use it.
This feature is disabled by default, because I guess that most users
won't want to use it.
plugin: pass the plugin name to the callback
lyricwiki: allow ampersands in artist/song names
options.c: use a for loop in options_parse
It just looks cleaner.
It just looks cleaner.
remove the rest of the splash screen
See http://musicpd.org/mantis/view.php?id=2981
See http://musicpd.org/mantis/view.php?id=2981
ncmpc.1: document the browser color options
See http://musicpd.org/mantis/view.php?id=2924
See http://musicpd.org/mantis/view.php?id=2924
Modify version string to post-release version 0.20~git
ncmpc version 0.19
po: fix format string in Polish translation
AUTHORS: add Jonathan Neuschäfer
po: add Polish translation
mpdclient: fix crash after "clear" command
mpdclient_cmd_clear() calls playlist_clear(), which leaves a freed
pointer in c->song. c->song is now cleared, too.
mpdclient_cmd_clear() calls playlist_clear(), which leaves a freed
pointer in c->song. c->song is now cleared, too.
workaround for libncurses macro warnings
screen_artist: fix variable name typo in assertion
add missing g_free in error path
cppcheck detected this little bug.
cppcheck detected this little bug.
po: update German translation
po: update Esperanto translation
po: update Chinese translation
po: update Galician translation
po: update Finnish translation
po: update Czech translation
po: regenerate ncmpc.pot
main: *settings_name: translate "unknown"
main: don't show (null) as the server name
With libmpdclient older than version 2.4.0, connection_settings_name()
will return g_strdup(options.host), but options.host can be NULL.
Return g_strdup("localhost") in that case, assuming localhost is
mpd_connection_new's "default host".
With libmpdclient older than version 2.4.0, connection_settings_name()
will return g_strdup(options.host), but options.host can be NULL.
Return g_strdup("localhost") in that case, assuming localhost is
mpd_connection_new's "default host".
use glib regex for list_window_jump.
Compile a single regex search string in list_window_jump instead of
using g_regex_match which compiles a new one each time.
Compile a single regex search string in list_window_jump instead of
using g_regex_match which compiles a new one each time.
main.c: fix compiler warning
src/main.c: In function ‘idle_callback’:
src/main.c:385:25: error: variable ‘connection’ set but not used [-Werror=unused-but-set-variable]
src/main.c: In function ‘idle_callback’:
src/main.c:385:25: error: variable ‘connection’ set but not used [-Werror=unused-but-set-variable]
screen_find.c: fix backspace bug
Use ncurses macros instead of magic numbers.
Use ncurses macros instead of magic numbers.
mpdclient.h: fix the spelling of "occurred"
13 years agofix malloc/free deadlock in signal handler by implementing a signaling pipe for sigco...
fix malloc/free deadlock in signal handler by implementing a signaling pipe for sigcont and sigwinch signal handlers
po: regenerate ncmpc.pot
Just line number changes.
Just line number changes.
po: 2 minor fixups for Russian
po: update Brazilian Portuguese translation
po: update Italian translation
po: update Galician translation
po: update French translation
po: update Spanish translation
po: update Esperanto translation
po: update German translation
po: update Czech translation
po: update Russian translation
main: show real server address in status message
Use the new mpd_settings object to determine the real server host
(libmpdclient 2.4).
Use the new mpd_settings object to determine the real server host
(libmpdclient 2.4).
configure.ac: require libmpdclient 2.2
We need a sane LIBMPDCLIENT_CHECK_VERSION macro.
We need a sane LIBMPDCLIENT_CHECK_VERSION macro.
Modify version string to post-release version 0.19~git
ncmpc version 0.18
po: regenerate ncmpc.pot
an i18n fix
screen_artist: respect artist when adding albums
po: update Brazilian Portuguese translation
po: update Hungarian translation
po: update Hebrew translation
doc: Updated manpage.
Added -m/-M options; fixed -S/--no-splash option.
As reported by Martin Hradil in Debian bug #589660.
Added -m/-M options; fixed -S/--no-splash option.
As reported by Martin Hradil in Debian bug #589660.
screen_song: show song range
screen_artist: tracks w/o album tag != all tracks
The `album' variable used to store a pointer to an empty string, which was
somewhere in memory, for the virtual album `All tracks', but this didn't allow
seeing all tracks without an album tag as one album.
Now, the address of the char array `ALL_TRACKS' is assigned to `album', when
`All Tracks' are viewed.
The `album' variable used to store a pointer to an empty string, which was
somewhere in memory, for the virtual album `All tracks', but this didn't allow
seeing all tracks without an album tag as one album.
Now, the address of the char array `ALL_TRACKS' is assigned to `album', when
`All Tracks' are viewed.
options.c: Read mpd host from environment if not specified.
This fixes the "Connecting to localhost" message if "MPD_HOST=mpd ncmpc" is used.
This fixes the "Connecting to localhost" message if "MPD_HOST=mpd ncmpc" is used.
lyrics/leoslyrics: don't print backtrace on HTTP failure
po: update German translation
po: update Norwegian Bokmal translation
screen_help: remove CMD_SCREEN_SONG if song screen is disabled
This fixes a NULL pointer dereference, caused by
get_key_names(CMD_SCREEN_SONG)==NULL.
This fixes a NULL pointer dereference, caused by
get_key_names(CMD_SCREEN_SONG)==NULL.
Makefile.am: add GLIB_LIBS to _LDADD
Adding GLIB_LIBS to _LDFLAGS instead of _LDADD lead to build error
when using -Wl,--as-needed.
Adding GLIB_LIBS to _LDFLAGS instead of _LDADD lead to build error
when using -Wl,--as-needed.
po: update Spanish translation
po: added Italian translation
po: update Galician translation
Modify version string to post-release version 0.18~git
ncmpc version 0.17
po: updated Swedish translation
po: updated Slovak translation
po: added Finnish translation
po: updated Czech translation
po: regenerate ncmpc.pot
20-lyricwiki.rb: recode recieved lyrics
The lyrics are recieved in Latin1, but UTF-8 is needed.
The lyrics are recieved in Latin1, but UTF-8 is needed.
screen_browser: check for error before adding song to playlist
The function enqueue_and_play() may cause an assertion failure,
because it evaluates the filelist_entry object after
mpdclient_get_connection() call. However, mpdclient_get_connection() may
indirectly invalidate the filelist_entry object, when it sees that the
connection has become invalid; it will return a NULL connection then.
This results in an assertion failure or a segmentation fault.
The function enqueue_and_play() may cause an assertion failure,
because it evaluates the filelist_entry object after
mpdclient_get_connection() call. However, mpdclient_get_connection() may
indirectly invalidate the filelist_entry object, when it sees that the
connection has become invalid; it will return a NULL connection then.
This results in an assertion failure or a segmentation fault.