60 lines
1.7 KiB
Diff
60 lines
1.7 KiB
Diff
diff -Naur zathura-cb-0.1.0/cb.c zathura-cb-0.1.0.patched/cb.c
|
|
--- zathura-cb-0.1.0/cb.c 2012-06-09 17:48:13.000000000 -0400
|
|
+++ zathura-cb-0.1.0.patched/cb.c 2012-07-22 15:06:18.000000000 -0400
|
|
@@ -1,7 +1,9 @@
|
|
/* See LICENSE file for license and copyright information */
|
|
|
|
-#include <stdlib.h>
|
|
#include <stdio.h>
|
|
+#include <unistd.h>
|
|
+#include <limits.h>
|
|
+#include <stdlib.h>
|
|
#include <glib.h>
|
|
#include <gtk/gtk.h>
|
|
#include <glib/gstdio.h>
|
|
@@ -11,7 +13,7 @@
|
|
#include "utils.h"
|
|
|
|
struct cb_document_s {
|
|
- char* directory; /**< Path to the directory */
|
|
+ char directory[4096]; /**< Path to the directory */
|
|
girara_list_t* page_paths; /**< List of page paths */
|
|
};
|
|
|
|
@@ -58,8 +60,8 @@
|
|
cb_document_t* cb_document = g_malloc0(sizeof(cb_document));
|
|
|
|
/* create temp directory */
|
|
- cb_document->directory = g_dir_make_tmp("zathura-cb-XXXXXX", NULL);
|
|
- if (cb_document->directory == NULL) {
|
|
+ sprintf(cb_document->directory, "%s/zathura-cb-XXXXXX", g_get_tmp_dir());
|
|
+ if(mkdtemp(cb_document->directory) == NULL) {
|
|
goto error_free;
|
|
}
|
|
|
|
@@ -148,18 +150,18 @@
|
|
return ZATHURA_ERROR_INVALID_ARGUMENTS;
|
|
}
|
|
|
|
- /* remove temp directory */
|
|
- if (cb_document->directory != NULL) {
|
|
- g_remove(cb_document->directory);
|
|
- }
|
|
-
|
|
/* remove page list */
|
|
if (cb_document->page_paths != NULL) {
|
|
+ char *path;
|
|
+ GIRARA_LIST_FOREACH(cb_document->page_paths, char*, iter, path)
|
|
+ g_remove(path);
|
|
+ GIRARA_LIST_FOREACH_END(cb_document->page_paths, char*, iter, path);
|
|
girara_list_free(cb_document->page_paths);
|
|
}
|
|
|
|
+ /* remove temp directory */
|
|
if (cb_document->directory != NULL) {
|
|
- g_free(cb_document->directory);
|
|
+ g_remove(cb_document->directory);
|
|
}
|
|
|
|
g_free(cb_document);
|