aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* screen_song: free the song pointerMax Kellermann2008-11-191-0/+5
| | | | Fix a memory leak.
* screen_lyrics: support CMD_VIEWMax Kellermann2008-11-191-0/+10
| | | | Jump to the song viewer screen.
* screen_song: include cleanupMax Kellermann2008-11-191-5/+0
|
* screen_song: check CMD_VIEW only if song screen is enabledMax Kellermann2008-11-193-0/+6
|
* screen_song: new screen which views song informationMax Kellermann2008-11-188-0/+225
| | | | | This new screen views all information available on a song: its location, file name, and tags.
* libmpdclient: converted MPD_ERROR_ constants to enumMax Kellermann2008-11-181-11/+35
|
* libmpdclient: convert MPD_ACK_ constants to enumMax Kellermann2008-11-181-14/+17
|
* command: change 'locate' default hotkey to 'G'Max Kellermann2008-11-181-1/+1
| | | | Use the same hotkey as ncmpcpp.
* screen_browser: always declare variable "entry"Max Kellermann2008-11-181-2/+0
| | | | | The local variable "entry" was only declared when lyrics were enabled, but it is now used by CMD_LOCATE, too.
* screen: method cmd() returns boolMax Kellermann2008-11-188-54/+54
| | | | Return true/false instead of 1/0.
* ncu: include config.h, fix mouse and color supportMax Kellermann2008-11-181-0/+1
| | | | | Due to config.h not being included, mouse and color support was always disabled.
* command: added CMD_LOCATE to locate song in databaseMax Kellermann2008-11-188-0/+80
| | | | | Pressing 'l' switches to the file browser (screen_file) and locates the previously selected song in the server's database.
* screen_lyrics: duplicate current songMax Kellermann2008-11-181-4/+9
| | | | | | Don't store a pointer to the song passed to screen_lyrics_switch(), duplicate it instead. In the long term, it is too unsafe to work with a foreign pointer.
* screen_{file,artist,search}: repaint only if screen is visibleMax Kellermann2008-11-183-3/+6
| | | | | Don't repaint the screen after browser_cmd() if another screen has been selected meanwhile.
* filelist: filelist_find_song() returns position instead of pointerMax Kellermann2008-11-183-6/+8
| | | | | | Making the function return the index makes it more flexible: those who want the pointer can use filelist_get(), and the others may use the index for other purposes.
* screen_browser: eliminated local variable "entity"Max Kellermann2008-11-181-2/+0
| | | | "entity" is not being used after its initial assignment.
* screen_browser: check if filelist is setMax Kellermann2008-11-181-3/+8
| | | | | | | When calling browser_change_directory() before a filelist was set, ncmpc would crash due to a NULL pointer dereference. This scenario is not possible currently, since the open() method allocates the filelist.
* screen_browser: use bool for return valuesMax Kellermann2008-11-182-23/+23
| | | | Return true/false instead of 0/-1.
* screen_lyrics: added gettext markersMax Kellermann2008-11-181-6/+9
|
* Makefile.am: added screen_play.h to $(ncmpc_headers)Max Kellermann2008-11-171-0/+1
| | | | screen_play.h was missing in the tarball.
* screen_utils: check for NULL passwordMax Kellermann2008-11-171-1/+10
| | | | | | | Fix a NULL pointer dereference and a memory leak: check if screen_read_password() returns NULL, and don't call mpd_sendPasswordCommand(NULL) in this case. Free the password when done.
* lirc: refactored event handlerThomas Jansen2008-11-104-57/+55
| | | | | | | * moved lirc_event to lirc.c and split out the parts that depend on variables in main.c into three separate functions * changed keyboard_event accordingly to avoid duplicate code * merged lirc_event with ncmpc_lirc_get_command
* mpdclient: use g_utf8_collate()Max Kellermann2008-11-071-8/+3
| | | | | Use one g_utf8_collate() call instead of g_utf8_collate_key() twice plus strcmp().
* wreadln: return NULL instead of empty stringMax Kellermann2008-11-074-8/+6
| | | | | | No wreadln() caller cares about an empty string. Simplify the callers by returning NULL instead of an allocated empty string. This fixes several memory leaks.
* mpdclient: removed _utf8 suffix from function namesMax Kellermann2008-11-076-13/+13
| | | | | All functions must receive UTF-8 file names. Delete all which still work with locale strings, and remove the _utf8 suffix from the others.
* mpdclient: expect UTF-8 stringsMax Kellermann2008-11-078-99/+65
| | | | | | Don't convert the character set of strings to and from the current locale. This library cannot know what the strings are going to be used for, so it should not mess with them.
* screen_search: fixed 2 memory leaksMax Kellermann2008-11-071-0/+6
| | | | | Free the old pattern before prompting for a new one. Free the old filelist object before retrieving the new one.
* screen_play: free the wreadln() return valueMax Kellermann2008-11-071-0/+1
|
* screen_browser: free g_path_get_dirname() return valueMax Kellermann2008-11-071-0/+1
| | | | | The function browser_change_directory() did not free the return value of g_path_get_dirname().
* screen_file: optimized title formulaMax Kellermann2008-11-071-12/+10
| | | | Don't allocate and copy memory.
* main: optimized error_msg()Max Kellermann2008-11-071-1/+2
| | | | The pointer has already been checked for NULL, eliminate that check.
* Makefile.am: added custom rule with -fwhole-programMax Kellermann2008-11-071-0/+6
| | | | | | | To make the ncmpc binary even smaller, you can compile all sources at once with "--combine -fwhole-program". Unfortunately, automake does not support this mode. For further experiments, this patch adds a custom rule which creates the binary named "ncmpc-tiny" this way.
* configure.ac, Makefile.am: removed subversion keywordsMax Kellermann2008-11-071-4/+0
| | | | Removed $Id$.
* disable more features with --enable-miniMax Kellermann2008-11-0716-13/+151
| | | | | | | | | | | | | | Disable lots of smaller features which don't have a separate configure option: - xterm title - screen list - horizontal scrolling - MPD version number check - key binding checks - character set conversion - bitrate display - highlighting in the file browser - completion / history
* command.h: include config.hMax Kellermann2008-11-071-0/+2
| | | | | The source command.h checks for configure.ac options, so it needs to include config.h.
* charset: don't allocate GErrorMax Kellermann2008-11-071-12/+4
| | | | | Since the GError return value of g_convert_*() is ignored by ncmpc, we don't need to retrieve it at all.
* options: don't store disabled optionsMax Kellermann2008-11-075-0/+23
| | | | | Options which are disabled at compile time shouldn't reserve space for their values in the options struct.
* options: static initialization if possibleMax Kellermann2008-11-071-11/+11
| | | | Initialize the options struct statically.
* options: removed deprecated optionsMax Kellermann2008-11-072-8/+1
| | | | "reconnect" is always enabled. "debug" code has been removed.
* configure.ac: added --disable-help-screenMax Kellermann2008-11-073-1/+8
|
* configure.ac: added LIRC configure switchMax Kellermann2008-11-071-1/+3
| | | | Detect liblircclient with pkg-config.
* lirc: pass writable string to lirc_init()Max Kellermann2008-11-071-1/+3
| | | | | The "prog" argument of lirc_init() expects a non-const string. Pass a local string variable.
* native LIRC support for ncmpcThomas Jansen2008-11-074-0/+113
| | | | | | | | | | | | | | | | | | | | | | | | | The attachment includes the patch and a sample .lircrc config for testing purposes (i. e. only a few commands are mapped to IR events). The config is rather simple to write: For each button add a block like this to ~/.lircrc: begin button = <button name from /etc/lircd.conf> prog = ncmpc config = <command name from src/command.c> end The patch is not finished, there are several problems that still need to be solved: 1. the configure.ac modifications are just for testing purposes and should be made optional with a parameter like --enable-lirc for ./configure. Unfortunately I'm not an expert on autoconfig tools. 2. LIRC example code [1] suggests looping over lirc_code2char, probably to have multiple actions that can be triggered from one button. Perhaps lirc_event(...) should be moved to lirc.c and be heavily modified, no longer being a mere copy of keyboard_event(...).
* screen_browser: fix warning when lyrics screen is disabledMax Kellermann2008-10-081-0/+2
| | | | | A local variable was only used by the lyrics screen code. Put #ifdef around its declaration.
* wreadln: support wide charactersMax Kellermann2008-10-061-17/+190
| | | | | | | | | wreadln() didn't distinguish narrow from wide characters, which resulted in display corruption. This patch adds a lot of internal conversions between byte positions, screen positions and character position, which hopefully fixes all these bugs. Since these conversions are quite expensive, the code should be revised and optimized.
* wreadln: wait for complete multibyte sequence in wreadln_insert_byte()Max Kellermann2008-10-061-0/+54
| | | | | | | For multibyte input, we should use wget_wch(), but this function isn't supported properly on some platforms. Add a patch which completes a multibyte character with multiple non-blocking reads. We'll see how portable this hack is...
* wreadln: don't use cursor_move_right() in insert_byte()Max Kellermann2008-10-061-1/+4
| | | | | | After a byte has been inserted, move the cursor right by just one byte, not one character. The byte may have been the first one in a multibyte character.
* configure.ac: added option --disable-wideMax Kellermann2008-10-061-1/+1
| | | | | | The configure option "--disable-wide" disables wide character support. This simplifies lots of internal calculations and makes the ncmpc binary leaner.
* include ncursesw/ncurses.h if availableMax Kellermann2008-10-0614-9/+36
| | | | | When compiling with libncursesw, include <ncursesw/ncurses.h> instead of <ncurses.h> (if available).
* wreadln: optimize wreadln_delete_char() with memmove()Max Kellermann2008-10-061-3/+4
| | | | Let memmove() do the dirty work on overlapping buffers..