1. 19 Feb, 2011 2 commits
  2. 25 Apr, 2010 1 commit
  3. 24 Sep, 2009 1 commit
  4. 21 Sep, 2009 1 commit
  5. 13 Jan, 2007 1 commit
    • Daniel Elstner's avatar
      New string constant defining the directory of regexxer in the GConf · 83eba3dd
      Daniel Elstner authored
      * src/globalstrings.h (conf_dir_application): New string constant
      defining the directory of regexxer in the GConf database.  This
      string literal replaces the REGEXXER_GCONF_DIRECTORY macro which
      used to be defined in the Makefile.  This global macro definition
      was inherently pointless as it was not configurable anyway.
      * src/main.cc (initialize_configuration): Use conf_dir_application
      * src/prefdialog.cc (PrefDialog::initialize_configuration): ditto.
      * configure.ac (REGEXXER_GCONF_DIRECTORY): Remove substitution.
      (PKG_CHECK_MODULES): Add gmodule-export-2.0 to the module list to
      get the -Wl,--export-dynamic flag automatically.
      (DK_LINK_EXPORT_DYNAMIC): Remove macro invocation as it no longer
      necessary.  Also, add comments elaborating about the whole linker
      * Makefile.am (global_defs): Remove -DREGEXXER_GCONF_DIRECTORY.
      (src_regexxer_LDFLAGS): Get rid of $(REGEXXER_EXPORT_DYNAMIC).
      * m4/dk-export.m4 (DK_LINK_EXPORT_DYNAMIC): Remove macro.
      svn path=/trunk/; revision=631
  6. 06 Jan, 2007 2 commits
    • Daniel Elstner's avatar
      Remove leftover string constant. · 466b50df
      Daniel Elstner authored
      * src/globalstrings.h (glade_aboutdialog_filename): Remove
      leftover string constant.
      svn path=/trunk/; revision=596
    • Daniel Elstner's avatar
      Update copyright notice: The postal address of the Free Software · 7335f7fb
      Daniel Elstner authored
      * src/*.{cc,h}: Update copyright notice:  The postal address of
      the Free Software Foundation changed, and my email address too.
      Also, remove the statement I had inserted which explicitely
      disallowed using a later version of the license.  I think I do
      not have to ask for permission from contributors, since the
      copyright notice only mentions me as the copyright holder, so
      technically everyone automatically transferred her copyright
      to me.  Anyway, the change is utterly minor and the notice now
      matches what everyone else is using.
      Also use the opportunity to get rid of the version control
      substitutions and the trailing empty line in every file.
      * ui/aboutdialog.glade: Update my email address.
      svn path=/trunk/; revision=589
  7. 10 Dec, 2006 1 commit
    • Daniel Elstner's avatar
      Use gtk_window_set_default_icon_name() to have the default window icon · a43b09cb
      Daniel Elstner authored
      * src/main.cc (main): Use gtk_window_set_default_icon_name() to
      have the default window icon looked up in the icon theme, rather
      than explicitely specifying an image filename.  For some reason
      this method has not been wrapped yet.
      (set_default_window_icon): Remove now unused function.
      * src/aboutdialog.cc (AboutDialog::create): For the same reason as
      above, use Gtk::Image::set_icon_from_name() instead of an explicit
      filename to load the application icon.
      * src/globalstrings.h (application_icon_filename): Remove now
      unused string.
  8. 30 May, 2004 1 commit
    • Daniel Elstner's avatar
      Remove configuration option because it doesn't seem to be necessary · ff38f48d
      Daniel Elstner authored
      * regexxer.schemas.in (override_direction): Remove configuration
      option because it doesn't seem to be necessary anymore.  That is,
      the current GTK+ release gets the direction of Latin text in RTL
      locales right now.
      * src/globalstrings.h (conf_key_override_direction): Remove.
      * src/mainwindow.cc (MainWindow::on_conf_value_changed): Remove
      the code that handles the "override_direction" config option.
      * src/prefdialog.{cc,h} (PrefDialog): ditto.
      * ui/prefdialog.glade (button_override_direction): Remove.
  9. 16 May, 2004 1 commit
    • Daniel Elstner's avatar
      Removes the <requires lib="gnome"/> line that was inserted by buggy · 797604cf
      Daniel Elstner authored
      2004-05-16  Daniel Elstner  <daniel.elstner@gmx.net>
      	* ui/prefdialog.glade: Removes the <requires lib="gnome"/> line
      	that was inserted by buggy glade-2.
      2004-05-14  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/filetree.cc: Replace instances of `...' in message strings
      	with "...".  Since the translator is supposed to use double-quotes
      	it would be confusing to use single quotes in the original string.
      	* src/mainwindow.cc: ditto
      	* src/prefdialog.cc: ditto.
      2004-05-14  Daniel Elstner  <daniel.elstner@gmx.net>
      	* ui/mainwindow.glade (button_find_files): Use a custom image and
      	label instead of a stock item as button content, so that it can be
      	more clearly distinguished from button_find_matches.
      2004-05-13  Daniel Elstner  <daniel.elstner@gmx.net>
      	* ui/mainwindow.glade: Reintroduce tearoff menu items by manually
      	inserting the necessary XML elements.
      2004-05-12  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/fileio.cc: Remove the libgnome-vfsmm code already enclosed
      	by #if 0 ... #endif.  It's all in the CVS history anyway.
      	* src/filetree.cc: ditto.
      2004-05-12  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/imagebutton.{cc,h}: Remove files as they're no longer used.
      	* src/Makefile.am (regexxer_SOURCES): Remove imagebutton.{cc,h}.
      2004-05-10  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/globalstrings.h (glade_mainwindow_filename): New string.
      	* src/mainwindow.{cc,h}: Use libglademm to load the UI at runtime,
      	and make the actual Gtk::Window a member of class MainWindow.
      	Remove the old UI creation code.
      	* src/controller.{cc,h} (Controller::load_xml): The menu bar,
      	toolbar and action area is now contained in mainwindow.glade,
      	and thus this new method wholly replaces the old code which
      	generated those widgets.
      	(ControlItem::add_widgets): New helper method intented to help
      	reducing the code size.
      	* src/filetree.cc (regexxer_create_file_tree): New function.
      	* src/statusline.cc (regexxer_create_status_line): New function.
      	* src/main.cc (main): Access the Gtk::Window by using the new
      	accessor method Regexxer::MainWindow::get_window().
      2004-05-10  Daniel Elstner  <daniel.elstner@gmx.net>
      	* ui/mainwindow.glade: New file defining the main window's UI.
      	* ui/Makefile.am (dist_glade_DATA): Add mainwindow.glade.
      2004-05-10  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/globalstrings.h (glade_aboutdialog_filename): New string.
      	* src/aboutdialog.{cc,h}: Use libglademm to load the dialog UI
      	at runtime, and replace class AboutDialog by a single create()
      	function in namespace Regexxer::AboutDialog.  Remove the old
      	UI creation code.
      	* src/mainwindow.{cc,h} (MainWindow::about_dialog_): Change type
      	to std::auto_ptr<Gtk::Dialog> since AboutDialog no longer exists.
      	Replace all references to AboutDialog in the implementation too.
      	(MainWindow::on_about): Make use of the new AboutDialog::create().
      2004-05-10  Daniel Elstner  <daniel.elstner@gmx.net>
      	* ui/aboutdialog.glade: New file defining the UI of the about
      	* ui/Makefile.am (dist_glade_DATA): Add aboutdialog.glade.
      2004-05-10  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/prefdialog.cc (PrefDialog::load_xml): Remove superfluous
      2004-05-10  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/prefdialog.cc (regexxer_create_font_selection_button):
      	Add missing parameters to the function signature.
      	(regexxer_create_color_selection_button): ditto.
      2004-05-10  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/Makefile.am (global_defines): Define REGEXXER_PKGDATADIR.
      	* src/globalstrings.h (glade_prefdialog_filename): New string.
      	* src/prefdialog.{cc,h}: Use libglademm to load the dialog UI
      	at runtime, and make the actual dialog widget a data member of
      	class PrefDialog.  Remove the old UI creation code.
      	* src/mainwindow.cc (MainWindow::on_preferences): Use the new
      	PrefDialog::get_dialog() accessor to get the actual widget.
      2004-05-10  Daniel Elstner  <daniel.elstner@gmx.net>
      	* ui: New directory for glade XML files.
      	* ui/.cvsignore: New file.
      	* ui/Makefile.am: New file.
      	* ui/prefdialog.glade: New file defining the UI of the preferences
      	* configure.ac (PKG_CHECK_MODULES): Check for libglademm-2.0.
      	(AC_CONFIG_FILES): Add ui/Makefile.
      	* Makefile.am (SUBDIRS): Add ui.
      2004-05-08  Daniel Elstner  <daniel.elstner@gmx.net>
      	* AUTHORS: Add Murray Cumming.
      	* NEWS: Update.
      2004-05-08  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/translation.{cc,h} (sgettext): Ditch the sgettext() approach,
      	because it's not likely to be supported by libglade when regexxer
      	starts using that at some point.  Until now there are no ambiguous
      	messages in regexxer, and we can switch back when the need arises.
      	* src/controller.cc: Remove the disambiguing "...|" prefix from all
      	translatable messages.
      	* src/filebuffer.cc: ditto
      	* src/filetree.cc: ditto
      	* src/mainwindow.cc: ditto
      	* src/prefdialog.cc: ditto
      	* src/statusline.cc: ditto.
      2004-05-07  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/main.cc (stock_icon_info): Rename to 'stock_icon_about',
      	as it should have been called in the first place.  Apparently
      	I misinterpreted a change in the German GNOME translation as
      	project-wide switch to a new name for "About".  Now I realize
      	why Murray changed that string a while ago...
      	* src/controller.{cc,h} (Controller::info): Rename to 'about'.
      	* src/mainwindow.{cc,h} (MainWindow::on_info): Rename to 'on_about'.
      2004-05-06  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/translation.cc (compose_impl): Simplify the loop in order to
      	avoid the need for look-ahead via Util::next().
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/translation.cc (compose_impl): Apparently there's no need
      	to use Glib::Unicode::isdigit() since digit_value() is defined to
      	return -1 for non-digits anyway.
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/translation.{cc,h} (compose): Add a set of overloaded utility
      	functions to be used to compose a text message from a format string
      	and up to three string arguments.  This allows the translator to
      	arrange the arguments as required by the language.
      	* src/filetree.cc (FileTree::save_file_at_iter): Make use of
      	Util::compose() instead of separately piecing strings together.
      	Also, translate the format string via gettext().
      	(load_file_with_fallback): ditto
      	* src/mainwindow.cc (MainWindow::on_exec_search): ditto
      	* src/prefdialog.cc (PrefDialog::on_entry_fallback_activate):
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/miscutils.cc: Compile the runtime check for that gconfmm
      	bug only if REGEXXER_ENABLE_GCONFMM_VALUE_HACK is defined, as it
      	currently always is.
      	* src/main.cc (main): Test for REGEXXER_ENABLE_GCONFMM_VALUE_HACK
      	around the call to Util::check_for_broken_gconfmm_value_changed().
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/translation.{cc,h} (initialize_gettext): New utility
      	function to take care of setting up the text domain.
      	* src/main.cc (main): Use initialize_gettext().
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	* ABOUT-NLS: Add missing file to fix the build.
      	* src/aboutdialog.cc: Translate all user-visible strings except
      	for those instances where positional parameter substitution is
      	required for proper results.  I'll deal with those ones later.
      	* src/controller.cc: ditto
      	* src/filebuffer.cc: ditto
      	* src/filetree.cc: ditto
      	* src/main.cc: ditto
      	* src/mainwindow.cc: ditto
      	* src/pcreshell.cc: ditto
      	* src/prefdialog.cc: ditto
      	* src/statusline.cc: ditto.
      	* src/translation.h (N_): #define to gettext_noop(s) rather than
      	simply (s).  This doesn't actually make a difference but I think
      	the intent is clearer that way.
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	Add support for message translation via gettext.
      	* po: New directory, containing all the gettext stuff.
      	* config.rpath: New file added by gettextize.
      	* mkinstalldirs: ditto.
      	* Makefile.am (dist_noinst_SCRIPTS): Add config.rpath.
      	* autogen.sh: Don't remove mkinstalldirs because it's not
      	installed by automake --add-missing, and gettext uses it.
      	(WARNINGS): Comment-out in order to reduce the flood of warnings
      	triggered by all the old m4 code in system macros.
      	* configure.ac: Invoke AM_GNU_GETTEXT().
      	(AC_CONFIG_FILES): Add po/Makefile.in.
      	* NEWS: Update.
      	* src/translation.{cc,h}: New files implementing gettext() support.
      	* src/statusline.cc: Translate the label of the "Stop" button.
      	* src/main.cc (main): Add code to initialize the text domain.
      	* src/Makefile.am (regexxer_SOURCES): Add translation.{cc,h}.
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/miscutils.{cc,h} (check_for_broken_gconfmm_value_changed):
      	Implement a truly evil run-time check for that gconfmm bug.
      	Although this one is already fixed in CVS, there's no release out
      	yet and for now I wouldn't like regexxer to depend on it anyway.
      	(has_broken_gconfmm_value_changed): Provide an accessor function
      	to the global flag indicating whether gconfmm is broken.
      	* src/main.cc (main): Call check_for_broken_gconfmm_value_changed().
      	* configure.ac (REGEXXER_GCONFMM_VALUE_HACK): Make this macro
      	call has_broken_gconfmm_value_changed() to determine whether the
      	work-around has to be applied.
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/filebuffer.cc (FileBuffer::replace_match): Invoke on_insert()
      	directly in case of empty-by-empty replace in order to avoid this
      	nasty special-case where a FileBufferActionRemoveMatch object in
      	the stack is not followed by either an insert or an erase action.
      	This finally fixes the last one of undo system bugs known to me.
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	* configure.ac (AC_INIT): Bump version number to 0.7.
      2004-05-05  Daniel Elstner  <daniel.elstner@gmx.net>
      	* src/*.{cc,h}: Apply a minor change of my coding style.  From
      	now on, I put a space between a keyword and the following opening
      	parenthesis.  That is, after for, while, if, switch and catch, with
      	sizeof being the only (I think rather intuitive) exception.
      	* src/globalstrings.h: New file containing (you guess it) global
      	string definitions.  Currently these are mostly fully qualified
      	GConf key names.
      	* src/configdata.{cc,h}: Delete, as we're now using GConf.
      	* src/Makefile.am (regexxer_SOURCES): Modify accordingly.
      	* src/aboutdialog.cc: Prefix URL and mail strings with U+202D
      	LEFT-TO-RIGHT OVERRIDE in order to avoid the current mess in
      	RTL environments.
      	(ContributorBox::ContributorBox): Escape the 'what' string by
      	passing it to Glib::Markup::escape_text(), just in case.
      	* src/controller.cc (add_widget_button): Reverse parameters
      	for consistency with the other helper functions.
      	(Controller::create_action_area): Make the implementation reflect
      	this change.
      	* src/filebuffer.{cc,h} (RegexxerTags::on_conf_value_changed):
      	New signal handler listening to GConf value changes.
      	(RegexxerTags::instance): Return the RefPtr<> by value rather
      	than by reference, because as it turns out the extra indirection
      	largely offsets the advantage gained by avoiding one additional
      	ref/unref cycle.
      	(FileBuffer::set_match_color): Remove; this setter is no longer
      	necessary since we're now listing to GConf changes and apply them
      	(set_current_color): ditto
      	(get_match_color): ditto
      	(get_current_color): ditto.
      	(FileBuffer::weak_undo_stack_): Introduce a new data member used to
      	record all UndoAction objects that reference MatchData instances.
      	This is unfortunately necessary in order to be able to remove
      	UndoActions without actually doing the undo operation, for instance
      	when running find_matches() again.
      	(notify_weak_undos): New function dealing with the weak references.
      	(undo_add_weak): ditto
      	(undo_remove_weak): ditto.
      	(signal_match_count_changed): Remove the count argument as this
      	information can easily be obtained by using the appropriate getter.
      	(create_with_error_message): Invoke Unicode::ispunct() instead of
      	testing for '.' explicitely.
      	(is_freeable): Return true only if there are no UndoAction objects
      	around referencing this FileBuffer.
      	(find_matches): Call notify_weak_undos() to get rid of any
      	references by UndoAction objects to this FileBuffer.
      	(get_line_preview): Make this method strongly exception-safe.
      	(on_apply_tag): New virtual method implementation, needed in order
      	to filter tag apply operations caused by inserting from clipboard.
      	This avoids confusion caused by highlighting text as match which
      	is not recorded as such internally.
      	* src/undostack.{cc,h}: Provide a way to interrupt a running undo
      	operation (i.e. by clicking the 'Stop' button in the GUI).
      	(do_undo): Add a slot parameter for this purpose.
      	(undo): ditto.
      	* src/filebufferundo.{cc,h} (do_undo): Make use of the new slot
      	parameter in order to allow for interuption of the undo process.
      	(FileBufferActionRemoveMatch): Make use of the weak notification
      	mechanism now provided by FileBuffer.
      	* src/fileshared.h (MatchData::get_match_length): Remove this
      	pointless accessor function.
      	* src/fileshared.cc (MatchData::~MatchData): Be extra careful
      	and remove the quark pointing to the MatchData instance from the
      	mark object.
      	* src/filetree.{cc,h} (FileTree::on_conf_value_changed): New
      	signal handler listening to GConf value changes.
      	(set_fallback_encoding): Remove this now pointless accessor.
      	(get_fallback_encoding): ditto.
      	(expand_and_select): Get rid of compatibility code for GTK+ < 2.2.
      	(on_buffer_match_count_changed): Adapt to the changes made to
      	* src/filetreeprivate.cc (collatekey_sort_func): Use std::memcmp()
      	instead of std::strcmp() as the former allows for inlining of the
      	string operation by gcc.
      	(FileTree::BufferActionShell::do_undo): Make use of the new slot
      	parameter in order to allow for interuption of the undo process.
      	* src/main.cc (set_default_window_icon): New name, formerly
      	regexxer_set_window_icon().  Replace the pixbuf list stuff with
      	a simple call to Gtk::Window::set_default_icon_from_file().
      	(trap_gconf_exceptions): New global exception handler callback,
      	invoked whenever an exception escapes from a C++ handler of
      	a GObject signal.  Our particular handler is used to filter any
      	Gnome::Conf::Error exceptions, thus in essence ignoring them.
      	This way we don't need to deal with exceptions in each handler
      	of the GConf "value_changed" signal.
      	(initialize_configuration): New function to be invoked by main()
      	in order to load the initial configuration values.  By emitting
      	an artificial "value_changed" signal for each entry in regexxer's
      	GConf directory, the need for separate initialization code for
      	each key is neatly avoided.
      	(main): Accomodate the changes listed above.
      	* src/mainwindow.{cc,h} (MainWindow::on_conf_value_changed):
      	New signal handler listening to GConf value changes.
      	(on_preferences): Remove all the code dealing with individual
      	configuration values, since we're now using a decentralized change
      	notification approach instead.
      	(load_configuration): Ditch this.
      	(save_configuration): ditto.
      	(confirm_quit_request): Honor the fact that the new GTK+ file
      	selector doesn't append '/' to directories anymore.  This bug
      	is quite annoying and should have been fixed months ago :/
      	Also widen the dialog's default size to 400 pixels.
      	(on_buffer_match_count_changed): Remove, there's no need to
      	listen for this on the FileBuffer because the FileTree is
      	reflecting these changes anyway.
      	(on_buffer_bound_state_changed): ditto.
      	(on_bound_state_changed): Because there's only one now, rename
      	from on_filetree_bound_state_changed().
      	(on_filetree_match_count_changed): Take care of the FileBuffer
      	match count as well.
      	(on_go_next): Replace the 0.2 delta passed to scroll_to_mark()
      	with 0.125, as the latter looks nicer to my eyes and also happens
      	to be a 'round' number in base 2.
      	(on_undo): Accomodate the changes made to the UndoAction classes
      	in order to allow for interruption of the running undo process.
      	Also instantiate a BusyAction object for this purpose.
      	(undo_stack_clear): New method.
      	(set_title_filename): Replace the plain '-' by U+2013 EN DASH.
      	* src/miscutils.{cc,h} (gtk_version_at_least): Remove since it's
      	no longer used.
      	* src/pcreshell.{cc,h}: To my astonisment I found out that the
      	source of my constant trouble with libpcre and UTF-8 text was
      	caused by pcre_study() alone!  The great thing is of course that
      	simply not using that silly function is all that's needed to get
      	rid of this constant source of mayhem.
      	(escape_non_ascii): Remove, since no longer needed.
      	(translate_to_char_offset): Get rid of this one too.
      	(byte_to_char_offset): New little helper function.
      	(check_for_single_byte_escape): The "\C" escape sequence seems
      	to be only thing we still have to take care of manually.  This
      	particular sequence matches a single byte even of a multi-byte
      	character, and thus is likely to cause hell to break loose.
      	(Pattern::pcre_extra_): Remove.
      	(Pattern::Pattern): Get rid of the pcre_study() call, and
      	make use of the new check_for_single_byte_escape() function.
      	(Pattern::~Pattern): No need to free pcre_extra_ anymore.
      	(Pattern::match): Throw an exception if the regular expression
      	exceeds the recursion and backtracking limit of libpcre.
      	(CompileOptions): Implement the remaining bit manipulation
      	operators for completeness.
      	(MatchOptions): ditto.
      	* src/prefdialog.{cc,h} (get_toolbar_style_index): New helper
      	(FontSelectionButton::set_selected_font): Take the font name
      	rather than a Pango::FontDescription object as parameter.
      	(get_selected_font): Likewise for the return type.
      	(PrefDialog::button_direction_): New Gtk::CheckButton member,
      	allowing users of RTL environments to override the direction
      	of regexxer's file editor alone.
      	(on_conf_value_changed): New signal handler listening to
      	GConf value changes.
      	(initialize_configuration): New function to load the initial
      	settings immediately after creation of the preference dialog.
      	Works just like the identically named function in main.cc,
      	except that it invokes on_conf_value_changed() directly instead
      	of triggering the global "value_changed" signal.
      	(on_textview_font_selected): Set the appropriate GConf key
      	instead of using the old internal signal feedback mechanism.
      	(on_match_color_selected): ditto
      	(on_current_color_selected): ditto
      	(on_option_toolbar_style_changed): ditto
      	(on_entry_fallback_activate): ditto.
      	(on_button_direction_toggled): New method.
      	(signal_pref_textview_font_changed): Remove.
      	(signal_pref_match_color_changed): Remove.
      	(signal_pref_current_color_changed): Remove.
      	(signal_pref_toolbar_style_changed): Remove.
      	(signal_pref_fallback_encoding_changed): Remove.
      	(on_entry_fallback_changed): Record that entry content was changed
      	by setting the boolean entry_fallback_changed_ flag.  This is just
      	to avoid superfluous commits to the GConf database every time the
      	preference dialog is closed.
      	(on_response): Evaluate entry_fallback_changed_ (see above),
      	and make sure no Gnome::Conf::Error exceptions escape from
      	(create_page_look): Move the signal handler setup to the ctor.
      	(create_page_file): ditto.
      	* src/statusline.cc (CounterBox::CounterBox): Catch possible
      	exceptions when applying the locale to the stream object, in
      	order to avoid crashing if the user's locale is invalid.
      	* src/stringutils.cc (apply_modifiers): Modify the code a bit
      	to reduce the number of string copies made.
      	(parse_control_char): Add a 'dest' output parameter to avoid
      	returning a string by value.
      	(parse_hex_unichar): ditto
      	(parse_oct_unichar): ditto.
      	(parse_capture_index): New helper function to deal with both
      	"$1" and "${1}"-style references in the substitution string.
      	(validate_encoding): Simplify.  Also, don't accept any error
      	codes but NO_CONVERSION.
      	(encodings_equal): No longer use std::find_if() since it really
      	doesn't make the code any simpler in this particular case.
      	(trim_whitespace): Remove; no longer used.
      	(shell_pattern_to_regex): Various performance improvements.
      	Also take care of a possible trailing backslash to avoid escaping
      	the "\z" appended by regexxer itself.
      	(substitute_references): Restructure the loop a bit, and accomodate
      	the changes made to the parse_*_char() functions mentioned above.
      	Also, avoid the need for ascii_isodigit() in the default branch by
      	simply adding all 8 octal digits as case labels.
      	(int_to_string): Catch any exceptions that might occur when
      	applying the locale to the stream.  This could happen if the
      	user's default locale is invalid.
      	(transform_pathname): Replace this silly 2-in-1 function by
      	separate shorten_pathname() and expand_pathname() implementations.
      	There really is no need to cache the home directory in a static
      	(shorten_pathname): Implement separately rather than forwarding
      	to transform_pathname().
      	(expand_pathname): ditto.
      	(enum_from_nick): New utility function to convert the 'nick'
      	of a particular enumeration value to the actual integer value.
      	This of course requires the the enumeration type to be registered
      	via the GObject type system.
      	(enum_to_nick): Likewise, but the other way around.
      	(enum_from_nick_impl): Non-template implementation part.
      	(enum_to_nick_impl): ditto.
      2004-05-04  Daniel Elstner  <daniel.elstner@gmx.net>
      	* macros/cxx.m4: Make use of the new AS_IF() macro, and also
      	improve the portability of the shell code a bit.
      	* macros/pcre.m4: Ditto.
      	* macros/misc.m4: New file, introducing a REGEXXER_PKG_PATH_PROG
      	macro which can be used to look for executables that might live
      	in subdirectories indicated by pkg-config output.
      	* autogen.sh: Some minor shell coding-style improvements.
      	* configure.ac: Invoke the new REGEXXER_PKG_PATH_PROG macro in
      	order to look for gdk-pixbuf-csource.  Use the new macro to look
      	for gconftool-2 as well.
      	(AC_CHECK_HEADERS): Remove the tests for sys/types.h, sys/stat.h,
      	umask() and mode_t since they're no longer necessary.
      	(PKG_CHECK_MODULES): Substitute the GTKMM prefix by PKG (I don't
      	like MM_DEPS as introduced by Murray in HEAD.)  Also, get rid of
      	the libgnomevfsmm dependency.
      	(REGEXXER_ENABLE_GCONFMM_VALUE_HACK): New preprocessor macro to
      	be inserted into config.h.  This isn't actually used yet, I'll
      	get to that later.
      	* regexxer.schemas: New file.
      	* Makefile.am: Add rules taking care of the installation of the
      	GConf schema file.
      	(dist_schema_DATA): Add regexxer.schemas to the distribution.
      	(dist_noinst_DATA): Ditto for macros/misc.m4.
      	(DISTCHECK_CONFIGURE_FLAGS): Include --disable-schemas-install.
      	* src/Makefile.am: Reflect the substitution of GTKMM by PKG made
      	in configure.ac.
      	(AM_CPPFLAGS): Use this variable in place of regexxer_CPPFLAGS,
      	because executable-specific CFLAGS is not something regexxer ever
      	intended to use.
      	* src/main.cc: Get rid of the libgnomevfsmm dependency.  For one
      	thing, the code using it didn't actually work with remote URIs.
      	For another, as of now there's no stable release of this library
      	in sight, no to mention a widely distributed release.
      	* src/fileio.cc (load_try_encoding): Comment-out the gnomevfs code
      	and replace it with the original Glib::IOChannel code instead.
      	(save_file): ditto.
      	* src/filetree.cc (find_recursively): Comment-out and replace with
      	the previous non-gnomevfs code.