0.6.0:

2003-12-07  Murray Cumming  <murrayc@usa.net>

	* src/configdata.cc: set_fallback_encoding_from_string(): Ignore
	empty value from GConf, so that the default fallback encoding is
	used. That is ISO-8859-15, also known as Latin 9, which seems to
	be commonly-used on Windows.
	* src/fileio.[h|cc]: Use gnome-vfsmm instead of Glib::IOChannel
	to read and write file contents, so we can use any URI.
	* src/filetree.[h|cc]: Likewise, use gnome-vfsmm instead of 
	Glib::Dir to list the files.
	* configure.ac: Added pkg-config check for gnome-vfsmm.
	
2003-11-29  Murray Cumming  <murrayc@usa.net>

	* configure.ac: regexxer now depends on gconfmm. Removed the check
	for 2.2-specific features.
	* Removed all gtkmm 2.2-specific #ifdefs because 2.2 is everywhere
	now..
	* src/configdata.[h|cc]: Changed the implemention to use GConfmm
	instead of the text file.

0.5.0:

2003-10-31  Murray Cumming  <murrayc@usa.net>

	* src/mainwindow.cc: Used larger HIG-like borders and spacings to
	make it look just a little more GNOME HIG compliant.

2003-10-29  Murray Cumming  <murrayc@usa.net>

	* I'm taking over maintainership until Daniel reappears. I hope
	that he does.
	* src/Makefile.am: Removed *DEPRECATED* defines so that it builds 
	with GTK+ 2.3/2.4. These should only be active during maintainer
	mode if they are added back.

2003-02-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* regexxer.desktop: Add Danish translation contributed by
	Morten Brix Petersen <mbp@wtf.dk>.  Thanks!

2003-01-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac: Check for gtkmm >= 2.2.0 rather than 2.1.1.  Note
	that gtkmm 2.2 is still optional, but this is likely to change after
	the regexxer 0.5 release.

2003-01-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.cc (propagate_modified_change): Simplify.

2003-01-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/signalutils.{cc,h} (AutoConnection): New utility class that
	breaks the previous connection on assignment, and also remembers the
	blocked state of the connection permanently.

	(ScopedBlock): Use Util::AutoConnection instead of SigC::Connection.

	* src/filetree.{cc,h}: Use AutoConnection to manage the connection
	handles of the currently selected buffer.

	(on_selection_changed): Thanks to AutoConnection, we can now
	extinguish a fair bit of error-prone code.

2003-01-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* autogen.sh: Require automake >= 1.7.
	* configure.ac: ditto.

2003-01-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/sharedptr.h (SharedPtr<>::swap): Implement.

2003-01-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (on_hide): For safety, transfer ownership of
	the preferences and about dialogs into local variables, rather than
	invoking hide() to delete them.  That way delete won't be called
	before hide() actually returned.

	(on_about_dialog_hide): Don't use std::auto_ptr<>::reset() but
	transfer ownership into local variables.  I had a look at the
	libstdc++-v3 headers and it gave me the creeps -- reset() deletes
	_before_ assigning the new pointer.

	(on_pref_dialog_hide): ditto.

2003-01-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (error_pixbuf_): Get rid of this silly cache,
	since it became useless a while ago.

2003-01-01  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/aboutdialog.cc (SelectableLabel): Add accessibility hints.
	(ContributorBox): Likewise, and also improve the widget arrangement
	if the dialog gets resized.

2002-12-30  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.{cc,h}: Get rid of the menubar_handle_ and
	toolbar_handle_ data members.  We don't need to keep them around
	anymore since the config option to hide one or the other is gone.

2002-12-30  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/aboutdialog.cc (SelectableLabel): New fancy experiment to
	make labels both selectable _and_ focusable, so that they end up
	in the Tab chain.

	* src/aboutdialog.cc src/imagebutton.cc src/prefdialog.cc: Don't
	show all children of custom "composite" widgets in the constructor.
	It doesn't make much sense since we call show_all() later on anyway.
	And making these "composite" widgets really independent components
	would require overriding both show_all_vfunc() and hide_all_vfunc(),
	which is currently not worth the effort.

2002-12-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* pixmaps/regexxer.png: Replace with a much nicer icon stolen from
	http://jimmac.musichall.cz/ikony.php3 -- looks sweet!

2002-12-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac (PCRE_CHECK_VERSION): Require libpcre >= 3.9.  It
	finally arrived in Debian unstable a while ago and there's at least
	one UTF-8 related bug in prior releases that could cause crashes.

2002-12-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/pcreshell.cc (translate_to_char_offset): New function
	that translates the error offset returned by pcre_compile() to
	a character offset into the original regex.  This became necessary
	since due to the recent introduction of escape_non_ascii(), and
	is more robust anyway.

	* src/mainwindow.cc (on_exec_search): Deal with character offsets
	instead of byte offsets.  Also, set the regex entry's selection on
	the character where the error occurred.

2002-12-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/statusline.{cc,h}: Use Gtk::RC::parse_string() and the
	appropriate RC style settings to reduce the height of the Stop
	button, instead of the insane set_size_request() hack.  This way
	the label text gets properly aligned now.

2002-12-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.cc (scale_to_8bit): Don't try to round to the
	nearest value.  This fixes a fun bug that caused the orange color
	of the current match to become slightly brighter on each config
	load/save cycle.

