[emacs-w3m:13520] Re: lexical-binding question

Katsumi Yamaoka <[email protected]>
Newsgroups gmane.emacs.w3m
Organization Emacsen advocacy group
Message-ID <[email protected]>
I'm sorry for the noise, anyway.

In [emacs-w3m:13519]
On Wed, 07 Aug 2019 09:57:05 +0900, Katsumi Yamaoka wrote:
> ・Eval: (setq w3m-input-coding-system 'binary)
> ・Perform `edebug-defun' on the function `w3m-w3m-expand-arguments'.
> ・Run M-x w3m for visiting some web page.

> Then, you will see '`,charset and `,charset, that the constant
> `w3m-halfdump-command-arguments' defines, are substituted with
> a certain charset value successfully, even though the value of
> `charset' is not passed to `w3m-w3m-expand-arguments' explicitly.

> While edebugging `w3m-w3m-expand-arguments', it is notable that
> the form (boundp 'charset) returns t and (symbol-value 'charset)
> returns a certain charset value.

I found the cause of the mystery.  I recalled I added an advice
to the `w3m-rendering-half-dump' function in the ~/.emacs-w3m.el
file for some purpose using `defadvice', so the function is re-
compiled in the condition `lexical-binding' is nil.  That is why
the `charset' symbol is dynamically bound.

It also means that substituting the `charset' symbols that are
specified in the `w3m-halfdump-command-arguments' constant should
not work in a normal case.  Though it might not be so many as it
will cause only when `w3m-input-coding-system' is set to `binary'.
Anyway I'm going to fix it in an adequate way.

Regards,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.