Skip to content

Instantly share code, notes, and snippets.

@TheBrokenRail
Created April 8, 2023 06:46
Show Gist options
  • Save TheBrokenRail/b47cfd733fb82890583ffd67ebf70350 to your computer and use it in GitHub Desktop.
Save TheBrokenRail/b47cfd733fb82890583ffd67ebf70350 to your computer and use it in GitHub Desktop.
It really is that easy!
diff --git a/src/file-utils.c b/src/file-utils.c
index 2095a8d2..d283b091 100644
--- a/src/file-utils.c
+++ b/src/file-utils.c
@@ -48,7 +48,7 @@
/* path */
-static const char *try_folder[] = { "cache", "~", "tmp", NULL };
+static const char *try_folder[] = { "var-tmp", "cache", "~", "tmp", NULL };
static const char *
@@ -57,7 +57,9 @@ get_nth_temp_folder_to_try (int n)
const char *folder;
folder = try_folder[n];
- if (strcmp (folder, "cache") == 0)
+ if (strcmp (folder, "var-tmp") == 0)
+ folder = "/var/tmp";
+ else if (strcmp (folder, "cache") == 0)
folder = g_get_user_cache_dir ();
else if (strcmp (folder, "~") == 0)
folder = g_get_home_dir ();
@@ -83,18 +85,21 @@ _g_path_get_temp_work_dir (const char *parent_folder)
for (i = 0; try_folder[i] != NULL; i++) {
const char *folder;
GFile *file;
- guint64 size;
folder = get_nth_temp_folder_to_try (i);
file = g_file_new_for_path (folder);
- size = _g_file_get_free_space (file);
- g_object_unref (file);
- if (max_size < size) {
- max_size = size;
- g_free (best_folder);
- best_folder = g_strdup (folder);
+ if (g_file_query_exists (file, NULL)) {
+ guint64 size = _g_file_get_free_space (file);
+
+ if (max_size < size) {
+ max_size = size;
+ g_free (best_folder);
+ best_folder = g_strdup (folder);
+ }
}
+
+ g_object_unref (file);
}
}
else
@@ -103,7 +108,7 @@ _g_path_get_temp_work_dir (const char *parent_folder)
if (best_folder == NULL)
return NULL;
- template = g_strconcat (best_folder, "/.fr-XXXXXX", NULL);
+ template = g_strconcat (best_folder, "/.file-roller-XXXXXX", NULL);
result = g_mkdtemp (template);
g_free (best_folder);
@@ -579,7 +584,7 @@ _g_file_is_temp_work_dir (GFile *file)
folder = get_nth_temp_folder_to_try (i);
if (strncmp (path, folder, strlen (folder)) == 0) {
- if (strncmp (path + strlen (folder), "/.fr-", 5) == 0) {
+ if (strncmp (path + strlen (folder), "/.file-roller-", 5) == 0) {
result = TRUE;
break;
}
diff --git a/src/fr-command-tar.c b/src/fr-command-tar.c
index c2f2f939..82521925 100644
--- a/src/fr-command-tar.c
+++ b/src/fr-command-tar.c
@@ -961,7 +961,7 @@ get_temp_name (FrCommandTar *c_tar,
char *result = NULL;
char *temp_name = NULL;
- template = g_strconcat (dirname, "/.fr-XXXXXX", NULL);
+ template = g_strconcat (dirname, "/.file-roller-XXXXXX", NULL);
result = g_mkdtemp (template);
temp_name = g_build_filename (result, _g_path_get_basename (filepath), NULL);
g_free (template);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment