[evince] [comics] Fixes handling of the tmp folder



commit 418246aaa10bc512aa310cb3b3aa82b6c4aeb13b
Author: Juanjo Marín <juanj marin juntadeandalucia es>
Date:   Sun May 17 17:22:31 2009 +0400

    [comics] Fixes handling of the tmp folder
    
    Uses common function for a temporary file creation. Fixes crash in
    GNOME bug #582108.
---
 backend/comics/comics-document.c |   10 ++--------
 libdocument/ev-file-helpers.c    |    6 ++++++
 libdocument/ev-file-helpers.h    |    1 +
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/backend/comics/comics-document.c b/backend/comics/comics-document.c
index 29a1581..ca15471 100644
--- a/backend/comics/comics-document.c
+++ b/backend/comics/comics-document.c
@@ -183,7 +183,7 @@ static gboolean
 comics_generate_command_lines (ComicsDocument *comics_document, 
 			       GError         **error)
 {
-	gchar *quoted_file, *checksum;
+	gchar *quoted_file;
 	ComicBookDecompressType type;
 	
 	type = comics_document->command_usage;
@@ -198,19 +198,13 @@ comics_generate_command_lines (ComicsDocument *comics_document,
 					     quoted_file);
 	comics_document->regex_arg = command_usage_def[type].regex_arg;
 	if (command_usage_def[type].decompress_tmp) {
-		checksum = 
-			g_compute_checksum_for_string (G_CHECKSUM_MD5, 
-						       comics_document->archive,
-						       -1);
-		comics_document->dir = g_build_filename (ev_tmp_dir (), 
-							 checksum, NULL);
+		comics_document->dir = ev_tmp_directory (NULL); 
 		comics_document->decompress_tmp = 
 			g_strdup_printf (command_usage_def[type].decompress_tmp, 
 					 comics_document->selected_command, 
 					 quoted_file, 
 					 comics_document->dir);
 		g_free (quoted_file);
-		g_free (checksum);
 		/* unrar-free can't create directories so we do it on its 
 		 * behalf */
 		if (type == GNAUNRAR) {
diff --git a/libdocument/ev-file-helpers.c b/libdocument/ev-file-helpers.c
index 67e884a..3da4a59 100644
--- a/libdocument/ev-file-helpers.c
+++ b/libdocument/ev-file-helpers.c
@@ -122,6 +122,12 @@ ev_tmp_filename (const gchar *prefix)
 	return filename;
 }
 
+gchar * 
+ev_tmp_directory (const gchar *prefix) 
+{
+	return ev_tmp_filename (prefix ? prefix : "directory");
+}
+
 /* Remove a local temp file created by evince */
 void
 ev_tmp_filename_unlink (const gchar *filename)
diff --git a/libdocument/ev-file-helpers.h b/libdocument/ev-file-helpers.h
index adec69c..47a5417 100644
--- a/libdocument/ev-file-helpers.h
+++ b/libdocument/ev-file-helpers.h
@@ -47,6 +47,7 @@ gboolean     ev_dir_ensure_exists     (const gchar       *dir,
 
 GFile       *ev_tmp_file_get          (const gchar       *prefix);
 gchar       *ev_tmp_filename          (const char        *prefix);
+gchar       *ev_tmp_directory         (const char        *prefix);
 void         ev_tmp_filename_unlink   (const gchar       *filename);
 void         ev_tmp_file_unlink       (GFile             *file);
 void         ev_tmp_uri_unlink        (const gchar       *uri);



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