2002-12-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* pixmaps/Makefile.am (stockimages.h): Beautify by printing the
	actual command line that is executed, rather than the shell code
	to build it.  This is also what autoconf does in its rules.

2002-12-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* regexxer.desktop: Add Comment[de] translation, and remove GNOME
	from Categories.  Recent GNOME applications don't seem to specify
	this category anymore.

2002-12-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/pcreshell.cc (escape_non_ascii): New function to work around
	a crash in libpcre when using literal UTF-8 in character classes.
	This still won't make it work, but prevents the crash and forces
	an error message if characters in classes are outside the Latin1
	range.

2002-12-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac: Check for gtkmm >= 2.1.1 instead of the compile
	test based on Glib::set_application_name().  (Don't worry, gtkmm
	2.1.x is not yet a requirement.)

2002-12-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/prefdialog.cc: Don't #include GTK+ headers if gtkmm 2.2
	API is available.

	(ColorLabel::on_expose_event): When building with gtkmm 2.2, use
	Gtk::Widget::get_style_property() instead of the ugly varargs
	function gtk_widget_style_get().

2002-12-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/prefdialog.cc (ColorSelectionButton::on_clicked): Convert
	the dialog window title to title case.

2002-12-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/prefdialog.cc (ColorLabel::ColorLabel): Modify the whole
	Gtk::RcStyle in one go rather than setting the bg pixmap thrice.

2002-12-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/configdata.{cc,h}: Remove config option "menutool_mode"
	because it's crack now that we have undo et al.  Add config options
	"textview_font", "match_color" and "current_match_color".

	* src/filebuffer.{cc,h} (pango_context_changed): Assign default
	font to the error_message tag.
	([gs]et_match_color): New accessors to tag colors.
	([gs]et_current_color): ditto.

	* src/mainwindow.{cc,h} ([gs]et_menutool_mode): Get rid of these.
	(on_filetree_switch_buffer): No longer modify the TextView font
	globally since we set the tag now.
	(on_preferences): Handle the added config settings.
	(load_configuration): ditto
	(save_configuration): ditto.

	* src/prefdialog.{cc,h} (FontSelectionButton): New utility widget.
	(ColorSelectionButton): Another new utility widget.
	(PrefDialog): Revamp the preferences dialog.  That is, add GUI for
	the new config settings and remove the old one.  Also replace the
	radio buttons for selecting the toolbar style with an option menu.

2002-12-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.{cc,h} (contains_null): Remove.
	(color_to_string): Implement.
	(shell_pattern_to_regex): Handle alternative syntax '^' for
	negation of character classes properly.

2002-12-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/miscutils.h (ScopedArray<>): New little utility template
	to manage a dynamically allocated array.

	* src/fileio.cc (load_iochannel): Ditch Glib::ScopedPtr<> (glibmm
	internal :) in favor of Util::ScopedArray<>.

2002-12-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/fileio.cc (load_iochannel): Use std::memchr() rather than
	the silly Util::contains_null() utility function.

2002-12-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac: Put -I flags into CPPFLAGS instead of CXXFLAGS.
	* macros/pcre.m4 (PCRE_CHECK_UTF8): Likewise for CFLAGS.

2002-12-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* macros/pcre.m4 (PCRE_CHECK_VERSION): Use the sed magic from
	autogen.sh to implement a proper version check.

2002-12-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* autogen.sh: Implement some fancy sed magic to compare automake
	version numbers, in order to choose the one that suits us best.

2002-12-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (create_left_pane): Set the accessible name
	of the folder entry.
	(create_right_pane): Set the accessible name of the preview entry,
	but replace the accessible description with a tool tip.

2002-12-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.cc (expand_and_select): Make use of
	Gtk::TreeView::expand_to_path() if available.

2002-12-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/miscutils.{cc,h}: New files.  Move Util::prior() and next()
	hitherto, and add Util::gtk_version_at_least() to do a runtime
	version check.
	* src/Makefile.am: Add miscutils.{cc,h}.

	* src/stringutils.h: Move prior() and next() into miscutils.h.
	* src/filebuffer.cc: #include "miscutils.h".
	* src/filetree.cc (expand_and_select): Use the lazy scrolling
	feature if GTK+ >= 2.1.4 is available at runtime.

2002-12-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.cc (expand_and_select): Don't pass row_align to
	Gtk::TreeView::scroll_to_row() if compiling for gtkmm 2.2 since
	lazy scrolling has now been implemented.

2002-12-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* autogen.sh: Enable Bourne shell posix mode if possible, and
	export WARNINGS=all in order to get auto* diagnostic messages.

	* src/Makefile.am: Replace deprecated variables INCLUDES and LIBS
	with regexxer_CPPFLAGS and regexxer_LDADD.

2002-12-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* macros/cxx.m4: Get rid of all deprecated autoconf constructs.
	* macros/pcre.m4: ditto.

2002-12-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac: Replace the check for gtkmm >= 2.1.0 with a test
	for Glib::set_application_name().  This should be much safer.

2002-12-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/main.cc (main): Use Glib::set_application_name() if building
	for gtkmm 2.1.

2002-12-14  Daniel Elstner  <daniel.elstner@gmx.net>

	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): On make distcheck,
	pass --enable-warnings=hardcore to ./configure.

