Subject: bug#46839: describe-variable should say something slightly different about invisibly defined variables

From: 積丹尼 Dan Jacobson <[email-masked]>
Date: Sun, 28 Feb 2021 23:41:23 +0800

describe-variable says
  gnus-draft-setup-hook is a variable defined in ‘gnus-draft.el’.
  gnus-draft-mode-hook  is a variable defined in ‘gnus-draft.el’.

However one can be found in that file, one can't.

describe-variable could not be lying, therefore the one that can't be
found must still be declared, in some new invisible way. Fine.

However please make the help message output a little different,
so we will know if we are about to have a wild goose chase looking for
it or not.

"Well just click the link. If it is invisibly defined, you will just go
to the top of the file."

Yes, but still, please make the wording a little different:

E.g.,
  gnus-draft-setup-hook is a variable           defined in ‘gnus-draft.el’.
  gnus-draft-mode-hook  is a variable invisibly defined in ‘gnus-draft.el’.

(Proof:
$ zgrep gnus-draft-.*hook *.el.gz
gnus-draft.el.gz:(defcustom gnus-draft-setup-hook nil
gnus-draft.el.gz:    (run-hooks 'gnus-draft-setup-hook))))

OK. Now let's change some values and see what describe-variable says.

gnus-draft-mode-hook is a variable defined in ‘gnus-draft.el’.
Its value is ((lambda nil (goto-char (- (point-max) 1))))

gnus-draft-setup-hook is a variable defined in ‘gnus-draft.el’.
Its value is ((lambda nil (goto-char (- (point-max) 1))))
Original value was nil

gnus-summary-article-move-hook is a variable defined in ‘gnus-sum.el’.
Its value is nil

We can tell the second one, gnus-draft-setup-hook was chagnged by us,
because the Original value was mentioned.

But for the first and third, well one we tinkered with, and one we
didn't. But ah ha! There is no way to tell from the wording.

>From the wording one guesses both still have the origninal value.

emacs-version "27.1"