Subject: bug#23926: defcustom with STANDARD=<non-pure-expression> gives confusing results

From: Drew Adams <[email-masked]>
Date: Sat, 9 Jul 2016 14:34:00 +0000 (UTC)

> Either really save the original value, or don't call it the "original
> value". We can't use "default value" because that's already used for
> the non-buffer local value, unfortunately. I think "standard value"
> could work, though Drew said it was unclear.

If it is what custom calls the "standard value", which is what
you get when you `Reset to Standard Setting', then I don't
think it is wrong to use that name here.

But I think that `C-h v' - or at a minimum somewhere in the
manual - should point out what is happening here:

The value shown is the result of re-evaluating, in the current
context, the original expression that was used to define the
initial value.

Each part of that sentence is important to understanding what
this is.  We should not just suppose that all of that is
understood by a user, just by providing a label such as
"standard value" (let alone a misleading label such as
"original value").

It's OK to just provide a (reasonable) label, I guess, _if_
it is clearly defined somewhere in the doc.

I really think that it would be good to show in `C-h v'
(also), the original expression.  That is available in
Customize (good), by choosing `Show Saved Lisp Expression'.

But if we are going to show, in `C-h v', what is currently
called "original value" there, then we should (1) use a
better name for it (e.g. "standard value") and (2) provide
also the expression that it was re-evaluated from.

As for how to show that expression: if small, show it inline;
if large, show it on demand (e.g. clicking an expand button).