aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/exchange-operations/exchange-folder-permission.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/exchange-operations/exchange-folder-permission.c')
-rw-r--r--plugins/exchange-operations/exchange-folder-permission.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/plugins/exchange-operations/exchange-folder-permission.c b/plugins/exchange-operations/exchange-folder-permission.c
index 8760cf8d79..95a99e82c1 100644
--- a/plugins/exchange-operations/exchange-folder-permission.c
+++ b/plugins/exchange-operations/exchange-folder-permission.c
@@ -32,6 +32,7 @@
#include <e-util/e-dialog-utils.h>
#include <calendar/gui/e-cal-popup.h>
#include <libedataserverui/e-source-selector.h>
+#include <camel/camel-url.h>
#include <mail/em-popup.h>
#include <mail/em-menu.h>
#include <libebook/e-book.h>
@@ -43,6 +44,8 @@
#include "calendar/gui/e-cal-model.h"
#include "addressbook/gui/widgets/eab-menu.h"
+#define d(x)
+
static void org_folder_permissions_cb (EPopup *ep, EPopupItem *p, void *data);
void org_gnome_exchange_folder_permissions (EPlugin *ep, EMPopupTargetFolder *t);
void org_gnome_exchange_menu_folder_permissions (EPlugin *ep, EMMenuTargetSelect *target);
@@ -151,8 +154,11 @@ org_gnome_exchange_folder_permissions (EPlugin *ep, EMPopupTargetFolder *target)
int i = 0, mode;
static int first =0;
gchar *path = NULL;
+ char *fixed_path = NULL;
ExchangeAccount *account = NULL;
+ d(g_print ("exchange-folder-permission.c: entry\n"));
+
if (!g_strrstr (target->uri, "exchange://"))
return;
@@ -164,9 +170,16 @@ org_gnome_exchange_folder_permissions (EPlugin *ep, EMPopupTargetFolder *target)
return;
path = target->uri + strlen ("exchange://") + strlen (account->account_filename);
+ fixed_path = camel_url_decode_path (path);
+ d(g_print ("exchange-folder-permission.c: path=[%s], fixed_path=[%s]\n", path, fixed_path));
+
if (! g_strrstr (target->uri, "exchange://") ||
- !exchange_account_get_folder (account, path))
+ !exchange_account_get_folder (account, fixed_path)) {
+ g_free (fixed_path);
return ;
+ }
+
+ g_free (fixed_path);
selected_exchange_folder_uri = path;
/* for translation*/