diff options
author | Havoc Pennington <hp@src.gnome.org> | 2002-06-02 05:27:01 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2002-06-02 05:27:01 +0000 |
commit | 0a26450327976f2d85f82c79d2d2ec3b68dd4d1e (patch) | |
tree | 9278859003694afd78e70088cca1804962c6ba91 | |
parent | 17a83d083c1bbd9f9983f3dcd5d2e45b0e97f8b5 (diff) | |
download | gconf-0a26450327976f2d85f82c79d2d2ec3b68dd4d1e.tar.gz |
hacking on branch
-rw-r--r-- | backends/markup-tree.c | 32 | ||||
-rw-r--r-- | backends/xml-cache.c | 4 | ||||
-rw-r--r-- | backends/xml-dir.c | 13 | ||||
-rw-r--r-- | tests/testbackend.c | 50 |
4 files changed, 45 insertions, 54 deletions
diff --git a/backends/markup-tree.c b/backends/markup-tree.c index d5d0ab4b..3b019a64 100644 --- a/backends/markup-tree.c +++ b/backends/markup-tree.c @@ -712,34 +712,6 @@ delete_useless_subdirs (MarkupDir *dir) } else { - if (subdir->entries == NULL && subdir->subdirs == NULL) - { - char *fs_filename; - struct stat statbuf; - - fs_filename = markup_dir_build_path (subdir, TRUE); - - if (stat (fs_filename, &statbuf) < 0) - { - /* This is some kind of cruft, not an XML directory */ - g_printerr ("failed to stat %s: %s\n", fs_filename, g_strerror (errno)); - } - else - { - load_subdirs (subdir); - if (statbuf.st_size == 0 && subdir->subdirs == NULL) - { - g_print ("Not deleting %s entries_loaded = %d subdirs_loaded = %d " - "subdir_needs_sync = %d entries_need_save = %d; %d entries %d subdirs\n", - subdir->name, subdir->entries_loaded, subdir->subdirs_loaded, - subdir->some_subdir_needs_sync, subdir->entries_need_save, - g_slist_length (subdir->entries), - g_slist_length (subdir->subdirs)); - exit (1); - } - } - g_free (fs_filename); - } kept_subdirs = g_slist_prepend (kept_subdirs, subdir); } @@ -802,7 +774,8 @@ markup_dir_sync (MarkupDir *dir) some_useless_entries = FALSE; some_useless_subdirs = FALSE; - + +#if 0 { MarkupDir *parent; @@ -815,6 +788,7 @@ markup_dir_sync (MarkupDir *dir) g_print ("%s\n", dir->name); } +#endif /* We assume our parent directories have all been synced, before * we are synced. So we don't need to mkdir() parent directories. diff --git a/backends/xml-cache.c b/backends/xml-cache.c index 688aa6b6..3b158d96 100644 --- a/backends/xml-cache.c +++ b/backends/xml-cache.c @@ -389,6 +389,8 @@ cache_lookup (Cache *cache, { cache_insert (cache, dir); cache_add_to_parent (cache, dir); + cache_set_nonexistent (cache, dir_get_name (dir), + FALSE); } } @@ -424,9 +426,9 @@ cache_set_nonexistent (Cache* cache, key, &origkey, &origval)) { - g_free(origkey); g_hash_table_remove(cache->nonexistent_cache, key); + g_free(origkey); } } } diff --git a/backends/xml-dir.c b/backends/xml-dir.c index 9dfaa0fa..cbc01eff 100644 --- a/backends/xml-dir.c +++ b/backends/xml-dir.c @@ -374,11 +374,14 @@ dir_sync (Dir *d, return FALSE; } - if (rmdir (d->fs_dirname) != 0) + if (strcmp (d->key, "/") != 0) /* don't delete root dir */ { - gconf_set_error (err, GCONF_ERROR_FAILED, _("Failed to delete \"%s\": %s"), - d->fs_dirname, strerror (errno)); - return FALSE; + if (rmdir (d->fs_dirname) != 0) + { + gconf_set_error (err, GCONF_ERROR_FAILED, _("Failed to delete \"%s\": %s"), + d->fs_dirname, strerror (errno)); + return FALSE; + } } if (deleted) @@ -562,7 +565,7 @@ dir_get_value (Dir* d, GError** err) { Entry* e; - + if (d->doc == NULL) dir_load_doc(d, err); diff --git a/tests/testbackend.c b/tests/testbackend.c index 718293fb..e8ed4bf1 100644 --- a/tests/testbackend.c +++ b/tests/testbackend.c @@ -28,6 +28,7 @@ #include <math.h> static const char **locales = NULL; +static gboolean sync_enabled = FALSE; typedef void (* ForeachEntryFunc) (GConfEntry *entry, int depth, @@ -134,6 +135,9 @@ sync_and_clear (GConfSource *source) { GError *err; + if (!sync_enabled) + return; + err = NULL; if (!(* source->backend->vtable->sync_all) (source, &err)) { @@ -919,8 +923,8 @@ check_int_storage (GConfSource *source) else { check (ints[i] == gotten, - "int set/get pair: `%d' set, `%d' got", - ints[i], gotten); + "int set/get pair %s: `%d' set, `%d' got", + *keyp, ints[i], gotten); } } @@ -968,8 +972,8 @@ check_int_storage (GConfSource *source) else { check (ints[i] == gotten, - "int set/get pair: `%d' set, `%d' got", - ints[i], gotten); + "int set/get pair %s: `%d' set, `%d' got", + *keyp, ints[i], gotten); } } @@ -1252,30 +1256,20 @@ print_entry (GConfEntry *entry, g_free (str); } -int -main (int argc, char **argv) +static void +run_all_checks (const char *address) { GConfSource *source; GError *error; Stats stats; - - if (argc != 2) - { - g_printerr ("Must specify a config source address on the command line\n"); - return 1; - } - - setlocale (LC_ALL, ""); - - locales = (const char**) gconf_split_locale (gconf_current_locale ()); - + error = NULL; - source = gconf_resolve_address (argv[1], &error); + source = gconf_resolve_address (address, &error); if (error != NULL) { g_printerr ("Could not resolve address: %s\n", error->message); g_error_free (error); - return 1; + exit (1); } g_assert (source != NULL); @@ -1310,6 +1304,24 @@ main (int argc, char **argv) gconf_source_free (source); g_print ("\n\n"); +} + +int +main (int argc, char **argv) +{ + if (argc != 2) + { + g_printerr ("Must specify a config source address on the command line\n"); + return 1; + } + + setlocale (LC_ALL, ""); + + locales = (const char**) gconf_split_locale (gconf_current_locale ()); + + run_all_checks (argv[1]); + sync_enabled = TRUE; + run_all_checks (argv[1]); return 0; } |