Subject: bug#59438: 29.0.50; [PATCH] Make defvar's into defcustom's in tab-line

From: Mauro Aranda <[email-masked]>
Date: Fri, 8 Sep 2023 07:43:36 -0300

On 7/9/23 18:07, Stefan Kangas wrote:
> Stefan Kangas <[email-masked]> writes:
> 
>> Gabriel <[email-masked]> writes:
>>
>>> Please find attached a patch that proposes the following minor changes
>>> to tab-line.  I can refactor the patch if we decide that some change are
>>> not worth or if it's better to split it into smaller patches.
>>>
>>> 1) Turn the following defvar's into defcustom's:
>>>
>>> - `tab-line-tabs-buffer-group-function'
>>> - `tab-line-tabs-buffer-group-sort-function'
>>> - `tab-line-tabs-buffer-groups-sort-function'
>>>
>>> 2) Add conditional around function call of
>>> `tab-line-tabs-buffer-groups-sort-function', in
>>> `tab-line-tabs-buffer-groups'.  This guards against nil values, similar
>>> to how `tab-line-tabs-buffer-group-sort-function is handled, making the
>>> behavior more consistent across these two (similar) variables.
>>>
>>> Should we announce these "new" defcustom's in NEWS?
>>
>> Juri, thoughts?
> 
> Ping.  Does anyone have any comments?

I do have minor comments about the defcustom changes.

Gabriel <[email-masked]> writes:

 >>From da1053e7211d8bb17769fe43650a9bcdd359aeab Mon Sep 17 00:00:00 2001
 > From: Gabriel do Nascimento Ribeiro <[email-masked]>
 > Date: Mon, 21 Nov 2022 06:17:49 -0300
 > Subject: [PATCH 1/1] Make defvar's into defcustom's in tab-line
 >
 > * lisp/tab-line.el (tab-line-tabs-buffer-group-function)
 >   (tab-line-tabs-buffer-group-sort-function)
 >   (tab-line-tabs-buffer-groups-sort-function): Make into defcustom's.
 >   (Make defvar's into defcustom's in tab-line): Handle case when
 >   variable tab-line-tabs-buffer-groups-sort-function is nil.
 > ---
 >  lisp/tab-line.el | 51 ++++++++++++++++++++++++++++--------------------
 >  1 file changed, 30 insertions(+), 21 deletions(-)
 >
 > diff --git a/lisp/tab-line.el b/lisp/tab-line.el
 > index 99a785ee3e..9b1c101718 100644
 > --- a/lisp/tab-line.el
 > +++ b/lisp/tab-line.el
 > @@ -341,16 +341,26 @@ tab-line-tabs-mode-buffers
 >                                             (derived-mode-p mode)))
 >                               (funcall 
tab-line-tabs-buffer-list-function)))))
 >
 > -(defvar tab-line-tabs-buffer-group-function nil
 > +(defcustom tab-line-tabs-buffer-group-function nil
 >    "Function to add a buffer to the appropriate group of tabs.
 > -Takes a buffer as arg and should return a group name as a string.
 > -If the return value is nil, the buffer should be filtered out.")
 > +Takes a buffer as argument and should return a group name as a
 > +string.  If the return value is nil, the buffer should be
 > + filtered out."
 > +  :type 'function
 > +  :group 'tab-line
 > +  :version "29.1")

Since the option can be nil, please add a choice type here.

 > -(defvar tab-line-tabs-buffer-group-sort-function nil
 > -  "Function to sort buffers in a group.")
 > +(defcustom tab-line-tabs-buffer-group-sort-function nil
 > +  "Function to sort buffers in a group."
 > +  :type 'function
 > +  :group 'tab-line
 > +  :version "29.1")

Same here.

 > -(defvar tab-line-tabs-buffer-groups-sort-function #'string<
 > -  "Function to sort group names.")
 > +(defcustom tab-line-tabs-buffer-groups-sort-function #'string<
 > +  "Function to sort group names."
 > +  :type 'function
 > +  :group 'tab-line
 > +  :version "29.1")

And version should be updated, I guess.