From unknown Sat Aug 16 00:31:02 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#22317 <22317@debbugs.gnu.org> To: bug#22317 <22317@debbugs.gnu.org> Subject: Status: 25.0.50; mh-e: wrong usage of cl-flet Reply-To: bug#22317 <22317@debbugs.gnu.org> Date: Sat, 16 Aug 2025 07:31:02 +0000 retitle 22317 25.0.50; mh-e: wrong usage of cl-flet reassign 22317 emacs,mh-e submitter 22317 Katsumi Yamaoka severity 22317 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 05 20:02:07 2016 Received: (at submit) by debbugs.gnu.org; 6 Jan 2016 01:02:07 +0000 Received: from localhost ([127.0.0.1]:39293 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aGcUJ-0001An-7a for submit@debbugs.gnu.org; Tue, 05 Jan 2016 20:02:07 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54588) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aGcUH-0001AH-GY for submit@debbugs.gnu.org; Tue, 05 Jan 2016 20:02:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aGcUB-0005nL-CA for submit@debbugs.gnu.org; Tue, 05 Jan 2016 20:02:00 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:39561) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aGcUB-0005nF-9k for submit@debbugs.gnu.org; Tue, 05 Jan 2016 20:01:59 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45540) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aGcUA-0005Nb-7q for bug-gnu-emacs@gnu.org; Tue, 05 Jan 2016 20:01:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aGcU5-0005lC-6c for bug-gnu-emacs@gnu.org; Tue, 05 Jan 2016 20:01:58 -0500 Received: from mail-hampton.hostforweb.net ([205.234.186.191]:59233 helo=hampton.hostforweb.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aGcU5-0005gb-2K for bug-gnu-emacs@gnu.org; Tue, 05 Jan 2016 20:01:53 -0500 Received: from s70.gtokyofl21.vectant.ne.jp ([202.215.75.70]:62745 helo=localhost) by hampton.hostforweb.net with esmtpsa (TLSv1.2:AES128-GCM-SHA256:128) (Exim 4.86) (envelope-from ) id 1aGcTG-000RHF-F7; Tue, 05 Jan 2016 19:01:06 -0600 Date: Wed, 06 Jan 2016 10:01:23 +0900 Message-ID: From: Katsumi Yamaoka To: bug-gnu-emacs@gnu.org Subject: 25.0.50; mh-e: wrong usage of cl-flet Organization: Emacsen advocacy group X-Face: #kKnN,xUnmKia.'[pp`; Omh}odZK)?7wQSl"4o04=EixTF+V[""w~iNbM9ZL+.b*_CxUmFk B#Fu[*?MZZH@IkN:!"\w%I_zt>[$nm7nQosZ<3eu; B:$Q_:p!',P.c0-_Cy[dz4oIpw0ESA^D*1Lw= L&i*6&( User-Agent: Gnus/5.130014 (=?utf-8?Q?=E7=9C=9F?= Gnus v0.14) Emacs/25.0.50 (i686-pc-cygwin) Cancel-Lock: sha1:80+ZQKJGPzlDm6/OPt2KW7LEtbE= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-OutGoing-Spam-Status: No, score=-2.9 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hampton.hostforweb.net X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - jpl.org X-Get-Message-Sender-Via: hampton.hostforweb.net: authenticated_id: yamaoka/from_h X-Authenticated-Sender: hampton.hostforweb.net: yamaoka@jpl.org X-Source: X-Source-Args: X-Source-Dir: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone) [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) 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 nothing | (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, From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 14 12:46:32 2016 Received: (at 22317) by debbugs.gnu.org; 14 Jan 2016 17:46:32 +0000 Received: from localhost ([127.0.0.1]:49359 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aJlyi-0001VW-JL for submit@debbugs.gnu.org; Thu, 14 Jan 2016 12:46:32 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43519) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aJlyh-0001VJ-6E for 22317@debbugs.gnu.org; Thu, 14 Jan 2016 12:46:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aJlya-0002UQ-RK for 22317@debbugs.gnu.org; Thu, 14 Jan 2016 12:46:26 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: * X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD, UNRESOLVED_TEMPLATE autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52614) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aJlya-0002UL-NO; Thu, 14 Jan 2016 12:46:24 -0500 Received: from rgm by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1aJlyX-0006nb-SM; Thu, 14 Jan 2016 12:46:22 -0500 From: Glenn Morris To: 22317@debbugs.gnu.org Subject: Re: bug#22317: 25.0.50; mh-e: wrong usage of cl-flet References: X-Spook: Exon Shell MDA AIEWS Armed Revolutionary Forces Colombia X-Ran: tWE)?x`d6ofH5%32NO$At`AmRc#%OPR^_Ih;!GueQ-&*Sb#)&O2C}A^_A4\0/Rx7=|pbe7 X-Hue: red X-Attribution: GM Date: Thu, 14 Jan 2016 12:46:20 -0500 In-Reply-To: (Katsumi Yamaoka's message of "Wed, 06 Jan 2016 10:01:23 +0900") Message-ID: User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -4.3 (----) X-Debbugs-Envelope-To: 22317 Cc: Katsumi Yamaoka X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.3 (----) 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 nothing > | (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, From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 14 13:42:26 2016 Received: (at 22317) by debbugs.gnu.org; 14 Jan 2016 18:42:26 +0000 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 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 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) Received: by olgas.newt.com (Postfix, from userid 1000) id 5C20438291E; Thu, 14 Jan 2016 10:42:15 -0800 (PST) To: Glenn Morris From: Bill Wohler Subject: Re: bug#22317: 25.0.50; mh-e: wrong usage of cl-flet In-reply-to: References: Comments: In-reply-to Glenn Morris message dated "Thu, 14 Jan 2016 12:46:20 -0500." Organization: Newt Software 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 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <27284.1452796935.1@olgas.newt.com> Content-Transfer-Encoding: quoted-printable Date: Thu, 14 Jan 2016 10:42:15 -0800 Message-ID: <27285.1452796935@olgas.newt.com> X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 22317 Cc: Katsumi Yamaoka , 22317@debbugs.gnu.org, mh-e-devel@lists.sourceforge.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) 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 From debbugs-submit-bounces@debbugs.gnu.org Mon May 30 20:18:24 2016 Received: (at 22317-done) by debbugs.gnu.org; 31 May 2016 00:18:24 +0000 Received: from localhost ([127.0.0.1]:47917 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b7XO4-0005ZT-1Q for submit@debbugs.gnu.org; Mon, 30 May 2016 20:18:24 -0400 Received: from tassie.newt.com ([66.135.33.59]:45637) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b7XO1-0005ZG-K5 for 22317-done@debbugs.gnu.org; Mon, 30 May 2016 20:18:22 -0400 Received: from olgas.newt.com (c-73-15-2-218.hsd1.ca.comcast.net [73.15.2.218]) by tassie.newt.com (Postfix) with ESMTPSA id 0223A680418; Mon, 30 May 2016 17:18:15 -0700 (PDT) Received: by olgas.newt.com (Postfix, from userid 1000) id 3F593380F76; Mon, 30 May 2016 17:18:14 -0700 (PDT) To: Glenn Morris From: Bill Wohler Subject: Re: bug#22317: 25.0.50; mh-e: wrong usage of cl-flet In-reply-to: References: Comments: In-reply-to Glenn Morris message dated "Thu, 14 Jan 2016 12:46:20 -0500." Organization: Newt Software X-Mailer: MH-E 8.6+git; 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 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <40035.1464653894.1@olgas.newt.com> Content-Transfer-Encoding: quoted-printable Date: Mon, 30 May 2016 17:18:14 -0700 Message-ID: <40036.1464653894@olgas.newt.com> X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 22317-done Cc: Katsumi Yamaoka , 22317-done@debbugs.gnu.org, mh-e-devel@lists.sourceforge.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) Fixed and committed to emacs-25 release branch: commit 0992ec3b0bfaf98edce1d08462e9ec8e11d6b6e6 Author: Bill Wohler Date: Mon May 30 16:49:37 2016 -0700 Correct cl-flet usage (Bug#22317) = * mh-compat.el: Rename mh-cl-flet to mh-flet and convert alias to macro using patch from Katsumi Yamaoka . * mh-thread.el (mh-thread-set-tables): * mh-show.el (mh-gnus-article-highlight-citation): * mh-mime.el (mh-display-with-external-viewer): (mh-mime-display, mh-press-button, mh-push-button): (mh-display-emphasis): Call mh-flet instead of mh-cl-flet. 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 From unknown Sat Aug 16 00:31:02 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 28 Jun 2016 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator