talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 7ee8518c9e2538f4c857e4d94dfcb2718edde48c
parent 29ecadc1cb6d568b5a23e06d9256c0a714cb51a7
Author: Michael Rasmussen <mir@datanom.net>
Date:   Sat, 26 Aug 2017 23:56:30 +0200

Merge branch 'master' of ssh+git://git.claws-mail.org/home/git/claws

Diffstat:
MAUTHORS | 1+
Mconfigure.ac | 10+++++-----
Msrc/gtk/authors.h | 1+
Msrc/imap.c | 35+++++++++++++++++++++++++++++++++--
4 files changed, 40 insertions(+), 7 deletions(-)

diff --git a/AUTHORS b/AUTHORS @@ -313,3 +313,4 @@ contributors (in addition to the above; based on Changelog) Ashish Gupta Olivier Brunel Michael Vilain + Orbea diff --git a/configure.ac b/configure.ac @@ -1174,7 +1174,7 @@ AC_SUBST(ARCHIVE_CFLAGS) AC_CHECK_LIB([archive], [archive_read_new], ARCHIVE_LIBS=-larchive HAVE_ARCHIVE=yes - AC_SUBST(ARCHIVE_LIBS,ARCHIVE_CFLAGS), + AC_SUBST(ARCHIVE_LIBS,$ARCHIVE_CFLAGS), HAVE_ARCHIVE=no ) @@ -1222,10 +1222,10 @@ if test x"$HAVE_PERL" = xyes; then AC_MSG_CHECKING(for Perl compile flags) PERL_CFLAGS=`perl -MExtUtils::Embed -e ccopts` PERL_CFLAGS=`echo $PERL_CFLAGS | sed 's/-D_FILE_OFFSET_BITS=[[0-9]]*//'` - PERL_LDFLAGS=`perl -MExtUtils::Embed -e ldopts |sed 's/-lgdbm//'` - PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-ldb//'` - PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-lndbm//'` - PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-lc//'` + PERL_LDFLAGS=`perl -MExtUtils::Embed -e ldopts |sed 's/-lgdbm\>//'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-ldb\>//'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-lndbm\>//'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-lc\>//'` AC_MSG_RESULT(ok) AC_MSG_NOTICE([Adding perl LIBS ${PERL_CFLAGS}]) diff --git a/src/gtk/authors.h b/src/gtk/authors.h @@ -240,6 +240,7 @@ static char *CONTRIBS_LIST[] = { "Miquel Oliete", "Paul Ollis", "Fredrik Olofssen", +"Orbea", "Reza Pakdel", "Richard Palo", "Marcel Pol", diff --git a/src/imap.c b/src/imap.c @@ -77,6 +77,8 @@ typedef struct _IMAPSession IMAPSession; typedef struct _IMAPNameSpace IMAPNameSpace; typedef struct _IMAPFolderItem IMAPFolderItem; +#include "prefs_account.h" + #define IMAP_FOLDER(obj) ((IMAPFolder *)obj) #define IMAP_FOLDER_ITEM(obj) ((IMAPFolderItem *)obj) #define IMAP_SESSION(obj) ((IMAPSession *)obj) @@ -425,6 +427,7 @@ static gint imap_get_flags (Folder *folder, FolderItem *item, MsgInfoList *msglist, GHashTable *msgflags); +static gchar *imap_folder_get_path (Folder *folder); static gchar *imap_item_get_path (Folder *folder, FolderItem *item); static MsgInfo *imap_parse_msg(const gchar *file, FolderItem *item); @@ -3042,6 +3045,35 @@ static FolderItem *imap_create_special_folder(Folder *folder, return new_item; } +static gchar *imap_folder_get_path(Folder *folder) +{ + gchar *folder_path; + + g_return_val_if_fail(folder != NULL, NULL); + g_return_val_if_fail(folder->account != NULL, NULL); + +#ifdef G_OS_WIN32 + gchar *sanitized_dirname = g_strdup(folder->account->recv_server); + g_strdelimit(sanitized_dirname, ":", ','); +#endif + + folder_path = g_strconcat(get_imap_cache_dir(), + G_DIR_SEPARATOR_S, +#ifdef G_OS_WIN32 + sanitized_dirname, +#else + folder->account->recv_server, +#endif + G_DIR_SEPARATOR_S, + folder->account->userid, + NULL); + +#ifdef G_OS_WIN32 + g_free(sanitized_dirname); +#endif + return folder_path; +} + #ifdef G_OS_WIN32 static gchar *imap_encode_unsafe_chars(const gchar *str) { @@ -3078,9 +3110,8 @@ static gchar *imap_item_get_path(Folder *folder, FolderItem *item) gchar *item_path = NULL; g_return_val_if_fail(folder != NULL, NULL); - g_return_val_if_fail(folder->account != NULL, NULL); g_return_val_if_fail(item != NULL, NULL); - folder_path = prefs_account_cache_dir(folder->account, FALSE); + folder_path = imap_folder_get_path(folder); g_return_val_if_fail(folder_path != NULL, NULL);