2006-01-13  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* configure.ac: Version 0.5.3.1

	* src/keyboard.c (handle_mouse): Use dbg_printf(...) instead of if(...) sbar_printf(...)

	* src/playlist.c (playlist_innermouse): Only report unknown mouse events at high debug levels

	* src/keyboard.c (key_callback): Disable 'p' keystroke entirely when it would be ineffective

	* src/playlist.c (handle_plfiles): Check playlist is visible before printing it.  This fixes a logstanding bug.

	* libcompat/Makefile.am (BUILT_SOURCES): Readd autocurses.h and autosocket.h

	* src/net.c (handle_sorted): Silence an unused parameter warning when playlist is disabled

	* src/irmp3-ncurses.h (playlist_dirty): Silence some unused parameter warnings when playlist is disabled

	* Makefile.am (SUBDIRS): Move po after src to reduce spurious disappearance of src/gettext.h from po/POTFILES.in

	* src/scroller.c (wscroller_hook), src/poll-sigio.c (main_poll_loop): C99 style struct initialisers don't work for struct sigaction on cygwin, so don't use them

2006-01-10  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* configure.ac (AC_INIT): Version 0.5.3

	* Makefile.am (update-po): Add update-po target to top-level Makefile

	* libcompat/Makefile.am (autocurses.h, autosocket.h): Put these in the source directory and distribute them

	* src/Makefile.am (AM_CPPFLAGS): libintl.h is generated in the intl/ *build* directory, so use $(top_builddir) to find it, not $(top_srcdir)

2006-01-09  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* libcompat/Makefile.am (autocurses.h, autosocket.h): Add $(top_srcdir)

	* doc/Makefile.am (STYLESHEET, DOCBOOKFILES): Add $(srcdir)

	* libcompat/Makefile.am (autocurses.h, autosocket.h): Remove useless dependencies

	* doc/Makefile.am: Disable broken dvi target

2006-01-09  gettextize  <bug-gnu-gettext@gnu.org>

	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.14.3.

2006-01-09  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* configure.ac: Add flags to AM_GNU_GETTEXT
	Remove AC_FUNC_SELECT_ARGTYPES

2006-01-06  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* libcompat/freeaddrinfo.c (freeaddrinfo): Implement replacement freeaddrinfo()

	* configure.ac: #define __BSD_VISIBLE on *BSD hosts

	* src/poll-sigio.c: Accept SIGPOLL as a substitute for SIGIO

	* configure.ac: Clean up whitespace and imporve commenting
	Accept SIGPOLL as a substitute for SIGIO

2006-01-04  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* src/netio.c (connect_irmp3): Disable IPv6 on platforms that lack it

	* configure.ac: Simplify ncurses mouse test

	* src/netio.c (start_network): Check actual Winsock version returned by WSAStartup()

2005-12-31  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* src/irmp3-ncurses.h: Update mouse detection to include (and disable) pdcurses

	* m4/socket.m4: Fix flags for USE_WINSOCK

	* m4/curses.m4, configure.ac: Detect pdcurses mouse

