[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Symbol's function definition is void: #:--post-body--27977
- From: Katsumi Yamaoka <yamaoka@xxxxxxx>
- Date: Tue, 12 Jun 2012 13:07:46 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 11844
- References: <87d355ic0c.fsf@xxxxxx>
In [emacs-w3m : No.11842] Michael Heerdegen wrote:
> Dear Bug Team!
> in an emacs -Q from an up-to-date developer Emacs 24, load w3m, do M-x
> w3m, hit g, enter an URL and hit RET. You'll always get the following
> error in process sentinel: w3m-process-sentinel: Symbol's function
> definition is void: #:--post-body--27977
Thanks for posting this. I've fixed it in CVS, though it's no
more than a workaround, maybe.
> This bug is related to a recent change of the behavior of the `labels'
> macro in the CL package.
> With former versions of the CL package, something like the following
> (labels ((fak (n) (if (< n 2) 1 (* n (apply 'fak (list (1- n)))))))
> (fak 5))
> meaning you could call `apply' on the quoted (with "'") symbol of a
> labels definition, like "'fac" in my example.
> This has now been considered a bug by emacs dev. You _must_ quote
> the symbol with #' now, like this:
> (labels ((fak (n) (if (< n 2) 1 (* n (apply #'fak (list (1- n)))))))
> (fak 5))
> The first variant with the simple "'" quote doesn't work anymore,
> evaluating it will give you an error.
> To fix the bug described here above, please modify
> `w3m-process-do-with-temp-buffer' in "w3m-proc.el" so that it respects
> this rule. This fixes the bug for me.
Great. Could you post the recipe to the bug (or devel?) list?
What I did in `w3m-process-do-with-temp-buffer' was to replace
`labels' with `let', because I have no idea on tweaking it with
> Please also check if other occurrences of `labels' in the code must be
> modified as well.
The other codes using LLL are safe, AFAICT.