[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#67991: 30.0.50; boundp always returns nil in format-mode-line with l
From: |
Eli Zaretskii |
Subject: |
bug#67991: 30.0.50; boundp always returns nil in format-mode-line with let* after 0fde935 |
Date: |
Sat, 23 Dec 2023 18:42:26 +0200 |
> Cc: monnier@iro.umontreal.ca, 67991@debbugs.gnu.org
> From: Aaron Jensen <aaronjensen@gmail.com>
> Date: Sat, 23 Dec 2023 10:52:22 -0500
>
> On Sat, Dec 23, 2023 at 10:21 AM Gerd Möllmann <gerd.moellmann@gmail.com>
> wrote:
> >
> > Aaron Jensen <aaronjensen@gmail.com> writes:
> >
> > > After commits:
> > >
> > > 0fde935b66e43e4d7ec137ba6195de993168587a
> > > a63b206fbde2ead91f1053d80a275f8850e5ffce
> > >
> > > boundp returns nil here, rather than t, like it used to:
> > >
> > > (format-mode-line
> > > '(:eval (let* ((some-var "some-value")
> > > (_ (message "Bound: %S" (boundp 'some-var))))
> > > (message "Var: %S, Bound: %S" some-var (boundp 'some-var)))))
> > >
> > > This has an impact on a particular package I use for my modeline, which
> > > can be worked around if this behavior is expected. It seemed a
> > > significant chagne, so I wanted to report it, in case it was not expected.
> >
> > I don't know why that would have changed things with Stefan's commit,
> > but are your sure that some-var is declared special (has a defvar, for
> > instance)? When it is, boundp returns t here.
>
> It's not in the package in question. But even if I defvar w/o giving
> it a value, it does not return t:
>
> (defvar some-var)
>
> (let* ((some-var "some-value")
> (_ (message "Bound: %S" (boundp 'some-var))))
> (message "Var: %S, Bound: %S" some-var (boundp 'some-var)))
>
> (format-mode-line
> '(:eval (let* ((some-var "some-value")
> (_ (message "Bound: %S" (boundp 'some-var))))
> (message "Var: %S, Bound: %S" some-var (boundp 'some-var)))))
>
> The first returns t, the second does not.
This one will return t:
(format-mode-line
'(:eval (progn
(defvar some-var)
(let* ((some-var "some-value")
(_ (message "Bound: %S" (boundp 'some-var))))
(message "Var: %S, Bound: %S" some-var (boundp 'some-var))))))
> As to your question, Eli, I don't know. If it shouldn't return nil
> then I can report that downstream and they can fix it there.
Let's wait for Stefan to chime in, he made the change you blamed.