[glide] Some better handling of temporary directory creation for extraction...fixes themes extracting in to



commit d29d3acfe2184fafc57e3be9e39842cf2499adca
Author: Robert Carr <racarr Valentine localdomain>
Date:   Sat Jun 5 15:38:46 2010 -0400

    Some better handling of temporary directory creation for extraction...fixes themes extracting in to same dir...whoops

 libglide/glide-dirs.c  |   10 ++++++++++
 libglide/glide-dirs.h  |    3 +++
 libglide/glide-theme.c |    5 +++--
 3 files changed, 16 insertions(+), 2 deletions(-)
---
diff --git a/libglide/glide-dirs.c b/libglide/glide-dirs.c
index 877b711..5841ce0 100644
--- a/libglide/glide-dirs.c
+++ b/libglide/glide-dirs.c
@@ -22,6 +22,7 @@
  */
 
 #include "glide-dirs.h"
+#include <stdio.h>
 
 gchar *
 glide_dirs_get_glide_data_dir (void)
@@ -60,3 +61,12 @@ glide_dirs_get_glide_theme_dir ()
   g_free (datadir);
   return themedir;
 }
+
+gchar *
+glide_dirs_make_temp_dir ()
+{
+  const gchar *temp_dir = g_get_tmp_dir();
+  gchar *template = g_strdup_printf ("%s/glide-XXXXXX", temp_dir);
+  
+  return mkdtemp (template);
+}
diff --git a/libglide/glide-dirs.h b/libglide/glide-dirs.h
index 9bc017e..29a7f41 100644
--- a/libglide/glide-dirs.h
+++ b/libglide/glide-dirs.h
@@ -34,4 +34,7 @@ glide_dirs_get_glide_ui_dir (void);
 gchar *
 glide_dirs_get_glide_theme_dir (void);
 
+gchar *
+glide_dirs_make_temp_dir (void);
+
 #endif
diff --git a/libglide/glide-theme.c b/libglide/glide-theme.c
index 9d98f68..5f06cb3 100644
--- a/libglide/glide-theme.c
+++ b/libglide/glide-theme.c
@@ -33,6 +33,8 @@
 #include "glide-json-util.h"
 #include "glide-debug.h"
 
+#include "glide-dirs.h"
+
 
 G_DEFINE_TYPE(GlideTheme, glide_theme, G_TYPE_OBJECT)
 
@@ -240,8 +242,7 @@ static void
 glide_theme_make_working_dir (GlideTheme *d)
 {
   gchar *wdir;
-  wdir = g_strdup_printf("%s/glide-theme-%ld", g_get_tmp_dir(), time(NULL));
-  g_mkdir(wdir, 0700);
+  wdir = glide_dirs_make_temp_dir ();
  
   if (d->priv->working_path)
     g_free (d->priv->working_path);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]