diff -Nuard evolution-1.4.5.orig/mail/ChangeLog evolution-1.4.5/mail/ChangeLog --- evolution-1.4.5.orig/mail/ChangeLog 2003-09-12 20:40:39.000000000 +0200 +++ evolution-1.4.5/mail/ChangeLog 2003-11-24 20:44:22.421899736 +0100 @@ -1,3 +1,9 @@ +2003-11-23 Marcin Krzyzanowski + + * mail-display.c (launch_cb): check if application launcher + is described that he need terminal, if yes launch GNOME + preffered terminal. Fixes bug #51288. + 2003-09-11 Jeffrey Stedfast * mail-format.c (handle_text_plain): Don't set inend until after diff -Nuard evolution-1.4.5.orig/mail/mail-display.c evolution-1.4.5/mail/mail-display.c --- evolution-1.4.5.orig/mail/mail-display.c 2003-09-11 18:20:32.000000000 +0200 +++ evolution-1.4.5/mail/mail-display.c 2003-11-24 20:36:45.816314336 +0100 @@ -371,6 +371,7 @@ GList *apps, *children, *c; GnomeVFSMimeApplication *app; char *command, *filename; + gchar *terminal = NULL; const char *tmpdir; handler = mail_lookup_handler (g_object_get_data(user_data, "mime_type")); @@ -419,11 +420,26 @@ return; } - command = g_strdup_printf ("%s %s%s &", app->command, + if (app->requires_terminal) { + gchar *terminal_exec, *terminal_exec_arg; + GConfClient *gconf = mail_config_get_gconf_client (); + + terminal_exec = gconf_client_get_string (gconf, "/desktop/gnome/applications/terminal/exec", NULL); + terminal_exec_arg = gconf_client_get_string (gconf, "/desktop/gnome/applications/terminal/exec_arg", NULL); + + if (terminal_exec && terminal_exec_arg) + terminal = g_strdup_printf("%s %s",terminal_exec, terminal_exec_arg); + + g_free(terminal_exec); + g_free(terminal_exec_arg); + } + + command = g_strdup_printf ("%s %s %s%s &", terminal ? terminal : "", app->command, app->expects_uris == GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS ? "file://" : "", filename); + g_free (terminal); g_free (filename); - + system (command); g_free (command); }