diff --git a/lib/mu-msg-part.c b/lib/mu-msg-part.c index b6bbffc3..f4242b32 100644 --- a/lib/mu-msg-part.c +++ b/lib/mu-msg-part.c @@ -239,15 +239,26 @@ get_part_size (GMimePart *part) } -static void +static char* cleanup_filename (char *fname) { + GString *gstr; gchar *cur; + gunichar uc; - /* replace control characters, slashes,colons by a '-' */ - for (cur = fname; *cur; ++cur) - if (*cur < ' ' || *cur == '/' || *cur == ':') - *cur = '-'; + gstr = g_string_sized_new (strlen (fname)); + + /* replace control characters, slashes, and colons by '-' */ + for (cur = fname; cur && *cur; cur = g_utf8_next_char (cur)) { + uc = g_utf8_get_char (cur); + if (g_unichar_iscntrl (uc) || uc == '/' || uc == ':') + g_string_append_unichar (gstr, '-'); + else + g_string_append_unichar (gstr, uc); + } + + g_free (fname); + return g_string_free (gstr, FALSE); } @@ -304,9 +315,9 @@ mime_part_get_filename (GMimeObject *mobj, unsigned index, if (!fname) fname = guess_file_name (mobj, index); - - /* remove slashes, spaces, colons... */ - cleanup_filename (fname); + + /* replace control characters, slashes, and colons */ + fname = cleanup_filename (fname); return fname; } diff --git a/mu4e/org-mu4e.el b/mu4e/org-mu4e.el index b9e96882..545f5663 100644 --- a/mu4e/org-mu4e.el +++ b/mu4e/org-mu4e.el @@ -192,8 +192,6 @@ and images in a multipart/related part." "Convert the current body to html." (unless (fboundp 'org-export-string-as) (mu4e-error "require function 'org-export-string-as not found.")) - (unless (executable-find "dvipng") - (mu4e-error "Required program dvipng not found")) (let* ((begin (save-excursion (goto-char (point-min)) @@ -209,7 +207,9 @@ and images in a multipart/related part." ;; makes the replies with ">"s look nicer (org-export-preserve-breaks t) ;; dvipng for inline latex because MathJax doesn't work in mail - (org-export-with-LaTeX-fragments 'dvipng) + (org-export-with-LaTeX-fragments + (if (executable-find "dvipng") 'dvipng + (mu4e-message "Cannot find dvipng, ignore inline LaTeX") nil)) ;; to hold attachments for inline html images (html-and-images (org~mu4e-mime-replace-images