Subject: Re: bug#72739: [PATCH] * lisp/gnus/gnus-sum.el: Handle leafs with children in summary line

From: Andrew Cohen <[email-masked]>
Date: Mon, 24 Feb 2025 07:34:02 +0800

I think this change is fine (I'm already using it:)).  It would be good
to also update the gnus manual to mention these two new threading
variables.

Also, the box drawing vertical lines have large gaps, so I set
`line-spacing' to nil in gnus summary buffers, which minimizes (but does
not eliminate) the gaps. Is there an alternative?

>>>>> "SK" == Stefan Kangas <[email-masked]> writes:

    SK> Blyte Scholar <[email-masked]> writes:
    >> This patch adds customization options which handle the cases
    >> where a thread leaf has both siblings and children. This allows
    >> using box drawing characters to seamlessly connect all messages
    >> in a thread. Previously, there would be messages could either be
    >> connected to a sibling or a child, but not both.

    SK> Andrew, Eric, could you please help review the below patch?

    >> From fca49a37ec7cc0c512290de93dd8311ca5a012d6 Mon Sep 17 00:00:00
    >> 2001 From: Blyte Scholar <[email-masked]> Date: Tue, 20 Aug 2024
    >> 17:32:10 -0400 Subject: [PATCH] * lisp/gnus/gnus-sum.el: Handle
    >> leafs with children in summary line
    >> 
    >> (gnus-sum-thread-tree-leaf-with-other-root): New variable.
    >> (gnus-sum-thread-tree-single-leaf-root): New variable.
    >> (gnus-summary-prepare-threads): Use
    >> gnus-sum-thread-tree-leaf-with-other-root and
    >> gnus-sum-thread-single-leaf-root strings in summary line when
    >> they are available.  --- lisp/gnus/gnus-sum.el | 24
    >> ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2
    >> deletions(-)
    >> 
    >> diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index
    >> a9caa83b15c..2fd342f3a0c 100644 --- a/lisp/gnus/gnus-sum.el +++
    >> b/lisp/gnus/gnus-sum.el @@ -5193,12 +5193,26 @@
    >> gnus-sum-thread-tree-leaf-with-other :type 'string :group
    >> 'gnus-thread)
    >> 
    >> +(defcustom gnus-sum-thread-tree-leaf-with-other-root nil + "With
    >> %B spec, used for a leaf with brothers and children.  +If nil use
    >> `gnus-sum-thread-tree-leaf-with-other' instead."  + :version
    >> "31.1" + :type 'string + :group 'gnus-thread) + (defcustom
    >> gnus-sum-thread-tree-single-leaf "\\-> " "With %B spec, used for
    >> a leaf without brothers."  :version "22.1" :type 'string :group
    >> 'gnus-thread)
    >> 
    >> +(defcustom gnus-sum-thread-tree-single-leaf-root nil + "With %B
    >> spec, used for a leaf without brothers but children.  +If nil use
    >> `gnus-sum-thread-tree-leaf-single-leaf' instead."  + :version
    >> "31.1" + :type 'string + :group 'gnus-thread) + (defcustom
    >> gnus-summary-display-while-building nil "If non-nil, show and
    >> update the summary buffer as it's being built.  If the value is
    >> t, update the buffer after every line is inserted.  If @@ -5474,8
    >> +5488,14 @@ gnus-summary-prepare-threads
    >> gnus-sum-thread-tree-indent)) (cdr (reverse tree-stack)))) (if
    >> (nth 1 thread) - gnus-sum-thread-tree-leaf-with-other -
    >> gnus-sum-thread-tree-single-leaf))))) + (if (and
    >> gnus-sum-thread-tree-leaf-with-other-root + (cadar thread)) +
    >> gnus-sum-thread-tree-leaf-with-other-root +
    >> gnus-sum-thread-tree-leaf-with-other) + (if (and
    >> gnus-sum-thread-tree-single-leaf-root + (cadar thread)) +
    >> gnus-sum-thread-tree-single-leaf-root +
    >> gnus-sum-thread-tree-single-leaf)))))) (when (string=
    >> gnus-tmp-name "") (setq gnus-tmp-name gnus-tmp-from)) (unless
    >> (numberp gnus-tmp-lines)

-- 
Andrew Cohen