From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Bill Wohler Newsgroups: gmane.emacs.bugs Subject: bug#22317: 25.0.50; mh-e: wrong usage of cl-flet Followup-To: gmane.mail.mh-e.devel Date: Thu, 14 Jan 2016 10:42:15 -0800 Organization: Newt Software Message-ID: <27285.1452796935__47977.3614476018$1452797003$gmane$org@olgas.newt.com> References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1452797003 20697 80.91.229.3 (14 Jan 2016 18:43:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 14 Jan 2016 18:43:23 +0000 (UTC) Cc: yamaoka@jpl.org, 22317@debbugs.gnu.org To: Glenn Morris Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Jan 14 19:43:11 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aJmrW-0006HF-3F for geb-bug-gnu-emacs@m.gmane.org; Thu, 14 Jan 2016 19:43:10 +0100 Original-Received: from localhost ([::1]:44165 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aJmrV-0005aW-KJ for geb-bug-gnu-emacs@m.gmane.org; Thu, 14 Jan 2016 13:43:09 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58268) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aJmrR-0005aB-V3 for bug-gnu-emacs@gnu.org; Thu, 14 Jan 2016 13:43:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aJmrO-00011c-HS for bug-gnu-emacs@gnu.org; Thu, 14 Jan 2016 13:43:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:32948) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aJmrO-00011Q-DA for bug-gnu-emacs@gnu.org; Thu, 14 Jan 2016 13:43:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aJmrO-0002rs-4p; Thu, 14 Jan 2016 13:43:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Bill Wohler Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org, mh-e-devel@lists.sourceforge.net Resent-Date: Thu, 14 Jan 2016 18:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22317 X-GNU-PR-Package: emacs,mh-e X-GNU-PR-Keywords: X-Debbugs-Original-Cc: Katsumi Yamaoka , 22317@debbugs.gnu.org, mh-e-devel@lists.sourceforge.net Original-Received: via spool by 22317-submit@debbugs.gnu.org id=B22317.145279694610981 (code B ref 22317); Thu, 14 Jan 2016 18:43:02 +0000 Original-Received: (at 22317) by debbugs.gnu.org; 14 Jan 2016 18:42:26 +0000 Original-Received: from localhost ([127.0.0.1]:49400 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aJmqn-0002r2-Cn for submit@debbugs.gnu.org; Thu, 14 Jan 2016 13:42:25 -0500 Original-Received: from tassie.newt.com ([66.135.33.59]:40302) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aJmql-0002qp-ND for 22317@debbugs.gnu.org; Thu, 14 Jan 2016 13:42:24 -0500 Original-Received: from olgas.newt.com (c-50-161-94-13.hsd1.ca.comcast.net [50.161.94.13]) by tassie.newt.com (Postfix) with ESMTPSA id 951E6680224; Thu, 14 Jan 2016 10:42:16 -0800 (PST) Original-Received: by olgas.newt.com (Postfix, from userid 1000) id 5C20438291E; Thu, 14 Jan 2016 10:42:15 -0800 (PST) In-reply-to: Comments: In-reply-to Glenn Morris message dated "Thu, 14 Jan 2016 12:46:20 -0500." X-Mailer: MH-E 8.6; nmh 1.6; GNU Emacs 24.4.1 X-Image-URL: http://www.newt.com/wohler/images/bill-diving.png Mail-Followup-To: mh-e-devel@lists.sourceforge.net Content-ID: <27284.1452796935.1@olgas.newt.com> 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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:111619 Archived-At: Thanks for the very detailed message. I'll implement your suggestions in the next release of MH-E. I'm hoping it may fix some mysterious issues we've been seeing since Emacs 24 came out. Glenn Morris wrote: > = > mh-e-devel, FYI: > = > http://debbugs.gnu.org/22317 > = > Katsumi Yamaoka wrote: > = > > Hi, > > > > mh-e uses Gnus functions to render MIME messages and uses the > > mh-cl-flet macro to modify some of them. Currently mh-e always > > loads cl (see mh-acros.el), so both cl-flet and flet are available > > and mh-cl-flet will become cl-flet: > > ,---- > > | ;; Emacs 24 renamed flet to cl-flet. > > | (defalias 'mh-cl-flet > > | (if (fboundp 'cl-flet) > > | 'cl-flet > > | 'flet)) > > `---- > > However, cl-flet is quite unlike flet, IIUC. For instance, if > > cl-flet is used, the mh-cl-flet code in mh-display-emphasis > > ,---- > > | ;; (defun mh-display-emphasis () > > | ;; "Display graphical emphasis." > > | ;; (when (and mh-graphical-emphasis-flag (mh-small-show-buffer-p)) > > | (mh-cl-flet > > | ((article-goto-body ())) ; shadow this function to do n= othing > > | (save-excursion > > | (goto-char (point-min)) > > | (article-emphasize))) > > | ;; )) > > `---- > > will be expanded to > > ,---- > > | (progn > > | (save-excursion > > | (goto-char (point-min)) > > | (article-emphasize))) > > `---- > > whereas if flet is used, it will be expanded to: > > ,---- > > | (let* ((vnew (cl-function (lambda nil > > | (cl-block article-goto-body)))) > > | (old (symbol-function 'article-goto-body))) > > | (unwind-protect > > | (progn > > | (fset 'article-goto-body vnew) > > | (save-excursion > > | (goto-char (point-min)) > > | (article-emphasize))) > > | (fset 'article-goto-body old))) > > `---- > > Note that the former doesn't achieve the original target, i.e., > > article-goto-body is not modified while running article-emphasize. > > > > I don't know how it damages the behavior of mh-e, but I think it > > should be fixed anyway. If mh-e keeps loading cl as ever, > > mh-cl-flet can be: > > > > (defalias 'mh-cl-flet 'flet) > > > > Otherwise use this complete Emacs-Lisp style flet emulation macro > > (a copy of gmm-flet that exists in only the Gnus git master): > > > > --8<---------------cut here---------------start------------->8--- > > (defmacro mh-cl-flet (bindings &rest body) > > "Make temporary overriding function definitions. > > This is an analogue of a dynamically scoped `let' that operates on > > the function cell of FUNCs rather than their value cell. > > > > \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" > > (require 'cl) > > (if (fboundp 'cl-letf) > > `(cl-letf ,(mapcar (lambda (binding) > > `((symbol-function ',(car binding)) > > (lambda ,@(cdr binding)))) > > bindings) > > ,@body) > > `(flet ,bindings ,@body))) > > (put 'mh-cl-flet 'lisp-indent-function 1) > > (put 'mh-cl-flet 'edebug-form-spec > > '((&rest (sexp sexp &rest form)) &rest form)) > > --8<---------------cut here---------------end--------------->8--- > > > > I'm not the right person to install it since I'm not a mh-e user, > > sorry. > > > > Regards, > = > = > = > ------------------------------------------------------------------------= ------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=3D267308311&iu=3D/4140 > _______________________________________________ > mh-e-devel mailing list > mh-e-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mh-e-devel > = -- = Bill Wohler aka http://www.newt.com/wohler/ GnuPG ID:610BD9AD