Hi, << gboolean path_has_write_access_or_was_created >> was not a function that I created, i just removed its static flag and also added its prototype to the header in order to use it from outside file-utils.c (for tracker-control). I didn't pretend to rename your functions :p but I think that you certainly could add a prefix to its name.
The first object of the patch was because XDG variable was used for file-utils and HOME used for tracker-control, that could lead to an inconsistency: in some case they wouldn't have looked for the config files in the same place. Secondly, g_get_home_dir (http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-get-home-dir) looks at the passwd file to find the home dir. So it is better to look at it only in a case of a missing HOME env var. (As it is easy to change the tracker working dirs using env vars). Otherwise, it is better to stay consistent in trying to use the XDG vars if they are defined. Florent Viard Software Development Engineer ........................................ fvi...@lacie.com Phone: +33 1 58 49 57 20 Fax: +33 1 58 49 57 20 33, boulevard du Général Martial Valin 75015 Paris - FRANCE www.lacie.com Please print only if necessary -------- Message d'origine-------- De: Philip Van Hoof [mailto:s...@pvanhoof.be] Date: mar. 26/01/2010 17:31 À: Florent Viard Cc: tracker-list@gnome.org Objet : Re: [Tracker] Little patch regarding the finding configuration paths in libtracker and tracker-control. On Tue, 2010-01-26 at 12:16 +0100, Florent Viard wrote: > -static gboolean > +gboolean > path_has_write_access_or_was_created (const gchar *path) > { When you make a new public function, you have to prefix it with at least tracker_ > gboolean writable; > @@ -673,8 +673,14 @@ > return TRUE; > } > > + user_data_dir = g_getenv ("HOME"); > + > + if (!user_data_dir) { > + user_data_dir = g_get_home_dir (); > + } Why isn't g_get_home_dir sufficient? Why the g_getenv? > /* Change environment, this is actually what we have on Ubuntu. */ > - new_dir = g_build_path (G_DIR_SEPARATOR_S, g_get_home_dir (), > ".local", "share", NULL); > + new_dir = g_build_path (G_DIR_SEPARATOR_S, user_data_dir, ".local", > "share", NULL); > Index: source/src/libtracker-common/tracker-file-utils.h > =================================================================== > --- source/src/libtracker-common/tracker-file-utils.h (révision 3508) > +++ source/src/libtracker-common/tracker-file-utils.h (copie de travail) > @@ -49,6 +49,7 @@ > const gchar > *basename_exception_prefix); > gchar * tracker_path_evaluate_name (const gchar *uri); > > +gboolean path_has_write_access_or_was_created (const gchar *path); Use at least tracker_ as prefix, and come up with a better name if it is to become public. > crawler = tracker_crawler_new (); > @@ -386,13 +386,24 @@ > main_loop); > > /* Go through service files */ > - home_dir = g_getenv ("HOME"); > + > > - if (!home_dir) { > - home_dir = g_get_home_dir (); > + /* Check the default XDG_DATA_HOME location */ > + home_conf_dir = g_getenv ("XDG_CONFIG_HOME"); Hmm, I thought g_get_home_dir checks for those environment variables already. > + > + if (home_conf_dir && path_has_write_access_or_was_created > (home_conf_dir)) { > + path = g_build_path (G_DIR_SEPARATOR_S, > home_conf_dir, "tracker", NULL); > + } else { > + > + home_conf_dir = g_getenv ("HOME"); What is wrong with just using g_get_home_dir ? > + if (!home_conf_dir) { > + home_conf_dir = g_get_home_dir (); > + } > + path = g_build_path (G_DIR_SEPARATOR_S, > home_conf_dir, ".config", "tracker", NULL); > } > > - path = g_build_path (G_DIR_SEPARATOR_S, home_dir, ".config", > "tracker", NULL); > + > file = g_file_new_for_path (path); > g_free (path); > -- Philip Van Hoof, freelance software developer home: me at pvanhoof dot be gnome: pvanhoof at gnome dot org http://pvanhoof.be/blog http://codeminded.be This e-mail and any attachment are confidential and intended solely for the use of the individual to whom it is addressed. If you are not the intended recipient, please telephone or email the sender and delete this message and any attachment from your system. Unauthorized publication, use, dissemination, forwarding, printing or copying of this e-mail and its associated attachments is strictly prohibited.
_______________________________________________ tracker-list mailing list tracker-list@gnome.org http://mail.gnome.org/mailman/listinfo/tracker-list