12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- Index: sylpheed-3.1.1/libsylph/procmime.c
- ===================================================================
- --- sylpheed-3.1.1.orig/libsylph/procmime.c
- +++ sylpheed-3.1.1/libsylph/procmime.c
- @@ -1685,74 +1685,13 @@ static GList *procmime_parse_mailcap(con
-
- gint procmime_execute_open_file(const gchar *file, const gchar *mime_type)
- {
- - gchar *mime_type_ = NULL;
- - GList *cur;
- - MailCap *mailcap;
- gchar *cmdline;
- gint ret = -1;
- - static gboolean mailcap_list_init = FALSE;
-
- g_return_val_if_fail(file != NULL, -1);
-
- - if (!mime_type ||
- - g_ascii_strcasecmp(mime_type, "application/octet-stream") == 0) {
- - gchar *tmp;
- - tmp = procmime_get_mime_type(file);
- - if (!tmp)
- - return -1;
- - mime_type_ = g_ascii_strdown(tmp, -1);
- - g_free(tmp);
- - } else
- - mime_type_ = g_ascii_strdown(mime_type, -1);
- -
- - if (!mailcap_list_init && !mailcap_list) {
- - GList *list;
- - gchar *path;
- -
- - path = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, "mailcap",
- - NULL);
- - mailcap_list = procmime_parse_mailcap(path);
- - g_free(path);
- -#ifdef G_OS_WIN32
- - path = g_strconcat(get_startup_dir(), G_DIR_SEPARATOR_S "etc"
- - G_DIR_SEPARATOR_S "mailcap", NULL);
- - list = procmime_parse_mailcap(path);
- - g_free(path);
- -#else
- - if (!mailcap_list) {
- - path = g_strconcat(get_home_dir(), G_DIR_SEPARATOR_S,
- - ".mailcap", NULL);
- - mailcap_list = procmime_parse_mailcap(path);
- - g_free(path);
- - }
- - list = procmime_parse_mailcap(SYSCONFDIR "/mailcap");
- - if (!list)
- - list = procmime_parse_mailcap("/etc/mailcap");
- -#endif
- - mailcap_list = g_list_concat(mailcap_list, list);
- -
- - mailcap_list_init = TRUE;
- - }
- -
- - for (cur = mailcap_list; cur != NULL; cur = cur->next) {
- - mailcap = (MailCap *)cur->data;
- -
- - if (!g_pattern_match_simple(mailcap->mime_type, mime_type_))
- - continue;
- - if (mailcap->needs_terminal)
- - continue;
- -
- - if (str_find_format_times(mailcap->cmdline_fmt, 's') == 1)
- - cmdline = g_strdup_printf(mailcap->cmdline_fmt, file);
- - else
- - cmdline = g_strconcat(mailcap->cmdline_fmt, " \"", file,
- - "\"", NULL);
- - ret = execute_command_line(cmdline, TRUE);
- - g_free(cmdline);
- - break;
- - }
- -
- - g_free(mime_type_);
- + cmdline = g_strdup_printf("/usr/bin/xdg-open '%s'", file);
- + ret = execute_command_line(cmdline, TRUE);
-
- return ret;
- }
|