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 #include +#include +#include +#include #include #include #include @@ -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);