2002-12-14  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac (AM_INIT_AUTOMAKE): Require automake >= 1.6 and
	make use of the "check-news" option.

	* Makefile.am (EXTRA_DIST): Get rid of EXTRA_DIST and properly
	put the files into dist_noinst_SCRIPTS and dist_noinst_DATA.

2002-12-14  Daniel Elstner  <daniel.elstner@gmx.net>

	* autogen.sh: Delete all scripts and symbolic links that will
	be recreated by automake --add-missing.

2002-12-14  Daniel Elstner  <daniel.elstner@gmx.net>

	* regexxer.desktop: Set StartupNotify=true in order to take
	advantage of the startup notification feature in GNOME 2.1.

2002-12-14  Daniel Elstner  <daniel.elstner@gmx.net>

	* autogen.sh: Incorporate bits of the standard GNOME autogen.sh,
	and make use of aclocal-1.7 and automake-1.7 if available.

	* configure.ac: AC_PREREQ([2.53]) to make sure the Debian magic
	chooses the right autoconf version.
	(AM_CONFIG_HEADER): Replace with AC_CONFIG_HEADERS().  This
	could create a dependency on automake-1.7, don't know for sure.

2002-12-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/imagebutton.{cc,h} (ImageButton): Add a 'name' argument to
	the ctor which is used to set the accessibility object's name.

	* src/controller.cc (create_action_area): Set accessibility
	names for all image-only buttons.

2002-12-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac: Check for gtkmm >= 2.1.0 and #define
	REGEXXER_HAVE_GTKMM_22 if available.

	* src/controller.cc:
	* src/mainwindow.cc:
	* src/statusline.cc: If building for gtkmm >= 2.1.0, make use of
	atkmm to set names and descriptions of several GUI elements.

2002-12-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* pixmaps/Makefile.am (stockimages.h): Perfectionize so that it
	handles a case that actually never happens, but who knows who's
	going to copy'n'paste this stuff :P

2002-12-02  Daniel Elstner  <daniel.elstner@gmx.net>

	* pixmaps/Makefile.am: Use shell magic to generate the build list
	for gdk-pixbuf-csource.  It's way cooler than doing it manually :)

2002-12-02  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (create_left_pane): Use 'd' instead of 'F'
	as mnemonic key for the folder button, because 'F' is already
	occupied by the file menu.

2002-12-01  Murray Cumming  <murrayc@usa.net>

	[ SF patch 646526, slightly modified ]

	* src/mainwindow.cc: Change the file pattern entry to a combo,
	with some commonly-used file extensions.

2002-12-02  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/controller.cc (create_action_area):
	* src/mainwindow.cc (create_left_pane): Add preliminary support
	for accessibility using ATK.  Unfortunately atkmm is badly broken
	in a way that prevents it from being used at all.  And due to a
	missing reference in Gtk::Widget::get_accessible_vfunc() I can't
	even resort to the C interface for custom derived classes.  Thus
	most of the code is enclosed in #if 0 / #endif at the moment.

2002-11-29  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.cc (on_selection_changed): Ooops, forgot to
	disconnect() conn_undo_stack_push_.  That means the mysterious
	one of the assertions is now fixed -- the remaining ones are
	expected :)

2002-11-29  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac (AC_INIT): Version 0.5.

2002-11-29  Daniel Elstner  <daniel.elstner@gmx.net>

	OK folks, this is the new undo system.  It works, but don't rely
	too much on undo yet since there are still some issues to work out.
	Try stress testing the system a bit and you'll be able to trigger
	assertions, misbehaviour and all other kind of evil stuff.

	However, the framework is basically working and the remaining
	problems are going to be sorted out very soon.  Happy testing!

	* src/undostack.{cc,h}: New files, implementing the core of the
	new undo system.  Basically it's a simple undo stack using virtual
	methods for the implementation of undo actions.  But the undo stack
	is itself an undo action, which allows for nested stacks.  This
	functionality is necessary since the undo works globally on all
	files.

	* src/filebufferundo.{cc,h}: New files, defining the implementation
	of the FileBuffer undo actions.

	* src/fileshared.{cc,h}: Move parts of filebuffer.{cc,h} into these
	new files, in order to avoid circular dependencies and to reduce the
	length of single source files.

	* src/filetreeprivate.{cc,h}: Move the anonymous namespace parts
	and the nested classes of the FileTree implementation into separate
	files.  filetreeprivate.h is included by filetree.cc only.

	* src/Makefile.am (regexxer_SOURCES): Add new source files.

	* src/filebuffer.{cc,h}: Heavily modify and enhance the code in
	order to support the new undo framework.

	* src/filetree.{cc,h}: ditto.

	* src/controller.{cc,h}: Add undo ControlItem and show menu/toolbar
	items for it.

	* src/mainwindow.{cc,h}: Add code to maintain the undo stack and
	connect the GUI bits.

2002-11-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/signalutils.h (ScopedBlock): Move from filetree.cc hitherto.
	(ScopedConnection): ditto.

	* src/filetree.cc: Use the new signal stuff from namespace Util.

2002-11-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.{cc,h} (signal_preview_line_changed): Use the
	new Util::QueuedSignal rather than queuing manually.

