[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#4755: 23.1; case where `C-M-x' on defcustom doesn't seem to work
From: |
Noam Postavsky |
Subject: |
bug#4755: 23.1; case where `C-M-x' on defcustom doesn't seem to work |
Date: |
Tue, 5 Jul 2016 13:56:36 -0400 |
On Tue, Jul 5, 2016 at 1:30 PM, Drew Adams <drew.adams@oracle.com> wrote:
> The "original value" should not change, and especially not just
> by using `C-h v'. It is wrong to say the "original value was"
> something that it never was and still is not! I don't see any
> evidence that that behavior is "expected" or is by design.
>
>> So perhaps the thing to be fixed is that describe-variable
>> should say "Standard value" rather than "Original value".
>
> I don't see how that would help.
It will help by not misleading you into thinking that Emacs is showing
you the original value.
>
> The doc you quote says that the std value is recomputed
> _by Customize_, by reevaluating the saved expression.
> Why should that affect `C-h v'?
They both use the same `standard-value' as the "original" (but yes, I
only know this because I read the code).
> I'm guessing that these problems arise because there is
> a type mismatch. But they still shouldn't manifest this
> way, I think.
No, sorry about this type mismatch, it's a complete red herring. Let's
simplify to:
(defcustom time (current-time-string)
"the time"
:type 'string)
Basically the problem stems from passing a non-pure expression
(meaning one that doesn't always give an `equal' result) as the
STANDARD argument to defcustom. Actually, since so many places seem to
assume they will always get the same result, I wonder why the
expression rather than the result of evaluating it is being stored.