Subject: Re: bug#64543: [PATCH] package-report-bug: don't fail on custom groups defined by eval

From: [email-masked]
Date: Sat, 15 Jul 2023 17:45:12 +0000 (UTC)

Philip Kaludercic <[email-masked]> writes:

> Eli Zaretskii <[email-masked]> writes:
>
>>> Date: Sat, 15 Jul 2023 09:12:48 +0000 (UTC)
>>> From: Spencer Baugh <[email-masked]>
>>> Cc: Philip Kaludercic <[email-masked]>, [email-masked],
>>> 	[email-masked]
>>> 
>>> On Jul 15, 2023 04:57, Eli Zaretskii <[email-masked]> wrote:
>>> 
>>>  >   >> Previously we just assumed that the car of an element of 
>>>  >   >> custom-current-group-alist was a filename.  But actually it
>>>  >   >> can be nil
>>>  >   >> if a custom group was defined by just evaling Lisp. 
>>>  >   > 
>>>  >   > Where is this behaviour documented?  I couldn't reproduce it with a 
>>>  >   > simple experiment. 
>>>  > 
>>>  >   To reproduce: 
>>>  >   M-: (defgroup mygroup nil "my group") RET 
>>>  > 
>>>  > The patch would ensure that if groups like these are defined (which 
>>>  > might happen by mistake), then `package-report-bug' will remain robust 
>>>  > and not fail due to a unrelated issue. 
>>> 
>>>  Is this case important enough to make this change so late in the 
>>>  pretest?  Spencer, how did you bump into this situation in Real Life?
>>> 
>>> I evaled a buffer containing a defgroup with C-c C-e (or maybe just
>>> a region?)
>>
>> Why did you do that?
>
> Evaluating an entire buffer with C-c C-e is not unreasonable, but it
> will not bind `load-file-name', which `load-file' would have done, but
> there is no binding for that.

Maybe we should add a binding for load-file?  Or maybe C-c C-e should
bind load-file-name if the region is not active?

Btw, just curious: how do others test modifications they make to Lisp
files?  I usually make a couple changes to several functions or
variables and then reloading the whole file is easier than going defun
by defun.