On Mon, Oct 12, 2015 at 06:11:15PM +0100, Daniel P. Berrange wrote: > Create standalone helper methods for constructing a GFile > object for the system/local/user database paths. > > Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> > --- > osinfo/osinfo_loader.c | 54 +++++++++++++++++++++++++++++++------------------- > 1 file changed, 34 insertions(+), 20 deletions(-) > > diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c > index bcea3fc..1c35a3c 100644 > --- a/osinfo/osinfo_loader.c > +++ b/osinfo/osinfo_loader.c > @@ -1910,6 +1910,37 @@ void osinfo_loader_process_uri(OsinfoLoader *loader, > } > > > +static GFile *osinfo_loader_get_system_path(void) > +{ > + GFile *file; > + gchar *dbdir; > + const gchar *path = g_getenv("OSINFO_DATA_DIR"); > + if (!path) > + path = PKG_DATA_DIR; > + > + dbdir = g_strdup_printf("%s/db", path); The various g_strdup_printf() could be replaced with g_build_filename() (but then this patch would be more than code movement). Looks good otherwise. Christophe > + file = g_file_new_for_path(dbdir); > + g_free(dbdir); > + return file; > +} > + > +static GFile *osinfo_loader_get_local_path(void) > +{ > + return g_file_new_for_path(SYS_CONF_DIR "/libosinfo/db"); > +} > + > +static GFile *osinfo_loader_get_user_path(void) > +{ > + GFile *file; > + gchar *dbdir; > + const gchar *configdir = g_get_user_config_dir(); > + > + dbdir = g_strdup_printf("%s/libosinfo/db", configdir); > + file = g_file_new_for_path(dbdir); > + g_free(dbdir); > + return file; > +} > + > void osinfo_loader_process_default_path(OsinfoLoader *loader, GError **err) > { > GError *error = NULL; > @@ -1950,28 +1981,17 @@ void osinfo_loader_process_default_path(OsinfoLoader *loader, GError **err) > void osinfo_loader_process_system_path(OsinfoLoader *loader, > GError **err) > { > - GFile *file; > - gchar *dbdir; > - const gchar *path = g_getenv("OSINFO_DATA_DIR"); > - if (!path) > - path = PKG_DATA_DIR; > - > - dbdir = g_strdup_printf("%s/db", path); > - file = g_file_new_for_path(dbdir); > + GFile *file = osinfo_loader_get_system_path(); > osinfo_loader_process_file(loader, > file, > FALSE, > err); > g_object_unref(file); > - g_free(dbdir); > } > > void osinfo_loader_process_local_path(OsinfoLoader *loader, GError **err) > { > - GFile *file; > - const gchar *dbdir = SYS_CONF_DIR "/libosinfo/db"; > - > - file = g_file_new_for_path(dbdir); > + GFile *file = osinfo_loader_get_local_path(); > osinfo_loader_process_file(loader, > file, > TRUE, > @@ -1981,18 +2001,12 @@ void osinfo_loader_process_local_path(OsinfoLoader *loader, GError **err) > > void osinfo_loader_process_user_path(OsinfoLoader *loader, GError **err) > { > - GFile *file; > - gchar *dbdir; > - const gchar *configdir = g_get_user_config_dir(); > - > - dbdir = g_strdup_printf("%s/libosinfo/db", configdir); > - file = g_file_new_for_path(dbdir); > + GFile *file = osinfo_loader_get_user_path(); > osinfo_loader_process_file(loader, > file, > TRUE, > err); > g_object_unref(file); > - g_free(dbdir); > } > > /* > -- > 2.4.3 > > _______________________________________________ > Libosinfo mailing list > Libosinfo@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libosinfo
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo