|
From: | Glenn Morris |
Subject: | bug#11780: 24.1.50; vc-annotate fails for files in RCS. ("cl.el" `flet' problem?) |
Date: | Tue, 26 Jun 2012 18:41:51 -0400 |
User-agent: | Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
Here's what the expansion of (flet ((sw () (skip-chars-forward " \t\n"))) (sw)) looks like in 24.1: (let* ((--cl-letf-bound-- (fboundp 'sw)) (--cl-letf-save-- (and --cl-letf-bound-- (symbol-function 'sw)))) (unwind-protect (progn (fset 'sw (function* (lambda nil (block sw (skip-chars-forward " \n"))))) (sw)) (if --cl-letf-bound-- (fset 'sw --cl-letf-save--) (fmakunbound 'sw)))) whereas in the current trunk it looks like this: (let* ((x (cl-function (lambda nil (cl-block sw (skip-chars-forward " \n"))))) (x (symbol-function 'sw))) (unwind-protect (progn (fset 'sw x) (sw)) (fset 'sw x))) So there's a couple of things wrong with the new version: `x' used twice as a local variable. (symbol-function 'sw) not guarded by an (fboundp 'sw) check. The latter is the immediate source of the error AFAICS.
[Prev in Thread] | Current Thread | [Next in Thread] |