[win32] add --register-handlers and --unregister-handlers options

and don't tamper with registry unless asked for it explicitely.
This commit is contained in:
Fridrich Štrba
2010-06-18 12:57:24 +02:00
parent 002f4def9f
commit 9d7cb109d3
3 changed files with 27 additions and 2 deletions

View File

@ -283,6 +283,10 @@ _e_win32_register_addressbook (void)
_e_win32_register_addressbook_impl (FALSE);
}
void
_e_win32_unregister_addressbook (void)
{
}
/*
* Mail Client registration
@ -457,6 +461,11 @@ _e_win32_register_mailer (void)
_e_win32_register_mailer_impl (FALSE);
}
void
_e_win32_unregister_mailer (void)
{
}
static void
_e_win32_set_default_mailer_impl (gboolean system)
{

View File

@ -28,10 +28,12 @@
G_BEGIN_DECLS
void _e_win32_register_mailer (void);
void _e_win32_unregister_mailer (void);
void _e_win32_set_default_mailer (void);
void _e_win32_unset_default_mailer (void);
void _e_win32_register_addressbook (void);
void _e_win32_unregister_addressbook (void);
G_END_DECLS

View File

@ -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, &register_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