Subject: bug#51809: 29.0.50; [PATCH] Support for outline default state in Diff buffers

From: Juri Linkov <[email-masked]>
Date: Sat, 12 Feb 2022 19:09:00 +0200

>>> I see one problem: Once one has some default state configured for Diff
>>> mode, it applies to patch embedded in Gnus Article buffers, but there
>>> the outline-minor-mode keymap isn't active and there's no way to toggle
>>> headings visibility... No idea how to improve this situation...
>>
>> Oh, I see now it's a real problem.  Some patches are not displayed
>> because their hunks are hidden.  Fro example, a patch from bug#53770
>> attached below, becomes hidden with these settings:
>>
>>   (add-hook 'diff-mode-hook
>>             (lambda ()
>>               (setq-local outline-default-state 2)
>>               (outline-minor-mode 1)))
>
> Hm, that's not good...  Perhaps we could just disable outline on the
> Gnus level when displaying parts?

I'm still not sure about disabling outlines in Gnus because when the
user configured to hide outlines e.g. with long lines, then it makes sense
to hide long lines in Gnus too.

But the problem with the reported attached file is different:
in that file outlines are never displayed even outside of Gnus.
This is because the diff format is slightly different, but
`outline--show-headings-up-to-level' first hides all outlines,
but then fails to unhide them back.

Matthias, could you please check what is wrong with the reported diff file
and why vasibility of its outlines can't be changed?