Subject: Re: bug#35219: 27.0.50; Problems with nnimap groups with non-ASCII characters

From: Eric Abrahamsen <[email-masked]>
Date: Fri, 19 Apr 2019 09:14:54 -0700

Katsumi Yamaoka <[email-masked]> writes:

> On Thu, 18 Apr 2019 16:53:54 -0700, Eric Abrahamsen wrote:
>>>> Andy Moreton <[email-masked]> writes:
>>>>> I see a similar symptom, but with a different recipe:
>>>>>  - start Gnus
>>>>>  - open the server buffer, select a server, and subscribe to a new group
>>>>>  - quit the server buffer
>>>>>  - in the group buffer, kill the group line for the new group
>>>>> At this point, emacs is busy but unresponsive. Breaking in with ^G
>>>>> results in emacs becoming responsive agin, but all of the group lines
>>>>> disappear from the group buffer.
> [...]
>>> After more testing, it seems that this wrong display depends on using
>>> topics in the group buffer. If I toggle topics off ('t' in the group
>>> buffer) then killing the newly added group appears to work normally.
> [...]
>
> I found what is happening then, too.  At first such a new group
> is registered in only `gnus-newsrc-hashtb', not `gnus-active-hashtb'.
> When trying to kill the group in the group buffer of the topic mode,
> during the course of the procedures `gnus-group-change-level'
> deletes the group from `gnus-newsrc-hashtb', even so
> `gnus-group-goto-group' tries to go to the group, and fails.
>
> I also realized what `gnus-group-goto-group' does when the group
> is not found in the hash tables is nonsense.
>
> [...]
>> Yamaoka-san, this would revert some of your changes.
>
> Not revert but great improve.  What is especially great is that
> making `g-g-g-g' needless to refer to the hash tables:

Yes, I like how this is simpler now.

>> - (let ((start (point))
>> -	  (active (and (or
>> -                        ;; Some kind of group may be only there.
>> -                        (gnus-active group)
>> -                        ;; All groups (but with exception) are there.
>> -                        (gnus-group-entry group))
>> -		       group)))
>> +    (let ((start (point)))
> [...]
>>  		      (gnus-text-property-search
>> -		       'gnus-group active 'forward 'goto))
>> +		       'gnus-group group 'forward 'goto))

[...]

>
> Anyway there is no other problem so far, so please push the patch.

Done! Thanks to both of you for testing.

Eric