2002-11-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/signalutils.{cc,h}: New files containing various sigc++
	related utilities.  For now, there's only Util::QueuedSignal,
	which implements a SigC::Signal0<void> that is emitted when the
	main loop is idle.

	* src/Makefile.am (regexxer_SOURCES): Add signalutils.{cc,h}.

2002-11-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.{cc,h} (trigger_preview_line_changed): Rename to
	queue_preview_line_changed() because that's what it does.

2002-11-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.cc (pango_context_changed): Ooops, I accidentally
	reversed the arguments to Gtk::IconSize::lookup().  Fixed.

2002-11-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (FileTree::ScopedBlockSorting): Introduce new
	utility class used to temporarily disable the column headers and to
	switch to the default sort column if the current one is the match
	count column.  This is necessary because Gtk::TreeModel::foreach()
	doesn't like it at all if model rows are reordered underneath its
	feet.  regexxer didn't handle that correctly until now, and the only
	reason this bug hasn't been observed before is #96647 :)

2002-11-23  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (FileTree::ErrorList): Rename to MessageList
	since it's not specifically intended for errors.  Use MI to combine
	Util::SharedObject and std::list<> instead of making the std::list
	a data member.  IS-A really makes sense here and this kind of class
	enhancement is what MI exists for, after all.

2002-11-22  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/Makefile.am (DEFS): Don't use backslash quoting inside the
	double-quoted string.  Rather, quote the outer pair of double-
	quotes with backslashes.  I reckon it's more portable not to use
	backslash quoting inside double-quoted strings since most other
	packages seem to avoid it too.

2002-11-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac (AC_TYPE_MODE_T): Eeek, this macro makes use of a
	deprecated autoconf macro.  Replace with AC_CHECK_TYPES([mode_t]).

	* src/configdata.cc: Do "typedef int mode_t" if necessary.

2002-11-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac: Check for mode_t too since we need it for umask().
	You can never know.

2002-11-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac (AM_INIT_AUTOMAKE): Remove 'dist-bzip2' option
	since we don't distribute bzipped tarballs right now.

2002-11-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac: Get rid of AC_CANONICAL_{BUILD,HOST,TARGET}.
	These don't seem to be necessary anymore.

2002-11-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* macros/cxx.m4: Use quadrigraphs to output characters like [ ].
	* macros/pcre.m4: Add error checking at the autoconf level.

2002-11-19  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/aboutdialog.cc: Set the default response.
	* src/prefdialog.cc: ditto.

2002-11-19  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/main.cc (stock_icon_info): It's Gtk::ICON_SIZE_MENU, not
	Gtk::ICON_SIZE_SMALL_TOOLBAR.  This glitch fortunately didn't have
	any real consequences since the icon size was wildcarded anyway.

regexxer 0.4:

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* NEWS: Update.

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/configdata.{cc,h}: Generalize the enumeration handling in
	two new functions, enum_to_string() and enum_from_string().

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/aboutdialog.cc: Refine the design a bit, and mention Ross
	Burton (Debian packager) as major contributor.

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/controller.cc (create_menubar): Don't use "<control>f" as
	accelerator for "Move forward" because it's already occupied by
	the tree view search facility.

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.{cc,h}: Move the GUI stuff from the ctor into an
	auxilary method create_main_vbox().  Manually call accelerate() on
	the menu bar because otherwise the menu accelerators wouldn't be
	enabled if the menu bar is never shown due to user preference.

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac (AC_INIT): Bump version to 0.4.

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.{cc,h}: Implement necessary bits to allow hiding
	menu bar or toolbar, and honor the menutool_mode config setting.
	Popup the new stand-alone about dialog on menubar/Help/Info.

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/prefdialog.{cc,h}: Remove "regexxer info" page.  Split up
	configuration into "Look'n'feel" and "File access" pages.  Add
	UI and class interface for the new menutool_mode config option.

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/aboutdialog.{cc,h}: New files, implementing stand-alone
	about dialog for regexxer.

	* src/Makefile.am: Add new files.

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/configdata.{cc,h}: Add support for menutool_mode config
	option, specifying whether to show menu bar, toolbar or both.

2002-11-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/main.cc (regexxer_register_stock_items): Always set the
	intended icon size, but disable wildcarding for all but the last
	pixbuf in an icon set.

2002-11-17  Daniel Elstner  <daniel.elstner@gmx.net>

	* pixmaps/stock_save_all_16.png: New menu icon.
	* pixmaps/Makefile.am: Add new icon.
	* src/main.cc: Register new icon.

2002-11-17  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/controller.cc (ControlItem::add_widget): Honor group_enabled_.

2002-11-17  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc: Change default size of the window to 600x450
	because the new menu bar takes up quite some space.

2002-11-17  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/controller.cc (ControlItem::activate): Don't ignore the
	group_enabled_ flag.

2002-11-17  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/controller.{cc,h} (create_menubar): Implement.
	* src/mainwindow.cc: Show the menu bar, and make both toolbar and
	menu bar detachable.

