Code

ncmpc.git
16 years agoscreen_browser: added struct screen_browser
Max Kellermann [Thu, 18 Sep 2008 21:35:11 +0000 (23:35 +0200)]
screen_browser: added struct screen_browser

We are going to separate the browser functions from screen_file.c.
Move all variables which are going to be needed by this code.

16 years agorenamed screen_browse.h to screen_browser.h
Max Kellermann [Thu, 18 Sep 2008 21:35:11 +0000 (23:35 +0200)]
renamed screen_browse.h to screen_browser.h

16 years agocode style, indent with tabs VI
Max Kellermann [Thu, 18 Sep 2008 21:35:10 +0000 (23:35 +0200)]
code style, indent with tabs VI

Follow the same code style als MPD itself.

16 years agoadded support for wide characters
Max Kellermann [Thu, 18 Sep 2008 11:18:16 +0000 (13:18 +0200)]
added support for wide characters

This patch was taken from bug 476, author unknown
(http://www.musicpd.org/mantis/view.php?id=476).  It changes the
definition of my_strlen(): instead of returning the number of UTF-8
characters, it counts the number of terminal cells occupied by a
string.

16 years agocode style, indent with tabs V
Max Kellermann [Thu, 18 Sep 2008 10:53:35 +0000 (12:53 +0200)]
code style, indent with tabs V

Follow the same code style als MPD itself.

16 years agoscreen: don't handle CMD_PLAY
Max Kellermann [Thu, 18 Sep 2008 10:32:09 +0000 (12:32 +0200)]
screen: don't handle CMD_PLAY

CMD_PLAY is mapped to the Enter key by default.  Some screens
(mis-)use it for navigation, for entering a directory.  The playlist
screen actually plays the file under the cursor.  On all other
screens, pressing Enter may be confusing, since it is more of a
"confirmation" key instead of "play".  We should probaby add
CMD_CONFIRM later, but for now, disable the general CMD_PLAY handler
in screen.c.  This fixes bug 240.

16 years agolibmpdclient: added resolver library
Max Kellermann [Thu, 18 Sep 2008 09:17:17 +0000 (11:17 +0200)]
libmpdclient: added resolver library

The resolver library provides unified access to all resolvers
(getaddrinfo(), gethostbyname(), Unix domain sockets).  Like
getaddrinfo(), it can return more than one address for a host name.
This fixes bug 1517 (http://www.musicpd.org/mantis/view.php?id=1517).

16 years agoquit with g_main_loop_quit()
Max Kellermann [Thu, 18 Sep 2008 07:44:01 +0000 (09:44 +0200)]
quit with g_main_loop_quit()

Call g_main_loop_quit() on CMD_QUIT, instead of exit() with an
atexit() handler.

16 years agoplaylist: reset id in playlist_clear()
Max Kellermann [Wed, 17 Sep 2008 23:57:34 +0000 (01:57 +0200)]
playlist: reset id in playlist_clear()

The playlist is reset when the connection to the MPD server is
closed.  After a successful reconnect, we have to reload the full
playlist.  To remember this, also reset the id attribute.

16 years agoplaylist: removed "updated" flag
Max Kellermann [Wed, 17 Sep 2008 23:55:45 +0000 (01:55 +0200)]
playlist: removed "updated" flag

The caller may check the playlist.id instead of checking the old
"updated" flag.

16 years agouse the glib main event loop
Max Kellermann [Wed, 17 Sep 2008 23:49:53 +0000 (01:49 +0200)]
use the glib main event loop

This big patch replaces our custom main loop with the event based glib
main loop.  This has several advantages: we can make all the tiny code
bits in the main loop independent from each others, we can add
additional file descriptors for polling (e.g. the mpdclient socket).

We don't need the ncurses timeout() anymore, because glib will poll
stdin for us.

16 years agoscreen: check MPD status only if connected
Max Kellermann [Wed, 17 Sep 2008 23:15:20 +0000 (01:15 +0200)]
screen: check MPD status only if connected

Fix several segmentation faults: when the connection to the MPD server
is lost, there were NULL pointer dereferences because
client->status==NULL.  Check before accessing it.

16 years agoscreen: moved code to screen_client_cmd()
Max Kellermann [Wed, 17 Sep 2008 23:14:00 +0000 (01:14 +0200)]
screen: moved code to screen_client_cmd()

Move all command handlers which need a connection to the MPD server to
screen_client_cmd().  This will allow us to unify error handling
later.

16 years agomain: connect while UI is displayed
Max Kellermann [Wed, 17 Sep 2008 23:13:02 +0000 (01:13 +0200)]
main: connect while UI is displayed

Display the UI always, and show connection errors there.  This fixes a
lot of consistency problems: error messages used to be printed to
stderr, but afterwards, the atexit() handlers deinitialized ncurses
and the screen was cleared.  This patch is still problematic, but
constitutes a good step forward.

16 years agolibmpdclient: moved code to mpd_recv(), mpd_wait()
Max Kellermann [Wed, 17 Sep 2008 23:10:40 +0000 (01:10 +0200)]
libmpdclient: moved code to mpd_recv(), mpd_wait()

Create generic utility functions for doint I/O: two wait functions,
and mpd_recv() fills the input buffer.  These functions are used in
mpd_newConnection() and mpd_getNextReturnElement().

16 years agolibmpdclient: smaller input buffer
Max Kellermann [Wed, 17 Sep 2008 23:07:16 +0000 (01:07 +0200)]
libmpdclient: smaller input buffer

Even for large responses, 16kB should be enough.  There is no
performance gain for larger buffers, even if MPD is local.

16 years agolibmpdclient: smaller error buffer
Max Kellermann [Wed, 17 Sep 2008 23:05:16 +0000 (01:05 +0200)]
libmpdclient: smaller error buffer

512 characters should be well enough for error messages which are
actually being displayed somewhere.  Use sizeof(errorStr) instead of
MPD_BUFFER_MAX_LENGTH everywhere.  Do proper length checking when
copying the output buffer to errorStr.

16 years agolibmpdclient: use memmove() instead of strcpy() for moving the buffer
Max Kellermann [Wed, 17 Sep 2008 23:05:14 +0000 (01:05 +0200)]
libmpdclient: use memmove() instead of strcpy() for moving the buffer

In general, don't treat the input buffer as a null-terminated string:
don't append '\0', don't use strchr() and strtok().  To delete
consumed portions of the buffer, strcpy() is bad anyway, because it
does not allow overlapping buffers.

16 years agolibmpdclient: don't strdup() MPD's welcome message
Max Kellermann [Wed, 17 Sep 2008 23:00:12 +0000 (01:00 +0200)]
libmpdclient: don't strdup() MPD's welcome message

Why bother duplicating the buffer, when we can simply parse the
response directly from the input buffer?

16 years agolibmpdclient: use size_t and ssize_t
Max Kellermann [Wed, 17 Sep 2008 22:59:40 +0000 (00:59 +0200)]
libmpdclient: use size_t and ssize_t

When working with buffer lengths and recv() results, we should declare
size_t and ssize_t variables, otherwise the code may fail on 64 bit
machines.

16 years agoscreen: removed empty methods
Max Kellermann [Wed, 17 Sep 2008 22:58:40 +0000 (00:58 +0200)]
screen: removed empty methods

Declaring empty methods is of no use.  If a method is empty, we should
set it to NULL in the screen_functions struct.

16 years agoscreen: removed NULL check
Max Kellermann [Wed, 17 Sep 2008 22:57:50 +0000 (00:57 +0200)]
screen: removed NULL check

Since the screen's initialization is guaranteed, we can remove the
NULL check in center_playing_item().

16 years agoscreen_artist: fix compilation errors
Max Kellermann [Wed, 17 Sep 2008 19:09:21 +0000 (21:09 +0200)]
screen_artist: fix compilation errors

Unfortunately when I fixed the GCC warnings and refactored lots of the
code, the "artist" screen was disabled.  This patch applies all API
changes and fixes all warnings.

16 years agocode style, indent with tabs IV
Max Kellermann [Wed, 17 Sep 2008 19:08:06 +0000 (21:08 +0200)]
code style, indent with tabs IV

Follow the same code style als MPD itself.

16 years agobrowse: when deselecting, don't search twice
Max Kellermann [Wed, 17 Sep 2008 10:29:24 +0000 (12:29 +0200)]
browse: when deselecting, don't search twice

When deselecting a song in the file browser, the local variable "idx"
was initialized and overwritten.  Remove the initialization.

16 years agoplaylist: added playlist_remove_reuse()
Max Kellermann [Wed, 17 Sep 2008 10:29:15 +0000 (12:29 +0200)]
playlist: added playlist_remove_reuse()

playlist_remove_reuse() removes a song from the playlist, but does not
free it.

Use this function in mpdclient_cmd_delete() to fix a segmentation
fault: the song pointer was still used after it was freed, by passing
it to mpdclient_playlist_callback().  Free the song manually now.
Reorganize and simply some code in mpdclient_cmd_delete().

16 years agomake several functions return void
Max Kellermann [Wed, 17 Sep 2008 10:29:07 +0000 (12:29 +0200)]
make several functions return void

16 years agoplaylist: use playlist_get() instead of playlist_get_song()
Max Kellermann [Wed, 17 Sep 2008 10:29:06 +0000 (12:29 +0200)]
playlist: use playlist_get() instead of playlist_get_song()

16 years agolist_window: don't reset *highlight to 0
Max Kellermann [Wed, 17 Sep 2008 10:25:52 +0000 (12:25 +0200)]
list_window: don't reset *highlight to 0

Since the list_window code sets highlight to 0 before it calls the
list_callback, the callback itself doesn't have to reset the flag.

16 years agolyrics: don't check current.lines==NULL
Max Kellermann [Wed, 17 Sep 2008 10:25:48 +0000 (12:25 +0200)]
lyrics: don't check current.lines==NULL

current.lines is always initialized, and cannot be NULL, no need to
check it.

16 years agohelp: return early from list_callback()
Max Kellermann [Wed, 17 Sep 2008 10:25:41 +0000 (12:25 +0200)]
help: return early from list_callback()

16 years agohelp: converted help_text_rows to a macro
Max Kellermann [Wed, 17 Sep 2008 10:25:40 +0000 (12:25 +0200)]
help: converted help_text_rows to a macro

Why bother counting the elements of help_text[] (with sentinel) at
runtime, when the compiler can do it at compile time?

16 years agolyrics: removed lyrics_text_rows, use current.lines->len instead
Max Kellermann [Wed, 17 Sep 2008 10:24:56 +0000 (12:24 +0200)]
lyrics: removed lyrics_text_rows, use current.lines->len instead

lyrics_text_rows wasn't set anyway, I somehow removed the code in a
patch some time ago.

16 years agolist_window: added list_window_center()
Max Kellermann [Wed, 17 Sep 2008 10:20:42 +0000 (12:20 +0200)]
list_window: added list_window_center()

Merge code which used to be duplicated in the screens "play", "help",
"lyrics".

16 years agolist_window: added list_window_scroll_cmd()
Max Kellermann [Wed, 17 Sep 2008 10:18:00 +0000 (12:18 +0200)]
list_window: added list_window_scroll_cmd()

It is similar to list_window_cmd(), but it scrolls the window instead
of moving the selection.  It is used by the "lyrics" and the "help"
screen.

16 years agolist_window: set repaint at the end of list_window_cmd()
Max Kellermann [Wed, 17 Sep 2008 10:08:09 +0000 (12:08 +0200)]
list_window: set repaint at the end of list_window_cmd()

16 years agoscreen: return early in switch_screen_mode() on error
Max Kellermann [Wed, 17 Sep 2008 10:08:06 +0000 (12:08 +0200)]
screen: return early in switch_screen_mode() on error

When the selected screen does not exist, return before calling
close().

16 years agoscreen: added macro NUM_SCREENS
Max Kellermann [Wed, 17 Sep 2008 10:08:03 +0000 (12:08 +0200)]
screen: added macro NUM_SCREENS

Since the number of screens is known at compile time, define a macro
which calculates this, instead of having a sentinel element.

16 years agoscreen: close only current screen in screen_exit()
Max Kellermann [Wed, 17 Sep 2008 10:07:32 +0000 (12:07 +0200)]
screen: close only current screen in screen_exit()

Screens which are not active have already been closed, or have never
been opened.  Don't call close again on them.

16 years agoscreen: don't store "screen" as a pointer
Max Kellermann [Wed, 17 Sep 2008 10:07:02 +0000 (12:07 +0200)]
screen: don't store "screen" as a pointer

There can only be onle screen struct instance at a time.  Declare it
as a static struct, instead of a pointer to the struct.  This
simplifies all accesses, and avoids the dynamic allocation.

16 years agoscreen: moved code to find_configured_screen()
Max Kellermann [Wed, 17 Sep 2008 10:06:14 +0000 (12:06 +0200)]
screen: moved code to find_configured_screen()

16 years agoscreen: mode_fn cannot be NULL, removed checks
Max Kellermann [Wed, 17 Sep 2008 10:06:11 +0000 (12:06 +0200)]
screen: mode_fn cannot be NULL, removed checks

At startup, mode_fn is initialized with &screen_playlist, and it will
never be reset to NULL.  Remove all checks.

16 years agoscreen: before calling update(), check if it is defined
Max Kellermann [Wed, 17 Sep 2008 10:06:05 +0000 (12:06 +0200)]
screen: before calling update(), check if it is defined

That seems to be a fn->paint was checked, then the code called
fn->update().  Fix this.

16 years agoscreen: removed screen_functions.get_lw()
Max Kellermann [Wed, 17 Sep 2008 10:06:04 +0000 (12:06 +0200)]
screen: removed screen_functions.get_lw()

If it is really important to set the curser, we should think of a
better way, instead of exporting one non-generic method.  For now,
just set the cursor to the origin.

16 years agoreplaced get_screen_X() with static screen_functions variable
Max Kellermann [Wed, 17 Sep 2008 10:05:02 +0000 (12:05 +0200)]
replaced get_screen_X() with static screen_functions variable

Compile time initialization saves resources, compared to run-time
initialization.  Declare all screen_function structs as global
variables, and remove all get functions.

16 years agocode style, indent with tabs III
Max Kellermann [Wed, 17 Sep 2008 10:03:43 +0000 (12:03 +0200)]
code style, indent with tabs III

Follow the same code style als MPD itself.

16 years agompdclient: call playlist_clear() in mpdclient_playlist_update()
Max Kellermann [Wed, 17 Sep 2008 05:21:30 +0000 (07:21 +0200)]
mpdclient: call playlist_clear() in mpdclient_playlist_update()

Instead of freeing the playlist with mpdclient_playlist_free(), call
playlist_clear() to empty the song list.  This fixes a segmentation
fault which occured when you cleared the playlist.

16 years agoinitial draw without delay
Max Kellermann [Tue, 16 Sep 2008 17:44:37 +0000 (19:44 +0200)]
initial draw without delay

Due to a missing refresh() call, ncmpc painted the screen after one
second.  Add refresh(), make ncmpc display immediately.

16 years agoscreen: added struct names
Max Kellermann [Tue, 16 Sep 2008 17:11:40 +0000 (19:11 +0200)]
screen: added struct names

Let us declare struct names in addition to typedef names, so we can
forward-declare them.

16 years agouse a C99 compiler
Max Kellermann [Tue, 16 Sep 2008 17:11:40 +0000 (19:11 +0200)]
use a C99 compiler

16 years agolyrics: converted in-process plugins to external programs
Max Kellermann [Tue, 16 Sep 2008 17:11:40 +0000 (19:11 +0200)]
lyrics: converted in-process plugins to external programs

In-process plugins are very problematic.  It is much easier and
flexible to move the lyrics plugins to external programs, with a
trivial protocol.  This is work in progress, among the things missing:

 - protocol specification, including exit codes
 - plugin installation
 - plugin search directory
 - run-time configuration (currently hard coded)
 - automatic polling (using glib's main loop?)
 - better and more robust error handling

16 years agouse GPtrArray instead of GArray for playlist songs
Max Kellermann [Tue, 16 Sep 2008 17:11:40 +0000 (19:11 +0200)]
use GPtrArray instead of GArray for playlist songs

16 years agoplaylist: hide direct accesses in inline functions
Max Kellermann [Tue, 16 Sep 2008 17:11:39 +0000 (19:11 +0200)]
playlist: hide direct accesses in inline functions

Added functions like playlist_length(), playlist_get(),
playlist_replace(), playlist_remove().  Don't access the
mpdclient_playlist struct directly.

16 years agompdclient: added mpdclient_playlist_init(), mpdclient_playlist_clear()
Max Kellermann [Tue, 16 Sep 2008 17:11:39 +0000 (19:11 +0200)]
mpdclient: added mpdclient_playlist_init(), mpdclient_playlist_clear()

Moved code from mpdclient_new() and mpdclient_playlist_free().  In
mpdclient_disconnect(), call mpdclient_playlist_clear() instead of
mpdclient_playlist_free() (which is now called in mpdclient_free()).

16 years agompdclient: moved code to playlist.c
Max Kellermann [Tue, 16 Sep 2008 17:11:39 +0000 (19:11 +0200)]
mpdclient: moved code to playlist.c

Move everything which manipulates the mpdclient_playlist struct to
playlist.c.  Many of the functions get a mpdclient pointer instead of
a playlist; this will be changed later.

The functions mpdclient_playlist_update() and
mpdclient_playlist_update_changes() stay in mpdclient.c for now, since
they are tightly connected to the client code.

16 years agosong: allocate mpd_song from glib slices
Max Kellermann [Tue, 16 Sep 2008 17:11:39 +0000 (19:11 +0200)]
song: allocate mpd_song from glib slices

Since we compile ncmpc with glib, we can use its slice allocator for
efficient song allocation.  I have added a way to disable this with a
macro.

16 years agosong: use struct mpd_song
Max Kellermann [Tue, 16 Sep 2008 17:11:39 +0000 (19:11 +0200)]
song: use struct mpd_song

Use a forward declared struct mpd_song instead of the typedef
mpd_Song.

16 years agolibmpdclient: moved code to song.c
Max Kellermann [Tue, 16 Sep 2008 17:11:39 +0000 (19:11 +0200)]
libmpdclient: moved code to song.c

Move everything which manipulates the mpd_Song struct to song.c.
Thousands of lines of too much for libmpdclient.c!

16 years agompdclient: add struct names, for forward declarations
Max Kellermann [Tue, 16 Sep 2008 17:11:39 +0000 (19:11 +0200)]
mpdclient: add struct names, for forward declarations

To relax the include dependencies, give all structs real names, in
addition to the typedef names.  This way, other headers can
forward-declare them, and do not need to include mpdclient.h.  In the
future, the typedefs will be removed.

16 years agolibmpdclient: const pointers
Max Kellermann [Tue, 16 Sep 2008 17:11:39 +0000 (19:11 +0200)]
libmpdclient: const pointers

Pass const pointers whenever possible.

16 years agocode style, indent with tabs II
Max Kellermann [Tue, 16 Sep 2008 17:11:36 +0000 (19:11 +0200)]
code style, indent with tabs II

Follow the same code style als MPD itself.

16 years agolist_window: update variables without looping
Max Kellermann [Tue, 16 Sep 2008 16:52:55 +0000 (18:52 +0200)]
list_window: update variables without looping

Apparently, somebody was too lazy to derive the formulas for cursor
movement, and wrote lots of while loops.

16 years agoinclude cleanup
Max Kellermann [Tue, 16 Sep 2008 16:52:55 +0000 (18:52 +0200)]
include cleanup

Include only headers which are really used.

16 years agodon't use libncursesw if libncurses was selected
Max Kellermann [Tue, 16 Sep 2008 16:52:54 +0000 (18:52 +0200)]
don't use libncursesw if libncurses was selected

No idea what this code was intended for, but if the user chooses
libncurses, ncmpc shouldn't override this manual choice if it finds
libncursesw.

16 years agoadded myself to AUTHORS
Max Kellermann [Tue, 16 Sep 2008 16:52:54 +0000 (18:52 +0200)]
added myself to AUTHORS

16 years agoset version to 0.12~git
Max Kellermann [Tue, 16 Sep 2008 16:52:54 +0000 (18:52 +0200)]
set version to 0.12~git

We are on git now, and since we are doing major changes, increase the
version number.

16 years agoeasy_download: fixed the type of write_data()
Max Kellermann [Mon, 15 Sep 2008 11:27:33 +0000 (13:27 +0200)]
easy_download: fixed the type of write_data()

Fix the type of write_data() to fit curl_write_callback.

16 years agouse GArray for playlist instead of GList
Max Kellermann [Mon, 15 Sep 2008 11:27:33 +0000 (13:27 +0200)]
use GArray for playlist instead of GList

Using a doubly linked list for the local playlist copy is a huge waste
of both memory and CPU cycles.  Use GArray instead of GList, which is
much faster in this case.

16 years agofree info entity while iterating
Max Kellermann [Mon, 15 Sep 2008 11:27:33 +0000 (13:27 +0200)]
free info entity while iterating

Memory leak: the function mpdclient_playlist_update_changes() did not
free the entity which was returned by mpd_getNextInfoEntity().  Add a
mpd_freeInfoEntity() call at the end of each iteration.

16 years agomanage tag string allocations in a pool
Max Kellermann [Mon, 15 Sep 2008 11:27:33 +0000 (13:27 +0200)]
manage tag string allocations in a pool

There are many duplicated strings in the tag database, e.g. many songs
having the same artist.  Don't allocate such strings twice, manage all
strings in a pool.

16 years agoadded support for unix domain sockets
Max Kellermann [Mon, 15 Sep 2008 11:27:33 +0000 (13:27 +0200)]
added support for unix domain sockets

If a host name starts with a slash, it is assumed to be a unix domain
socket path.  The port is ignored.  This code is disabled on WIN32,
until someone tests it.

16 years agolyrics: missing "break"
Max Kellermann [Mon, 15 Sep 2008 11:27:33 +0000 (13:27 +0200)]
lyrics: missing "break"

If get_text_line() fails, we should break from the loop.

16 years agolyrics: converted global variables to static
Max Kellermann [Mon, 15 Sep 2008 11:27:32 +0000 (13:27 +0200)]
lyrics: converted global variables to static

The variables "lyrics_text_rows" and "lw" were declared in
src_lyrics.h as static, but they were only actually used in
screen_lyrics.c.  Move both there.

16 years agofix unused parameter warnings
Max Kellermann [Mon, 15 Sep 2008 11:27:32 +0000 (13:27 +0200)]
fix unused parameter warnings

Add the "unused" attribute to all function parameters which are indeed
going to be ignored.

16 years agoimported gcc.h from mpd
Max Kellermann [Mon, 15 Sep 2008 11:27:32 +0000 (13:27 +0200)]
imported gcc.h from mpd

gcc.h contains a useful set of macros for setting attributes.

16 years agodon't declare local variable "options"
Max Kellermann [Mon, 15 Sep 2008 11:27:32 +0000 (13:27 +0200)]
don't declare local variable "options"

In main.c, the global variable "options" is used all over, except in
main(), which contains a shadowing declaration of it.  Remove this
local variable, and use the global "options" instead.  Also don't
pollute conf.c's namespace with the global variable with a CPP hack
(to be removed when we have fixed more of ncmpc's namespace
pollution).

16 years agouse size_t and unsigned integers
Max Kellermann [Mon, 15 Sep 2008 11:27:30 +0000 (13:27 +0200)]
use size_t and unsigned integers

16 years agofixed mixed declaration + code
Max Kellermann [Mon, 15 Sep 2008 10:27:29 +0000 (12:27 +0200)]
fixed mixed declaration + code

Although they are allowedd in C99, try to avoid them.  Move variable
declarations to the top of the current scope.

16 years agofix shadow warnings
Max Kellermann [Mon, 15 Sep 2008 10:27:29 +0000 (12:27 +0200)]
fix shadow warnings

Rename local variables and function parameters, so they don't shadow
global variables.

16 years agoinclude cleanup
Max Kellermann [Mon, 15 Sep 2008 10:27:29 +0000 (12:27 +0200)]
include cleanup

A header should include all headers which he needs.  Move local
includes on top, and let foo.c include foo.h in the first line, to
automatically test its dependencies.

16 years agoscreen_auth() returns result
Max Kellermann [Mon, 15 Sep 2008 10:27:29 +0000 (12:27 +0200)]
screen_auth() returns result

screen_auth() returns an int, and its result is actually being used.
Only the "return" was missing in its implementation.  Return
_screen_auth()'s result.

16 years agofix function prototypes
Max Kellermann [Mon, 15 Sep 2008 10:27:29 +0000 (12:27 +0200)]
fix function prototypes

Add missing prototypes, and fix wrong prototypes.  Convert lots of
functions to "static" when they are only used within the current
source file.

16 years agoconst pointers
Max Kellermann [Mon, 15 Sep 2008 10:27:28 +0000 (12:27 +0200)]
const pointers

Convert pointers to const whenever it is possible.  Fixes all those
-Wconst warnings.

16 years agoclock: don't initialize static variables with zero
Max Kellermann [Mon, 15 Sep 2008 10:27:28 +0000 (12:27 +0200)]
clock: don't initialize static variables with zero

Uninitialized static variables are put into BSS, which is
automatically zeroed.  Initializing doesn't hurt, but in this case,
there were elements missing, emitting a gcc warning.

16 years agoscreen: moved code to paint_top_window2()
Max Kellermann [Mon, 15 Sep 2008 10:27:28 +0000 (12:27 +0200)]
screen: moved code to paint_top_window2()

Nearly all of the code in paint_top_window() is on indent level 2,
just because it depends on a condition.  Make this more readable and
move to indent level 1 by moving this code to a separate function.

16 years agouse !NDEBUG instead of DEBUG
Max Kellermann [Mon, 15 Sep 2008 10:27:28 +0000 (12:27 +0200)]
use !NDEBUG instead of DEBUG

NDEBUG is more commonly used than DEBUG, e.g. in assert.h.  Convert
all macros to NDEBUG, and declare NDEBUG when debugging is disabled.

16 years agoenable gcc warnings
Max Kellermann [Mon, 15 Sep 2008 10:27:28 +0000 (12:27 +0200)]
enable gcc warnings

Enable all useful warnings which were also enabled in MPD.  Steal
m4/mpd_check_cflag.m4 from MPD.

16 years agoconfigure: updated m4/*.m4
Max Kellermann [Mon, 15 Sep 2008 10:27:28 +0000 (12:27 +0200)]
configure: updated m4/*.m4

Copied m4 files from /usr/share/aclocal (Debian Lenny).

16 years agocode style, indent with tabs
Max Kellermann [Mon, 15 Sep 2008 10:27:26 +0000 (12:27 +0200)]
code style, indent with tabs

Follow the same code style als MPD itself.  This patch only fixes
parts of the code which are going to be touched in the following bunch
of patches, i.e. there will be more "code style" patches in the
future.

16 years agoremove unused static functions
Max Kellermann [Mon, 15 Sep 2008 10:09:29 +0000 (12:09 +0200)]
remove unused static functions

Also remove some commented code and unused function parameters.

16 years agosplash: removed the useless splash screen
Max Kellermann [Mon, 15 Sep 2008 07:23:49 +0000 (09:23 +0200)]
splash: removed the useless splash screen

The code looks strange and spews lots of warnings.  Since it does
nothing useful, and wastes the user's precious time, simply remove it.

16 years agoimprove escaping of URLs
Andreas Obergrusberger [Fri, 18 Jan 2008 13:53:06 +0000 (13:53 +0000)]
improve escaping of URLs

git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@7141 09075e82-0dd4-0310-85a5-a0d7c8717e4f

16 years agomixed up the files, sorry
Andreas Obergrusberger [Mon, 7 Jan 2008 18:34:24 +0000 (18:34 +0000)]
mixed up the files, sorry

git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@7140 09075e82-0dd4-0310-85a5-a0d7c8717e4f

16 years agoslovak translation updated
Andreas Obergrusberger [Mon, 7 Jan 2008 18:32:03 +0000 (18:32 +0000)]
slovak translation updated

git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@7139 09075e82-0dd4-0310-85a5-a0d7c8717e4f

16 years agoadded Slovak translation
Andreas Obergrusberger [Sun, 6 Jan 2008 09:54:55 +0000 (09:54 +0000)]
added Slovak translation

git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@7136 09075e82-0dd4-0310-85a5-a0d7c8717e4f

17 years agomake item highlighiting more appropriate
Andreas Obergrusberger [Fri, 30 Nov 2007 16:18:13 +0000 (16:18 +0000)]
make item highlighiting more appropriate

git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@7062 09075e82-0dd4-0310-85a5-a0d7c8717e4f

17 years agocmd_select_all added
Andreas Obergrusberger [Fri, 30 Nov 2007 16:09:30 +0000 (16:09 +0000)]
cmd_select_all added

git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@7061 09075e82-0dd4-0310-85a5-a0d7c8717e4f

17 years agofixed 0001496
Andreas Obergrusberger [Sun, 26 Aug 2007 19:28:30 +0000 (19:28 +0000)]
fixed 0001496

git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@6817 09075e82-0dd4-0310-85a5-a0d7c8717e4f

17 years agoRemoved nested functions
Andreas Obergrusberger [Sun, 26 Aug 2007 09:05:17 +0000 (09:05 +0000)]
Removed nested functions

git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@6811 09075e82-0dd4-0310-85a5-a0d7c8717e4f

17 years ago2 critical bugs in leoslyrics lyrics src fixed
Andreas Obergrusberger [Sun, 17 Jun 2007 12:19:39 +0000 (12:19 +0000)]
2 critical bugs in leoslyrics lyrics src fixed

git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@6630 09075e82-0dd4-0310-85a5-a0d7c8717e4f