From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: "Basil L. Contovounesios" Newsgroups: gmane.emacs.bugs Subject: bug#30870: Error opening HTML mail when mm-text-html-renderer is nil Date: Tue, 20 Mar 2018 01:46:22 +0000 Message-ID: <87in9rldsh.fsf@tcd.ie> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1521510319 16636 195.159.176.226 (20 Mar 2018 01:45:19 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 20 Mar 2018 01:45:19 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: 30870@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Mar 20 02:45:15 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ey6Kw-0004CY-Be for geb-bug-gnu-emacs@m.gmane.org; Tue, 20 Mar 2018 02:45:14 +0100 Original-Received: from localhost ([::1]:44910 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ey6Mz-00048M-K0 for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Mar 2018 21:47:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58990) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ey6Mm-000466-89 for bug-gnu-emacs@gnu.org; Mon, 19 Mar 2018 21:47:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ey6Mi-00009a-6m for bug-gnu-emacs@gnu.org; Mon, 19 Mar 2018 21:47:08 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:34543) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ey6Mi-00009R-0M for bug-gnu-emacs@gnu.org; Mon, 19 Mar 2018 21:47:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ey6Mg-0005vG-IL; Mon, 19 Mar 2018 21:47:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: "Basil L. Contovounesios" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org, bugs@gnus.org Resent-Date: Tue, 20 Mar 2018 01:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 30870 X-GNU-PR-Package: emacs,gnus X-GNU-PR-Keywords: X-Debbugs-Original-To: submit@debbugs.gnu.org (The Gnus Bugfixing Girls + Boys) Original-Received: via spool by submit@debbugs.gnu.org id=B.152151039722730 (code B ref -1); Tue, 20 Mar 2018 01:47:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 20 Mar 2018 01:46:37 +0000 Original-Received: from localhost ([127.0.0.1]:42438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ey6MH-0005uX-82 for submit@debbugs.gnu.org; Mon, 19 Mar 2018 21:46:37 -0400 Original-Received: from mail-wm0-f49.google.com ([74.125.82.49]:52698) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ey6MA-0005uC-Ll for submit@debbugs.gnu.org; Mon, 19 Mar 2018 21:46:36 -0400 Original-Received: by mail-wm0-f49.google.com with SMTP id l9so431455wmh.2 for ; Mon, 19 Mar 2018 18:46:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tcd-ie.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:user-agent:mime-version; bh=uJO2vZ7Gmd8oXT7Sr1ZqFQ8SFY2quDiiFSZX7WxL3rg=; b=dIH0qOfZuWruQ8wRrJGG0stT359EtKc5C3XrHb6NDQ8FLgteSptw9QEnGd6k5h0M5l AaSce+fbvbcwlHXCz+huWkMACnoiqTfkzRygv1e1oeIUqJ0Ek6BUWIof7fQg/lJrUvAh RxslxolRiDPTRTM2xFTp4M6Zoxm4D/lsfBLE0AZdmspQMPs7NpIxgd6HQBAtmKFHKra3 nI5uwqbQabr6ANNmEl6OP+Ck27+Nzbq9trhXZScUCl3tLIQfbY05uALoIoCh6MnyaIAM 0snfOiwzKzliohQq2Kn763N+g5ixuD/d1p0SMN2oSxEspegj2r7Eujh0+g/Y7sOshtQY iRwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:user-agent :mime-version; bh=uJO2vZ7Gmd8oXT7Sr1ZqFQ8SFY2quDiiFSZX7WxL3rg=; b=RGveImolVEZ15FZC1YAR6IautVzrGYa9asd/9X2yL4riVrZqRKpCbIvgvoEBpa8rxa gQMK1aeCF7c+obt5YKTtfAol8ePEfr9Wit49h3+CnGFE4tnyUZtCZaP561xGBTanobsq 5uOmLU7Re9x447TIDwxgbrn5aOrcxp94Cb24rjKFIBGHlGJxgIfuK8UgZa2SUStbxXAN wS1PW4i5nMASGPmsknVB+Lv2fLUO/CKK81Dzf2LI1XIK41IC3JHsQH4E/FqgRkOoALtu DTvuthH9kzWX74o5tvNjLdzMOh0HEB26vUhgx94phWQrSUGBe0bzwtUZuoOAVMU7Sm0E cUWg== X-Gm-Message-State: AElRT7HtckWLNbyFjKvMUBKYoik+UnL0nNoxigPPHfrcKnyei13qEIal YU8QePdf9snboLechXkYrKRkeN4g X-Google-Smtp-Source: AG47ELvesYHaK3pcTO9S9ARH3F/ho9Glce8/+Ek3eTXepf1Txx+lU4X8wdH+ZMOAN92+zjBfD79LWA== X-Received: by 10.80.177.234 with SMTP id n39mr15102119edd.108.1521510384421; Mon, 19 Mar 2018 18:46:24 -0700 (PDT) Original-Received: from localhost ([2a02:8084:4f41:8c80:9c34:da08:a010:edfc]) by smtp.gmail.com with ESMTPSA id d89sm950651edc.75.2018.03.19.18.46.23 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 19 Mar 2018 18:46:23 -0700 (PDT) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:144435 Archived-At: --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=backtrace.txt Content-Description: Backtrace Debugger entered--Lisp error: (void-function nil) nil((# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil)) apply(nil (# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil) nil) (cond ((functionp func) (funcall func handle)) (t (apply (car func) handle (cdr func)))) (let* ((func mm-text-html-renderer) (entry (assq func mm-text-html-renderer-alist)) (inhibit-read-only t)) (if entry (setq func (cdr entry))) (cond ((functionp func) (funcall func handle)) (t (apply (car func) handle (cdr func))))) (if (stringp (car handle)) (mapcar 'mm-inline-text-html (cdr handle)) (let* ((func mm-text-html-renderer) (entry (assq func mm-text-html-renderer-alist)) (inhibit-read-only t)) (if entry (setq func (cdr entry))) (cond ((functionp func) (funcall func handle)) (t (apply (car func) handle (cdr func)))))) mm-inline-text-html((# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil)) mm-display-inline((# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil)) gnus-mime-display-single((# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil)) gnus-mime-display-part((# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil)) gnus-mime-display-part((#("multipart/related" 0 17 (boundary "----=_Part_3611803_15130720.1521495438553" buffer # from "foo@bar.com" start nil)) (# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil) (# ("image/jpeg" (name . "barcode_2F72GF.jpg")) base64 nil ("attachment" (filename . "barcode_2F72GF.jpg")) nil nil ""))) gnus-display-mime((#("multipart/related" 0 17 (boundary "----=_Part_3611803_15130720.1521495438553" buffer # from "foo@bar.com" start nil)) (# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil) (# ("image/jpeg" (name . "barcode_2F72GF.jpg")) base64 nil ("attachment" (filename . "barcode_2F72GF.jpg")) nil nil ""))) gnus-mime-display-alternative(((# ("text/plain" (charset . "us-ascii")) 7bit nil ("inline") nil nil nil) (#("multipart/related" 0 17 (boundary "----=_Part_3611803_15130720.1521495438553" buffer # from "foo@bar.com" start nil)) (# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil) (# ("image/jpeg" (name . "barcode_2F72GF.jpg")) base64 nil ("attachment" (filename . "barcode_2F72GF.jpg")) nil nil ""))) nil nil 1) gnus-mime-display-part((#("multipart/alternative" 0 21 (boundary "----=_Part_3611802_12201241.1521495438553" buffer # from "foo@bar.com" start nil)) (# ("text/plain" (charset . "us-ascii")) 7bit nil ("inline") nil nil nil) (#("multipart/related" 0 17 (boundary "----=_Part_3611803_15130720.1521495438553" buffer # from "foo@bar.com" start nil)) (# ("text/html" (charset . "us-ascii")) 7bit nil nil nil nil nil) (# ("image/jpeg" (name . "barcode_2F72GF.jpg")) base64 nil ("attachment" (filename . "barcode_2F72GF.jpg")) nil nil "")))) gnus-display-mime() gnus-article-prepare-display() gnus-article-prepare(62 nil) gnus-summary-display-article(62 nil) gnus-summary-select-article(nil nil pseudo) gnus-summary-scroll-up(1) funcall-interactively(gnus-summary-scroll-up 1) call-interactively(gnus-summary-scroll-up nil nil) command-execute(gnus-summary-scroll-up) --=-=-= Content-Type: text/plain (Hopefully someone else can reproduce this issue without my having to start an uncustomised Gnus.) 1. M-x toggle-debug-on-error RET 2. M-x set-variable RET mm-text-html-renderer RET nil RET 3. Open a HTML article in Gnus, e.g. by typing RET in a summary buffer This results in the attached backtrace. I'm quite unfamiliar with the relevant code, but the patch I am currently using as a workaround follows my signature, as do listings of my Gnus and Emacs versions. Thanks, -- Basil Gnus v5.13 GNU Emacs 27.0.50 (build 16, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of 2018-03-19 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=foo.diff Content-Description: Workaround diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el index c11af7060b..6cd93c91a4 100644 --- a/lisp/gnus/mm-view.el +++ b/lisp/gnus/mm-view.el @@ -311,17 +311,18 @@ mm-inline-render-with-function (defun mm-inline-text-html (handle) (if (stringp (car handle)) - (mapcar 'mm-inline-text-html (cdr handle)) - (let* ((func mm-text-html-renderer) - (entry (assq func mm-text-html-renderer-alist)) - (inhibit-read-only t)) - (if entry - (setq func (cdr entry))) + (mapcar #'mm-inline-text-html (cdr handle)) + (let ((func (alist-get mm-text-html-renderer + mm-text-html-renderer-alist + mm-text-html-renderer)) + (inhibit-read-only t)) (cond ((functionp func) (funcall func handle)) + ((functionp (car func)) + (apply (car func) handle (cdr func))) (t - (apply (car func) handle (cdr func))))))) + (mm-interactively-view-part handle)))))) (defun mm-inline-text-vcard (handle) (let ((inhibit-read-only t)) diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el index 3d202890b6..f1256bdef5 100644 --- a/lisp/mh-e/mh-gnus.el +++ b/lisp/mh-e/mh-gnus.el @@ -165,8 +165,8 @@ mh-mm-save-part (defun mh-mm-text-html-renderer () "Find the renderer Gnus is using to display text/html MIME parts." - (or (and (boundp 'mm-inline-text-html-renderer) mm-inline-text-html-renderer) - (and (boundp 'mm-text-html-renderer) mm-text-html-renderer))) + (or (bound-and-true-p mm-inline-text-html-renderer) + (bound-and-true-p mm-text-html-renderer))) (provide 'mh-gnus) diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el index e2c682a399..8ad1877327 100644 --- a/lisp/mh-e/mh-mime.el +++ b/lisp/mh-e/mh-mime.el @@ -140,9 +140,7 @@ mh-mm-inline-media-tests ("text/html" ,(if (fboundp 'mm-inline-text-html) 'mm-inline-text-html 'mm-inline-text) (lambda (handle) - (or (and (boundp 'mm-inline-text-html-renderer) - mm-inline-text-html-renderer) - (and (boundp 'mm-text-html-renderer) mm-text-html-renderer)))) + (mh-mm-text-html-renderer))) ("text/x-vcard" mh-mm-inline-text-vcard (lambda (handle) @@ -781,9 +779,9 @@ mh-small-image-p (mm-inline-large-images t)) (and media-test (equal (mm-handle-media-supertype handle) "image") - (funcall media-test handle) ; Since mm-inline-large-images is T, - ; this only tells us if the image is - ; something that emacs can display + (funcall media-test handle) ; Since `mm-inline-large-images' is t, + ; this only tells us if the image is + ; something that Emacs can display (let* ((image (mm-get-image handle))) (or (mh-do-in-xemacs (and (mh-funcall-if-exists glyphp image) --=-=-=--