1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
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);
|