2005-12-30  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* src/autosocket.h, src/autocurses.h: Added #include guards

	* src/netio.c (set_address), src/main.c (usage, parseoptions): Assume that default host and port are both set

	* configure.ac: Change default host from undefined to 'localhost'
	Pass default port as a string to allow named service

	* m4/socket.m4: Rename 'bsd' socket option to 'posix'

	* configure.ac: Some minor header check changes suggested by autoscan

	* src/keyboard.c (get_keystroke, key_callback): Only raise SIGQUIT and SIGTSTP if they are available

	* libcompat/vw_printw.c: Clearer warning about the problems of this implementation

	* configure.ac: Test properly for SIGIO capability
	Check for <stdint.h>

	* src/main.c (parseoptions): Removed C99 for loop

	* configure.ac: Removed test for -std=gnu99

	* src/poll-select.c, src/poll-wthread.c, src/stub-scroller.c: Add no-op concurreny functions. NOTE: poll-wthread.c needs a mutex!

	* src/keyboard.c (get_keystroke): make ctrl-\ raise SIGQUIT

	* src/browser.c (browser_key_callback), src/keyboard.c (key_callback): Handle ctrl-c, ctrl-d and ctrl-z

	* src/main.c (main): use raw mode instead of cbreak

	* src/display.c (sbar_getstr): Allow network/scroller while waiting for input

	* src/poll-sigio.c (main_poll_loop): use get_keystroke()

	* src/display.c (showhelp): use get_keystroke() to allow network and scroller processing

	* src/irmp3-ncurses.h, src/keyboard.c (get_keystroke): Add this wrapper around getch() that is immune to signals but allows network and scroller processing

	* src/scroller.c (sigalarm_handler, wscroller_hook): Use new concurrency functions

	* src/poll-sigio.c (sigio_handler, main_poll_loop): Use new concurrency functions

	* src/scroller.c (block_scroller, unblock_scroller): Implemented concurrency functions

	* src/poll-sigio.c (block_net, unblock_net): Implemented concurrency functions

	* src/irmp3-ncurses.h: Add prototypes for concurrency functions

	* src/scroller.c (wscroller_hook): Use sbar_perror()

	* src/poll-sigio.c (main_poll_loop): Use sbar_perror()

	* src/irmp3-ncurses.h, src/display.c (sbar_perror): Added sbar_perror

	* src/scroller.c (sigalarm_handler, wscroller_hook): Use sigaction() instead of signal() to avoid dodgy semantics

	* src/poll-sigio.c: Use #include "autosocket.h"
	(main_poll_loop): Use sigaction() instead of signal() to avoid dodgy semantics

	* src/autosocket.h: Add <sys/socket.h>

	* src/irmp3-ncurses.h, src/netio.c (connect_irmp3): Add pf argument to choose protocol family

	* src/main.c (usage, parseoptions, main): Add -4 and -6 options to choose between IPv4 and IPv6

	* src/netio.c, src/autosocket.h (SOCK_EAGAIN): Removed this definition since the socket is blocking

	* src/netio.c (connect_irmp3): Specifically request TCP

	* libcompat/getaddrinfo.c (getaddrinfo): Avoid duplicate code for cases where node is or is not NULL
	(getaddrinfo): Look up service names/numbers rather than hardcoding 9232
	(getaddrinfo): Check malloc() calls for NULL return

	* libcompat/getnameinfo.c (getnameinfo): NUL terminate hostname if it gets truncated

	* src/poll-select.c (main_poll_loop), src/netio.c (handle_net, connect_irmp3): Use Winsock-able error functions

	* src/autosocket.h: Add socket error definitions designed to be portable to Winsock (sock_errno, sock_strerror, etc...)

	* libcompat/getnameinfo.c (getnameinfo): Implemented

	* libcompat/getaddrinfo.c (getaddrinfo): Implemented

	* src/netio.c (connect_irmp3): assert() success of getnameinfo()

2005-12-29  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* m4/socket.m4: Fixed --with-sockets=winsock2

	* src/netio.c (connect_irmp3): Handle EAI_SYSTEM from getaddrinfo()

	* libcompat/libcompat.h: Declare struct addrinfo, socklen_t, getaddrinfo, freeaddrinfo, getnameinfo and all associated #define'd constants

	* libcompat/getnameinfo.c (getnameinfo): Add stub implementation of getnameinfo()

	* libcompat/getaddrinfo.c (getaddrinfo): Add stub implementation of getaddrinfo()

	* libcompat/freeaddrinfo.c (freeaddrinfo): Add stub implementation of freeaddrinfo()

	* configure.ac: Fix check for struct addrinfo and check for socklen_t as well

