Gnus development mailing list
 help / color / mirror / Atom feed
From: Rainer M Krug <Rainer@krugs.de>
To: Eric Abrahamsen <eric@ericabrahamsen.net>
Cc: ding@gnus.org
Subject: SOLVED: unquoted group names from dovecot not shown in GNUS WAS: One folder in local imap not seen
Date: Wed, 13 Aug 2014 14:29:06 +0200	[thread overview]
Message-ID: <m2ppg47eul.fsf_-_@krugs.de> (raw)
In-Reply-To: <87a978vfdl.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Wed, 13 Aug 2014 18:43:50 +0800")

[-- Attachment #1: Type: text/plain, Size: 7208 bytes --]

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> Rainer M Krug <Rainer@krugs.de> writes:
>
>> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>>
>>> Rainer M Krug <Rainer@krugs.de> writes:
>>>
>>>> <#secure method=pgpmime mode=sign>
>>>> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>>>>
>>>>> Rainer M Krug <Rainer@krugs.de> writes:
>>>>>
>>>>>> I am posting this here now, as I did not get any reponse on the
>>>>>> gnus.user list.
>>>>>>
>>>>>> I have one folder in my local imap, which I see when I telnet into the
>>>>>> local imap server, which is seen by e.g. Mail (OSX), but not seen by
>>>>>> gnus. I have added the local imap server again as an additional server,
>>>>>> but I also couldn't see it there. It is not killed as far as I can see.
>>>>>
>>>>> One good way of seeing where things are going wrong is to edebug
>>>>> `nnimap-get-groups'. When you go into the *Server* buffer and list the
>>>>> groups in your local imap server, you'll be able to see the results of
>>>>> the LIST command, and then see how Gnus parses those results. That
>>>>> should get you closer to the source of the problem.
>>>>
>>>> OK - yes, it does. But it does not help me. When I cycle through the
>>>> 'nnimap-get-groups' function, I can't make any sense out of the results,
>>>> but I realized that in the (while ...) loop (see the code for reference below), the folder
>>>> ...[Mailbox].Later does not occur. As I can't make any sense out of the
>>>> previous results.
>>>>
>>>> Any further tips how I can debug this? 
>>>
>>> The early part of the function is just issuing the LIST command to imap,
>>> and inserting the results into a buffer. Just to make sure that the LIST
>>> command *isn't* returning your folder, step through `nnimap-get-groups'
>>> again, and when you get to the second (goto-char (point-min)), hit "e"
>>> to eval, and tell it (switch-to-buffer (current-buffer)). That should
>>> make visible a buffer with a name like "#<buffer *nnimap PR nil
>>> *nntpd**-44898>". You can see the results of the LIST command there.
>>>
>>> If the folder really isn't in that list, then I don't know what to tell
>>> you -- Gnus should be getting exactly the same results as your local
>>> telnet experiments. 
>>
>> OK - they are in the result from the LIST output:
>>
>> ,----
>> | ...
>> | * LIST (%HasNoChildren) "." "RMKrugGMAIL.[Gmail].All Mail".
>> | * LIST (%HasNoChildren) "." RMKrugGMAIL.[Gmail].Bin.
>> | * LIST (%HasNoChildren) "." RMKrugGMAIL.[Gmail].Drafts.
>> | * LIST (%HasNoChildren) "." RMKrugGMAIL.[Gmail].Important.
>> | * LIST (%HasNoChildren) "." RMKrugGMAIL.[Gmail].Sent.
>> | * LIST (%HasNoChildren) "." "RMKrugGMAIL.[Gmail].Sent Mail".
>> | * LIST (%HasNoChildren) "." RMKrugGMAIL.[Gmail].Spam.
>> | * LIST (%HasNoChildren) "." RMKrugGMAIL.[Gmail].Starred.
>> | * LIST (%HasChildren) "." RMKrugGMAIL.[Mailbox].
>> | * LIST (%HasNoChildren) "." RMKrugGMAIL.[Mailbox].Later.
>> | * LIST (%HasNoChildren) "." "RMKrugGMAIL.[Mailbox].To Buy".
>> | * LIST (%HasNoChildren) "." "RMKrugGMAIL.[Mailbox].To Download".
>> | * LIST (%HasNoChildren) "." "RMKrugGMAIL.[Mailbox].To Follow".
>> | * LIST (%HasNoChildren) "." "RMKrugGMAIL.[Mailbox].To Read".
>> | * LIST (%HasNoChildren) "." "RMKrugGMAIL.[Mailbox].To Watch".
>> | * LIST (%HasNoChildren) "." "RMKrugGMAIL.[Mailbox].Wait For Feedback".
>> | * LIST (%HasNoChildren) "." RMKrugGMAIL.Emacs-macosx.
>> | * LIST (%HasNoChildren) "." RMKrugGMAIL.INBOX.
>> | ...
>> `----
>>
>> But the line with the '.Later' folder is not iterated through in the
>> while loop.
>
> In Gnus, do you see any of the groups above that are *not* quoted? Ie,
> Important, or Emacs-macosx?

I see all groups which are not quoted except the ones which have "[...]"
in their name / path. So I do not see RMKrugGMAIL.[Gmail].Important, but
I see e.g. RMKrugGMAIL.INBOX


>
> A problem I've run into in the past is that Gnus parses the mailbox name
> using (read (current-buffer)). That's supposed to chomp the whole name
> in one go, which it does if the mailbox is quoted. But if it isn't
> quoted, the read just chomps forward until it hits a slash, or a period,
> or some other character that it considers to delimit a Lisp object.

That explains.

>
> Right now, browsing the group list for any of my Gmail imap accounts, I
> see this in the list:
>
> U      0: [Gmail]
> U      0: [Gmail]
> U      0: [Gmail]
> U      0: [Gmail]

Interestingly, when stepping through the code, I see several
Gmail. occurring, but I do not see them in the listing. 

>
> Actually, those are my Spam, Trash, and Drafts groups, plus the one
> "HasChildren" [Gmail] mailbox. They just show up broken in the browse
> list, I think because of the problem I outlined above.
>
> Mind you, I'm actually able to access those groups in the *Group*
> buffer, I assume because the groups were already entered into my newsrc
> file.

Same here - and I think I saw them in an earlier version of gnus, but I
am not sure.

>
> It would be nice if there was a dovecot option to say "quote mailbox
> names no matter what," but I don't know if there is. I think the spec
> says the names must be quoted if there's a space in them, but if not
> it's up to the server.

Agreed. AS I am using offlineimap, I could use name translation rules,
but I kind of don't like the idea here.

>
> Just to confirm this, would you mind eval'ling this version of
> nnimap-get-groups, and seeing if it helps? It's an ugly hack from ages
> ago, that I used when I was having this problem, but then I stopped
> using it, I don't remember why. It's possible I used it for a while, the
> groups were entered correctly into my newsrc, and then when I stopped
> using it it didn't break anything, so I let it go.
>
> One manual edit you'll have to make is to add a ^M control character
> where I've indicated below -- I think it wouldn't survive the email
> trip.

OK - this is working. Thanks a lot. I will add it to my .gnus.el file
until a release of gnus which includes a fix is released.

If there is anything else I should test, please let ma know.

Thanks a million,

Rainer

>
> (defun nnimap-get-groups ()
>   (erase-buffer)
>   (let ((sequence (nnimap-send-command "LIST \"\" \"*\""))
> 	groups)
>     (nnimap-wait-for-response sequence)
>     (subst-char-in-region (point-min) (point-max)
> 			  ?\\ ?% t)
>     (goto-char (point-min))
>     (nnimap-unfold-quoted-lines)
>     (goto-char (point-min))
>     (while (search-forward "* LIST " nil t)
>       (let ((flags (read (current-buffer)))
> 	    (separator (read (current-buffer)))
> 	    (group (buffer-substring-no-properties
> 		    (progn (skip-chars-forward " \"")
> 			   (point))
> 		    (progn (move-end-of-line 1)
> 			   (skip-chars-backward " \"") ; add a C-q C-m inside this string
> 			   (point)))))
> 	(unless (member '%NoSelect flags)
> 	  (push (utf7-decode (if (stringp group)
> 				 group
> 			       (format "%s" group)) t)
> 		groups))))
>     (nreverse groups)))
>
>
>

-- 
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982

[-- Attachment #2: Type: application/pgp-signature, Size: 494 bytes --]

  reply	other threads:[~2014-08-13 12:29 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-12 13:36 [gmane.emacs.gnus.user] " Rainer M Krug
2014-08-12 23:17 ` Eric Abrahamsen
2014-08-13  8:29   ` Rainer M Krug
2014-08-13  9:14     ` Eric Abrahamsen
2014-08-13 10:05       ` Rainer M Krug
2014-08-13 10:43         ` Eric Abrahamsen
2014-08-13 12:29           ` Rainer M Krug [this message]
2014-08-13 14:39             ` SOLVED: unquoted group names from dovecot not shown in GNUS WAS: " Eric Abrahamsen
2014-08-13 16:12               ` Rainer M Krug
2015-01-27  7:34           ` [gmane.emacs.gnus.user] " Lars Ingebrigtsen
2015-01-27 14:37             ` Eric Abrahamsen
2015-01-28  0:45               ` Lars Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2ppg47eul.fsf_-_@krugs.de \
    --to=rainer@krugs.de \
    --cc=ding@gnus.org \
    --cc=eric@ericabrahamsen.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).