diff options
-rw-r--r-- | plugins/exchange-operations/ChangeLog | 9 | ||||
-rw-r--r-- | plugins/exchange-operations/exchange-folder-permission.c | 15 |
2 files changed, 23 insertions, 1 deletions
diff --git a/plugins/exchange-operations/ChangeLog b/plugins/exchange-operations/ChangeLog index 66bec04083..879a25462d 100644 --- a/plugins/exchange-operations/ChangeLog +++ b/plugins/exchange-operations/ChangeLog @@ -1,3 +1,12 @@ +2006-12-18 Veerapuram Varadhan <vvaradhan@novell.com> + + Fixes bnc #208395 + + * exchange-folder-permission.c: + (org_gnome_exchange_folder_permissions): Decode the derived path + using camel_url_decode_path(), as path may contain encoded + characters. + 2006-12-04 Matthew Barnes <mbarnes@redhat.com> Fixes bug #357970 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*/ |