emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Bug: buffer local variables handled wrong [9.0.5 (release_9.0.5-


From: Stefan-W. Hahn
Subject: Re: [O] Bug: buffer local variables handled wrong [9.0.5 (release_9.0.5-497-g5bc540 @ /home/hs/.emacs.d/lib/org-mode/lisp/)]
Date: Sun, 4 Jun 2017 11:18:19 +0200
User-agent: Mutt/1.5.24 (2015-08-30)

Mail von Nicolas Goaziou, Sun, 04 Jun 2017 at 10:24:57 +0200:

Hello,

> "Stefan-W. Hahn" <address@hidden> writes:
> 
> > I looked at it, but sorry, I think this also is not right, it expands to:
> >
> > Both looking wrong for me. Sorry.
> 
> What do you think is wrong?
> 
> In particular
> 
>   (let (res)
>     (dolist (pair (buffer-local-variables))
>       (pcase pair
>         (`(,var . ,val)
>          (push (list 'set var val) res))))
>     res)
> 
> expands to
> 
>   ((set flyspell-word-cache-result _)
>    (set flyspell-word-cache-end -1)
>    (set undo-auto--last-boundary-cause (2 #<buffer *scratch*>))
>    (set syntax-ppss-last (1 0 nil nil nil nil nil 0 nil nil nil))
>    (set syntax-propertize--done 139)
>    (set flyspell-changes nil)
>    (set deactivate-mark nil)
>    (set flyspell-pre-point 139)
>    (set auto-revert-notify-modified-p nil)
>    ...
>    )
> 
> which looks correct.

Obviously you are right, I get the ame result when evaluating it.

What I don't understand is, if I expand the pcase with (macrostep-expand) I
get the following:

,----
|     (let (res)
|     (dolist (pair (buffer-local-variables))
|       (if
|           (consp pair)
|           (let*
|               ((x
|                 (car pair))
|                (x
|                 (cdr pair)))
|             (let
|                 ((val x)
|                  (var x))
|               (push
|                (list 'set var val)
|                res)))
|         nil))
|     res)
`----

And this is obviously wrong.

With kind regards,
Stefan

-- 
Stefan-W. Hahn                          It is easy to make things.
                                        It is hard to make things simple.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]