From 9d7cb109d3f4bcae4e689c314f8dfb7d3c6bfc56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fridrich=20=C5=A0trba?= Date: Fri, 18 Jun 2010 12:57:24 +0200 Subject: [win32] add --register-handlers and --unregister-handlers options and don't tamper with registry unless asked for it explicitely. --- shell/main.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'shell') diff --git a/shell/main.c b/shell/main.c index 7e58d97aa6..ec53d7fc51 100644 --- a/shell/main.c +++ b/shell/main.c @@ -80,9 +80,11 @@ /* Command-line options. */ #ifdef G_OS_WIN32 +static gboolean register_handlers = FALSE; static gboolean reinstall = FALSE; static gboolean show_icons = FALSE; static gboolean hide_icons = FALSE; +static gboolean unregister_handlers = FALSE; #endif /* G_OS_WIN32 */ static gboolean express_mode = FALSE; static gboolean start_online = FALSE; @@ -305,12 +307,16 @@ setup_segv_redirect (void) static GOptionEntry entries[] = { #ifdef G_OS_WIN32 + { "register-handlers", '\0', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, ®ister_handlers, + NULL, NULL }, { "reinstall", '\0', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &reinstall, NULL, NULL }, { "show-icons", '\0', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &show_icons, NULL, NULL }, { "hide-icons", '\0', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &hide_icons, NULL, NULL }, + { "unregister-handlers", '\0', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &unregister_handlers, + NULL, NULL }, #endif /* G_OS_WIN32 */ { "component", 'c', 0, G_OPTION_ARG_STRING, &requested_view, N_("Start Evolution activating the specified component"), NULL }, @@ -481,8 +487,10 @@ main (gint argc, gchar **argv) g_free (path); - _e_win32_register_mailer (); - _e_win32_register_addressbook (); + if (register_handlers || reinstall || show_icons) { + _e_win32_register_mailer (); + _e_win32_register_addressbook (); + } if (reinstall) { _e_win32_set_default_mailer (); @@ -498,6 +506,12 @@ main (gint argc, gchar **argv) _e_win32_unset_default_mailer (); exit (0); } + + if (unregister_handlers) { + _e_win32_unregister_mailer(); + _e_win32_unregister_addressbook(); + exit (0); + } if (strcmp (gettext (""), "") == 0) { /* No message catalog installed for the current locale -- cgit v1.2.3