2000-12-24  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Made sortplaylist take a function argument and added
	sort_compare_mtime. Added a menu entry for "sort by mtime".

	* xhippo.c: Added read_song_info and sinfo->inforead to guarantee
	that we always have the songinfo fields that come from stat even
	if mode_no_check_files is on. Made sortplaylist and
	handle_menu_info read the information if required.

2000-12-14  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Updated copyright notice to match GNU standards.

2000-12-11  Adam Sampson  <azz@gnu.org>

	* configure.in: Changed version number to 2.9.
	
	* xhippo.c: Reworked signal-handling stuff to make it more
	understandable and to remove race conditions when a signal arrives
	in the middle of a GTK operation.

2000-11-30  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Added an option to write the display_name of the
	currently-playing song to ~/.xhippo/current_song (suggested by Ben
	Clay Charlton).

	* xhippo.c: Added an option to not bother stat()ing all the files
	in the playlist; this speeds up startup at the cost of
	robustness.

	* xhippo.c: Added support for setting the window title based on
	the name of the playlist (suggested by <zork@lordzork.com>).

	* xhippo.c: Changed exit(20) to _exit(20) if execvp fails.

	* xhippo.c: Added --help for "ordered".

	* xhippo.c (SCANS): Tidied up SCANS to make it readable.

2000-11-25  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Made Mini mode use the display_name rather than the
	basename of the song in the status bar when playing.

2000-11-20  Adam Sampson  <azz@gnu.org>

	* xhippo.h (STRSETHOME): Merged in Markus's updated German locale,
	on the grounds that Kevin Everets said that he's got some more
	patches to come in his Advogato diary today.

2000-09-16  Adam Sampson  <azz@gnu.org>

	* configure.in: Changed version to 2.8.

	* xhippo.c: Merged Ken Arromdee's onetime patch.

2000-09-07  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Added size and mtime to the songinfo structure.
	Added info window support.

2000-09-05  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Fixed GNOME support. (Reported by Jason Buberel,
	jason@buberel.org.)

	* xhippo.c: Made the config file reader make two passes through
	the file, so that it can be read both before and after the GUI is
	shown. This makes exec/load/exec work again. (Reported by Pierre
	Ganty.)

	* xhippo.c: Added a check for too many filetypes in the config
	file reader.

	* xhippo.c: A number of changes from and inspired by Kevin
	Everets: added name demangling, fixed relative path handling in
	playlists, set last_played to -1 in clearplaylist(), added
	accelerator keys for the popup menu.

	* configure.in: Changed version to 2.7.

2000-08-14  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Made last_played start at -1, and made start_playing
	check that it's valid. This stops a crash when Restart is hit with
	an empty playlist, and also means that hitting Next when you
	haven't yet played anything will play the first song rather than
	the second. (Reported by Kevin Everets.)

	* xhippo.c: Renamed make_button to add_button, and made
	add_menu_item return the item it added.

	* xhippo.c: Changed the logic in handle_list_click so that the
	menu will be shown even if the click isn't over a valid item, and
	the items in the menu will be disabled. That way, you can add
	items to an empty playlist, and you can't select options that
	require an item when you don't have any. (Reported by Kevin Everets.)
	
	* xhippo.c: Got rid of the explicit clearing of the settings in
	main in favour of initialisers.

	* xhippo.c: Added a get_playlist_dir function that finds an
	appropriate playlist directory, checking the playlistdir config
	file option first. (Requested by Kevin Everets.)

	* xhippo.c: Added a check in main.c that the user has set $HOME.

	* contrib: Removed README~. Oops.

	* doc/screenshot.jpeg: Took a new screenshot.
	
	* configure.in: Buffer Overflow Day. Added a check for snprintf,
	and an emulation macro at the top of xhippo.c if we don't have
	it. Turned all sprintf calls into snprintf calls.

	* configure.in: Changed the version number to 2.6.