2005-12-24  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* m4/socket.m4: Prefer winsock 1 to winsock 2

	* src/irmp3-ncurses.h, src/netio.c (disconnect_irmp3): Add function to close the socket in a socket library independent way

	* configure.ac: Remove tests for herror() and hstrerror()

	* src/scroller.c (wscroller_hook, scroller_end): Added casts to free() calls on scroller message text

	* src/irmp3-ncurses.h: Silence "used" attribute warning for gcc 3.2.3 and (presumably) earlier
	Made text of scrollers const for compatibility with the stub-scroller version

	* src/netio.c (start_network): WSAStartup fix for Winsock 2

	* src/autosocket.h: Winsock 2 header fix

	* libcompat/gai_strerror.c (gai_strerror): Added this replacement function. The program now compiles with Winsock 2.

2005-12-23  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* src/scroller.c (sigalarm_handler): Reset signal handler on each call

	* src/poll-sigio.c (main_poll_loop): Add some error checking
	(sigio_handler): Reset signal handler on each call.  This needs fixing properly to use sigaction() instead

	* configure.ac: Add test for <sys/select.h>

	* src/poll-sigio.c: Add POSIX 1003.1-2001 headers for select()

	* src/irmp3-ncurses.h: Remove feature test macros which are now in config.h

	* configure.ac: Define _POSIX_C_SOURCE and _XOPEN_SOURCE in config.h

	* src/autosocket.h, m4/socket.m4, configure.ac: Add support for Winsock 2

2005-12-21  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* configure.ac: Add test for struct addrinfo

	* m4/socket.m4 (CHECK_WINSOCK): Use AX_LANG_CALL_ARGS to locate winsock

	* m4/ax_lang_call_args.m4, m4/ax_check_func_args.m4: Change calling convention to use comma separated types

2005-12-19  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* m4/socket.m4, m4/ax_lang_call_args.m4, m4/ax_check_func_args.m4, configure.ac: Check return type of socket and curses functions

	* m4/curses.m4 (CHECK_XCURSES): Silence failure to find xcurses-config

	* src/netio.c (set_address, connect_irmp3): Switch to using getaddrinfo() for address resolution and defer resolution until connect() time.

2005-12-18  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* src/display.c (showhelp): Display an extra line of help in the first page

	* src/netio.c (connect_irmp3): Use stderr of errors rather than sbar_printf so it can be run before the UI is initialised
	(connect_irmp3): Remove 'connected to' message

	* src/main.c (main): Connect to daemon before initialising the UI

	* src/display.c (showhelp): Better 'continue' message

	* src/net.c (main_net_callback): Remove meaningless '0' flags from idle message

	* src/scroller.c (scrollerlist_del): Make debugging messages untranslatable

	* src/main.c (main): Show 'press ? for help' message at startup

	* doc/irmp3-ncurses.sgml: Updated man page to include new '?' command

	* src/browser.c (showbrowserhelp): Added function to display browser help
	(browser_key_callback): Added keystroke '?' to show browser help

	* src/keyboard.c (key_callback): Added keystroke '?' to show help

	* src/display.c (showhelp): Added function to display help

	* src/scroller.c (sigalarm_handler): Fix signed vs unsigned warning

2005-12-15  Ross Kendall Axe  <ross.axe@blueyonder.co.uk>

	* src/net.c (HANDLE_MSG_STR, HANDLE_MSG_INT, HANDLE_MSG_VOID): Reduce obfuscation

	* configure.ac: Change default package type to bzip2
	Add check for version of NEWS file

	* src/scroller.c (sigalarm_handler): Don't store possibly negative value into 'unsigned int newpos'

	* src/main.c (parseoptions), src/irmp3-ncurses.h (SCROLLER_INITIALISER): More explicit null structure initialisation

	* src/playlist.c, src/net.c, src/main.c: Add statements of the form "(void)parameter;" to silence "unused parameter" warnings

	* src/netio.c, src/display.c, src/scroller.c: Use unsigned integer types where appropriate

	* src/Makefile.am (AM_CFLAGS): Add extra warning flags