2002-11-17  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/controller.{cc,h}: New files, implementing class Controller
	and class ControlItem.  ControlItem maintains an arbitrary number
	of activation sources, and controls the sensitivity state of an
	arbitrary number of widgets too.  Controller centralizes all of
	the ControlItems and provides create() functions for all pure
	control widgets in regexxer.  Also, there's ControlGroup which can
	be used to set the sensitivity of several widgets at once.

	All this stuff became necessary due to the proposed addition of
	menus.  Getting the sensitivity of all widgets right was already
	quite complex.  After the integration of menus the old code would
	have reached a critical mass.

	* src/imagebutton.{cc,h}: New files, containing ImageButton and
	ImageLabelButton that were previously in mainwindow.cc.  We need
	them in controller.cc now too.

	* src/Makefile.am (regexxer_SOURCES): Add new files.

	* src/mainwindow.{cc,h}: Integrate the new Controller concept and
	get rid of the obsolete cruft.  We're now below 1000 lines again.

2002-11-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc: Show tool tips for both find buttons too.

2002-11-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc: Use sentence case for all tool tips, as
	suggested by Ross Burton.

2002-11-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/sharedptr.cc: Remove already unused debug code.  The
	reference counting is rock solid thanks to SharedPtr<>.

2002-11-15  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/sharedptr.h (SharedObject): Remove the namespace prefix from
	the friend declaration.  This will hopefully fix a compilation
	problem with GCC 2.95.x -- once again.

2002-11-14  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (on_busy_action_pulse): Simplify by reducing
	the amount of if-branches.

2002-11-13  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/sharedptr.h: Reimplement the static member templates
	cast_static<>(), cast_dynamic<>() and cast_dynamic_throw<>() as
	free functions, and use the boost naming convention.

	* src/filetree.cc: Use the new boost-like cast functions.

2002-11-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* regexxer.desktop: New desktop file, provided by Ross Burton.
	Thanks Ross!
	* Makefile.am: Distribute and install regexxer.desktop.

2002-11-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (find_files): Use std::string instead
	of Glib::ustring for 'dirname' and get rid of the call to
	Glib::filename_from_utf8().  This doesn't really belong here.

	* src/mainwindow.cc (on_find_files): Convert the directory name
	to filename encoding, and use the current directory as fallback
	if it's empty.

2002-11-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.{cc,h} (button_find_matches_): Set this button
	insensitive unless there is at least one file to search in.
	Suggested by Murray Cumming <murrayc@usa.net>.
	(button_find_files_): Likewise set this button insensitive if
	entry_pattern_ is empty.

2002-11-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.cc (on_buffer_modified_changed): Work around a nasty
	gtkmm bug:  Glib::SignalProxy seems to ignore the 'blocked' flag of
	the SigC::Connection object.  I'll fix this later in gtkmm itself.

2002-11-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* macros/pcre.m4 (PCRE_CHECK_UTF8): Mention libpcre's --enable-utf8
	option in the error message.

2002-11-11  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (on_treestore_sort_column_changed): New signal
	handler, used to recalculate path_match_first_ and path_match_last_.
	This fixes a serious bug -- the code relies on the validity of this
	cached range.

regexxer 0.3:

2002-11-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac (AC_INIT): Bump version to 0.3.

2002-11-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.cc (transform_pathname): Use byte-wise comparison
	because filenames should match exactly.  The Glib::ustring collation
	methods depend on the user's locale and might even ignore case.

2002-11-10  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (on_preferences): Make this strongly exception
	safe, just to demonstrate how to use std::auto_ptr<> properly :)

2002-11-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (on_preferences): If the preferences dialog
	is already open, call present() instead of raise().  The former
	does a much better job of putting the window where the user can
	see it.

2002-11-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (find_recursively): Call increment_file_count()
	from here instead of letting the caller do it.
	(find_check_file): Simplify by using Gtk::TreeModel::Row directly.

2002-11-09  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.cc (collatekey_sort_func): Use std::strcmp() instead
	of std::string::compare(), because libstdc++-v2 (which comes with
	GCC 2.95.x) is badly broken and doesn't support this particular
	overload of compare().  Darn.

regexxer 0.2:

2002-11-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* AUTHORS: Add myself ;)
	* NEWS: List major changes in 0.2.
	* README: Fix typos.

2002-11-08  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.cc (load_file_with_fallback): Emit row_changed()
	whenever the value of fileinfo->load_failed changed, rather than
	only if the file seems to be binary.

2002-11-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.{cc,h}: If there are any unsaved files on quit
	or when reloading the file tree, pop up a dialog asking for
	confirmation.

2002-11-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h}: Get rid of the code that expanded/collapsed
	directory nodes on row clicks and the activated signal.  The GTK+
	people persuaded me that the inconsistency is worse than the little
	annoyance of having to hit the expander arrow.

2002-11-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (on_row_activated): Override, in order to
	expand/collapse a directory node when the spacebar was pressed.

2002-11-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (on_button_release_event): Override, in
	order to expand a directory node when the user clicked anywhere
	inside the row.  This might improve usability a bit.

2002-11-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.cc: Make the column headers trigger sorting when
	clicked.  Again use a default sort function in order to get three
	modes of sorting.  That is, the default is ascending sort with
	directories first, but when clicking a column header no difference
	is made between files and directories.

2002-11-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (load_file_with_fallback): Ooops, I forgot
	that buffers are now freed whenever possible, thus we shouldn't
	just return even if fileinfo->load_failed has already been set.

