Subject: Re: bug#44068: 28.0.50; Faulty uses of tabulated-list-format

From: Stefan Kangas <[email-masked]>
Date: Sun, 18 Oct 2020 15:01:31 -0700

Stephen Berman <[email-masked]> writes:

> On trying out the new tabulated-list implementation of the bookmarks
> list I noticed that, when clicking on the File header, the sort
> indicator is not displayed, unlike with the Bookmark header.  Then I
> noticed that the same thing happens in the tabulated buffer list (C-x
> C-b).  Then I grepped for all uses of tabulated-list-format in the Emacs
> sources and found the same problem in most of them.  The reason is that
> in these modes the width of at least one of the columns is too narrow,
> so that tabulated-list-init-header omits the indicator.  In most cases
> the problematic column is the final one, but in a couple of cases there
> are also non-final too narrow columns.  And I think these bugs are due
> to a misleading description in tabulated-list-format's doc string.

Your analysis sounds correct to me.

> The attached patch corrects the doc string and the problematic uses of
> tabulated-list-format.  The patch also fixes a typo and tries to
> improve column alignment in timer-list-mode: this is one of the few
> modes derived from tabulated-list-mode whose column widths didn't need
> to be corrected, but the alignment seemed suboptimal; however, when
> the header line uses a variable-pitch face, the alignment is still
> suboptimal even with the patch, and I don't know how to fix that.

Thanks for the patch.  I've tested it and it indeed fixes several bugs
in this area.

But it got me thinking: for the final column at least, maybe we should
just make tabulated-list-mode work as advertised, and itself figure out
that it should use this length?  That way, we would solve any bugs also
for external packages that have been misled by the doc string.  Or would
that have any downsides?