2000-08-12  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Moved all playlist manipulation commands on to the
	popup menu. Added "Clear Playlist".

	* xhippo.c: Fixed playlist reading again (this time it was reading
	the last entry twice, which sort of makes up for the previous
	version where it didn't read the last line at all!). It's even
	tidier now.

	* xhippo.c: Added a non-GNOME drop handler (you can now drop URIs
	from xftree into xhippo without needing GNOME installed).

	* xhippo.c: Implemented sorting (using qsort). Implemented
	playlist saving. Added -O to make xhippo sort the playlist once
	it's loaded.
	
2000-08-11  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Moved the code to clear the playlist out into a
	seperate function. Moved the code to create buttons out into a new
	function. Added the code to create and display the popup
	menu. (I'm _not_ looking forward to documenting this.) Renamed a
	few functions to have more sensible names.

	* xhippo.c: Implemented move up, move down and delete on the popup
	menu.

	* xhippo.c: Added mode_hide_player_output based on Kevin Everets'
	implementation.

	* configure.in: Changed the version number to 2.5.
	
2000-07-24  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Removed randomtab and the second column in the list in
	favour of a songinfo structure which is allocated for each
	row. This can hold more information, and has the advantage that we
	can declare a destructor for it, meaning that we can more easily
	keep track of how many items are in the list.

	* xhippo.c: Made mode_scroll_catchup work again (somehow I doubt
	anybody runs with it turned off any more...).

	* xhippo.c: Applied patch from Kevin Everets to add a "leftscroll"
	option to place the scrollbar on the left side of the
	window. Unfortunately, there doesn't appear to be a way of finding
	out from the theme which side the scrollbar should go...

	* xhippo.c: Removed the memory leak in my implementation of
	strcasecmp. (Ahem, not sure how I missed that one originally...)

	* xhippo.c: Made start_playing explicitly set paused = 0.

	* xhippo.c: Moved the code back out of create_list_widget, as it
	only gets called once.

	* xhippo.c: Fixed the bug I introduced with the read_playlist
	cleanup which meant that the last file in the playlist was never
	read.

2000-07-23  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Fixed the case where hitting OK in the file requester
	with no file selected would cause a crash. (The name of the
	directory was getting passed to readplaylist; it now checks the
	file type.)

	* configure.in: Changed the version number to 2.4.

2000-07-22  Adam Sampson  <azz@gnu.org>

	* xhippo.config: Updated the config file to include stripextension
	and to correct the comment for startmini.

	* xhippo.c: Replaced the scrollbox widget with a seperate
	scrollbar and adjustment for the list view; this makes large
	playlists work correctly, and makes the scrolling more accurate.
	The example in the GTK tutorial uses a scrolled window, but this
	method works much better.

	* xhippo.c: Added mode_strip_extension.

	* xhippo.c: Stripped out all the sizeof(gchar)
	references. sizeof(gchar) is always 1; that's the point! (Things
	are going to need to change considerably if xhippo ever gets
	unicode support.)

	* xhippo.c: Just clear the list when loading a new playlist,
	rather than destroying the widget and recreating it (it used to do
	this because it wasn't possible with the old list widget).

	* xhippo.c: Freeze the list when adding items to it.

	* xhippo.c: Stopped the list from scrolling when the selected item
	is already visible.

	* configure.in: Changed VERSION to 2.3.

	* xhippo.c: Made the Mini checkbox get set correctly when the
	window was saved in the mini state; bug reported and patched by
	Kevin Everets.

	* xhippo.c: Tidied up the while() loop when reading a playlist
	(duplicate check for feof()).

2000-07-18  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Added pause functions, implemented by Kevin Everets
 	<kevin.everets@alcatel.com>.

	* xhippo.c: Turned Mini into a checkbox.

	* xhippo.c: Localised Random.

	* xhippo.c: Made extension comparison
 	case-insensitive. Implemented an strcasecmp for systems that don't
 	have it and modified configure.in accordingly. Modified
	xhippo.config to remove duplicate type entries.

	* Makefile.am: Stopped shipping the formatted versions of the
	documentation.

2000-03-08  Adam Sampson  <azz@gnu.org>

	* xhippo.config (ordered): Added "ordered" to the config file.

	* configure.in (VERSION): Changed to 2.2.

2000-03-07  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Wow, it's been a long time since I worked on this. I
	wasn't expecting to do any more work on this version, but I got a
	request from "TSC" yesterday who wanted a non-random mode, and as
	using a CList makes this rather easy, it's in there.

1999-11-19  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Fixed the code in add_file to cope correctly with
	non-absolute pathnames. Changed version to 2.1. Moved the line
	that sets a flag in the randomtab[] array to handle_listclick, so
	that if you explicitly pick a song the randomiser won't pick it
	again until it's exhausted the list (another CList
	advantage!). Note to self: there's an extended ID3 format floating
	around; the ID3 code should probably handle this. It should
	probably also gracefully handle non-MP3 files.

1999-11-02  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Changed version to 2.0. A while ago I forked this
	version to experiment with using a CList rather than a List; I
	think this will be the way to go in the future, so I'm sticking
	with it. The scrolled window now always has the side scrollbar
	and never the bottom one; this was HiP's behaviour, and I rather
	liked it. It occurred to me that I hadn't done much development on
	xhippo since it became a GNU project, so I figured that it was
	time to spend some time on the improved version and tidy it up a
	little. Reenabled scroll_catchup that I'd commented out; it now
	works but gets positioning slightly wrong. Made the load requester
	OK handler scroll the list back up to the top. Added -Wall to the
	compilation options to find compiler warnings (and removed
	them). Noticed that ID3 tag reading is horribly broken, reading
	(apparently) 4 more characters than it should; fixed, although I
	don't have the ID3 spec to fix it properly.  Added HiP-esque
	keyboard accelerators for Stop and Random. (I've bound both KP*
	and KP- to Random because on the Amiga keyboard the star is in the
	top right corner. I have no idea what HiP's accelerator for Stop
	was, so I've bound / to it.) Fixed the Restart button (adding
	last_played along the way). Also, I have no idea what I did, but
	it fixed the resizing problem, so that's good. Checked the look of
	the interface with several GTK themes... it's looking good!
	(Particularly with XFCE.)

1999-08-05  Adam Sampson  <azz@gnu.org>

	* xhippo.c: Added a configure option to turn the GNOME menubar on
	and off.

	* configure.in (VERSION): Upped to 1.2.
	(AC_ARG_WITH): Fixed spacing in configure --help.

	* xhippo.c: Added code to store the size of the window as well as
	the position (as I'm now using a bigger display).

1999-08-01  Adam Sampson  <azz@gnu.org>

	* configure.in (VERSION): Upped to 1.1 and uploaded.

	* xhippo.c: Added Rod Taylor's patch (#ifndef NOGETOPTLONG), which
	is meant to fix compilation on BSD systems.

1999-07-03  Adam Sampson  <azz@gnu.org>

	* configure.in: Altered check for getopt_long to set a variable if
	not found (rather than dying), and added a check for getopt (on
	the grounds that if you don't have getopt, you can't possibly have
	getopt_long!).
	(VERSION): Bumped version to 1.05 and uploaded.

	* xhippo.c: Added code to cope with systems that don't have
	getopt_long (like FreeBSD).

1999-07-02  Adam Sampson  <azz@gnu.org>

	* Makefile.am (CPPFLAGS): Changed datadir to sysconfdir, as
	recommended by Rod Taylor (who also maintains the FreeBSD port).

1999-06-13  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.config (type): Added capital versions of the mod types.

1999-06-12  Adam Sampson  <azz@josstix.demon.co.uk>

	* Makefile.am (dist-hook): Added rules to copy the doc/ directory.

	* xhippo.c: Added a GNOME menu item for Mini. Added getopt support
	and updated the help description for long options. Updated the
	--version output to fit the GNU standards.

	* xhippo.c: Xhippo is now officially a GNU program!

1999-06-07  Adam Sampson  <azz@josstix.demon.co.uk>

	* configure.in (VERSION): Bumped version to 0.95.

	* xhippo.c: Removed my ugly kludge for window resizing and
	replaced it with a gtk_window_set_policy call in the right place,
	as suggested by Trog <trog@gtk.org>.

1999-06-05  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.c: Changed winpos to winstate, and made xhippo save
	whether the window is minified or not.

	* xhippo.config: Added entries for savewinpos and startmini. Also
	added filetypes for "mov" and "avi" files using xanim.

	* xhippo.c: Added mode_start_mini and mode_save_window_pos, along
	with all the trappings and language strings.

	* xhippo.h (STRNOPLAYLIST): Added language strings for Mini.

	* xhippo.c: Added lots of stuff to handle the Mini button. I'm not
	happy with the way resizing the window is handled, though, nor
	with the constant -2 in void status().

	* configure.in (VERSION): Bumped version to 0.9.

1999-05-26  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.c: Removed the GNOME-specific handle_menu_X
	functions. The button-related versions work just as well.

	* README: Added entries for the Load button.

	* configure.in (VERSION): Bumped version to 0.85.

	* xhippo.c: Fixed the gchar-always-one-byte assumption in
	read_mp3_tag.
	Made lots of modifications to allow the Load button. This included
	moving the handle_X functions to after the playlist-loading
	functions; adding a button definition; adding handlers for the new
	button; adding a variable for the file selector; adding handlers
	for the file selector; abstracting the construction of the
	playlist widget out into a function.
	I am not entirely happy with the way this is implemented; it isn't
	very pretty. It may cause a memory leak too---I don't know if GTK
	is clever enough to gtk_widget_destroy all subwidgets of a
	container when the container (the list in this case) is
	destroyed. However, the users get what they want.

1999-03-24  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.c: Replaced the waitpid() call with a wait(NULL) in the
	SIGCHLD handler (which is what uwm does). This works at least as
	well as the old system and is much simpler. And I can't provoke it
	into producing zombies any more. Also renamed kludgeflag to
	childnotfinished, to make it a little easier to understand, and
	removed the following large and obnoxious comment: "/* This kludge
	seems to improve the "hanging GTK" bug.  * "kludgeflag" is set to
	0 only when the SIGCHLD signal is receieved.  * I think what was
	happening is that the SIGCHLD was trying to start * another child
	which couldn't open the audio device and so died * immediately --
	starting another child. The resulting chain reaction * hung
	xhippo. The donotstopflag variable is also part of this kludge.
	*/"

1999-03-21  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.config (type): Added "MP3" as an extension. D'oh!

1999-03-15  Adam Sampson  <azz@josstix.demon.co.uk>

	* configure.in (VERSION): Hiked version to 0.8.

	* xhippo.c: Fixed an off-by-one error when trying to guess the
	file's type; it initialised the "type" pointer one gchar after the
	null, so occasionally (such as when I dropped Summer of '69 onto
	the interface!) it would pick up the string following it in the
	data area ("Gtk") as the name, and hence fail miserably to
	correctly guess the type.
	
1999-03-14  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.c (dndDrop): Added GNOME drag-and-drop support.

	* README: Released and announced 0.7.
	
1999-03-13  Adam Sampson  <azz@josstix.demon.co.uk>

	* configure.in: Created. Today was autoconf day. Moved everything
	(hopefully) over. I must admit that automake/autoconf makes
	several things that were extremely hacky before work just fine.
	GTK version autodetect added. GNOMification and German support
	were made configure options rather than Makefile options.

	* Makefile.am: Created. Also copied in install-sh.

1999-03-08  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.c: Added GNOME stuff.

	* Makefile: Added GNOME stuff.

1999-03-02  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.c: Made the readid3 option actually work. :)

1999-02-28  Adam Sampson  <azz@josstix.demon.co.uk>

	* Makefile (distro): Added xhippo.gtkrc to the list of distro
	files. D'oh!

	* xhippo.gtkrc: Added the font change to the style.

	* Makefile (VERSION): Bumped version to 0.7.

	* README: Added entry for readid3.

	* xhippo.config: Added entry for readid3.

	* xhippo.c: Merged in the changes from Craig Knudsen to read ID3
	tags, and added code to handle the readid3 and -i options.

1999-02-24  Adam Sampson  <azz@josstix.demon.co.uk>

	* Makefile: Added a note about installation into your home
	directory.

	* README: Documented the changes below. Also credited Hubert
	Fehrer for his NetBSD package, and added a comment about automatic
	production of playlists.

	* Makefile: Added automatic version numbering of the tarball; the
	VERSION define is now set in the Makefile. This is much cleaner
	than the way it was done before. Suggested by Hubert Feyrer to
	make NetBSD packaging easier.
	(VERSION): Bumped version to 0.6.

	* xhippo.c: Added playlist inclusion by !filename in a playlist,
	requested by Joseph Turian.

1999-02-23  Adam Sampson  <azz@josstix.demon.co.uk>

	* README: Uploaded 0.5, updated the web pages and announced it on
	Freshmeat.
	
1999-02-07  Adam Sampson  <azz@josstix.demon.co.uk>

	* README: It ought to be mentioned that I fixed the inconsistent
	spelling of "GTK" throughout this a few days ago, and forget to
	mention it here.

	* xhippo.gtkrc: Made a style for all widgets that darkened the
	background grey to Grey76, in order to match icewm, Netscape and
	most other apps.

	* xhippo.c: Added must_play_all mode, to improve the randomness of
 	the selection from the list.  Added show_pid mode, so that users
	(hi Volker!) can turn off the (pid xxx) display.

1999-02-03  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.h (VERSION_STRING): Bumped version to 0.5 (as I wanted to
	send Volker a copy).

1999-02-01  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.c: Fixed the gtk 1.1 problem. Just did what the error
	message said to do.

1999-01-24  Adam Sampson  <azz@josstix.demon.co.uk>

	* Makefile (distro): Made distro create a directory into which the 
	xhippo distribution is put before archiving; this makes it easier
	to unpack.

	* README: Changed titles from "---" to "***". Added references to
	contrib directory.

	* contrib/README: Created. Added Jeff Covey's
	xhippo-chooser.pl. Moved Volker's German docs into this
	directory.

	* README: Various changes to refer to ".xhippo/config" rather than 
	".xhippo.config" etc.

	* xhippo.c: Various changes to enable the use of the ".xhippo"
	directory rather than lots of files in your home directory. This
	was essentially Jeff Covey's idea.

	* gtkrc: Created.

	* xhippo.c: Added "mode_scroll_catchup" to turn the new scroll
	feature on and off, and the "-s" and "scroll" commands.

	For some reason, gtkrc support doesn't work at all. Whether this
	is due to xhippo or the old gtk that I'm using is unknown.

	* xhippo.config (scroll): Added entry for "scroll".

	* xhippo.h (VERSION_STRING): Bumped version to 0.4.

	* xhippo.c: xhippo now scrolls the list to keep up with
	randomly-picked songs. It's not very pretty at the moment, but it
	works.

1999-01-19  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.c: Received bug report from Hubert Feyrer,
	hubert.feyrer@rz.uni-regensburg.de, saying that under Gtk 1.1 the
	scrollbars don't appear, giving an error message saying to use
	"gtk_scrolled_window_add_with_viewport()" rather than
	"gtk_scrolled_window_add()". Given that neither of these exist
	(apparently) under the Gtk that I'm using, I suspect that this is
	a Gtk 1.1 compatability problem.

	Noticed another bug: non-absolute filenames get truncated; not
	sure why yet.

	* Makefile: Received bug report from Hubert Feyrer,
	hubert.feyrer@rz.uni-regensburg.de; I'd forgotten that
	ETCDEST was also in config.h. It now uses one PREFIX variable
	rather than BINDEST and ETCDEST, and defines SYSTEMXHIPPOCONFIG in 
	the Makefile.

1999-01-18  Adam Sampson  <azz@josstix.demon.co.uk

	* README: xhippo 0.3 was announced on Freshmeat today.
	
1999-01-10  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.xpm: Produced this image by screengrabbing the Amiga
 	emulator. This means the colours are slightly wrong. Made
 	transparent by hand.

1999-01-09  Adam Sampson  <azz@josstix.demon.co.uk>

	* Makefile: Added xhippo.config to "make install".
	(distro): Added "distro" rule to make a tarball.

	* README: Updated.

	* xhippo.c: Removed a spurious g_print(rcname).
	
	Added config file support. This meant splitting the "read
	playlist" routine into another function.

	* xhippo.h: Split most of the definitions into this file.

	* README.fvwm2: Split fvwm configuration stuff into this file.

	* Makefile: Added the "make install" rule.

	* xhippo.c: Incorporated Volker's German localisation and LIESMICH 
	file.  

	Made the strings read "Playing with ... (pid ...)", to stop
	confusing Volker. :-)

	Added a define for the version. Bumped the version to 0.3.
	
	Removed the STRWINTITLE strings from the localisations. This is
	now always ("xhippo %s", VERSION_STRING).
	
1999-01-04  Adam Sampson  <azz@josstix.demon.co.uk>

	* xhippo.c: Changed "mikmod" to "xmp -f44100". xmp sounds better,
	is freer, uses less CPU time and doesn't use curses. In general,
	it's better for xhippo.

	Added a few lines to read ~/.xhippo.gtkrc, and some names for the
	widgets. Implemented using conventional C strings for now until
	glib's string handling is better documented!