2002-11-07  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (text_cell_data_func): Simplify.
	(load_file_with_fallback): Improve robustness of the code, and
	trigger row_changed() if load_failed has been set.  For some
	reason it worked without this explicit emission, but it's better
	not to rely on that.

2002-11-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h}: Show an icon indicating whether the item
	is a file or directory in front of the filename.  Check it out,
	this eye candy looks really nice.

2002-11-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/fileio.cc (save_file): Get rid of the #96373 work-around.

2002-11-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac (PKG_CHECK_MODULES): Require gtk+-2.0 >= 2.0.6 in
	order to match the web page.
	(AC_INIT): Bump version to 0.2.  Yay!

2002-11-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac (PKG_CHECK_MODULES): Require glib-2.0 >= 2.0.7.
	This is necessary due to GLib bug #91222 -- I don't want people
	thinking regexxer segfaulted randomly all the time because it
	were badly coded.

2002-11-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h} (collatekey_sort_func): Make this the sort
	function for mixed directory/file view.
	(collatekey_sort_func_dirs_first): Move the content of the former
	collatekey_sort_func() into here.
	(collatekey_sort_func_dirs_first_descending): Extra sort function
	which correctly reverses the meaning of the first byte in the key.
	This is for use with Gtk::SORT_DESCENDING.

2002-11-06  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h}: Speed up and simplify sorting by merging
	the directory/file information into the collate key (directories
	get a leading '0', files get a leading '1').  This is amazingly
	easy and not hackish in any way -- after all, this kind of pre-
	processing the strings is exactly what collate keys are for.

2002-11-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.{cc,h} (is_freeable): New method that checks
	whether it's safe to unreference the buffer.  This can be used
	to reduce the memory footprint.

	* src/filetree.{cc,h}: Unreference the text buffer whenever
	possible.  For instance, we really don't need to keep a buffer
	in memory that has match_count == 0 and wasn't modified.  Also
	fix propagation of signal_match_count_changed().

2002-11-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.cc (select_next_file): Re-add a missing
	"return true;" that got lost in a previous change.

2002-11-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/fileio.{cc,h} (FileInfo): Split this data structure into
	DirInfo and FileInfo, with a common base class FileInfoBase.
	This should be cleaner than having data members that can be
	invalid.

	* src/filetree.{cc,h}: Use the new DirInfo and FileInfo structs.
	Propagate changes of a buffer's modified change to all parent
	nodes, and color them red too.  Fix potential race conditions
	due to reassigment of blocked connections.

2002-11-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/sharedptr.h (SharedPtr<T>::cast_static): implement
	(cast_dynamic): implement
	(cast_dynamic_throw): implement.

2002-11-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filetree.{cc,h}: New files replacing filelist.{cc,h}.  The
	files are now displayed in a directory tree which is much cooler.
	As a side effect, it's now way faster when searching thousands of
	files.

	* src/Makefile.am: s/filelist/filetree/
	* configure.ac: Use src/pcreshell.cc as unique source file.

	* src/fileio.{cc,h} (FileInfo): Introduce a file_count member
	variable that became necessary to support subdirectories.

	* src/mainwindow.{cc,h}: Use the new FileTree widget.

2002-11-05  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc: In on_find_files() and on_exec_search(), make
	sure the corresponding button is sensitive before starting the busy
	action.  This is necessary since these callbacks are invoked from
	the entries' signal_activate() too.

2002-11-04  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/pcreshell.{cc,h}: Minor code cleanup.  Add a few assertions
	and a couple of comments.

regexxer 0.1:

2002-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* pixmaps/Makefile.am: s/noinst_DATA/dist_noinst_DATA/ so that
	the pixmap files are included in the distribution.

2002-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/fileio.cc: Close and reopen the I/O channel when switching
	the encoding.  Changing encodings on the fly doesn't seem to work
	with older GLib releases.

2002-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc src/stringutils.cc: Be more tolerant about
	fucked up filenames.  Still show a (hopefully) annoying warning
	message, though.

2002-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc: Invoke file search respectively regex search
	on the entry widgets' signal_activate().

2002-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.cc (apply_modifiers): Handle modifier sequences
	like "\u\L$2" correctly.  Since it's not an recursive function the
	code got pretty messy.  Needs to be refactored at some point.

2002-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/configdata.cc: Use g_warning() instead of g_message().  These
	errors don't occur on a normal setup and should really go to stderr.

2002-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/configdata.cc: Generalize the enum nick/value mapping code,
	and improve the error message strings.

2002-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (on_hide): hide() the preferences dialog
	instead of deleting it, so that on_pref_dialog_hide() is executed
	to save the configuration data.

2002-11-03  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/configdata.{cc,h}: New files, implementing load/save of
	configuration data to a file.

	* src/Makefile.am: Add new files.
	* configure.ac: Check for umask() and its header files.

	* src/mainwindow.{cc,h}: Make use of the new code to load and
	save the configuration data.

	* src/stringutils.{cc,h} (trim_whitespace): New utility function.
	* src/prefdialog.cc (validate_encoding): Move to stringutils.{cc,h}.

2002-11-02  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/prefdialog.{cc,h}: Prevent double emission of
	signal_pref_toolbar_style_changed().

