From f24ee0c5c97a394027b636d639be56dec7a01fb6 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Tue, 6 Apr 2004 08:21:50 +0000 Subject: ** See bug #56464. 2004-04-06 Not Zed ** See bug #56464. * camel-folder.c (camel_folder_transfer_messages_to): do not lock the source here. (transfer_message_to): call the main entry point for get message and append message. ** See bug #56050. * camel-vee-store.c (vee_delete_folder): delete the state file if it exists. * camel-object.c (camel_object_state_write): create the parent dir if we need to. Also spit a warning if we fail in the end. * camel-vee-folder.c (camel_vee_folder_new): set the persistent state file location. (vee_sync): write the state file when we sync. svn path=/trunk/; revision=25331 --- camel/camel-object.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'camel/camel-object.c') diff --git a/camel/camel-object.c b/camel/camel-object.c index f4469f8d9d..ed62737c23 100644 --- a/camel/camel-object.c +++ b/camel/camel-object.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "camel-object.h" #include "camel-file-utils.h" @@ -1514,7 +1515,7 @@ int camel_object_state_write(void *vo) { CamelObject *obj = vo; int res = -1; - char *file, *savename; + char *file, *savename, *tmp; FILE *fp; camel_object_get(vo, NULL, CAMEL_OBJECT_STATE_FILE, &file, NULL); @@ -1522,6 +1523,12 @@ int camel_object_state_write(void *vo) return 0; savename = camel_file_util_savename(file); + tmp = strrchr(savename, '/'); + if (tmp) { + *tmp = 0; + camel_mkdir(savename, 0777); + *tmp = '/'; + } fp = fopen(savename, "w"); if (fp != NULL) { if (fwrite(CAMEL_OBJECT_STATE_FILE_MAGIC, 4, 1, fp) == 1 @@ -1533,6 +1540,8 @@ int camel_object_state_write(void *vo) } else { fclose(fp); } + } else { + g_warning("Could not save object state file to '%s': %s", savename, g_strerror(errno)); } g_free(savename); -- cgit v1.2.3