From: Juanjo MarĂ­n Date: Sun, 17 May 2009 13:22:31 +0000 (+0400) Subject: [comics] Fixes handling of the tmp folder X-Git-Tag: EVINCE_2_27_1~9 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=evince.git;a=commitdiff_plain;h=418246aaa10bc512aa310cb3b3aa82b6c4aeb13b [comics] Fixes handling of the tmp folder Uses common function for a temporary file creation. Fixes crash in GNOME bug #582108. --- diff --git a/backend/comics/comics-document.c b/backend/comics/comics-document.c index 29a1581d..ca154710 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 67e884a4..3da4a598 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 adec69c3..47a54171 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);