2002-10-31  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.{cc,h} (find_files): Replace the pattern string
	argument with Pcre::Pattern& for consistency with find_matches().

	* src/mainwindow.cc (on_find_files): Construct the Pcre::Pattern
	for use with find_files().

2002-10-30  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.{cc,h} (FileList::FindError): Store a list of
	strings instead of Glib::Error objects.  We don't need the extra
	information from Glib::Error, and plain strings gives us more
	flexibility with regards to message strings.

	* src/filelist.cc (save_current_file): Report errors to the caller
	using FileList::FileError exceptions.
	* src/filelist.cc (save_all_files): ditto.

	* src/mainwindow.{cc,h}: Generalize FindErrorDialog into
	FileErrorDialog and use it to report file saving errors too.

2002-10-29  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.{cc,h} (FileList::FindError): Explicitly implement
	copy ctor and assignment operator.

	* src/filelist.cc (on_buffer_match_count_changed): Clutter the
	code with assertions, just to be sure.

2002-10-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/statusline.cc (CounterBox): Improve size calculation of the
	counter labels -- it no longer depends on '9' being the widest digit.

	* src/statusline.{cc,h} src/mainwindow.cc: Show the encoding of the
	currently displayed file in the statusbar.

2002-10-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.{cc,h}: Collect file access errors during execution
	of find_files() and, when finished, return the list of errors via
	an exception to the caller.

	* src/mainwindow.cc (on_find_files): Show an error message dialog
	if the search pattern is invalid or if errors occurred during file
	search.

2002-10-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (on_exec_search): I changed my mind, there is
	absolutely no need to show off Util::next() here :)

2002-10-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.h: Introduce next() and prev() templates,
	shamelessly stolen from boost.

	* src/mainwindow.cc (on_exec_search): Use Util::next().

2002-10-28  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (on_exec_search): If there was an error in
	the regex, move the Gtk::Entry cursor to the character reported
	by Pcre::Error::offset().

2002-10-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.{cc,h} (int_to_string): New function.

	* src/mainwindow.cc (on_exec_search): Show an error dialog if
	there is an error in the regex.

2002-10-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (on_select_folder): Hide the file selection
	pane in the Gtk::FileSelection dialog, since we only need the
	directory part.

2002-10-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.{cc,h} src/prefdialog.cc: Get rid of
	ascii_toupper() and AsciiToupper because I just added the
	formerly missing Glib::Ascii::toupper() to glibmm :-P

2002-10-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.h (AsciiToupper): New unary predicate that
	forwards to ascii_toupper().

	* src/prefdialog.cc (on_entry_fallback_activate): Use the
	AsciiToupper predicate so that the call can be inlined.

2002-10-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.{cc,h} (ascii_toupper): Make this utility function
	publically available.

	* src/prefdialog.cc (on_entry_fallback_activate): Convert the
	encoding name to upper case.

2002-10-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.{cc,h}: Explicitely delete the preferences dialog
	on exit.  Although this isn't really necessary, it does look neater
	if we have a lot of cleanup to do on exit.

2002-10-27  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.cc (find_matches): Correctly forward one character
	rather than one byte after matching the empty string twice.  Also,
	improve cancellation response by moving the signal_pulse() emission
	into the inner loop (shouldn't harm performance since we emit only
	once for 128 iterations anyway).

2002-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/fileio.{cc,h} src/filelist.{cc,h}: Make the fallback
	encoding configureable, so that it can be changed from the
	preferences dialog.

	* src/prefdialog.{cc,h} src/mainwindow.cc: Honor the preference
	setting of the fallback encoding.

2002-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* pixmaps/stock_menu_about.png: New image stolen from Gnome2.
	* pixmaps/Makefile.am src/main.cc: Register the new stock image.

	* src/prefdialog.{cc,h}: New files, implemening the preferences
	dialog.  The about box is integrated as second notebook page,
	because I couldn't think of a better place to put it.

	* src/mainwindow.{cc,h}: Make the preferences tool button work.

2002-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/main.cc: Set a global window icon list.

	* src/mainwindow.cc: Consider both the movement buttons and the
	replace buttons as part of the "action area".  This fixes wrong
	sensitivity of the movement buttons during busy actions.

2002-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/statusline.{cc,h}: Install an accelerator key (Escape) for
	the cancel button.

2002-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.{cc,h} src/mainwindow.{cc,h}: Major cleanup of the
	busy action cancelation code.  The new code is now centralized in
	class MainWindow, and has been merged with the progressbar pulse
	notification and busy GUI updating.

	* src/filebuffer.{cc,h}: Implement support for cancelation of busy
	actions such as find_matches(), using the new scheme described
	above.

	* src/statusline.{cc,h}: Add cancel button to the GUI.

2002-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.cc (create_with_error_message): Improve message
	title: s/Load failed/Can't read file/

2002-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.cc src/mainwindow.cc: Make use of the progress bar
	pulse feature while globally replacing matches, too.

2002-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.cc (create_with_error_message): Don't forget
	set_modified(false) after filling the buffer.

2002-10-26  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/statusline.cc: Correctly handle signal_style_changed()
	from the labels rather than the container.

	* src/filebuffer.{cc,h} src/fileio.{cc,h} src/filelist.{cc,h}:
	Instead of printing error messages to the console, write the
	message to a text buffer.  Use a dialog error stock image so
	that it looks good.

	* src/filebuffer.{cc,h} src/filelist.{cc,h} src/mainwindow.{cc,h}:
	In the match counter, display the number of matches per file rather
	than the overall match count.  Also, remember this original match
	count and don't decrease it when removing matches.  Make the match
	index counter work.

