GNU bug report logs -
#636
23.0.60; Read syntax error while byte-compiling
Previous Next
Reported by: Dmitry Dzhus <dima <at> sphinx.net.ru>
Date: Fri, 1 Aug 2008 07:50:05 UTC
Severity: normal
Done: Chong Yidong <cyd <at> stupidchicken.com>
Bug is archived. No further changes may be made.
Full log
Message #23 received at 636 <at> emacsbugs.donarmstrong.com (full text, mbox):
>>>>> On Sun, 10 Aug 2008, Chong Yidong wrote:
> Thanks for pinpointing this.
> In fact, it's apparently not a problem with cc-mode, but with Emacs.
> Here's a stripped-down recipe:
> 1. Create a file foo.el in your lisp path with the following contents:
> (defconst foo
> (let ((beginning-of-defun-function
> (lambda (&optional arg)
> (not (eq arg nil)))))
> (progn
> (beginning-of-defun 1))))
> (provide 'foo)
Calling beginning-of-defun will move point, right?
And since beginning-of-defun-function is essentially defined as a
no-op, point will just be moved to the beginning-of-line. (In fact,
eval-buffer on foo.el results in an infinite loop.)
> By the way, replacing `progn' with `save-excursion' makes the bug go
> away (this makes cc-def.el work too). Why? I don't know.
Indeed. If we agree that the bug is in cc-defs.el, then the following
patch should fix it:
--- progmodes/cc-defs.el 27 Jun 2008 21:12:46 -0000 1.58
+++ progmodes/cc-defs.el 11 Aug 2008 07:11:04 -0000
@@ -1445,7 +1445,7 @@
(let ((beginning-of-defun-function
(lambda (&optional arg)
(not (eq arg nil)))))
- (if (beginning-of-defun 1)
+ (if (save-excursion (beginning-of-defun 1))
(setq list (cons 'argumentative-bod-function list))))
(let ((buf (generate-new-buffer " test"))
Ulrich
This bug report was last modified 15 years and 152 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.