2001-05-11  Havoc Pennington  <hp@redhat.com>

	* configure.in: bump version to 1.0.1

	* gconf/gconfd.c (signal_handler): on SIGUSR1, enable/disable
	debug spew.

	* gconf/gconf-internals.c (gconf_log): use a runtime variable to
	decide whether to log debug messages

	* gconf/gconf-database.c, gconf/gconfd.c, gconf/gconf-internals.c:
	Change some GCL_WARNING to GCL_DEBUG to chill out logging of
	fairly normal events

2001-04-17  Darin Adler  <darin@eazel.com>

	* gconf/Makefile.am: Another try at that. This time for sure.

2001-04-17  Darin Adler  <darin@eazel.com>

	* gconf/Makefile.am: Now that we are not distributing built sources
	we need some more dependencies to get the Tinderbox working.

2001-04-17  Michael Meeks  <michael@ximian.com>

	* gconf/Makefile.am (dist-hook): don't distribute built
	sources.

Wed Apr 11 08:07:11 2001  George Lebl <jirka@5z.com>

	* gconf/gconf.c (gconf_engine_unref): If unreffing the default engine
	  set the default_engine pointer to NULL

2001-03-26  Robin * Slomkowski  <rslomkow@eazel.com>

	* gconf.spec.in: added .pc files

2001-03-23  Martin Baulig  <baulig@suse.de>

	* gconf.pc.in, gconfgtk.pc.in: New files.

	* Makefile.am: Create .pc files and install them.

2001-03-13  Ramiro Estrugo  <ramiro@eazel.com>

	* backends/xml-entry.c:
	* gconf/gconftool.c:
	Add inclusion of <gnome-xml/xmlmemory.h> to fix the fact that
	'xmlFree' is undefined.  This was caused by the last free
	vs. xmlFree change.
	
2001-03-13  Kjartan Maraas  <kmaraas@gnome.org>

	* backends/xml-entry.c: Fix to use xmlFree() instead of free().
	* gconf/gconftool.c: Same here.
	
2001-03-12  Timur Bakeyev  <timur@gnu.org>

	* Makefile.am: Made warning printing a bit nicer.
	
2001-03-11  Havoc Pennington  <hp@redhat.com>

	* configure.in: 1.0.0, woo-hoo!

2001-03-06  Havoc Pennington  <hp@redhat.com>

	* configure.in: bump version to 0.51
	
	* gconf/gconfd.c (gconf_main): change the periodic timeout to 15
	minutes, to be a bit more aggressive about cleanup.
	(open_append_handle): add a timeout to close the 
	saved_state filehandle after a short time, to avoid keeping
	descriptors open.
	(gconfd_need_log_cleanup): new internal function used to control 
	whether the periodic cleanup function needs to save a log file
	
2001-02-27  Havoc Pennington  <hp@redhat.com>

	* gconf.spec.in: %define prefix %{_prefix} instead of @prefix@

2001-02-27  Havoc Pennington  <hp@redhat.com>

	* configure.in: bump version to 0.50

	* gconf/gconfd.c (main): Close stdin/stdout/stderr. Also, set the
	log handler, so we don't need stdout/stderr to see GLib messages,
	they go to syslog.

	* configure.in: Turn off debugging by default

	* gconf/Makefile.am (INCLUDES): set the log domain

	* gconf/gconftool.c (recurse_subdir_list): the list contains full
	directory paths to start with, fix from Colm

	* gconf/gconfd.c (register_database): bugfix from Colm

	* gconf/gconf.c (lookup_engine): fix from Colm to check that we
	have an engines hash
	(gconf_engine_get_for_address): improve warning message, fix from
	Colm
	(gconf_engine_remove_dir): new function from Colm, this was
	implemented on the server side but somehow never exported.

	* gconf/gconf-database.c (gconf_database_get_persistent_name): Fix
	from Colm to handle the case of empty databases (no sources).

2001-02-12  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>

	* configure.in: Added sk to ALL_LINGUAS.

2001-02-05  Havoc Pennington  <hp@redhat.com>

        File permissions fixes, problem pointed out by Steve Fox.
	
	* backends/xml-dir.c (dir_sync): chmod() the XML file after
	xmlSaveFile creates it

	* gconf/gconfd.c (main): following Stevens advice for daemons, we
	were calling umask(0), change to umask(022). We need a predictable
	umask, but a safer one would be good since this is a per-user
	daemon not a system daemon.
	
	* backends/dir-utils.c (mode_t_to_mode): make this more portable,
	for paranoia

	* backends/xml-dir.c (dir_load): We were getting directory
	permissions from the %gconf.xml file, instead of from the XML root
	directory. Fix.
	
2001-02-01  Szabolcs Ban <shooby@gnome.hu>

	* configure.in: Added lang Hungarian.
	* po/hu.po: Added.

2001-01-21  Havoc Pennington  <hp@pobox.com>

	* backends/xml-entry.c (schema_subnode_extract_data): don't warn
	about <local_schema> with no locale field, because that's normal 
	for the default case
	(schema_node_extract_value): use <local_schema> with no locale
	if it exists and we don't find anything better

	* tests/testschemas.c (check_schema_use): fix indentation and mem
	leaks

	* gconf/gconftool.c (do_get): print default value from schema

	* configure.in: Bump version to 0.12

Fri Dec 01 00:54:33 2000  George Lebl <jirka@5z.com>

	* gconf/gconf-locale.c (gconf_split_locale):  When inserting "C"
	  into a list, dup it first to avoid a possible crash later.

2000-11-30  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf.c (gconf_engine_unset): Fix dereference of NULL GError**

2000-11-20  Havoc Pennington  <hp@redhat.com>

	* doc/gconf/Makefile.am: Fix "make scan" to actually work, so 
	you can build the docs

2000-11-11  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-value.c (gconf_entry_set_is_writable): Add this
	function

2000-11-05  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-glib.c, gconf/gconf-glib-private.h: Remove the 
	GMarkup and Unicode stuff, turned out to be unnecessary.
	Left only GError.

2000-11-05  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (parse_listener_entry): fix strtoul error
	checking

	* gconf/gconf-internals.c (gconf_string_to_gulong): Fix error
	checking on strtoul

2000-11-05  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-glib.c (g_propagate_error): Sync from GLib,
	should fix one very minor memory leak in GConf

2000-10-31  Almer S. Tigelaar  <almer1@dds.nl>

	* configure.in: Add 'nl' to ALL_LINGUAS

2000-10-26  Havoc Pennington  <hp@pobox.com>

	* configure.in: Bump version to 0.11

2000-10-25  Havoc Pennington  <hp@pobox.com>

	* wrappers/gtk/gconf-client.c: remove get_nocopy, since it can't
	be implemented since we don't cache everything. Oops.

2000-10-16  Havoc Pennington  <hp@pobox.com>

	* wrappers/gtk/gconf-client.c
	(gconf_client_real_unreturned_error): implement default error
	handler that prints to stderr
	(gconf_client_key_is_writable): hmm, this function didn't compile
	very cleanly

	* wrappers/gtk/gconf-client.h: Remove the ParentWindowFunc
	concept. Two reasons: a) it was really hard for users to implement
	such a thing, and if they did then implementing an error dialog
	function was pretty trivial also b) decided to make the default
	error handler use fprintf(stderr) since GConfClient is going to
	move into the main GConf library and thus not depend on GTK.

	So, this is mild API breakage (but hopefully no one was using the
	feature anyway).
	
2000-10-10  Christophe Merlet  <christophe@merlet.net>

	* backends/Makefile.am: Added README.bdb in EXTRA_DIST.

	* gconf/gconf-glib.c: Corrected mispelling string.

2000-10-10  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-value.c (gconf_value_to_string): fix segfault when 
	pair contains unset car or cdr
	(gconf_value_set_car): allow setting car or cdr of a pair to
	NULL. I'm not sure if this is the normal thing in the code
	right now, but, hmm.

	* gconf/gconf-sources.c (gconf_sources_all_entries): fix
	cut-and-paste error resulting in NULL pointer dereference.

2000-10-08  Havoc Pennington  <hp@pobox.com>

        gconfd should now exit when not in use.
	
	* gconf/gconf-database.c (gconf_database_drop_dead_listeners):
	function to drop any listeners with dead clients.

	* gconf/gconfd.c (drop_old_databases): before checking 
	whether the listener count is 0, clean up listeners belonging 
	to dead clients.

	* gconf/gconf-listeners.c (gconf_listeners_remove_if): New
	function removes listeners matching some predicate
	(ltable_remove): fix some indentation

2000-10-08  Havoc Pennington  <hp@pobox.com>

	* configure.in: version to 0.10

2000-10-06  Havoc Pennington  <hp@pobox.com>

	* wrappers/gtk/gconf-client.c: indentation/formatting

	* gconf/gconfd.c (parse_listener_entry): extra paranoia error
	check. Also, make log messages level DEBUG, not WARNING.

2000-10-06  Havoc Pennington  <hp@pobox.com>

	* configure.in: check for flockfile.
	Check for BDB, but don't make it fatal; do an AM_CONDITIONAL and
	don't build the BDB backend if it's not found.

	* gconf/gconfd.c (main): unregister with OAF after all shutdown is
	complete.
	(signal_handler): do the full, clean shutdown on SIGTERM; should
	reduce the damage caused by those pesky killall gconfd scripts ;-)
	Try to do the same on FPE and PIPE, though it's not likely to
	work, it doesn't hurt to try.
	(logfile_read): rewrite the logfile reading code; somewhat more
	robust, possibly.

	* gconf/gconf-database.c, gconf/gconfd.c: Make all CORBA
	implementation return immediately with an error if we're currently
	shutting down. We'd just unregister with OAF, or deactivate our
	objects, but then another gconfd would start up before we finish
	cleaning up our stuff and introduce a mess of race
	conditions. Instead clients will automatically retry lots of times
	if they get the IN_SHUTDOWN error. Actually this possibly
	shouldn't even happen, since we aren't normally in the main loop
	once we start to shut down, I don't think - not sure.
	
	* gconf/gconfd.c (gconf_set_exception): add ConfigInShutdown

	* gconf/GConf.idl: add ConfigInShutdown error

	* gconf/gconf.c (corba_errno_to_gconf_errno): add ConfigInShutdown

	* gconf/gconf-error.h: two error codes had the same integer value.
	Also, add GCONF_ERROR_IN_SHUTDOWN

	* gconf/gconfd.c (gconfd_in_shutdown): Add a flag 
	to indicate we're shutting down; all operations will 
	return an error at that point.

	* gconf/gconf.c (gconf_server_broken): treat ConfigInShutdown 
	as a broken server.
	
2000-10-06  Colm Smyth  <colm.smyth@sun.com>

	* Committed BerkeleyDB back-end:-

	  backends/bdb.c backends/bdb.h backends/bdb-backend.c
	  backends/val-encode.c backends/val-encode.h
	  backends/dir-utils.c backends/dir-utils.h backends/README.bdb

	* Changes to make GConf build with an ISO C compiler:-

	  configure.in backends/Makefile.am backends/xml-cache.c
	  gconf/gconf-database.c gconf/gconf-sources.c gconf/gconfd.c
	  tests/testchangeset.c tests/testencode.c tests/testgconf.c
	  tests/testlisteners.c tests/testpersistence.c
	  tests/testschemas.c


2000-10-03  Robin * Slomkowski  <rslomkow@eazel.com>

	* gconf.spec.in:/etc/etc is not a directory
	OK I am less foolish now

2000-10-03  Robin * Slomkowski  <rslomkow@eazel.com>

	* gconf.spec.in: updated the spec file again
	if you are interested we are trying to track it
	http://tinderbox.eazel.com

2000-10-03  Havoc Pennington  <hp@redhat.com>

	* gconf/gconfd.c (close_append_handle): set invalid FILE* to 
	NULL afterward, avoid segfaults.

	* Makefile.am: add install-schemas target here which recurses
	into standard-schemas and runs install-schemas

	* standard-schemas/Makefile.am (install-schemas): Move schema
	installation to a special target install-schemas which must be 
	run manually _after_ make install. This should resolve problems
	people are having with RPMs and such. However it means spec files
	have to explicitly add a 'make install-schemas'

2000-09-29  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (drop_all_caches): don't spew warnings here for
	now.
	(invalidate_cached_values): no spew
	(update_listener): remove more spew