2002-10-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/statusline.{cc,h} (CounterBox): New class encapsulating a
	single "index/count"-style counter, for use by class StatusLine.
	Further improve calculation of the label lengths.

	* src/filelist.{cc,h} src/mainwindow.{cc,h}: Add a file_index
	parameter to FileList::signal_switch_buffer() and display it in
	the status line.

2002-10-25  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.{cc,h}: Implement support for matching empty
	strings, while emulating the behaviour of Perl's /g modifier.

2002-10-24  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/statusline.{cc,h}: New files, implementing the status box
	at the bottom of the main window.

	* src/mainwindow.{cc,h} src/filelist.{cc,h}: Implement file and
	match counter using the new StatusLine object.

	* src/filelist.{cc,h}: Speed up sorting by defining a custom sort
	function that makes use of collate keys.

2002-10-24  Daniel Elstner  <daniel.elstner@gmx.net>

	* macros/cxx.m4: New file, implementing custom autoconf macros
	related to checking the C++ compiler/environment.
	(REGEXXER_CXX_HAS_STD_LOCALE): New m4 macro.
	(REGEXXER_ARG_ENABLE_WARNINGS): New m4 macro.

	* configure.ac: Make use of the new autoconf macros.
	* Makefile.am (EXTRA_DIST): Add macros/cxx.m4.

2002-10-21  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac: Require gtkmm-2.0 >= 2.0.0.

2002-10-21  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/fileio.cc: Dump std::[io]fstream in favor of Glib::IOChannel.
	It's less code now and the error reporting should be better too.

2002-10-21  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/fileio.{cc,h}: New files.
	* src/filelist.{cc,h}: Separate the load/save functionality into
	fileio.{cc,h} to improve modularity of the code.

2002-10-21  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.{cc,h} (FileList::find_recursively): Move the
	file_test() code into a separate method find_check_file(), and
	improve the error handling.

2002-10-21  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.{cc,h}: Cache the Gdk::Color object used for
	files which failed to load.

	* src/mainwindow.cc: Replace some unnecessary run-time checked
	casts with static ones.

2002-10-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc (MainWindow::on_filelist_bound_state_changed):
	Don't forget to update the prev/next match buttons' sensitivity.

2002-10-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.cc (FileList::find_files): Catch exceptions from
	Glib::Dir and Glib::file_test().

2002-10-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.{cc,h} (Util::convert_to_ascii): New function
	which replaces all non-ASCII characters with '?'.  This should be
	used for error messages when everything else failed.

	* src/filelist.cc: Use filename_to_utf8_fallback() in a few more
	places.  Also, if the filename conversion fails ultimately show a
	warning and skip the file.

2002-10-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/stringutils.{cc,h} (Util::filename_to_utf8_fallback): New
	wrapper function for Glib::filename_to_utf8() that works even if
	the user hasn't set G_BROKEN_FILENAMES correctly.  In that case
	it shows a hopefully annoying g_warning().

	* src/filelist.cc: Use Util::filename_to_utf8_fallback() where
	appropriate.
	* src/mainwindow.cc: ditto.

2002-10-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.cc: Speed up find_files() by updating the GUI
	every 16 iterations rather than all the time.

2002-10-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.{cc,h} src/filelist.{cc,h}: Implement "Save" and
	"Save all" functionality.  Also, separate the file list boundary
	notification from signal_switch_buffer() -- should be a lot more
	robust now.

2002-10-20  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.{cc,h} src/filelist.{cc,h}: Add "Save all" tool
	button and implement sensitivity setting for "Save" and "Save all".

2002-10-19  Daniel Elstner  <daniel.elstner@gmx.net>

	* pixmaps/stock_save_all_24.png: New file.
	* pixmaps/Makefile.am: Use gdk-pixbuf-csource to generate inline
	stock pixbufs.
	* configure.ac: Check for gdk-pixbuf-csource.
	* src/main.cc: Register new stock items for regexxer.

2002-10-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filelist.{cc,h}: Paint rows of modified files in red.

2002-10-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/mainwindow.cc: Make the TextView non-editable if no file
	is loaded.

2002-10-18  Daniel Elstner  <daniel.elstner@gmx.net>

	* configure.ac: Require sigc++ >= 1.2.1 and gtkmm >= 1.3.27.

2002-10-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.{cc,h} src/filelist.{cc,h} src/mainwindow.{cc,h}:
	Implement match substitution for the current file and all files,
	and get notification on match count changes working correctly.

2002-10-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/Makefile.am (DEFS): Define all the *_DISABLE_DEPRECATED
	macros just to prove regexxer is legacy-free ;)

2002-10-16  Daniel Elstner  <daniel.elstner@gmx.net>

	* src/filebuffer.h (BoundState): Define operator|=() and friends.
	* src/filebuffer.cc: Use the new operator.

2002-10-16  Daniel Elstner  <daniel.elstner@gmx.net>

	Woohoo, first ChangeLog entry for regexxer!

	* virtually all files: Insert copyright notice and CVS Id tags.

