static Folder *maildir_folder_new(const gchar * name,
const gchar * path)
{
- MaildirFolder *folder;
-
+ MaildirFolder *folder;
+
folder = g_new0(MaildirFolder, 1);
FOLDER(folder)->klass = &maildir_class;
folder_local_folder_init(FOLDER(folder), name, path);
gchar *path, *database;
g_return_val_if_fail(item->db == NULL, -1);
-
+
path = maildir_item_get_path(FOLDER_ITEM(item)->folder, FOLDER_ITEM(item));
Xstrcat_a(database, path, G_DIR_SEPARATOR_S DB_FILENAME, return -1);
g_free(path);
item->db = uiddb_open(database);
g_return_val_if_fail(item->db != NULL, -1);
-
+
return 0;
}
static void close_database(MaildirFolderItem *item)
{
g_return_if_fail(item->db != NULL);
-
+
uiddb_close(item->db);
item->db = NULL;
}
item = g_new0(MaildirFolderItem, 1);
item->lastuid = 0;
item->db = NULL;
-
+
return (FolderItem *) item;
}
MaildirFolderItem *item = (MaildirFolderItem *)_item;
g_return_if_fail(item != NULL);
-
+
g_free(item);
}
GNode *rootnode, *inboxnode;
glob_t globbuf;
gchar *rootpath, *globpat;
-
+
g_return_val_if_fail(folder != NULL, -1);
if (!folder->node) {
gchar *filename;
if (msgdata->info[0])
- filename = g_strconcat(msgdata->dir, G_DIR_SEPARATOR_S,
+ filename = g_strconcat(msgdata->dir, G_DIR_SEPARATOR_S,
msgdata->uniq, ":", msgdata->info, NULL);
else
- filename = g_strconcat(msgdata->dir, G_DIR_SEPARATOR_S,
+ filename = g_strconcat(msgdata->dir, G_DIR_SEPARATOR_S,
msgdata->uniq, NULL);
return filename;
msgname = get_filename_for_msgdata(msgdata);
filename = g_strconcat(path, G_DIR_SEPARATOR_S, msgname, NULL);
g_free(msgname);
-
+
if (is_file_exist(filename)) {
g_free(path);
return msgdata;
g_free(filename);
g_free(path);
-
+
filename = NULL;
if (globbuf.gl_pathc > 0)
filename = g_strdup(globbuf.gl_pathv[0]);
/* if found: update database and return new entry */
if (filename != NULL) {
debug_print("found %s\n", filename);
-
+
msgdata = get_msgdata_for_filename(filename);
msgdata->uid = uid;
filename = g_strconcat(path, G_DIR_SEPARATOR_S, msgname, NULL);
g_free(msgname);
g_free(path);
-
+
return filename;
}
{
guint gint_a = GPOINTER_TO_INT(a);
guint gint_b = GPOINTER_TO_INT(b);
-
+
return (gint_a - gint_b);
}
g_free(path);
tail = g_slist_last(*list);
-
+
for (i = 0; i < globbuf.gl_pathc; i++) {
guint32 uid;
gint num)
{
gchar *filename;
-
+
g_return_val_if_fail(open_database(MAILDIR_FOLDERITEM(item)) == 0, NULL);
filename = get_filepath_for_uid((MaildirFolderItem *) item, num);
close_database(MAILDIR_FOLDERITEM(item));
-
+
return filename;
}
uiddb_insert_entry(item->db, msgdata);
uid = msgdata->uid;
-
+
exit:
uiddb_free_msgdata(msgdata);
g_free(tmpname);
g_free(srcfile);
g_free(tmpfile);
return -1;
- }
+ }
g_free(srcfile);
srcfile = tmpfile;
delsrc = TRUE;
g_return_val_if_fail(num > 0, -1);
g_return_val_if_fail(open_database(MAILDIR_FOLDERITEM(item)) == 0, -1);
-
+
filename = get_filepath_for_uid(item, num);
if (filename == NULL) {
ret = -1;
goto close;
}
- ret = unlink(filename);
+ ret = unlink(filename);
if (ret == 0)
uiddb_delete_entry(item->db, num);
g_free(filename);
-
+
close:
close_database(MAILDIR_FOLDERITEM(item));
return ret;
msgdata = get_msgdata_for_uid(item, msginfo->msgnum);
if (msgdata == NULL)
goto fail;
-
+
oldname = get_filepath_for_msgdata(item, msgdata);
newinfo = get_infostr(newflags);
g_free(oldname);
uiddb_free_msgdata(msgdata);
-
+
close_database(MAILDIR_FOLDERITEM(item));
-
+
if (renamefile) {
MainWindow *mainwin = mainwindow_get_mainwindow();
SummaryView *summaryview = mainwin->summaryview;
if (displayed_msgnum == msginfo->msgnum
&& summaryview->folder_item == msginfo->folder)
messageview_show(
- summaryview->messageview,
+ summaryview->messageview,
msginfo,
summaryview->messageview->all_headers);
}
-
+
return;
-
+
fail:
close_database(MAILDIR_FOLDERITEM(item));
}
rmdir(curpath);
rmdir(path);
}
-
+
g_free(tmppath);
g_free(newpath);
g_free(curpath);
debug_print("creating new maildir tree: %s\n", real_rootpath);
if (!is_dir_exist(real_rootpath)) {
if (is_file_exist(real_rootpath)) {
- g_warning("File `%s' already exists.\n"
- "Can't create folder.", real_rootpath);
+ g_warning("can't create folder: file '%s' already exists", real_rootpath);
return -1;
}
if (make_dir_hier(real_rootpath) < 0)
path = folder_item_get_path(item);
debug_print("removing directory %s\n", path);
if (remove_dir_recursive(path) < 0) {
- g_warning("can't remove directory `%s'\n", path);
+ g_warning("can't remove directory '%s'", path);
g_free(path);
*(gint*)data = -1;
return TRUE;
if (get_flags_for_msgdata(msgdata, &flags) < 0)
break;
- flags = flags | (msginfo->flags.perm_flags &
+ flags = flags | (msginfo->flags.perm_flags &
~(MSG_MARKED | MSG_FORWARDED | MSG_REPLIED | MSG_UNREAD | ((flags & MSG_UNREAD) == 0 ? MSG_NEW : 0)));
g_hash_table_insert(msgflags, msginfo, GINT_TO_POINTER(flags));
gchar *real_path = g_filename_from_utf8(path, -1, NULL, NULL, NULL);
if (!real_path) {
- g_warning("filename_from_utf8: failed to convert character set\n");
+ g_warning("filename_from_utf8: failed to convert character set");
real_path = g_strdup(path);
}
{
gchar *utf8path = g_filename_to_utf8(path, -1, NULL, NULL, NULL);
if (!utf8path) {
- g_warning("filename_to_utf8: failed to convert character set\n");
+ g_warning("filename_to_utf8: failed to convert character set");
utf8path = g_strdup(path);
}