diff options
author | Xan Lopez <xan@igalia.com> | 2012-05-08 02:27:33 +0800 |
---|---|---|
committer | Xan Lopez <xan@igalia.com> | 2012-05-08 02:29:24 +0800 |
commit | 3847db0803addac9f0b90dc86767d8f65768d4ad (patch) | |
tree | baa17c614dc6b90333eeca6ab47f2629c9303546 /lib | |
parent | 8c65eb746306499465f23057dbd4dea484c953aa (diff) | |
download | gsoc2013-epiphany-3847db0803addac9f0b90dc86767d8f65768d4ad.tar gsoc2013-epiphany-3847db0803addac9f0b90dc86767d8f65768d4ad.tar.gz gsoc2013-epiphany-3847db0803addac9f0b90dc86767d8f65768d4ad.tar.bz2 gsoc2013-epiphany-3847db0803addac9f0b90dc86767d8f65768d4ad.tar.lz gsoc2013-epiphany-3847db0803addac9f0b90dc86767d8f65768d4ad.tar.xz gsoc2013-epiphany-3847db0803addac9f0b90dc86767d8f65768d4ad.tar.zst gsoc2013-epiphany-3847db0803addac9f0b90dc86767d8f65768d4ad.zip |
Allow for more fine-grained file helpers init
Since we are about to migrate our profile dir, allow file helpers init
to not ensure the profile dir exists (it was hardcoded until now). For
this we get rid of the ugly boolean parameters and add a flags
parameter, which preserves the old behaviors and allows for this new
option.
We update all the callers in the tree.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ephy-file-helpers.c | 17 | ||||
-rw-r--r-- | lib/ephy-file-helpers.h | 11 | ||||
-rw-r--r-- | lib/ephy-profile-migrator.c | 2 |
3 files changed, 20 insertions, 10 deletions
diff --git a/lib/ephy-file-helpers.c b/lib/ephy-file-helpers.c index 50e81f315..63f3c1434 100644 --- a/lib/ephy-file-helpers.c +++ b/lib/ephy-file-helpers.c @@ -272,8 +272,7 @@ ephy_dot_dir (void) /** * ephy_file_helpers_init: * @profile_dir: directory to use as Epiphany's profile - * @private_profile: %TRUE if we should use a private profile - * @keep_temp_dir: %TRUE to omit deleting the temp dir on exit + * @flags: the %EphyFileHelpersFlags for this session * @error: an optional #GError * * Initializes Epiphany file helper functions, sets @profile_dir as Epiphany's @@ -283,11 +282,11 @@ ephy_dot_dir (void) **/ gboolean ephy_file_helpers_init (const char *profile_dir, - gboolean private_profile, - gboolean keep_temp_dir, + EphyFileHelpersFlags flags, GError **error) { const char *uuid; + gboolean private_profile; /* See if we've been calling ourself, and abort if we have */ uuid = g_getenv (EPHY_UUID_ENVVAR); @@ -307,7 +306,8 @@ ephy_file_helpers_init (const char *profile_dir, (GDestroyNotify) g_free, (GDestroyNotify) g_free); - keep_temp_directory = keep_temp_dir; + keep_temp_directory = flags & EPHY_FILE_HELPERS_KEEP_TEMP_DIR; + private_profile = flags & EPHY_FILE_HELPERS_PRIVATE_PROFILE; if (private_profile && profile_dir != NULL) { @@ -336,8 +336,11 @@ ephy_file_helpers_init (const char *profile_dir, "epiphany", NULL); } - - return ephy_ensure_dir_exists (ephy_dot_dir (), error); + + if (flags & EPHY_FILE_HELPERS_ENSURE_EXISTS) + return ephy_ensure_dir_exists (ephy_dot_dir (), error); + else + return TRUE; } static void diff --git a/lib/ephy-file-helpers.h b/lib/ephy-file-helpers.h index 4cd270f83..68a6db616 100644 --- a/lib/ephy-file-helpers.h +++ b/lib/ephy-file-helpers.h @@ -45,11 +45,18 @@ typedef enum EPHY_MIME_PERMISSION_UNKNOWN = 3 } EphyMimePermission; +typedef enum +{ + EPHY_FILE_HELPERS_NONE = 0, + EPHY_FILE_HELPERS_KEEP_TEMP_DIR = 1 << 1, + EPHY_FILE_HELPERS_PRIVATE_PROFILE = 1 << 2, + EPHY_FILE_HELPERS_ENSURE_EXISTS = 1 << 3, +} EphyFileHelpersFlags; + #define EPHY_UUID_ENVVAR "EPHY_UNIQUE" gboolean ephy_file_helpers_init (const char *profile_dir, - gboolean private_profile, - gboolean keep_temp_dir, + EphyFileHelpersFlags flags, GError **error); const char * ephy_file (const char *filename); const char * ephy_dot_dir (void); diff --git a/lib/ephy-profile-migrator.c b/lib/ephy-profile-migrator.c index 2ab42c95e..17b2692ac 100644 --- a/lib/ephy-profile-migrator.c +++ b/lib/ephy-profile-migrator.c @@ -670,7 +670,7 @@ main (int argc, char *argv[]) ephy_debug_init (); - if (!ephy_file_helpers_init (NULL, FALSE, FALSE, NULL)) { + if (!ephy_file_helpers_init (NULL, EPHY_FILE_HELPERS_NONE, NULL)) { LOG ("Something wrong happened with ephy_file_helpers_init()"); return -1; } |