2000-08-09 Havoc Pennington * 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 * gconf.spec.in: made it so the specfile worked for rpm builds 2000-08-07 Robin * Slomkowski * gconf/Makefile.am: use top_build instead of build and some beautification. Wed Aug 02 18:11:37 2000 George Lebl * 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 * 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 * 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 * 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 * 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 * 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 * configure.in: Add Japanese (ja) 2000-07-21 Robin * Slomkowski * gconf.spec.in: just fixed up some filename stuff 2000-07-14 Havoc Pennington * 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 * gconf/gconfd.c (shutdown_contexts): fix cheesy race condition (context_list may not exist at this point) 2000-07-12 Havoc Pennington * 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 * backends/xml-entry.c (schema_node_extract_value): fix a double-free 2000-07-12 Havoc Pennington * 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 * Makefile.am: spew messages about needing to create prefix/etc/gconf/path, should make things easier for users. 2000-07-05 Eskil Heyn Olsen * gconf-config.in: adds output of oaf-config, since gconf uses oaf. 2000-07-05 Eskikl Heyn Olsen * gconf.spec.in: Fixed som typos. 2000-06-22 Dan Winship * 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 * gconf.spec.in: Removed the .a libs from the base package, but added them to -devel. 2000-06-11 Eskil Heyn Olsen * gconf.spec.in: Req oaf >= 0.3.0 2000-06-11 Eskil Heyn Olsen * 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 * 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 * gconf-config.in: add gtk-config --cflags and --libs output to the gconf-gtk --cflags and --libs output. 2000-06-01 Havoc Pennington * gconf/gconf.c (lookup_engine): check whether the hash is NULL before looking up the engine. 2000-06-01 Havoc Pennington * 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 * gconf/gconf-listeners.c: Move struct _GConfListeners into the .c file, eventually need to simply get rid of this. 2000-04-24 Fatih Demir * configure.in : Added tr to ALL_LINGUAS . 2000-04-19 Pablo Saratxaga * configure.in (ALL_LINGUAS): Added Catalan language 2000-04-19 Sebastian Wilhelmi * gconf/gconftool.c (main): Don't g_free the result of g_getenv (). Tue Apr 18 01:37:51 2000 George Lebl * 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 * configure.in (ALL_LINGUAS): Added German translation. 2000-03-13 Alastair McKinstry * configure.in (ALL_LINGUAS): Added Irish translation. 2000-03-09 Havoc Pennington * 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 * gconf/gconf-internals.c: Don't syslog things. * gconf/examples/Makefile.am: Fix for builddir != srcdir. 2000-03-08 Havoc Pennington * 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 * 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 * 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 * examples/Makefile.am: Add new examples * examples/simple-view.c, examples/simple-controller.c: Two simple new examples 2000-02-23 Havoc Pennington * 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 * 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 * gconf/gconf.c (try_to_contact_server): Make sure we always set an error 2000-02-15 Havoc Pennington * gconf/gconf-changeset.c (gconf_change_set_set): apply patch from Rusty Conover fixing an infinite recursion typo * gconf/gconfd.c (fast_cleanup): Don't bother to unregister with OAF 2000-02-01 Havoc Pennington * 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 * 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 * 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 * 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 * wrappers/gtk/gconf-client.c (check_overlap): fix the no-debug case 2000-01-24 Havoc Pennington * 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 * gconf/Makefile.am, standard-schemas/Makefile.am: Fix builddir != srcdir 2000-01-24 Havoc Pennington * 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 * gconf/gconf-internals.c (gconf_get_lock): Use a long enough buffer to read in the IOR 2000-01-24 Havoc Pennington * 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 tags. 2000-01-23 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gconf/Makefile.am (EXTRA_DIST): fix EXTRA_DIST to have default.path.in in it 2000-01-20 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gconf/gconfd.c (main): don't use custom object ID 2000-01-12 Jonathan Blandford * wrappers/gtk/gconf-client.c: #include 2000-01-11 Havoc Pennington * 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 * configure.in : added sv (swedish) 2000-01-08 Havoc Pennington * 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 * 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 * gconf/gconftool.c (main): add support for direct config source access 1999-12-31 Havoc Pennington * 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 * doc/gconf/Makefile.am: Replace unportable install -d with $MKINSTALLDIRS. install -m 0644 - with $(INSTALL_DATA). 2000-01-02 Timur Bakeyev * 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?) >>>>>>> 1.102 1999-12-31 Yuri Syrota * configure.in: Added "uk" to ALL_LINGUAS 1999-12-30 Havoc Pennington * backends/xml-backend.c: Complete cleanup of XML backend, all test suite passes, code is much more manageable. 1999-12-21 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * gconf/gconf.c (gconf_init): Safety check to ensure we don't initialize OAF a second time. 1999-12-06 Havoc Pennington * gconf/gconf.c (gconf_notify_add): Backward assertion 1999-12-02 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * backends/xml-backend.c (resolve_address): s/dir/root_dir/ 1999-11-29 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gconf/gconfd.c (gconf_server_load_sources): Fall back to xml:~/.gconf if no config file is found 1999-11-22 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * 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 * 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 * Make it all use OAF, and redo the initialization routine(s) to fit better into the GnomeModuleInfo system. 1999-11-18 Elliot Lee * 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 * gconf/gconfd.c (gconf_server_load_sources): fix the message about writeable sources 1999-11-18 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gconf/gconf-internals.h: move the value-from-string constructors here * gconf/gconf-value.h: moved from here 1999-11-13 Havoc Pennington * 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 * 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 * doc/gconf/gconf.sgml: Set up the gtk-doc system. Added all the files for that. 1999-11-12 Havoc Pennington * backends/xml-backend.c: Change all comments starting with /** to not start with that (for gtkdoc) 1999-11-12 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * 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 * gconf/gconf-internals.c: #include , oops 1999-11-07 Havoc Pennington * 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 * gconf/gconf.c (gconf_associate_schema): Add function to associate a schema name with a key. 1999-10-28 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gconf/gconf-orbit.h: Include orb/orbit.h instead of GConf.h 1999-10-17 Havoc Pennington * backends/xml-backend.c: Use %gconf.xml instead of .gconf.xml for the magic files. 1999-10-17 Havoc Pennington * 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 * For all files, s/G_CONF/GCONF 1999-10-12 Havoc Pennington * gconf/gconfd.c: Use GConfListeners to handle listener registration and notification 1999-10-12 Havoc Pennington * 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 * 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 * For all files, s/g_conf/gconf 1999-10-05 Havoc Pennington * 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 * configure.in: 0.3, bump soname 1999-10-04 Havoc Pennington * 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 . * 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 * 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 * 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 * gconf/gconf.sgml: Update docs 1999-09-29 Havoc Pennington * 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 * configure.in: added pt_BR to ALL_LINGUAS 1999-09-29 Havoc Pennington * 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 * 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 * configure.in: Added "da" to ALL_LINGUAS. 1999-09-19 Havoc Pennington * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * configure.in: Added test for popt. 1999-09-01 Havoc Pennington * 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 * 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 * gconf/gconf.c (g_conf_is_initialized): New function. 1999-08-31 Dave Camp * 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 * 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 * gconf/gconf.h: #include gconf-orbit.h. * gconf/Makefile.am (gconfinclude_HEADERS): Install gconf-orbit.h, GConf.h 1999-08-29 Dave Camp * 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 * configure.in (XML_LIBS): Use xml-config. 1999-08-29 Kjartan Maraas * configure.in: Added "no" to ALL_LINGUAS