2000-09-29  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (ctable_reinstall): we were overwriting the hash
	key before trying to remove the old server ID from the hash, so
	the removal failed, leading to an assertion failure later (this
	hopefully fixes one of the bugs reported by Ramiro, if not then
	I'll keep looking)

2000-09-26  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-locale.c (gconf_locale_cache_expire): fix a
	static initialization with non-const value

2000-09-25  Havoc Pennington  <hp@pobox.com>

        Bug fixes and portability issues reported by Colm Smyth
	
	* gconf/gconf-sources.c (gconf_sources_query_value): fix NULL
	pointer dereference

        * s/__FUNCTION__/G_GNUC_FUNCTION/g;
	
	* configure.in: Add check for GCC before using -Wall (can't
	believe no one has _ever_ tried building GConf without gcc, 
	but it appears so...)

	* gconf/gconftool.c: use N_ not _ with static strings.

	* tests/testschemas.c: Don't include locale.h

	* gconf/gconf-internals.h: Remove some of the #defines from 
	the non-ENABLE_NLS case. 

2000-09-24  Havoc Pennington  <hp@pobox.com>

	* NEWS: Put release notes for 0.9 in here.

2000-09-24  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (gconf_main): With debugging turned on, use
	obscenely short timeout for periodic cleanups, to ensure bugs 
	get triggered.

	* gconf/gconf-database.c (impl_ConfigDatabase_all_dirs): Set
	_release to TRUE for sequences
	(impl_ConfigDatabase_all_entries): ditto

	* gconf/gconfd.c (half_hour_timeout): exit only if client count is
	0 after dropping all dead clients.
	
	* gconf/gconf-database.c (impl_ConfigDatabase_all_dirs): Don't
	put memory in the out param if we set an exception
	(impl_ConfigDatabase_all_entries): Ditto

	* backends/xml-dir.c (dir_all_subdirs): Fix a memory leak

	* gconf/gconfd.c: Implement client list logging

	* gconf/gconf.c: Add self to the server's client list 
	whenever we get a new server objref

2000-09-23  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c: Implement add/remove client methods; 
	still need to log these to disk, and on restart tell the
	logged clients to drop their caches.

	* gconf/GConf.idl: Add methods on ConfigServer to maintain
	a list of active clients; this allows us to invalidate client
	caches on daemon restart.

2000-09-21  Havoc Pennington  <hp@pobox.com>

	* configure.in: remove intl/Makefile

	* Makefile.am: remove intl subdir

2000-09-17  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c: Update to reflect IDL change

	* gconf/GConf.idl: Change invalidate_cached_values() to take
	multiple keys to invalidate; better efficiency that way

2000-09-17  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-database.c: Add new methods on ConfigDatabase

	* gconf/gconf.c: Add new methods on ConfigListener, but they
	do nothing at the moment

	* gconf/GConf.idl: Add some methods to ConfigListener to tell
	clients when they need to drop cached values Add batch_lookup()
	and batch_change() methods to ConfigDatabase so we can implement 
	them later

2000-09-16  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (gconf_engine_key_is_writable): And actually 
	implement it here. Doh.

	* wrappers/gtk/gconf-client.c (gconf_client_key_is_writable): Gee,
	forgot to actually implement this function after implementing all
	the backend work for it... 

	* gconf/gconf.c (corba_errno_to_gconf_errno): add
	NO_WRITABLE_DATABASE handling here also

	* gconf/gconfd.c (gconf_set_exception): handle
	NO_WRITABLE_DATABASE error

	* gconf/GConf.idl: Add NoWritableDatabase to error type enum

	* wrappers/gtk/testgconfclient.c (entry_attached_to): Update 
	to properly handle writability

	* examples/simple-controller.c (main): set entry sensitivity
	properly

	* examples/basic-gconf-app.c (main): Remove ref/sink and destroy,
	just use plain refcounting
	(create_config_entry): Set entry sensitivity according to key
	writability

	* wrappers/gtk/gconf-client.c (gconf_client_finalize): Move all
	cleanup to finalize, remove destroy handler	

2000-09-16  Havoc Pennington  <hp@pobox.com>

	* doc/gconf/tmpl/gconf-value.sgml: Update some docs

	* wrappers/gtk/gconf-client.c (notify_listeners_callback): Update
	to reflect new callback signature for GConfClientNotifyFunc

	* gconf/gconf-sources.c (gconf_sources_set_value): Make it an
	error to if we try to write a value for a non-writable source.
	This is new; it used to silently fail.

	* gconf/gconf-database.c (gconf_database_notify_listeners): Add
	is_writable here

	* gconf/GConf.idl: Add writable flag to notification

	* gconf/gconf.h: Update GConfNotifyFunc to have fewer args, and 
	a GConfEntry is just passed in (since I was going to have
	to add an is_writable arg, and passing in a GConfEntry 
	gives us future extensibility against this sort of thing)
	BREAKS USER CODE, many apologies.

	* wrappers/gtk/gconf-client.c (gconf_client_get_entry): Update
	to reflect GConfEngine changes

	* gconf/gconf.c (gconf_engine_all_entries): Get the writability
	stuff
	(gconf_engine_get_full): rename to gconf_value_get_entry 
	and return an entry; drop the is_default argument.

	* gconf/gconf-sources.c (gconf_sources_query_value): Implement 
	finding out if a value is writable
	(gconf_sources_all_entries): Implement setting is_writable 
	flag on the entries

	* gconf/gconf-value.c (gconf_entry_new_nocopy): Default to 
	the entry being writable

	* gconf/gconf-database.c: Change to match IDL changes

	* gconf/GConf.idl (lookup_with_locale): Add out param for
	writability
	(all_entries): Add out param for writability

	* gconf/gconf-value.h: Add is_writable field to GConfEntry
	(gconf_entry_get_is_writable): Add this

	* wrappers/gtk/gconf-client.c (gconf_client_key_is_writable): Add 
	the matching stub here

	* gconf/gconf.c (gconf_engine_key_is_writable): Go ahead and add
	this function so we can implement it later, but it always returns 
	TRUE at the moment.

	* gconf/gconf-changeset.c (gconf_change_set_set_user_data,
	gconf_change_set_get_user_data): Add user data for language
	bindings

	* gconf/gconf.c (gconf_engine_set_user_data,
	gconf_engine_get_user_data): Add user data for language
	bindings

2000-09-15  Havoc Pennington  <hp@redhat.com>

	* s/gconf_concat_key_and_dir/gconf_concat_dir_and_key/g

2000-09-14  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (gconf_engine_all_dirs): Update to 
	return fully qualified name in GConfEntry
	(gconf_engine_all_entries): missed the local case
	earlier when adapting it to use fully-qualified name

	* acinclude.m4: Add never-use-included-gettext macro

	* configure.in: Bump version to 0.9

2000-09-14  Darin Adler  <darin@eazel.com>

	* backends/xml-dir.c: (dir_load): Fixed code that set up file mode
	to always be 0600 to instead inherit from parent directory as
	intended.
	
	* gconf/gconf-sources.c: (gconf_sources_new_from_addresses):
	Removed unused variable.
	* tests/.cvsignore: Added some generated files.

2000-09-13  Havoc Pennington  <hp@redhat.com>

	* More renaming:

	s/gconf_meta_info_schema/gconf_meta_info_get_schema/g;
	s/gconf_meta_info_mod_user/gconf_meta_info_get_mod_user/g;
	s/gconf_meta_info_mod_time/gconf_meta_info_mod_time/g;

	s/gconf_entry_key/gconf_entry_get_key/g;
	s/gconf_entry_value/gconf_entry_get_value/g;
	s/gconf_entry_schema_name/gconf_entry_get_schema_name/g;
	s/gconf_entry_is_default/gconf_entry_get_is_default/g;

	s/gconf_value_string/gconf_value_get_string/g;
	s/gconf_value_int/gconf_value_get_int/g;
	s/gconf_value_float/gconf_value_get_float/g;
	s/gconf_value_list_type/gconf_value_get_list_type/g;
	s/gconf_value_list/gconf_value_get_list/g;
	s/gconf_value_car/gconf_value_get_car/g;
	s/gconf_value_cdr/gconf_value_get_cdr/g;
	s/gconf_value_bool/gconf_value_get_bool/g;
	s/gconf_value_schema/gconf_value_get_schema/g;

	s/gconf_schema_type/gconf_schema_get_type/g;
	s/gconf_schema_list_type/gconf_schema_get_list_type/g;
	s/gconf_schema_car_type/gconf_schema_get_car_type/g;
	s/gconf_schema_cdr_type/gconf_schema_get_cdr_type/g;
	s/gconf_schema_locale/gconf_schema_get_locale/g;
	s/gconf_schema_short_desc/gconf_schema_get_short_desc/g;
	s/gconf_schema_long_desc/gconf_schema_get_long_desc/g;
	s/gconf_schema_owner/gconf_schema_get_owner/g;
	s/gconf_schema_default_value/gconf_schema_get_default_value/g;

2000-09-13  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf.c (gconf_engine_all_entries): Put full key in
	GConfEntry (but we only get the relative key over the 
	CORBA wire)

	* wrappers/gtk/gconf-client.c (cache_pairs_in_dir): Change to 
	reflect fact that GConfEntry now contains full key

	* gconf/gconftool.c (list_pairs_in_dir): Change to reflect full
	key in GConfEntry

	* doc/gconf/tmpl/gconf-value.sgml: updated GConfEntry docs on this
	matter.
	
2000-09-11  Havoc Pennington  <hp@redhat.com>

	* Actually use gettext. Involves checking in configure.in, linking
	to it in Makefile.am, making _() do the right thing.

	I have gettext in libc instead of -lintl though, so I'm not going
	to see Makefile bugs - maybe someone can check on it.

2000-09-10  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-value.c (gconf_entry_new): New function
	(gconf_entry_set_value): New function

2000-09-10  Havoc Pennington  <hp@pobox.com>

	* Another rename fest:

	#!/usr/bin/perl -pi.bak

	## note that this regexp could affect non-GConf stuff
	s/writeable/writable/g;

	s/gconf_meta_info_destroy/gconf_meta_info_free/g;
	s/gconf_database_destroy/gconf_database_free/g;
	s/gconf_source_destroy/gconf_source_free/g;
	s/gconf_sources_destroy/gconf_sources_free/g;
	s/gconf_locale_cache_destroy/gconf_locale_cache_free/g;

2000-09-10  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-value.c (gconf_value_new): don't use
	GCONF_INTERNAL_VALUE_TYPE_VALID

	* gconf/gconf-internals.h, gconf/gconf-error.h:
	(gconf_error_new)
	(gconf_set_error)
	(gconf_compose_errors):
	Move these to gconf-internals.h, now they aren't needed due
	to GError

	* gconf/gconf.c: Get rid of GConfEnginePrivate, just define struct
	_GConfEngine in the private .c file, like a sane person.

	* gconf/gconf-value.h: remove GCONF_INTERNAL_VALUE_TYPE_VALID

	* gconf/gconf.h: #ifdef the GNOME module system and popt stuff for
	GNOME 1.4. This stuff is tied to GNOME 2.0 and still unstable in
	that respect; should not be used before GNOME 2.0
	(gconf_get_string): forgot to rename this earlier
	
2000-09-09  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (half_hour_timeout): Convert one_hour_timeout to
	half_hour_timeout() to more agressively prune resources. In the
	half hour timeout, if we have no connected listeners on any
	database, shut down gconfd. (We might want to make the timeout
	length configurable; and for laptops people might not want any 
	timeouts at all, since it will wake up their laptop.)
	(fast_cleanup): Remove comment about getting incoming connections
	after shutting things down; this is no longer a problem because
	we deactivate databases in the POA

2000-09-09  Havoc Pennington  <hp@pobox.com>

	* gconf/Makefile.am (libgconf_1_la_SOURCES): Move gconf-backend.h
	here, I don't see why it was in the public headers


	Throughout, rename a bunch of stuff:

	#!/usr/bin/perl -pi.bak

	s/gconf_notify_add/gconf_engine_notify_add/g;
	s/gconf_notify_remove/gconf_engine_notify_remove/g;
	s/gconf_get_without_default/gconf_engine_get_without_default/g;
	s/gconf_get_full/gconf_engine_get_full/g;
	s/gconf_get_with_locale/gconf_engine_get_with_locale/g;
	s/gconf_get_default_from_schema/gconf_engine_get_default_from_schema/g;
	s/gconf_unset/gconf_engine_unset/g;
	s/gconf_associate_schema/gconf_engine_associate_schema/g;
	s/gconf_all_entries/gconf_engine_all_entries/g;
	s/gconf_all_dirs/gconf_engine_all_dirs/g;
	s/gconf_suggest_sync/gconf_engine_suggest_sync/g;
	s/gconf_dir_exists/gconf_engine_dir_exists/g;
	s/gconf_get_float/gconf_engine_get_float/g;
	s/gconf_get_int/gconf_engine_get_int/g;
	s/gconf_get_bool/gconf_engine_get_bool/g;
	s/gconf_get_schema/gconf_engine_get_schema/g;
	s/gconf_get_list/gconf_engine_get_list/g;
	s/gconf_get_pair/gconf_engine_get_pair/g;
	s/gconf_set_float/gconf_engine_set_float/g;
	s/gconf_set_int/gconf_engine_set_int/g;
	s/gconf_set_string/gconf_engine_set_string/g;
	s/gconf_set_bool/gconf_engine_set_bool/g;
	s/gconf_set_schema/gconf_engine_set_schema/g;
	s/gconf_set_list/gconf_engine_set_list/g;
	s/gconf_set_pair/gconf_engine_set_pair/g;

	s/gconf_commit_change_set/gconf_engine_commit_change_set/g;
	s/gconf_create_reverse_change_set/gconf_engine_reverse_change_set/g;
	s/gconf_create_change_set_from_currentv/gconf_engine_change_set_from_currentv/g;
	s/gconf_create_change_set_from_current/gconf_engine_change_set_from_current/g;

	s/gconf_schema_destroy/gconf_schema_free/g;
	s/gconf_value_destroy/gconf_value_free/g;
	s/gconf_listeners_destroy/gconf_listeners_free/g;
	s/gconf_entry_destroy/gconf_entry_free/g;

	s/gconf_client_create_change_set_from_current/gconf_client_change_set_from_current/g;
	s/gconf_client_create_change_set_from_currentv/gconf_client_change_set_from_currentv/g;
	s/gconf_client_create_reverse_change_set/gconf_client_reverse_change_set/g;

	## These require some care, since they can be the prefix for unrelated stuff.
	s/gconf_get /gconf_engine_get /g;
	s/gconf_set /gconf_engine_set /g;

	s/gconf_get\(/gconf_engine_get (/g;
	s/gconf_set\(/gconf_engine_set (/g;

	
2000-09-09  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-database.c (gconf_database_add_listener)
	(gconf_database_remove_listener): immediately log the addition
	or removal to the saved state file, which is now in a streaming
	format
	(gconf_database_get_persistent_name): abstraction for getting
	the address of the database, of "def" if it's the default one
	(gconf_database_log_listeners_to_string): replaces conversion 
	from database to markup node; no longer using GMarkup here

	* gconf/gconf-listeners.c (gconf_listeners_get_data):
	new function to get listener data for a connection ID

	* gconf/gconfd.c (one_hour_timeout): save the logfile in the
	timeout, to compress it since we have just been appending over the
	last hour
	(logfile_read, logfile_save): rewrite to use new format, not the
	GMarkup format

	* gconf/gconf-internals.c (gconf_object_to_string): Add 
	this function

2000-09-04  Havoc Pennington  <hp@pobox.com>

	* doc/gconf/Makefile.am (LDFLAGS): libs have been renamed

2000-08-31  Havoc Pennington  <hp@redhat.com>

	* Massive rename from GConfError to GError

	* gconf/gconf-error.h, gconf/gconf-error.c: Remove
	redundant-with-GError stuff; add GCONF_ERROR domain
	macro

2000-08-30  Havoc Pennington  <hp@redhat.com>

	* gconf/gconfd.c (restore_listener): use gconf_string_to_gulong
	instead of atoi for reading a ulong out of the log file

	* gconf/gconf.c (gconf_engine_get_default): assign to the
	default_engine variable, so we don't keep creating new default
	engines.

	* gconf/gconf-listeners.c (ltable_next_cnxn): Start "uniqueness
	bits" at a different location depending on pid

2000-08-30  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf.c: Change client to new system (use object
	references to ConfigDatabase instead of the integer context ID).
	
	* gconf/gconf-backend.c: Fix path to uninstalled modules, and 
	put the whole uninstalled modules thing in GCONF_ENABLE_DEBUG 

	* gconf/gconf-database.c: add some missing includes, and fix
	a typo bug

	* gconf/gconfd.c: CORBA_Object_duplicate() the ConfigDatabase
	objrefs before passing them back out to ORBit. Remove
	some bogus assertions.
	
	* TODO: Updates, added notes from Colm

2000-08-30  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c, gconf/gconf-database.h, gconf/gconf-database.c, 
	gconf/gconfd.h: Completed the server-side implementation of 
	the new system where a ConfigServer_Context becomes
	a ConfigDatabase object. Client side doesn't even compile
	yet. Will get it compiling in the morning.

2000-08-29  Havoc Pennington  <hp@redhat.com>

	* gconf/gconfd.c: Add logfile load/save; not really working 
	yet.

	* gconf/gconf.c: Remove reinstall-listeners stuff and implement
	update_listeners() from the server. Most of this is about to get
	removed again when I fix context ID's to be object references
	instead.

	* gconf/gconf-listeners.c: #include <string.h>, 
	store full key name on tree nodes, add connection ID to 
	foreach callback

	* gconf/GConf.idl: Add update_listener method on ConfigListener,
	so the daemon can tell a client that a listener's ID has changed

	* gconf/gconf-glib-public.h, 
	gconf/gconf-glib-private.h,
	gconf/gconf-glib.c: Put in gmarkup.[hc], gunicode stuff, 
	and gerror.[hc] from GLib 2.0. The Unicode char tables are
	causing big bloat; may be able to get rid of them 
	before GNOME 1.4 if we are lucky.

2000-08-27  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-glib-public.h, 
	gconf/gconf-glib-private.h,
	gconf/gconf-glib.c: Place to put cut-and-paste code from 
	GLib 2.0

	* gconf/gconf.c (notify): Only print warnings on bogus notifies
	if debugging is enabled; without debugging, silently ignore
	the notifies, it just means gconfd got confused.

2000-08-26  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-listeners.c (gconf_listeners_foreach): Add a foreach
	function, will use that to dump the daemon's listener table to
	a file.

2000-08-26  Havoc Pennington  <hp@pobox.com>

	* TODO: Created a TODO file

2000-08-09  Havoc Pennington  <hp@pobox.com>

	* configure.in: 0.8

	* fixes from Ralph Loader for DESTDIR support (hopefully 
	got them all in)

	* gconf.spec: fix description (the G is just a G, doesn't stand
	for anything)
	
2000-08-09  Robin * Slomkowski  <rslomkow@eazel.com>

	* gconf.spec.in: made it so the specfile worked for rpm builds

2000-08-07  Robin * Slomkowski  <rslomkow@eazel.com>

	* gconf/Makefile.am: use top_build instead of build
	and some beautification.

Wed Aug 02 18:11:37 2000  George Lebl <jirka@5z.com>

	* backends/xml-entry.c (node_set_schema_value) (node_unset_value)
	  (schema_node_extract_value):  Set the list_type and car_type and
	  cdr_type from the schema.  Unset these on clear.  Also get these
	  on extraction.

	* gconf/GConf.idl:  Add value_list_type, value_car_type,
	  value_cdr_type to the ConfigSchema struct

	* gconf/gconf-internals.c (fill_corba_schema_from_gconf_schema)
	  (gconf_schema_from_corba_schema) (corba_type_from_gconf_type)
	  (gconf_type_from_corba_type) (gconf_string_to_double)
	  (gconf_double_to_string) (gconf_unquote_string_inplace)
	  (gconf_value_decode) (gconf_value_encode):  When passing schema
	  to/from corba, pass the list_type and car/cdr_type fields as well.
	  When converting to/from doubles guard the printf/scanf with
	  setlocale(LC_NUMERIC, "C").  When encoding/decoding the lists
	  encode their type, for schemas encode/decode the list/car/cdr_type

	* gconf/gconf-internals.h:  For gconf_value_new_list_from_string
	  and gconf_value_new_pair_from_string add an GConfError field

	* gconf/gconf-schema.[ch] (gconf_schema_new) (gconf_schema_copy):
	  Add the list/car/cdr_type fields to the schema structure and
	  support it when creating and copying.  Also add accessors for
	  these fields.

	* gconf/gconf-value.c (escape_string)
	  (gconf_value_new_list_from_string)
	  (gconf_value_new_pair_from_string)
	  (gconf_value_to_string):  Implement the list and pair_from_string
	  functions.  In to_string escape the characters that would cause
	  problems.

	* gconf/gconf.c (gconf_unique_key): use GPOINTER_TO_UINT to
	  avoid warning on alpha

	* gconf/gconftool.c (do_get) (do_set) (do_set_schema)
	  (fill_default_from_string) (extract_global_info)
	  (process_locale_info) (process_schema):  Add support for
	  setting lists and pairs by supporting the list/car/cdr_type.
	  Add these to setting schemas as well.  Also add support for
	  these in reading/setting schemas from .schema files and support
	  defaults of lists/pairs using this information.

2000-07-27  Havoc Pennington  <hp@redhat.com>

	* backends/Makefile.am (backenddir): backenddir is
	pkglibdir/MAJOR_VERSION, not plain VERSION

	* configure.in: Bump to 0.7

Wed Jul 26 12:40:45 2000  George Lebl <jirka@5z.com>

	* gconf/gconf.c (gconf_key_is_below):  Make sure that the segment
	  above is a complete directory and not just partial directory.
	  so that /foo is not taken as above /foobar/blah

Tue Jul 25 23:48:24 2000  George Lebl <jirka@5z.com>

	* wrappers/gtk/gconf-client.c:  || doesn't mean && :).  It would
	  consider as an above directory every directory that had a notify_id

2000-07-25  James Henstridge  <james@daa.com.au>

	* Makefile.am, gconf/Makefile.am: make relative symlinks rather than
	absolute path symlinks.  Again to help packagers.

	* configure.in (GCONF_CONFIG_SOURCE): don't use
	EXPANDED_SYSCONFDIR hack.  Instead just escape the dollar sign in
	${sysconfdir}.  This fixes build root installs used when building
	packages.

Mon Jul 24 16:39:01 2000  George Lebl <jirka@5z.com>

	* wrappers/gtk/gconf-client.[ch]: Allow adding overlapping
	  subdirectories.  What happens is that the real gconf notify
	  is not added for subdirectories.  When directories are added
	  or removed the hash is traversed and fixed up.  This is
	  done in a simple and incredibly inefficent manner and needs
	  to be fixed.  Also this change adds an "err" argument to
	  the _remove_dir call as errors can now happen.  Also
	  fix a minor warning by casting.

	* wrappers/gtk/testgconfclient.c: Add some testing of overlapping
	  directories.  Add buttons to add/remove the main directory and
	  the subdirectory.  This way you can see if things get proper
	  notifications.

2000-07-24  Yukihiro Nakai <nakai@gnome.gr.jp>

	* configure.in: Add Japanese (ja)

2000-07-21  Robin * Slomkowski  <rslomkow@eazel.com>

	* gconf.spec.in: just fixed up some filename stuff

2000-07-14  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-sources.c (gconf_sources_query_value): Fix memleak
	of schema_name in case where we return a value
	(hash_lookup_defaults_func): Fix bug where we returned the schema
	instead of the default value stored in the schema, when returning
	default values for a directory listing, which GConfClient did in
	order to preload its cache. (Upshot: GConfClient with preloading
	was broken if you had schemas.)

2000-07-13  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (shutdown_contexts): fix cheesy race condition 
	(context_list may not exist at this point)

2000-07-12  Havoc Pennington  <hp@pobox.com>

	* gconf.spec.in: Change spec file to reflect my fooling with
	names of things

	* configure.in: Some files converted to .in files, so we can 
	do versioning

	* gconf-config.in: output versioned names for libs and includes

	* gconf/Makefile.am: version all installed files

	* wrappers/gtk/Makefile.am: put version in the name of 
	everything

	* wrappers/gtk/testgconfclient.c (main): remove ref/sink to
	reflect change to GConfClient

2000-07-13  Havoc Pennington  <hp@pobox.com>

	* backends/xml-entry.c (schema_node_extract_value): fix a
	double-free

2000-07-12  Havoc Pennington  <hp@pobox.com>

	* configure.in: Bump library versions, bump to 0.6

	* gconf/gconf.c (gconf_engine_get_local): Rename from
	gconf_engine_new_local
	(gconf_engine_get_default): rename from gconf_engine_new
	(gconf_engine_get_for_address): rename from
	gconf_engine_new_from_address

	* wrappers/gtk/gconf-client.c (gconf_client_get_default): rename
	from gconf_client_new. Always sink the client, so we are strictly
	refcounted, no floating state (for future GObject compatibility)
	(gconf_client_get_for_engine): rename from
	gconf_client_new_with_engine

2000-07-11  Havoc Pennington  <hp@redhat.com>

	* Makefile.am: spew messages about needing to create
	prefix/etc/gconf/path, should make things easier for users.

2000-07-05  Eskil Heyn Olsen  <eskil@eazel.com>

	* gconf-config.in:
	adds output of oaf-config, since gconf uses oaf.

2000-07-05  Eskikl Heyn Olsen  <eskil@eazel.com>

	* gconf.spec.in:
	Fixed som typos.

2000-06-22  Dan Winship  <danw@helixcode.com>

	* wrappers/gtk/gconf-client.c (gconf_client_set_pair): Pass both
	car and cdr to gconf_set_pair rather than passing car twice. Oops.

2000-06-12  Eskil Heyn Olsen  <eskil@eazel.com>

	* gconf.spec.in: Removed the .a libs from the base package, but
	added them to -devel.

2000-06-11  Eskil Heyn Olsen  <eskil@eazel.com>

	* gconf.spec.in: Req oaf >= 0.3.0

2000-06-11  Eskil Heyn Olsen  <eskil@eazel.com>

	* gconf.spec.in: Added a .spec file.
	* configure.in: Generate gconf.spec.
	* Makefile.am: Added gconf.spec.in and gconf.spec to the
	EXTRA_DIST.	

2000-06-07  Pavel Cisler  <pavel@eazel.com>

	* wrappers/gtk/gconf-client.c: (gconf_client_get_string):
	Fix a storage leak -- a g_strdup and an string ownership
	swapping optimization were working against each other.
	Removed the g_strdup that is not needed.

2000-06-04	Mathieu Lacage	<mathieu@gnome.org>

	* gconf-config.in: add gtk-config --cflags and --libs
	output to the gconf-gtk --cflags and --libs output.

2000-06-01  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (lookup_engine): check whether the hash is NULL
	before looking up the engine.

2000-06-01  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (gconf_engine_new): If there's an existing engine
	for a given context, return that engine instead of creating a new
	one.
	(gconf_engine_new_from_address): ditto

	* wrappers/gtk/gconf-client.c (gconf_client_finalize): remove
	client from client registration table
	(gconf_client_new): register newly-created client in hash from
	engines to clients; return an existing client if there's already
	a client for the default engine
	(gconf_client_new_with_engine): register newly-created client,
	and try to return existing client.

2000-05-07  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-listeners.c: Move struct _GConfListeners
	into the .c file, eventually need to simply get rid of this.

2000-04-24  Fatih Demir	<kabalak@gmx.net>

	* configure.in : Added tr to ALL_LINGUAS .

2000-04-19  Pablo Saratxaga <pablo@mandrakesoft.com>

	* configure.in (ALL_LINGUAS): Added Catalan language

2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gconf/gconftool.c (main): Don't g_free the result of g_getenv ().

Tue Apr 18 01:37:51 2000  George Lebl <jirka@5z.com>

	* gconf/gconf.c: make the default path sane by adding the flag
	  field with readwrite

	* gconf/gconf.path: add readwrite flag field to make the path legal

2000-03-30  Matthias Warkus  <mawa@iname.com>

	* configure.in (ALL_LINGUAS): Added German translation.

2000-03-13 Alastair McKinstry <mckinstry@computer.org>

	* configure.in (ALL_LINGUAS): Added Irish translation.

2000-03-09  Havoc Pennington  <hp@redhat.com>

	* configure.in (absolute_top_srcdir): don't do makefile for Guile 
	stuff.

	* Makefile.am: create DIST_SUBDIRS with tests directory

2000-03-09 Elliot Lee <sopwith@redhat.com>
	* gconf/gconf-internals.c: Don't syslog things.
	* gconf/examples/Makefile.am: Fix for builddir != srcdir.

2000-03-08  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf.c (gconf_init): exit on error.

	* examples/simple-controller.c (main): fix gconf_init() error

	* examples/simple-view.c (main): fix gconf_init() error 

2000-03-06  Havoc Pennington  <hp@redhat.com>

	* doc/intro-article.sgml: Add the examples

	* examples/simple-view.c: Change include to work before 
	we install.
	
	* examples/simple-controller.c: ditto

2000-02-29  Havoc Pennington  <hp@redhat.com>

	* configure.in: Add goofy "--enable-docs" option to bypass all 
	library checks, we just want to generate sufficient makefile
	for the doc-building targets to run on developer.gnome.org

2000-02-26  Havoc Pennington  <hp@pobox.com>

	* examples/Makefile.am: Add new examples
	* examples/simple-view.c, examples/simple-controller.c:
	Two simple new examples

2000-02-23  Havoc Pennington  <hp@redhat.com>

	* configure.in: Bump version and libtool versions, 
	and try to fix the prefix mess. Update required OAF version.	

	* doc/gconf/Makefile.am: srcdir != builddir fix

	* standard-schemas/Makefile.am: add schemas to EXTRA_DIST

2000-02-22  Elliot Lee  <sopwith@redhat.com>

	* tests/Makefile.am: srcdir != builddir fix.
	* wrappers/gtk/Makefile.am: Add libgconf-gtk.la to testgconfclient
	deps so that 'make -j' builds will work correctly.

2000-02-19  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (try_to_contact_server): Make sure we always set 
	an error

2000-02-15  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf-changeset.c (gconf_change_set_set): apply patch from 
	Rusty Conover <rconover@zootweb.com> fixing an infinite recursion
	typo

	* gconf/gconfd.c (fast_cleanup): Don't bother to unregister with
	OAF

2000-02-01  Havoc Pennington  <hp@redhat.com>

	* configure.in (GCONF_CONFIG_SOURCE): update default schema
	install source
	(XML_LIBS): add better check that we actually ran xml-config
	successfully

	* gconf/gconf-backend.c (gconf_backend_resolve_address): Honor the
	"readonly" flag in address names

	* gconf/gconf-sources.c (SOURCE_WRITEABLE): convert to a function,
	source_is_writeable

	* gconf/gconf-sources.h: add GCONF_SOURCE_NEVER_WRITEABLE flag

	* tests/testaddress.c: new test to verify the functions that break
	up a configuration source address

	* gconf/gconf-backend.c (gconf_address_flags): function to extract
	configuration source flags

	* doc/gconf/gconf.sgml: note new configuration source URL format

	* gconf/gconf.c: Add space, tab, carriage return, newline to the
	invalid characters in a gconf key

2000-01-31  Havoc Pennington  <hp@redhat.com>

	* wrappers/gtk/gconf-client.c (check_type): include name of the
	key with the wrong type in the error message

2000-01-31  Havoc Pennington  <hp@redhat.com>

	* wrappers/gtk/gconf-client.c
	(gconf_client_real_unreturned_error): only handle the error if the
	mode is GCONF_CLIENT_HANDLE_UNRETURNED
	(gconf_client_real_error): only handle if GCONF_CLIENT_HANDLE_ALL
	(gconf_client_init): change default error handling to 
	GCONF_CLIENT_HANDLE_UNRETURNED

	* wrappers/gtk/gconf-client.h: don't pass error handling mode to
	the error handler function

2000-01-28  Havoc Pennington  <hp@redhat.com>

	* wrappers/gtk/gconf-client.c
	(gconf_client_set_global_default_error_handler): New function so
	gnome-libs can install a Gnomized error dialog

2000-01-27  Havoc Pennington  <hp@pobox.com>

	* wrappers/gtk/gconf-client.c (check_overlap): fix the no-debug
	case

2000-01-24  Havoc Pennington  <hp@redhat.com>

	* backends/xml-backend.c (resolve_address): base mode for creating
	files and directories on the permissions of the root XML directory

	* gconf/gconf.h: Clean up indentation

2000-01-27  Elliot Lee  <sopwith@redhat.com>
	* gconf/Makefile.am, standard-schemas/Makefile.am: Fix builddir != srcdir

2000-01-24  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf-sources.c (gconf_sources_new_from_addresses):
	never return errors, just log them.

	* gconf/gconf-backend.c (gconf_get_backend): fix mem leak (free
	"name" if we don't create a new backend to use it in)

	* gconf/gconf-internals.c (gconf_get_lock): fix mem leak

	* backends/xml-entry.c (schema_node_extract_value): fix a mem leak

	* gconf/gconfd.c (main): keep a pointer to the object ID returned
	from PortableServer_POA_activate_object()

	* backends/xml-backend.c (resolve_address): fix a mem leak on
	error

2000-01-24  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf-internals.c (gconf_get_lock): Use a long enough
	buffer to read in the IOR

2000-01-24  Havoc Pennington  <hp@redhat.com>

	* gconf/gconftool.c (do_load_schema_file): Apply patch from Mirko,
	properly locates the root node instead of assuming it is the only 
	node at the toplevel (handles comments, etc).
	(process_schema): Report error if a schema has no <locale> 
	tags.

2000-01-23  Havoc Pennington  <hp@pobox.com>

	* backends/xml-entry.c (node_set_value): Store strings in a
	sub-node and use xmlEncodeEntitiesReentrant() to encode it
	(node_extract_value): Extract string from the subnode

2000-01-23  Havoc Pennington  <hp@pobox.com>

	* doc/gconf/gconf.sgml: Add schema file DTD from Mirko

	* backends/xml-dir.c (dir_sync): pass the XML filename in to
	create_fs_dir()
	(dir_load): This was broken; bug reported by Mirko Streckenbach.
	The Dir object was created even if %gconf.xml file didn't exist,
	so we didn't get around to actually creating %gconf.xml
	(create_fs_dir): Make %gconf.xml the thing this function is
	primarily creating, with the directory containing it as a side 
	effect only.

	* gconf/Makefile.am (install-data-local): Install default path to
	path.example, so we don't override someone's existing setup.

	* gconf/tests/testdirlist.c: test program that detects dir listing
	bugs.
	
2000-01-22  Havoc Pennington  <hp@pobox.com>

	* backends/xml-dir.c (dir_all_subdirs): If we can't open the
	directory it's not an error, just return NULL.

2000-01-21  Havoc Pennington  <hp@redhat.com>

	* backends/xml-cache.c (cache_clean_foreach): remove everything
	older than or the same age as the older_than time value (i.e. 
	put >= instead of >)
	(cache_destroy_foreach): debug check to be sure we aren't
	destroying unsynced directories	

	* gconf/gconfd.c (context_synchronous_sync): remove sync
	timeout/idle handlers when we do a synchronous sync

2000-01-21  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-value.c (gconf_value_new_from_string): use new
	double conversion
	(gconf_value_to_string): use new conversion

	* gconf/gconf-internals.c (gconf_double_to_string) 
	(gconf_string_to_double): new functions to go from string
	to double, we had precision problems with this and maybe 
	still do, these functions encapsulate it. For now
	copied code from gnumeric/src/xml-io.c

	* gconf/gconftool.c (main): improve gconfd-is-running error
	message

	* gconf/gconf.c (gconf_synchronous_sync): internal-only API 
	for the synchronous sync

	* gconf/gconfd.c (gconfd_synchronous_sync): implement a way to
	force _immediate_ sync for testing purposes

2000-01-21  Havoc Pennington  <hp@pobox.com>

	* tests/Makefile.am (testpersistence_SOURCES): add new test

	* tests/testpersistence.c: New test, clears the cache after every
	set, to see if the get() function can properly load stuff off of
	disk. Right now we fail this test. Blah.

2000-01-21  Havoc Pennington  <hp@pobox.com>

	* backends/xml-cache.c (cache_clean): oops, this was broken
	before; we need to check that the dir doesn't need a sync before
	we destroy it.

	* backends/xml-dir.c (dir_sync_pending): new function

	* backends/xml-backend.c (clear_cache): implement clearing cache
	for XML backend

	* gconf/gconf.c (gconf_clear_cache): implement API here

	* gconf/GConf.idl: add clear_cache method

	* gconf/gconfd.c (context_clear_cache): add code to implement
	clear_cache IDL 

	* gconf/gconf-sources.c (gconf_sources_clear_cache): New function
	for debugging purposes

2000-01-20  Havoc Pennington  <hp@pobox.com>

	* backends/xml-entry.c (node_extract_value): Detect case where a
	pair is missing car and/or cdr and do an error instead of
	returning an invalid pair.

	* gconf/gconf-internals.c (gconf_get_lock): remove IOR debug spew

	* gconf/gconftool.c: Add --break-key and --break-directory, these
	allow you to easily torture test your application and see if
	you're robust against users setting your config keys to stupid
	stuff.

	* tests/testgconf.c: Include the empty string in the list 
	of strings we test. I know this is currently broken if you 
	exit gconfd or purge the cache between set and get.
	
2000-01-20  Havoc Pennington  <hp@redhat.com>

	* gconf/Makefile.am (EXTRA_DIST): fix EXTRA_DIST to have
	default.path.in in it

2000-01-20  Havoc Pennington  <hp@redhat.com>

        * gconf/default.path: remove, replace with gconf/default.path.in
	which is set up properly to go in $sysconfdir
	
	* gconf/gconftool.c (main): Always unref the engine when we're
	done, to ensure we cleanly give up locks on local sources.

	* configure.in (GCONF_CONFIG_SOURCE): --enable-gconf-source option

	* gconf/gconftool.c (main): add an --makefile-install-rule option,
	which does the right thing in makefile install rules.	

        * Makefile.am: add standard-schemas subdir
	
	* configure.in (absolute_top_srcdir): create standard-schemas Makefile

	* standard-schemas/desktop.schemas: Schemas that any desktop can use

	* standard-schemas/Makefile.am: install schemas

2000-01-19  Havoc Pennington  <hp@redhat.com>

	* gconf/gconfd.c (gconf_set_exception): warn if the error is set
	to GCONF_ERROR_SUCCESS

	* gconf/gconf-error.h: Prefix all errno values with GCONF_ERROR as
	Owen suggested

2000-01-15  Havoc Pennington  <hp@pobox.com>

	* tests/testlisteners.c (check_immediate_remove_after_add): update 
	to match change to gconf-listeners.c

	* gconf/gconf-listeners.c: Use only 24 bits for the array index,
	and put a variable value in the top 8 bits, so recycling array
	indices doesn't create the possibility of clients clashing with
	each other (i.e. to clients it doesn't appear that indexes are
	being recycled).	

2000-01-15  Havoc Pennington  <hp@pobox.com>

	* backends/xml-dir.c (dir_unset_value): check entries for 
	uselessness on unset, even if they are unchanged by the unset.
	Allows us to delete useless crap we loaded from disk.
	If you unset, the entry should no longer appear in all_entries
	unless there's a schema name to remember.
	
	* backends/xml-entry.c (entry_unset_value): Fix this to properly
	unset value for all locales if the locale passed in to "unset" is
	NULL
	(entry_sync_to_node): Remember to unset the value if necessary
	
	* gconf/gconftool.c (list_pairs_in_dir): handle entries with no
	value.

2000-01-15  Havoc Pennington  <hp@pobox.com>

	* backends/xml-dir.c (dir_destroy): destroy entries before the xml
	doc, since they hold pointers into the xml doc.

	* backends/xml-entry.c (entry_sync_to_node): if no cached value,
	blow away the value in the node.

2000-01-14  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (gconfd_all_entries): remove bad assertion that 
	the value in an entry was non-NULL

	* gconf/gconf.c (gconf_set): check for invalid list type

	* gconf/gconf-internals.c (gconf_value_from_corba_value): Be more 
	paranoid about list types coming from gconfd

2000-01-13  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (gconf_unique_key): function to generate
	a pseudo-random very-very-likely-to-be-unique key name.

2000-01-13  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf-internals.c (gconf_concat_key_and_dir): move
	declaration to public header

	* doc/gconf/tmpl/gconf-client.sgml: Document the changed
	dir add/remove behavior

2000-01-13  Havoc Pennington  <hp@redhat.com>

	* backends/xml-dir.c (dir_load): arguments to this were backward

	* wrappers/gtk/gconf-client.c: keep a count of the number of times
	a directory has been added/removed from the dir list, so we only 
	remove it from the list after that number of removals.
	Perhaps somewhat unintuitive, but we'll document it, and it's 
	really necessary if multiple code sections are going to share the 
	same GConfClient.
	(gconf_client_destroy): move a bunch of stuff to finalize
	so we remain "safe" before last unref

2000-01-12  Havoc Pennington  <hp@redhat.com>

	* gconf/gconfd.c (main): don't use custom object ID

2000-01-12  Jonathan Blandford  <jrb@redhat.com>

	* wrappers/gtk/gconf-client.c: #include <stdio.h>

2000-01-11  Havoc Pennington  <hp@pobox.com>

	* gconf.m4: separate $4 from gconf_config_args

	* gconf-config.in (af_libs): -lgconf, not -lgconf-client
	(Libraries): add gconf-gtk lib

2000-01-11 Andreas Hyden <andreas.hyden@telia.com>

	* configure.in : added sv (swedish)

2000-01-08  Havoc Pennington  <hp@pobox.com>

	* gconf/gconftool.c (main): had local and non-local cases backward
	so you got the opposite of what you requested

	* gconf/gconf-internals.c (gconf_release_lock): include strerror()
	in "can't open lock file" message
	(gconf_get_lock): actually write the PID to the lock file,
	and use ConfigServer_ping() instead of CORBA_Object_is_nonexistent()

2000-01-07  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf-internals.c (gconf_get_lock): totally rewrite the
	locking stuff

	* backends/xml-dir.c (dir_load): if errno == ENOENT don't make
	dir_load() fail

	* gconf/gconfd.c (main): check return value of
	oaf_active_server_register() and act accordingly.

	* gconf/gconf.c (try_to_contact_server): use new
	OAF_FLAG_EXISTING_ONLY when appropriate	

	* gconf/gconf-internals.c (gconf_set_daemon_ior): allow setting
	IOR to a global var

	* gconf/gconfd.c (main): set the IOR so it can be used in lockfiles

2000-01-03  Havoc Pennington  <hp@redhat.com>

	* gconf/gconftool.c (main): add support for direct config source access

1999-12-31  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-internals.c (gconf_log): in non-daemon mode, use
	fprintf() when it's an error and printf() when not
	(gconf_in_daemon_mode): new function

	* gconf/gconfd.c (signal_handler): special-case some more signals;
	do more thorough cleanup when we can.
	(main): fix which signals we add an action for

	* gconf/gconf-internals.h: Remove server_info* functions

	* gconf/gconf-error.h: add GCONF_LOCK_FAILED

	* gconf/gconf.c (corba_errno_to_gconf_errno): lock failed error

	* gconf/gconf-internals.c (gconf_nanosleep): Add utility function
	to portably sleep a little while (we should really stick one of
	these in glib)
	(gconf_release_lock, gconf_get_lock): Lock directory functions

2000-01-02  Timur Bakeyev <mc@bat.ru>

	* doc/gconf/Makefile.am: Replace unportable install -d with $MKINSTALLDIRS.
	install -m 0644 - with $(INSTALL_DATA).

2000-01-02  Timur Bakeyev <mc@bat.ru>

	* po/uk.po: Add missed "\n" in 2 strings. Things sholud be checked 
	before commit :)
	
	* backends/Makefile.am, wrappers/gtk/Makefile.am: Add $(top_builddir)/gconf
	to INCLUDES to make GConf.h visiable.

	* gconf/gconf-internals.c: If LC_MESSAGE doesn't exist, use value of
	LC_CTYPE (is this correct?)
		
1999-12-31  Yuri Syrota  <rasta@renome.rovno.ua>

	* configure.in: Added "uk" to ALL_LINGUAS

1999-12-30  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c: Complete cleanup of XML backend, 
	all test suite passes, code is much more manageable.

1999-12-21  Havoc Pennington  <hp@redhat.com>

	* doc/gconf/tmpl/gconf-backend.sgml: Documented the methods in the
	backend vtable.

	* backends/xml-dir.[hc], backends/xml-entry.[hc]: fixed up some
	code, mostly done.	

1999-12-20  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf-sources.c (gconf_sources_new_from_addresses): const
	correctness

	* gconf/gconfd.c: Massive const-correctness changes to match
	latest ORBit

	* gconf/gconf.c (notify): "in string" seems to be const again now.

	* wrappers/gtk/gconf-client.c (cache_pairs_in_dir): store the
	is_default parameter when preloading

	* gconf/gconf.c (gconf_all_entries): receive the is_default
	parameter

	* gconf/gconfd.c (gconfd_all_entries): pass the is_default
	parameter over the CORBA link

	* backends/xml-backend.c (listify_foreach): Add the schema name to
	the entry if appropriate (if value is unset)

	* gconf/gconf-sources.c (gconf_sources_all_entries): Change to
	match new semantics of all_entries in the backend; get all entries
	that have a schema set on them, and the corresponding default 
	value if appropriate.

	* gconf/gconf-value.c (gconf_entry_set_is_default): new function
	(gconf_entry_set_schema_name): new function

	* backends/xml-backend.c (listify_foreach): Include keys that
	exist but have no value set in the list of returned entries.

1999-12-20  Havoc Pennington  <hp@redhat.com>

	* tests/testlisteners.c: fix include

	* wrappers/gtk/gconf-client.c (gconf_client_preload): Actually
	implement preloading. We have some "issues" here to resolve I
	think, because of the defaults stuff and schemas.
	
1999-12-14  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf.c (gconf_engine_new_from_address): Add a g_warning()
	that people probably don't want to use this.

1999-12-14  Havoc Pennington  <hp@redhat.com>

	* doc/gconf/tmpl/gconf-client.sgml: fix a typo, add additional
	explanation to the introduction.

	* doc/gconf/tmpl/gconf.sgml: Document the string-to-enum functions.
	Update some other docs too.

	* doc/gconf/gconf-sections.txt: add new functions

	* gconf/gconf.c (gconf_string_to_enum): new function
	(gconf_enum_to_string): new function

	* gconf/gconf-engine.h: Put gconf_engine_new_local() here instead
	of gconf-internals.h

	* gconf/gconf-internals.h: added a new GCONF_ENABLE_INTERNALS
	define, to allow us to have internal stuff in headers other than
	gconf-internals.h

	* gconf/gconf.c (gconf_unset): local version
	(gconf_associate_schema): local version
	(gconf_all_entries): local version
	(gconf_all_dirs): local version
	(gconf_suggest_sync): local version
	(gconf_dir_exists): local version

	* gconf/gconf-internals.h (gconf_engine_new_local): Declare this
	function here, though it's defined in gconf.c

	* gconf/gconf.c (gconf_set): local version

	* gconf/gconfd.c (context_query_default_value): use
	gconf_sources_query_default_value()

	* gconf/gconf-sources.c (gconf_sources_query_default_value): New
	function

	* gconf/gconf-sources.h: egtk-format-protos the function
	prototypes.

	* gconf/Makefile.am (libgconf_la_SOURCES): move gconf-locale.[hc]
	into the library, bah

	* gconf/gconf.c (gconf_get_full): Add local (no gconfd) version

	* gconf/gconf-locale.c (gconf_split_locale): locale splitter
	function.

	* gconf/gconf-sources.c (gconf_sources_new_from_source): new function

	* examples/basic-gconf-app.c (create_prefs_dialog): Move keys from
	/apps/gnome to plain /apps

	* doc/gconf/gconf.sgml: Add an initial stab at namespace
	splitting.

1999-12-09  Havoc Pennington  <hp@redhat.com>

	* gconf/gconf.c (gconf_init): Safety check to ensure we don't
	initialize OAF a second time.

1999-12-06  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (gconf_notify_add): Backward assertion

1999-12-02  Havoc Pennington  <hp@pobox.com>

	* examples/basic-gconf-app.c (create_configurable_widget): use
	gconf_client_get_string() instead of gconf_client_get()
	(update_entry): Check for the default value if we have an unset
	value in the change set.	

	* wrappers/gtk/gconf-client.c
	(gconf_client_create_change_set_from_currentv): use without_default
	(revert_foreach): use without_default

	* gconf/gconf-changeset.c (gconf_create_change_set_from_currentv):
	use gconf_get_without_default()
	(revert_foreach): use gconf_get_without_default()

	* wrappers/gtk/testgconfclient.c (entry_notify_func): fix to compile

	* examples/basic-gconf-app.c (configurable_widget_config_notify):
	fix to compile

	* wrappers/gtk/gconf-client.c
	(gconf_client_get_default_from_schema): New function

	* gconf/gconf.c (gconf_get_without_default): renamed from
	gconf_get_no_default(), so that gconf_get_default_from_schema()
	won't be as confusing maybe.
	(gconf_get_default_from_schema): new function to read the default
	setting in the schema

	* backends/xml-backend.c (xentry_extract_value): remove ignore_subsequent
	(xentry_set_value): ditto

	* gconf/gconf-sources.c (gconf_sources_query_value): Remove ignore
	subsequent

	* gconf/gconf-value.c (gconf_value_new_from_string): remove
	ignore_subsequent
	(gconf_value_to_string): remove ignore_subsequent
	(gconf_value_copy): Remove ignore_subsequent

	* gconf/gconfd.c (context_unset): add is_default to notification
	(context_set): add is_default to notification

	* gconf/gconf-internals.c (gconf_value_type_to_string): Remove
	ignore_subsequent. 

	* gconf/gconf.c (gconf_cnxn_notify): add is_default
	(notify) add is_default

	* gconf/gconf-value.h: Remove GCONF_VALUE_IGNORE_SUBSEQUENT

	* gconf/gconf-sources.c (gconf_sources_unset_value): don't do that
	weird IGNORE_SUBSEQUENT goo

	* wrappers/gtk/Makefile.am (INCLUDES): add top_builddir to include
	search to get the built sources

	* gconf/gconf-engine.h: fix includes

	* gconf/gconf-changeset.h: fix includes

	* gconf/Makefile.am (gconfd_SOURCES): add gconf-sources.h here
	instead of installing it.

	* wrappers/gtk/Makefile.am (INCLUDES): remove -I$(top_builddir)/gconf

	* wrappers/gtk/gconf-client.c (gconf_client_get_full): Add this,
	etc.

	* gconf/gconf-sources.c (gconf_sources_query_value): Set a flag
	indicating whether the retrieved value was the default or not.

	* gconf/GConf.idl: add value_is_default out flag to
	lookup_with_locale()

1999-12-02  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-error.c: Was missing an element in the err_msgs
	array and the array had the wrong size.
	
	* gconf/gconf-sources.c (gconf_sources_query_value): Add
	use_schema_default flag here (and in the other stuff that calls
	it, I'm skipping some layers in the changelog)
	(gconf_sources_query_value): If we find an IGNORE_SUBSEQUENT, we
	should return immediately, rather than checking the schema default.

	* gconf/gconfd.c (gconfd_lookup_with_locale): fix
	
	* gconf/gconf.c (gconf_get_no_default): new function to get
	a value, but not fall back to the schema default.

	* gconf/GConf.idl: lookup_with_locale() needs to raise
	ConfigException. Also, add a "use schema default" flag.

1999-12-01  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c: Add local "direct mode" engine; mildly bad hack.
	This file could use some modularization. Still have to make
	all the methods support the local version.
	
	* gconf/Makefile.am (libgconf_la_SOURCES): move gconf-sources.c to
	the library instead of gconfd (again).

	* gconf/gconf-internals.c (gconf_handle_oaf_exception): set the
	GCONF_OAF_ERROR errno
	
	* gconf/gconf-error.c: add strerror stuff for those errors.

	* gconf/gconf-error.h: add oaf error and "this is not a gconfd
	engine" error.

1999-12-01  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (try_to_contact_server): handle OAF exceptions

	* gconf/gconf-internals.c (gconf_handle_oaf_exception): new
	function to handle OAF CORBA exceptions, now I have to find all
	the places that I need to use this function...

1999-12-01  Havoc Pennington  <hp@pobox.com>

	* doc/gconf/gconf-sections.txt: Add new create_change_set
	functions for GConfClient and GConfEngine

	* doc/gconf/Makefile.am (LDFLAGS): Use proper cflags/ldflags 
	for gtk and OAF when doing 'make scan'

	* wrappers/gtk/testgconfclient.c (entry_attached_to): change for
	new get_string() thing

	* gconf/gconf-changeset.h: fix the "" vs. <> issue on an #include

	* wrappers/gtk/gconf-client.c (gconf_client_get_bool): remove
	"default" argument
	(gconf_client_get_string): ditto
	(gconf_client_get_int): ditto
	(gconf_client_get_float): ditto

	* gconf/gconf.c (gconf_get_bool): Remove "default" argument.
	(gconf_get_string): ditto
	(gconf_get_int): ditto
	(gconf_get_float): ditto

1999-11-30  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c (resolve_address): s/dir/root_dir/

1999-11-29  Havoc Pennington  <hp@pobox.com>

	* gconf/gconftool.c (do_load_schema_file): Use new syntax for
	attaching schema names to key names

	* backends/xml-backend.c (resolve_address): Create the XML root
	directory if necessary.

1999-11-29  Havoc Pennington  <hp@pobox.com>

	* wrappers/gtk/gconf-client.c (gconf_client_get): sheesh, this
	stupid function didn't work at all. fix it
	(get): properly check whther val is NULL before copying it.

	* gconf/gconf-internals.c (gconf_set_daemon_mode): Function to set
	daemon mode, for now changes gconf_log behavior
	(gconf_log): handle daemon vs. non-daemon mode, and with syslog do
	syslog(pri, "%s", msg) instead of syslog(pri, msg) to avoid
	unwanted printf magic.	
	(gconf_value_from_corba_value): more robust for list types, add an assertion

	* gconf/gconfd.c (gconfd_set): return if the conversion from
	GConfValue doesn't fly

	* gconf/gconf-value.c (gconf_value_new): add a check for valid type

	* gconf/gconf-value.h (GCONF_VALUE_TYPE_VALID): Add macro to check the
	a value type is valid

	* gconf/gconf-changeset.c (change_set): return if the value being
	set is the same as the existing value.

	* examples/Makefile.am (EFENCE): add EFENCE var

	* wrappers/gtk/gconf-client.c (gconf_client_commit_change_set):
	add checks

	* gconf/gconf-changeset.c (gconf_commit_change_set): add checks

	* gconf/gconf-listeners.c (gconf_listeners_remove): Robust against
	bad notify_id

	* gconf/gconf-changeset.c (gconf_create_change_set_from_current):
	New function to create a change set which will restore the current
	values of a list of keys.
	(gconf_create_change_set_from_currentv): Vector version of the
	same function.
	(gconf_change_set_check_value): new function to check for and get 
	the value of a key in a change set.

	* wrappers/gtk/gconf-client.h: Add client analogues for the above
	two set-creation functions.
	
1999-11-28  Havoc Pennington  <hp@pobox.com>

	* gconf.m4: add the "" around the $4, seems to work - the problem
	here seems to have something to do with aclocal or autoconf
	doing the wrong thing, rather than a shell issue. I don't
	understand it yet.

1999-11-23  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c (query_value): Don't return errors here; 
	this is somewhat wrong, we actually need to discriminate between
	errors and report the "abnormal" ones, but for now I think all of
	them are ignorable.

	* gconf/gconf-internals.c (gconf_log): If the log string contains
	a % escape it with another percent so we don't get printf()
	effects (was causing a segfault) - however it's still broken if
	unintentional percents exist in the initial format string. Will
	fix later by adding a "printf()-formatting" arg I think

	* wrappers/gtk/gconf-client.c (gconf_client_commit_change_set):
	put some casts in to chill warnings

	* gconf/gconf-changeset.c (gconf_change_set_size): new function

	* wrappers/gtk/gconf-client.c (gconf_client_destroy): Destroy the
	directory list.

	* Makefile.am (SUBDIRS): add "examples" directory

	* examples/Makefile.am, examples/basic-gconf-app.c: Examples;
	write nice example program.
	
	* gconf/gconfd.c (notify_listeners_cb): error message improvement
	(set_default_context): Set the "context" field of the default
	context, I don't get how that was working before.	

1999-11-23  Havoc Pennington  <hp@pobox.com>

	* wrappers/gtk/testgconfclient.c: remove GNOME dependency

	* configure.in: don't build gconf-editor makefile.

	* Makefile.am (SUBDIRS): never build gconf-editor, it will have to
	go in a separate module (somewhat inconveniently, since I'll
	probably end up installing gconf-internals.h for its use, blah)

	* configure.in (GCONF_AGE): Check for plain GTK not GNOME

	* wrappers/Makefile.am (SUBDIRS): change GNOME conditional to GTK

1999-11-23  Havoc Pennington  <hp@pobox.com>

	* gconf/Makefile.am (libgconf_la_LDFLAGS): split off LIBADD

	* wrappers/gtk/Makefile.am (libgconf_gtk_la_LIBADD): set shared
	lib version
	(libgconf_gtk_la_LDFLAGS): split LIBADD and LDFLAGS maybe properly.

	* configure.in: remove gnorba cflags/libs

	* gconf/Makefile.am (install-data-local): Create the
	$(sysconfdir)/gconf directory.

	* wrappers/Makefile.am: For now, always disable Guile wrapper
	build.

1999-11-22  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c (resolve_address): Check whether the XML
	directory is readable/writeable and report an error if neither;
	set readable/writeable flags properly.

	* gconf/gconfd.c (gconf_server_load_sources): log decision to use
	default config source

1999-11-22  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (gconf_server_load_sources): Fall back to
	xml:~/.gconf if no config file is found

1999-11-22  Havoc Pennington  <hp@pobox.com>

        * gconf/default.path: default configuration file
	
	* gconf/Makefile.am (install-data-local): Install default.path to
	sysconfdir/gconf/path (theoretically)

1999-11-22  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (gconf_set_exception): lots of assertions
	(gconf_server_load_sources): Install the default context even if
	we don't find any configuration sources in the path

	* gconf/gconf.c (gconf_get_config_server): always return an error
	if the server isn't available. This is still not doing the right
	thing; for shutdown and ping we need to be able to get the object
	if and only if it already exists. This feature is also needed for
	something like magicdev-patched gtcd.

	* gconf/gconfd.c (gconf_server_load_sources): #ifdef the
	debug-only search for debugging path file.

1999-11-19  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (gconf_server_load_sources): Give actual
	sysconfdir in the error message, not just /etc;
	include liboaf.h

	* gconf/gconf.c: include liboaf.h
	(gconf_postinit): fix a bunch of missing semicolons

1999-11-20  Havoc Pennington  <hp@pobox.com>

	* wrappers/gtk/gconf-client.c
	(gconf_client_create_reverse_change_set): new function
	(gconf_client_commit_change_set): new function

1999-11-20  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-changeset.c (gconf_create_reverse_change_set): New
	function creates a change set which will revert another change set
	on commit.

1999-11-19  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (gconf_server_load_sources): Give actual
	sysconfdir in the error message, not just /etc;
	include liboaf.h

	* gconf/gconf.c: include liboaf.h
	(gconf_postinit): fix a bunch of missing semicolons

1999-11-19  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (gconf_server_broken): don't need to set the
	server to NIL here, it gets set in gconf_detach_config_server()

	* doc/gconf/gconf-sections.txt: Add preinit, postinit

	* doc/gconf/gconf.sgml: Remove gconf-orbit entity

	* doc/gconf/gconf-sections.txt: Remove gconf-orbit stuff

        * tests/*.c: Fix to not include gconf-orbit.h, call gconf_init()
	properly
	
	* gconf-editor/gconf-editor.c: don't include gconf-orbit.h

	* wrappers/gtk/testgconfclient.c (main): remove "orb" variable

	* gconf/gconftool.c: don't include gconf-orbit.h

	* gconf/gconfd.c: don't include gconf-orbit.h

	* gconf/gconf.c: don't include gconf-orbit.h

	* gconf/gconf.h: don't include gconf-orbit.h

	* gconf/Makefile.am (gconfinclude_HEADERS): remove gconf-orbit.h
	(libgconf_la_SOURCES): remove gconf-orbit.c

	* gconf/gconfd.c (main): fix error message if oaf_init() returns FALSE

	* gconf/gconf.c (try_to_contact_server): Use the IID macro
	(gconf_postinit): Change all the error checks to assertions; if
	these errors can really happen they need to be reported as before
	(not sure how to do this with the pre/post init setup), if they
	can't happen then they should be asserted, not error-checked.

	* gconf/gconfd.c (fast_cleanup): Unregister with OAF in order to
	clean up.

	* gconf/Makefile.am: add -DIID to INCLUDES

	* gconf/gconfd.c (main): Use a macro for the IID

	* gconf/gconf-internals.c: Remove gconf_read_server_ior(),
	gconf_info_dir(), gconf_info_file(), etc. since we use OAF instead.

	* gconf/gconfd.c (main): Remove "nodaemon" flag since we don't run
	as a daemon anymore.
	(main): After oaf_init(), don't try to use "err" since oaf_init()
	won't set it.

        * gconf/gconf-orbit.h, gconf/gconf-orbit.c: Delete these, we 
	are using OAF now.
	
	* gconf/gconf.c (gconf_get_config_server): Change this to only
	call try_to_contact_server() if start_if_not_found is TRUE, 
	since with OAF any attempt to contact the server will 
	automatically restart it. Now we keep the server variable 
	up-to-date locally (set it to NULL on any system exception).

1999-11-19  Elliot Lee  <sopwith@redhat.com>

	* Make it all use OAF, and redo the initialization routine(s) to
	fit better into the GnomeModuleInfo system.

1999-11-18  Elliot Lee  <sopwith@redhat.com>

	* gconf.m4: AM_PATH_GCONF macro.
	
	* wrappers/gtk/Makefile.am, autogen.sh, backends/Makefile.am: Work with builddir != srcdir

	* Makefile.am: Distribute gconf.m4 & gconf-config.in, install gconf.m4

1999-11-18  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (gconf_server_load_sources): fix the message
	about writeable sources

1999-11-18  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c (find_schema_subnode_by_locale): Check
	that locale && this_locale before strcmp()'ing them
	(entry_unset): take a NULL locale in unset to mean "unset all locales"

	* tests/testschemas.c (check_one_schema): fix the locale-related tests

	* gconf/gconf.c (gconf_set_schema): remove debug spew

	* gconf/gconf-internals.c (gconf_schema_from_corba_schema): parse
	the encoded default value
	(fill_corba_schema_from_gconf_schema): encode the default value to
	ship to the server.

	* gconf/GConf.idl: Add encoded default value string to
	ConfigSchema struct

	* gconf/gconf-internals.c (gconf_value_decode): implement
	(gconf_value_encode): implement

	* gconf/gconf-value.c (gconf_value_to_string): Use
	g_strdup_printf() to create int/float strings, rather than
	guessing at the needed string size.

1999-11-17  Havoc Pennington  <hp@pobox.com>

	* tests/testencode.c: new test for string quoting

	* gconf/gconf-internals.c (gconf_unquote_string_inplace): new
	function unquotes a string
	(gconf_quote_string): quotes a string
	(gconf_unquote_string): unquotes a const string

1999-11-16  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-schema.c (gconf_schema_copy): copy locale, and
	handle NULL fields. Sheesh this was broken.
	(gconf_schema_destroy): destroy default value and locale

1999-11-16  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-value.c (gconf_value_to_string): print more info
	about schemas

	* backends/xml-backend.c (xentry_set_schema_value): Set the schema
	type on the toplevel node, not the localized node.
	(xentry_set_schema_value): Set the owner on the toplevel node
	(schema_node_extract_value): Do better at falling back to any
	schema if the locale we want isn't found.
	(my_xmlSetProp): Replace xmlSetProp with this, deletes the prop
	if setting to NULL or ""
	(my_xmlGetProp): Replace xmlGetProp with this, returns NULL if the 
	prop has an empty value.

	* gconf/gconf-internals.c (gconf_value_type_to_string): Add case
	for GCONF_VALUE_INVALID

	* backends/xml-backend.c (entry_unset): refill cached_value if
	other locale values still exist. Also, mark the Entry dirty.
	(entry_value): add a sync_if_needed here
	(entry_sync_if_needed): just always sync if it's a schema; this
	code is so broken we may as well not try to be clever.	

1999-11-15  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c (entry_fill): handle locale by syncing
	cached value if necessary 
	
	* wrappers/gtk/gconf-client.c (gconf_client_get_string):
	g_strdup() the retval if necessary
	(gconf_client_get_pair): fix one of the checks

	* backends/xml-backend.c (xentry_extract_value): use "C" locale if
	none is given.

	* gconf/gconftool.c (do_load_schema_file): check type of nodes
	(process_key_list): check node type
	(process_schema): check node type
	(process_locale_info): check node type
	(extract_global_info): check node type

	* backends/xml-backend.c (entry_unset): deal with locales
	(entry_set): deal with locales
	(entry_value): locales
	(schema_node_extract_value): handle locales

	* gconf/gconf-internals.c (gconf_log): move the check for debug
	messages to the top of the function, before g_strdup_vprintf(),
	and if GCONF_ENABLE_DEBUG isn't defined return immediately (ignore
	the GCL_DEBUG messages).

1999-11-15  Havoc Pennington  <hp@pobox.com>

	* doc/gconf/tmpl/gconf-client.sgml: write GConfClient docs.

	* wrappers/gtk/gconf-client.c (gconf_client_new_with_engine):
	change this to increment the #GConfEngine reference count.

	* doc/gconf/gconf.sgml: Add GConfClient entity

	* doc/gconf/gconf-sections.txt: Add GConfClient stuff, add
	set_list and set_pair for GConfChangeSet

	* doc/gconf/gconf.types: New file gtk-doc requires

	* doc/gconf/Makefile.am (scan): Scan GConfClient as well. 
	Uses a bad, probably nonportable hack, but this stuff isn't 
	built by default anyway.

	* wrappers/Makefile.am: Build GConfClient if we have GNOME

1999-11-15  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (gconf_get): Fix it to use the current
	locale as documented.

	* gconf/gconf-internals.c
	(gconf_value_list_to_primitive_list_destructive): new function
	takes most code from gconf_get_list()
	(gconf_value_pair_to_primitive_pair_destructive): new function

	* wrappers/gtk/gconf-client.c (get): Return a copy of the cached
	value, should save us some segfaults.
	(gconf_client_get_list): new function
	(gconf_client_get_pair): new function
	(gconf_client_set_list): new function
	(gconf_client_set_pair): new function

	* gconf/gconf-internals.c (gconf_value_pair_from_primitive_pair):
	new function removes guts of gconf_set_pair()

	* gconf/gconf.c (gconf_set_list): change to use
	gconf_value_list_from_primitive_list()

	* gconf/gconf-changeset.c (gconf_change_set_set_list): new
	convenience function
	(gconf_change_set_set_pair): new function

	* gconf/gconf-internals.c (gconf_value_list_from_primitive_list):
	new function, takes most of the code from gconf_set_list() to
	share with other list-set wrappers

1999-11-14  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c (listify_foreach):  s/gconf_entry_new/gconf_entry_new_nocopy/

	* gconf/gconf.c (gconf_all_entries):  s/gconf_entry_new/gconf_entry_new_nocopy/

        * gconf/doc/*: tons of documentation updates.
	
	* gconf/gconf-changeset.c: Add an "in_foreach" flag and warn if
	you do bad things during a foreach operation.
	(gconf_change_set_remove): check that we aren't in a foreach
	(gconf_change_set_unref): if refcount == 0 check that we aren't in
	a foreach

	* gconf/gconf-changeset.h: try to spell "committed" right.

	* gconf/gconf-value.h (gconf_entry_value): add accessor macros 
	to GConfEntry.

	* gconf/gconf-value.c (gconf_entry_new_nocopy): Rename
	gconf_entry_new() to gconf_entry_new_nocopy() to reflect its 
	actual behavior.

1999-11-13  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-internals.h: move the value-from-string constructors
	here

	* gconf/gconf-value.h: moved from here

1999-11-13  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-value.h (gconf_meta_info_schema): Add const cast to
	this macro.

	* gconf/gconf.c (gconf_set_list): allow list of schemas
	(from_primitive): handle schemas
	(primitive_value): handle schemas
	(gconf_get_list): handle schemas

	* doc/gconf/tmpl/gconf-value.sgml: docs!

	* doc/gconf/tmpl/gconf.sgml: docs!

	* doc/gconf/gconf-sections.txt: add set/get list/pair

	* gconf/gconf.c (gconf_set_list): Fix dumb bug (assign back to the
	original list!)

1999-11-13  Havoc Pennington  <hp@pobox.com>

	* tests/testgconf.c (check_list_storage): Use the new list 
	convenience wrappers, to be sure they are tested. (the test
	reveals that right now they don't work ;-)

	* gconf/gconf.c (error_checked_set): destroy the error if it isn't
	passed out to the user, to avoid a mem leak
	(gconf_set_float): checks
	(gconf_set_int): checks
	(gconf_set_string): checks
	(gconf_set_bool): checks
	(gconf_set_bool): canonicalize the boolean value with !!
	(gconf_set_schema): checks

	* gconf/gconf-value.h (gconf_value_string): add const cast to this 
	macro

	* gconf/gconf.c (gconf_get_schema): add checks
	(gconf_get_bool): checks
	(gconf_get_string): checks
	(gconf_get_int): checks
	(gconf_get_float): checks
	(gconf_get_with_locale): checks
	(gconf_set): more checks
	(gconf_unset): checks
	(gconf_associate_schema): checks
	(gconf_all_dirs): checks
	(gconf_dir_exists): checks
	(gconf_get_list): New function, gets a list of native types 
	and avoids GConfValue.
	(gconf_get_pair): New function, gets a pair of native types
	(gconf_set_list): New function, sets a list of native types
	(gconf_set_pair): New function, sets a pair of native types
	
1999-11-12  Havoc Pennington  <hp@pobox.com>

	* doc/gconf/gconf.sgml: Set up the gtk-doc system. Added all the
	files for that.

1999-11-12  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c: Change all comments starting with /** to
	not start with that (for gtkdoc)

1999-11-12  Havoc Pennington  <hp@pobox.com>

	* gconf/gconftool.c (main): Add the ability to specify a
	configuration source other than the default configuration source
	stack.
	Add the ability to install a schema file.

	* gconf/Makefile.am (INCLUDES): add XML_CFLAGS
	(gconftool_LDADD): add XML_LIBS

	* backends/Makefile.am (INCLUDES): add XML_CFLAGS

1999-11-11  Havoc Pennington  <hp@pobox.com>

	* tests/testchangeset.c: test for the changeset stuff
	
	* gconf/gconf.c (gconf_set): add check that string values don't
	contain a NULL string	

	* gconf/gconf-changeset.c (gconf_change_set_unset): fix typo

        * doc/gconf.sgml: tweaks
	
	* gconf/gconf-changeset.c, gconf/gconf-changeset.h: ChangeSet data
	structure stores a bunch of changes to be committed in a block.
	For now the gconf_commit_change_set() function is really naive
	(iterates over the change set and sets each value)

	* backends/xml-backend.c: Throughout, use accessor functions to 
	access the "value" field in the cache entries; we're going to 
	have to update the value field to match the proper locale
	before supplying it via the entry_value() accessor.

1999-11-11  Havoc Pennington  <hp@pobox.com>

	* tests/runtests.sh: Enhance to detect missing tests.

	* gconf/gconf-internals.c (gconf_log): don't log DEBUG level stuff 
	if built without GCONF_ENABLE_DEBUG

	* backends/xml-backend.c (safe_g_hash_table_insert): Same, use
	GCONF_ENABLE_DEBUG
	Add locales stuff throughout this file, but do nothing with it for
	now.

	* gconf/gconfd.c (safe_g_hash_table_insert): Make this dependent
	on GCONF_ENABLE_DEBUG setting.

	* gconf/gconf-sources.c (gconf_sources_query_value): fix locale
	(gconf_sources_unset_value): locale
	(gconf_sources_all_entries): locales

	* gconf/gconfd.c (context_query_value): Use locale list
	(context_unset): locale argument
	(context_all_entries): locale argument
	(gconfd_unset_with_locale): locale

	* gconf/gconf-sources.c (gconf_source_query_value): Pass an array
	of locales to look for
	(gconf_source_all_entries): ditto
	(gconf_source_unset_value): pass locale to unset

	* gconf/gconf-backend.h: Add locale args to the backend functions
	that need it

	* gconf/gconf-internals.c (gconf_current_locale): Use setlocale()
	again, not guess_category_value from gnome-i18n

1999-11-10  Havoc Pennington  <hp@pobox.com>

	* gconf/Makefile.am (gconfd_SOURCES): Move the locale stuff here;
	decided not to use it in backends, so it can be in gconfd not the
	library.

	* gconf/gconfd.c (one_hour_timeout): Expire old locale cache stuff
	(locale_cache_lookup): New function to look stuff up in the locale
	cache. 
	(main): free the locale cache on exit

1999-11-10  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c (free_childs): function to free children
	of a node.
	(xentry_set_value): free_childs() in a couple places we weren't

	* tests/testschemas.c: Add new schema test to check for storing a
	blank schema

	* gconf/gconf-locale.c, gconf/gconf-locale.h: New module, creates
	and caches the list of locales to search for given an environment
	variable value

	* gconf/gconf-internals.c (gconf_current_locale): We want
	LC_MESSAGES not LC_ALL

1999-11-07  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (reinstall_listeners_for_all_engines): Function to
	iterate over all engines and do the context
	reinstallation. However, it's not used yet because we also need 
	to regenerate the context IDs.

	* gconf/gconfd.c: Add a ConfigServer_Context field to GConfContext
	(register_context): fill in the ConfigServer_Context field
	(context_new): init context field to invalid context

	* gconf/gconf.c (register_engine): Keep a hash from context ID's 
	to GConfEngine, because we no longer have the global connection 
	table (that table was broken anyway).
	(gconf_engine_blank): new function shared by the GConfEngine
	constructors (contains previous contents of gconf_engine_new, 
	separate function required by registration stuff)
	(gconf_engine_new): Create blank engine, then register it
	(gconf_engine_new_from_address): register the engine
	(gconf_engine_unref): unregister the engine

	* gconf/GConf.idl: Add a context ID to the argument
	list of the notification.

	* gconf/gconf.c (gconf_server_broken): New predicate, asks if an
	exception is set indicating that our server is hosed.
	(gconf_detach_config_server): Function to release the server
	object reference and set it to nil
	(gconf_engine_new_from_address): Detach server and retry if
	appropriate.
	(gconf_notify_add): Detach and respawn if needed
	(gconf_notify_remove): ditto
	(gconf_set): ditto
	(gconf_associate_schema): ditto
	(gconf_unset): ditto
	(gconf_all_entries): ditto
	(gconf_all_dirs): ditto
	(gconf_suggest_sync): ditto
	(gconf_notify_add): remove debugging spew
	(gconf_cnxn_new): Add namespace_section to GConfCnxn struct
	(gconf_cnxn_destroy): free namespace_section
	(GConfEnginePrivate): Put the connection table in here, it is
	per-context (and thus per-GConfEngine), should not be global.
	(gconf_init): don't create CnxnTable here, create it for each engine.
	(gconf_engine_new_from_address): remove redundant refcount
	initialization
	(gconf_engine_unref): Destroy CnxnTable, and free the engine
	struct itself.
	(notify): remove debug spew, reflect new signature of notify function

1999-11-07  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-internals.c: #include <locale.h>, oops

1999-11-07  Havoc Pennington  <hp@pobox.com>

	* tests/testschemas.c (check_schema_storage): Properly consider
	that schema fields can be NULL

	* backends/xml-backend.c (entry_value): Properly consider that
	a schema can have a NULL locale

	* gconf/gconf.c (gconf_get_with_locale): New function
	(gconf_get): just calls get_with_locale() with a NULL locale
	(gconf_get_schema): Use get_with_locale()

	* gconf/gconf-internals.c (gconf_current_locale): So I don't have
	to think about setlocale()

	* tests/testschemas.c: New test program for schema stuff
	
1999-11-06  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (gconf_associate_schema): Add function to associate 
	a schema name with a key.

1999-10-28  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c (query_value): Add locale
	(dir_get_value): add locale
	(entry_value): new function gets the value from an entry, 
	looking up a new value by locale if necessary.

	(xentry_extract_value): locale argument added, but needs to 
	be implemented.

	* gconf/gconf-backend.h: Add locale to query_value in vtable

	* gconf/gconf-sources.c (gconf_source_query_value): Add locale
	(gconf_sources_query_value): Add locale

	* gconf/gconfd.c (gconfd_lookup_with_locale): Implement new 
	IDL method
	(context_query_value): Add locale

	* gconf/GConf.idl: Add lookup_with_locale() method

	* gconf/gconf-internals.c (fill_corba_schema_from_gconf_schema): 
	Handle case where some schema fields are NULL, handle locale field.
	(gconf_schema_from_corba_schema): Handle locale field.

	* gconf/gconf-schema.c (gconf_schema_set_locale): New function

	* gconf/gconftool.c: Clean up so it is easier to deal with

1999-10-28  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c: Rework the sync code; now, any change queues a
	sync in 1 minute. If a client calls suggest_sync(), we sync in an
	idle (as soon as the event loop quiets down). Also, we now sync 
	on shutdown.

	* tests/testgconf.c: Fix to compile

	* tests/Makefile.am (testgconf_LDADD): Fix Makefile.am to use new
	library name

1999-10-27  Havoc Pennington  <hp@pobox.com>

	* configure.in: Add --enable-debug option to G_DISABLE_CHECKS as needed

        * gconf/wrappers/gtk/testgconfclient.c: Test program for the GTK+ 
	client wrapper.
	
	* gconf/gconf-sources.c (gconf_sources_query_value): 
	Wasn't handling errors; now we report errors. The bad thing is,
	it might be better to go ahead and do our best despite the error.

	* gconf/gconf.c (gconf_init): Actually set the have_initted variable.	

	* wrappers/gtk/Makefile.am (libgconf_gtk_la_LIBADD): Don't try to 
	link with libgconf;
	Add testgconfclient target.

	* wrappers/gtk/gconf-client.h, wrappers/gtk/gconf-client.c: Make
	it compile
	
	* configure.in: Generate Makefile for GtkObject wrapper

1999-10-27  Havoc Pennington  <hp@pobox.com>

	* gconf-editor/Makefile.am (gconf_editor_LDADD): 
	link to libgconf.la

	* gconf/Makefile.am: Renamed the shared lib to libgconf instead of
	libgconf-client.
	
	* wrappers/gtk/Makefile.am: Renamed gconf-gtk.[hc] to
	gconf-client.[hc] via CVS surgery, then updated Makefile.

1999-10-21  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.c (gconf_key_is_below): New function, tells you if a
	key is below another key in the directory hierarchy.

1999-10-20  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c, gconf/gconf-sources.c: Finish stuff from the
	17th (use GConfError throughout, etc.)

	* gconf/gconfd-error.h, gconf/gconfd-error.c: Remove the broken
	old error stuff, even gconfd no longer uses it.
	
1999-10-17  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-sources.c: Use GConfError** throughout, make the
	_source_ functions static
	(gconf_sources_query_value): Use the new flags and readable
	function
	(gconf_sources_set_value): use the new flags and writeable
	function

	* gconf/gconf-error.c (gconf_error_copy): new function
	(gconf_compose_errors): new function

        * backends/xml-backend.c: Throughout, use a GConfError** argument
	instead of the global errno thing
	
	* gconf/gconf-error.c (gconf_set_error): New function properly
	handles a GConfError** by setting error or ignoring if NULL, 
	also warns if you "stack" two errors on top of each other.
	(gconf_clear_error): New function clears a GConfError** 

	* gconf/gconfd.c: don't include gconfd-error.h

	* backends/xml-backend.c: Remove inclusion of gconfd-error.h

	* gconf/gconf-backend.h: Add lock/unlock and readable/writeable
	functions to the backend vtable, and add error arguments to 
	all functions in the vtable.

	* gconf/gconfd.c (safe_g_hash_table_insert): priority GCL_WARNING

	* backends/xml-backend.c (safe_g_hash_table_insert): make
	it priority GCL_WARNING.

	* gconf/gconf-sources.h: GCONF_SOURCE_ALL_WRITEABLE,
	GCONF_SOURCE_ALL_READABLE flags to short-circuit calls to the new
	writeable/readable vtable functions.

1999-10-17  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-orbit.h: Include orb/orbit.h instead of GConf.h

1999-10-17  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c: Use %gconf.xml instead of .gconf.xml 
	for the magic files.

1999-10-17  Havoc Pennington  <hp@pobox.com>

	* tests/runtests.sh: Make this script work

	* gconf/gconftool.c: Don't use -s for --spawn, since it's used for
	--set.

	* gconf/gconf.c (gconf_get_config_server): Clear the error
	from the initial ping if we're asked to start the server.
	(gconf_engine_unref): No error spew if server is down when 
	the engine is destroyed.

	Throughout: Make sure error is set but don't require a 
	specific error type

	* gconf/gconf-internals.c (gconf_read_server_ior): Set error 
	if the server info file doesn't exist

	* gconf/gconf.c (try_to_contact_server): Add a check for setting 
	the error properly

	* gconf/gconftool.c (main): Switch to gconf_suggest_sync()
	instead of gconf_sync()

	* gconf/gconfd.c: Add a GConfContext::sync_idle field, to 
	store the source ID of an idle function that performs a sync.
	(context_destroy): Remove the sync idle 
	(context_hibernate): Check that sync idle is 0
	(context_sync): Add the sync idle if it doesn't exist

	* gconf/gconf.c (gconf_suggest_sync): gconf_sync() renamed to
	gconf_suggest_sync(), because a sync is for all clients;
	suggest_sync() means "I just finished a large block of operations,
	so I'm suggesting that it would be efficient and data-preserving
	to schedule a sync in the near future." gconf_sync() didn't 
	make much sense because it was global, not per-client.
	
1999-10-17  Havoc Pennington  <hp@pobox.com>

	* For all files, s/G_CONF/GCONF

1999-10-12  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c: Use GConfListeners to handle listener
	registration and notification

1999-10-12  Havoc Pennington  <hp@pobox.com>
	
	* gconf/gconf-listeners.c (ltable_insert): Was failing to init 
	the node in the flat array of nodes if the listener location 
	was NULL. 
	(gconf_listeners_count): new function reports number of listeners
	(ltable_new): init next_cnxn to 1 instead of 0 
	(ltable_remove): Do a better job of cleaning up dead 
	tree nodes (go up looking for empty parent nodes)
	(ltable_destroy): type error, was calling listener_destroy() 
	on the GNodes. Oops. fixed, now use g_node_traverse() to 
	destroy the node contents.
	(ltable_new): don't create the root node until it's needed
	(ltable_insert): add root node here if needed
	(ltable_remove): zero lt->tree if we destroy it
	
	* tests/testlisteners.c: New test program for GConfListeners, 
	fairly comprehensive

	* tests/Makefile.am: add testlisteners, put EFENCE at the end of 
	the link line

1999-10-12  Havoc Pennington  <hp@pobox.com>

	* gconf/Makefile.am: Fixes - remove some public headers from
	libgconf_client_SOURCES, look for GConf.idl in $(srcdir) (bug from
	Wichert Akkerman)

	* gconf/gconf-listeners.h, gconf/gconf-listeners.c: New files,
	compile but are not tested. Moves listener tree interface into 
	a public header to re-use in GTK+ wrapper.

1999-10-11  Havoc Pennington  <hp@pobox.com>

	* For all files, s/g_conf/gconf

1999-10-05  Havoc Pennington  <hp@pobox.com>

	* tests/testgconf.c (check_list_storage): Add checks for empty
	lists, and all the various list types.

	* gconf/gconf-value.c (g_conf_value_to_string): Fix a segfault
	(not always allocating a large enough buffer)

1999-10-05  Havoc Pennington  <hp@pobox.com>

	* configure.in: 0.3, bump soname

1999-10-04  Havoc Pennington  <hp@pobox.com>

	* tests/testgconf.c (main): Add checks for getting/setting lists,
	bools, floats, and ints

	* gconf/gconf-internals.c (fill_corba_value_from_g_conf_value): We
	have to set the release flag on a sequence inside a union, since
	the sequence isn't default initialized as it normally would be.
	Plugs a big memory leak (all sequence buffers).

	* backends/xml-backend.c (dir_fill_cache_from_doc): Plug a leak
	where we set entry->name and then reset it in entry_fill()
	(entry_destroy): Free entry->mod_user
	(x_shutdown): Renamed shutdown() to x_shutdown() to avoid
	namespace clash with some libcs. Bug report from Bjorn Andersson
	<ban@lifix.fi>.

	* gconf/gconf-internals.c (g_conf_log): Plug memory leak (not
	freeing log string)

	* gconf/gconfd.c (gconfd_set): Plug memory leak (not freeing the GConfValue)

	* tests/Makefile.am: Make testgconf noinst

	* gconf/gconfd.c (main): check GCONFD_NO_DAEMON environment
	variable to run in no-daemon mode for debugging. Needless to say 
	this does NOT work if you are trying to use gconf for real.

	* gconf/gconf-internals.c (fill_corba_value_from_g_conf_value):
	Fill in the list type in the CORBA value
	(g_conf_value_from_corba_value): Fill in the list type in the 
	GConfValue

	* gconf/GConf.idl: Create ConfigList type to past the list type 
	along with the sequence of values

	* gconf/gconf-value.c (g_conf_value_set_list): New function, list
	setter that copies the list

	* gconf/gconf.c (g_conf_unset, g_conf_set): return boolean to
	indicate success

	* gconf/gconf-value.c (g_conf_value_new_from_string): Rewrite the
	bool string parser with switch, accept y/n as values.

1999-10-01  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-sources.c (g_conf_sources_query_value): Check for 
	errors when we query the default value from the schema.

	* backends/xml-backend.c (entry_fill): If the schema key for a key is 
	invalid, don't load it.

1999-09-30  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-sources.c (g_conf_key_check_hack): Clear error 
	before we check the key

	* backends/xml-backend.c (dir_unset_value): Actually set the
	entry's value to NULL
	(entry_destroy): check whether Entry::value is NULL. Not sure 
	why I didn't check; I think NULL is allowed, but if not 
	we will have problems I guess.

	* tests/testgconf.c: Easiest to just write the test suite in
	C. Tests set/get and unset for strings so far.

1999-09-29  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.sgml: Update docs

1999-09-29  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-conf.h: Replaced with gconf-engine.h

	* gconf/Makefile.am: use gconf-engine.h

	* gconf/gconf.c, gconf/gconf.h, gconf/gconftool.c,
	gconf-editor/app.c, wrappers/guile/scm-gconf.c: 
	Use GConfEngine name instead of GConf

1999-09-29  Rodrigo Stulzer Lopes <rodrigo@conectiva.com.br>

	* configure.in: added pt_BR to ALL_LINGUAS

1999-09-29  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c: include gconfd-error.h and gconf.h, 
	change error checking to new system as needed

	* gconf/Makefile.am: Put more stuff in gconfd_SOURCES instead of
	client lib, add new files

	* gconf/gconf-backend.h: include gconf-sources.h

	* gconf/gconf-conf.h: add error arg to g_conf_new_from_address

	* gconf/gconf-error.c: move strerror in here, fixups,
	preconditions

	* gconf/gconf-internals.c, gconf/gconf-sources.c: move all sources
	stuff to new gconf-sources file

	* gconf/gconf-orbit.c: Check for failure to get lock

	* All the rest of this giant diff: Move to new error-handling
	scheme
	
1999-09-26  Havoc Pennington  <hp@pobox.com>

	* gconf/Makefile.am: add gconf-error.h, gconf-conf.h headers,
	gconf-value.c file

	* gconf/gconf-error.h, gconf/gconf-conf.h, gconf/gconf-value.c: 
	New files, just rearranging old files, no new code (well, there is 
	a new GConfError object but it's unused)

	* gconf/gconf-internals.c: Move the value, metainfo, and entry
	datatypes to gconf-value.c

	* gconf/gconf.c, gconf/gconf.h: Remove appname argument from
	g_conf_init(), remove g_conf_global_appname() function.

	* gconf/gconftool.c: don't pass appname to g_conf_init()

	* gconf-editor/gconf-editor.c: Ditto
	
1999-09-25  Kjartan Maraas  <kmaraas@online.no>

	* configure.in: Added "da" to ALL_LINGUAS.
	
1999-09-19  Havoc Pennington  <hp@pobox.com>

	* NEWS, README: put something in here

	* Makefile.am: conditionally include gconf-editor if we have 
	GNOME

	* autogen.sh: make it more like "macros" autogen.sh
	
	* configure.in: manually check for GNOME instead of using
	"macros"
	
	* macros, intl: remove these subdirs, autogen.sh now
	generates intl

	* gconf/gconf.c: fix array size for strerror messages

	* gconf-editor/Makefile.am: use new GNOME variables

	* gconf-editor/gconf-editor.c: use new g_conf_init() 
	signature

	* gconf-editor/menus.h, gconf-editor/menus.c: These 
	hadn't been added
	
1999-09-19  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf.h: Add G_CONF_OVERRIDDEN error if you try to 
	set a value which will have no effect due to a read-only
	setting earlier in the path.

	* gconf/gconf.c: Add G_CONF_OVERRIDDEN to strerror, etc.

	* gconf/GConf.idl: add ConfigOverridden to pass it across the
	CORBA link

	* doc/gconf.sgml: Add more stuff to docs
	
1999-09-17  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-internals.c (subst_variables): Add a new function to
	perform variable substitution on addresses in the path file. 
	Supports $(HOME), $(USER), and $(ENV_ANYENVVARNAME)

	* Makefile.am: Add "doc" subdir

	* doc/Makefile.am: Added

	* doc/gconf.sgml: write more docs
	
1999-09-03  Havoc Pennington  <hp@pobox.com>

	* configure.in: Set library version info variables, and locate
	Guile libraries, etc.	

	* wrappers/Makefile.am: conditionally build Guile subdir if we
	found guile.

	* wrappers/guile: new subdir with the basic files/build for Guile 
	bindings, will add the actual bindings later. 
	
1999-09-03  Havoc Pennington  <hp@pobox.com>

	* configure.in: set POPT_LIBS instead of adding -lpopt to generic
	LDFLAGS; this was causing libtool to fail to generate the .so 
	file for the XML backend module.

	* gconf/Makefile.am: use POPT_LIBS

	* gconf/gconf-backend.c: change some g_warning to g_conf_log

1999-09-03  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c: Every hour or so, hibernate all contexts that
	haven't been accessed in 45 minutes. Make some assorted changes
	to support that.

1999-09-02  Havoc Pennington  <hp@pobox.com>

	* gconf/gconf-internals.h, gconf/gconf-internals.c: Add a new
	g_conf_log() function for logging errors in backends; 
	for now this wraps syslog() but if we eventually have non-daemon
	direct access to backends, we will need to change it. Use
	g_conf_log() throughout this file instead of printf() and
	g_warning().

	* gconf/backends/xml-backend.c: Install a timeout which cleans
	old stuff out of the cache every 5 minutes; use g_conf_log 
	to report problems.

	* gconf/gconfd.c: Use g_conf_log(); log "exiting" later than we 
	had been, after shutting everything down. 

1999-09-02  Havoc Pennington  <hp@pobox.com>

	* backends/Makefile.am: Install backends in $(libdir)/gconf

	* gconf/Makefile.am: Look for backends in $(libdir)/gconf

	* gconf/gconf-backend.c (g_conf_backend_file): Use
	g_module_build_path() to build the module path

        * gconf/gconf-orbit.c (g_conf_get_cookie_reliably): Make the 
	~/.gconfd directory if necessary.

	Lots of error-checking added.

	* gconf/gconfd.c: Mark a lot of strings for translation; include 
	username in the syslog spew.

1999-09-02  Havoc Pennington  <hp@pobox.com>

	* gconf/gconfd.c (main): If the orb init fails, syslog the 
	GConf error.

	* gconf/gconf-orbit.c: Add tons of error checks/reports

1999-09-01  Tim P. Gerla  <timg@means.net>

	* configure.in: Added test for popt.

1999-09-01  Havoc Pennington  <hp@pobox.com>

	* backends/xml-backend.c (dir_get_value): Fix a segfault, check
	that an Entry != NULL before dereferencing it

	* GConf.idl: Add ConfigException and ConfigErrorType to pass
	errors from server to client

	* gconf.c (g_conf_handle_corba_exception): set the GConf error
	based on CORBA error, if any, and free the exception. 
	Use throughout the file to receive server errors. 

	* gconfd.c (g_conf_set_exception): set the CORBA exception based
	on the GConf error, if any. Use this function throughout the file
	to send errors to clients. 
	(g_conf_nuke_dir): Remove this obsolete function
	(context_set): don't notify listeners of a change if an error
	occurred

1999-09-01  Havoc Pennington  <hp@pobox.com>

	* configure.in: add gmodule check to AM_PATH_GLIB, add an error if
	glib isn't found, use detected $XML_CONFIG to instead of
	xml-config, AC_PATH_PROG orbit-config, check for C++ compiler
	(since we'll have a C++ wrapper soon)

	* gconf/Makefile.am: Assume GMODULE_CFLAGS are now included in
	GLIB_CFLAGS since we fixed configure.in

	* gconf/gconf.c, gconf/gconf.h: Reference count the GConf object, 
	add extern "C" when using C++

	* gconf/gconftool.c: unref instead of destroying the GConf object

1999-08-31  Dave Camp  <campd@oit.edu>

	* gconf/gconf.c (g_conf_is_initialized): New function.

1999-08-31  Dave Camp  <campd@oit.edu>

	* gconf/gconftool.c (main): Changed --dir-exists to return 0 if 
	the dir exists, and 2 if it does not.

1999-08-31  Dave Camp  <campd@oit.edu>

	* gconf/gconftool.c (options): Added "--dir-exists".
	(main): If dir_exists is on the command line, check if the argument dir
	exists.

	* gconf/gconfd.c (server_epv): Added gconfd_dir_exists.
	(gconfd_dir_exists): New function.
	(context_dir_exists): New function.

	* gconf/gconf.c (g_conf_dir_exists): New function.

	* gconf/gconf-internals.c (g_conf_sources_dir_exists): New function.
	(g_conf_source_dir_exists): New function.

	* gconf/gconf-backend.h (GConfBackendVTable): Added a dir_exists 
	entry. 

	* gconf/GConf.idl (dir_exists): New function.

	* backends/xml-backend.c (dir_exists): New function.
	(xml_vtable): Added dir_exists.

1999-08-30  Dave Camp  <campd@oit.edu>

	* gconf/gconf.h: #include gconf-orbit.h.

	* gconf/Makefile.am (gconfinclude_HEADERS): Install gconf-orbit.h,
	GConf.h

1999-08-29  Dave Camp  <campd@oit.edu>

	* Makefile.am (bin_SCRIPTS): Install gconf-config.

	* configure.in (AC_OUTPUT): Create gconf-config. 

	* gconf/Makefile.am: Install gconf.h and gconf-schema.h.
	

1999-08-29  Dave Camp  <campd@oit.edu>

	* configure.in (XML_LIBS): Use xml-config.

1999-08-29  Kjartan Maraas  <kmaraas@online.no>

	* configure.in: Added "no" to ALL_LINGUAS
