Gnus development mailing list
 help / color / mirror / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: ding@gnus.org
Subject: Re: [PATCH 0/2] two minor fixes for new/empty nnimap group handling
Date: Wed, 08 Jul 2015 20:41:17 +0800	[thread overview]
Message-ID: <87r3oin7o2.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <87io9va7f5.fsf@uwo.ca>

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

Dan Christensen <jdc@uwo.ca> writes:

> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> Dan Christensen <jdc@uwo.ca> writes:
>>
>>> I tried these two one-line patches, and they allowed me to use nnmairix
>>> again, although it wasn't smooth.
>
> [...]
>
>> This patch might offer the right solution: the group creation process
>> sets the subscription level for the new group. This triggers all the
>> necessary processes (I think) to get the group noticed by Gnus, so it
>> doesn't trigger errors or require you to manually enter it.
>
> [...]
>
> I tried your patch after unapplying Bjøjn Mork's patch, and I got the 
> same backtrace as usual, due to a nil value getting passed in.  See
> below.
>
> Then I tried applying both your patch and Mork's patch, and didn't see
> any difference in behaviour compared to Mork's patch alone.  I even
> deleted the imap group that nnmairix uses for its storage, in the hopes
> that this would cause your new code to run, and still saw no change.
> I had to manually subscribe to the group and refresh it before the
> nnmairix group could be entered.

Hmm, I thought I replied to this earlier in the day, but it doesn't look
like the message is there. I'm resending this just in case. It turned
out that there are several issues at play, and the fact that nnmairix
calls `nnimap-group-scan' with INFO set to nil means that Bjørn's
approach is necessary no matter what. Anyway, here are a couple of new
patches, I hope people will try them out!

Eric


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Tell-Gnus-about-newly-created-imap-groups.patch --]
[-- Type: text/x-diff, Size: 1905 bytes --]

From 175107159bd61cf961eb39983f61d33925febb9c Mon Sep 17 00:00:00 2001
From: Eric Abrahamsen <eric@ericabrahamsen.net>
Date: Tue, 7 Jul 2015 10:39:37 +0800
Subject: [PATCH 1/2] Tell Gnus about newly-created imap groups

* lisp/nnimap.el (nnimap-request-create-group): Upon successful
  creation, register the new group with Gnus.
  (nnimap-request-group-scan): Update/store group info even if marks
  are nil, this is necessary for newly-created groups.
---
 lisp/nnimap.el | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/lisp/nnimap.el b/lisp/nnimap.el
index 40610e1..a1c2c1a 100644
--- a/lisp/nnimap.el
+++ b/lisp/nnimap.el
@@ -839,8 +839,7 @@ textual parts.")
 		 (nnimap-parse-flags
 		  (list (list group-sequence flag-sequence
 			      1 group "SELECT")))))
-	  (when (and info
-		     marks)
+	  (when info
 	    (nnimap-update-infos marks (list info))
 	    (nnimap-store-info info (gnus-active (gnus-info-group info))))
 	  (goto-char (point-max))
@@ -861,7 +860,19 @@ textual parts.")
   (setq group (nnimap-decode-gnus-group group))
   (when (nnimap-change-group nil server)
     (with-current-buffer (nnimap-buffer)
-      (car (nnimap-command "CREATE %S" (utf7-encode group t))))))
+      (when (car (nnimap-command "CREATE %S" (utf7-encode group t)))
+	(let* ((method (gnus-server-to-method
+			(format "nnimap:%s" server)))
+	       (qualname (gnus-group-prefixed-name
+			  group method))
+	       (sub-level
+		(if (eq (gnus-matches-options-n qualname) 'subscribe)
+		    gnus-level-default-subscribed
+		  gnus-level-default-unsubscribed)))
+	  (unless (gnus-group-entry qualname)
+	    (gnus-group-change-level qualname sub-level))
+	  (nnimap-request-group-scan qualname server (gnus-get-info qualname))
+	  t)))))
 
 (deffoo nnimap-request-delete-group (group &optional force server)
   (setq group (nnimap-decode-gnus-group group))
-- 
2.4.5


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-Handle-nil-info-argument-to-nnimap-request-group.patch --]
[-- Type: text/x-diff, Size: 1171 bytes --]

From 127951fd7c8f95e62131cddb0f6badf5588b0452 Mon Sep 17 00:00:00 2001
From: Eric Abrahamsen <eric@ericabrahamsen.net>
Date: Wed, 8 Jul 2015 12:14:49 +0800
Subject: [PATCH 2/2] Handle nil info argument to nnimap-request-group

* lisp/nnimap.el (nnimap-request-group): Some functions call this with
  the INFO argument set to nil.
---
 lisp/nnimap.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/nnimap.el b/lisp/nnimap.el
index a1c2c1a..3c6df4d 100644
--- a/lisp/nnimap.el
+++ b/lisp/nnimap.el
@@ -803,6 +803,7 @@ textual parts.")
 		     nil
 		   group)
 		 server))
+	(info (when info (list info)))
 	active)
     (with-current-buffer nntp-server-buffer
       (when result
@@ -810,8 +811,8 @@ textual parts.")
 		  (not (setq active
 			     (nth 2 (assoc group nnimap-current-infos)))))
 	  (let ((sequences (nnimap-retrieve-group-data-early
-			    server (list info))))
-	    (nnimap-finish-retrieve-group-infos server (list info) sequences
+			    server info)))
+	    (nnimap-finish-retrieve-group-infos server info sequences
 						t)
 	    (setq active (nth 2 (assoc group nnimap-current-infos)))))
 	(erase-buffer)
-- 
2.4.5


      parent reply	other threads:[~2015-07-08 12:41 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-01 11:37 Bjørn Mork
2015-07-01 11:37 ` [PATCH 1/2] nnimap.el (nnimap-request-group): don't make nil into a list Bjørn Mork
2015-07-01 11:37 ` [PATCH 2/2] nnimap.el (nnimap-request-group): group could be empty Bjørn Mork
2015-07-01 11:50 ` [PATCH 0/2] two minor fixes for new/empty nnimap group handling Alan Schmitt
2015-07-01 12:23   ` Bjørn Mork
2015-07-01 13:49     ` Alan Schmitt
2015-07-02  2:18 ` Nikolaus Rath
2015-07-06  2:45 ` Eric Abrahamsen
2015-07-06  8:40   ` Bjørn Mork
2015-07-06 15:11     ` Eric Abrahamsen
2015-07-06 15:32 ` Dan Christensen
2015-07-07  2:48   ` Eric Abrahamsen
2015-07-07 23:12     ` Dan Christensen
2015-07-08  4:20       ` Eric Abrahamsen
2015-07-08 21:45         ` Dan Christensen
2015-07-09  1:53           ` Eric Abrahamsen
2015-07-09  2:52             ` Dan Christensen
2015-07-09 13:47               ` Dan Christensen
2015-07-10  2:41                 ` Eric Abrahamsen
2015-07-10 12:42                   ` Dan Christensen
2015-07-12  4:11               ` Eric Abrahamsen
2015-07-12  4:27                 ` Eric Abrahamsen
2015-07-12 17:01                   ` Dan Christensen
2015-07-13  5:36                     ` Eric Abrahamsen
2015-07-08 12:41       ` Eric Abrahamsen [this message]

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=87r3oin7o2.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --cc=ding@gnus.org \
    /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).