[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nnimap 0.3.18 released



Bug fixes and UIDVALIDITY checking.

Get it from http://vic20.dzp.se/gnus-imap/nnimap.tar.gz

/s

1998-08-11 00:35:05  Simon Josefsson  <jas@pdc.kth.se>

	* nnimap 0.3.18 released

1998-08-11 00:34:41  Simon Josefsson  <jas@pdc.kth.se>

	* nnimap.el (nnimap-possibly-change-group): uidvalidity set/check

1998-08-11 00:34:18  Simon Josefsson  <jas@pdc.kth.se>

	* nnimap.el (nnimap-request-update-info): remove broken
	uidvalidity stuff

1998-08-11 00:05:55  Simon Josefsson  <jas@pdc.kth.se>

	* nnimap.el (nnimap-request-list): handle nnimap-list-pattern that
	look like '("INBOX")

diff -u nnimap-0.3.17/manual.html nnimap-0.3.18/manual.html
--- nnimap-0.3.17/manual.html	Mon Aug 10 01:10:31 1998
+++ nnimap-0.3.18/manual.html	Tue Aug 11 00:37:03 1998
@@ -19,16 +19,24 @@
 	<li><a href="#config-server-address">nnimap-server-address</a>
 	<li><a href="#config-server-port">nnimap-server-port</a>
 	<li><a href="#config-list-pattern">nnimap-list-pattern</a>
-	<li><a href="#configkrb">configuring for kerberos</a>
-	<li><a href="#configssl">configuring for ssl</a>
+	<li><a href="#configkrb">Configuring for kerberos</a>
+	<li><a href="#configssl">Configuring for ssl</a>
       </ul>
   <li><a href="#using">Using nnimap</a>
+      <ul>
+	<li><a href="#using-acl">Editing ACL's</a>
+      </ul>
   <li><a href="#split">Configuring splitting</a>
       <ul>
 	<li><a href="#split-crosspost">nnimap-split-crosspost</a>
 	<li><a href="#split-inbox">nnimap-split-inbox</a>
 	<li><a href="#split-rule">nnimap-split-rule</a>
       </ul>
+  <li><a href="#trix">Neat tricks</a>
+      <ul>
+	<li><a href="#trix-verbose">Getting verbose information</a>
+	<li><a href="#trix-summary">Showing article length in the summary buffer</a>
+      </ul>
 </ul>
 
 <h2><a name="download">Downloading and unpacking nnimap</a></h2>
@@ -110,7 +118,7 @@
 
 -->
 
-<h3><a name="configkrb">configuring for kerberos</a></h3>
+<h3><a name="configkrb">Configuring for kerberos</a></h3>
 
 <p>For Kerberos authentication and encryption you need to have the external program "imtest" (comes with some IMAP server?? I dunno) in your path, and also add the following to <code>~/.gnus</code>:
 
@@ -118,7 +126,7 @@
 (setq-default imap-open-stream 'imap-open-imtest-stream)
 </pre>
 
-<h3><a name="configssl">configuring for ssl</a></h3>
+<h3><a name="configssl">Configuring for ssl</a></h3>
 
 <p>For SSL encryption you need to have the external program "s_client" (comes with SSLeay) in your path, and also add the following to <code>~/.gnus</code>:
 
@@ -140,6 +148,19 @@
 
 <p>That's it. You should now be able to use the group as any other group.
 
+<h3><a name="using-acl">Editing ACL's</a></h3>
+
+<p>ACL stands for Access Control Lists and are used for limiting (or enabling) other users access to your mail boxes. Not all server support this, you'll find out if your server does when you try to use this function.
+
+<p>To edit a group's ACL, move the cursor in the Group buffer to a nnimap Group and type G l (<code>gnus-group-edit-nnimap-acl</code>) to have it jump to the ACL editor. The instructions presented in that buffer should get you going.
+
+<p>Some possible uses:
+
+<p><ul>
+  <li>Giving "anyone" the "lrs" rights (lookup, read, keep seen/unseen flags) on your mailing list mailboxes enables other users on the same server to follow the list without subscribing to it.
+  <li>At least with the Cyrus server, you are required to give the user "anyone" posting ("p") capabilities to have "plussing" work (that is, mail sent to user+mailbox@domain ending up in the IMAP mailbox INBOX.mailbox).
+</ul>
+
 <h2><a name="split">Configuring nnimap, splitting</a></h2>
 
 <p>Splitting is something Gnus users has loved and used for years, and now the rest of the world is catching up. Yeah, dream on, not many IMAP server has server side splitting and those that have splitting seem to use some non-standard protocol. This means that IMAP support for Gnus has to do it's own splitting.
@@ -191,9 +212,33 @@
 
 <p>Nnmail (semi-)equivalent: <code>nnmail-split-methods</code>.
 
+<h2><a name="trix">Neat tricks</a></h2>
+
+<h3><a name="trix-verbose">Getting verbose information</a></h3>
+
+<p>You want something to watch while you wait for nnimap to do it's work?
+
+<pre>
+(setq gnus-verbose 9)
+</pre>
+
+<p>You could try 10 too, then you will see every IMAP command sent to the server. A little bit too noisy IMHO.
+
+<p>The default is 7.
+
+<h3><a name="trix-summary">Showing article length in the summary buffer</a></h3>
+
+<p>The number of lines are showed in the summary buffer, yes, but the octet count can be interesting too. I use the following:
+
+<pre>
+(setq gnus-summary-line-format "%U%R%z%I%(%[%4L: %-20,20n%]%) (%c) %s\n")
+</pre>
+
+<p>I've added the " (%c)" part at the end of the string.
+
 <hr>
 <a href="mailto:jas@pdc.kth.se"><address>jas@pdc.kth.se</address></a>
 <!-- hhmts start -->
-Last modified: Thu Jul 30 00:04:45 METDST 1998
+Last modified: Mon Aug 10 13:41:46 METDST 1998
 <!-- hhmts end -->
 </body> </html>
diff -u nnimap-0.3.17/nnimap.el nnimap-0.3.18/nnimap.el
--- nnimap-0.3.17/nnimap.el	Mon Aug 10 01:02:16 1998
+++ nnimap-0.3.18/nnimap.el	Tue Aug 11 00:34:39 1998
@@ -50,7 +50,6 @@
 ;;;   o split to other backends, different split rules for different
 ;;;     servers/inboxes
 ;;;   o fix nnimap-request-list 'fast and default to it if possible
-;;;   o Actually use UIDVALIDITY
 ;;;   o Do we dare to send the EXPUNGE command?
 ;;;   o fix nnimap-list-pattern (FIXED?)
 ;;;   o Split up big fetches (1,* header especially) in smaller chunks
@@ -68,8 +67,8 @@
 ;;;       request-expire-articles,
 ;;;       request-associate-buffer, request-restore-buffer,
 
-;;;   o When getting a UIDVALIDITY changed message, what do I do to reconstruct
-;;;     everything gnus knows about a group?
+;;;   o When UIDVALIDITY changed, I should reconstruct everything gnus knows
+;;;     about the group (possible?)
 ;;;   o UTF-7 encode mailbox names (does Gnus deal with SPC in group names?)
 ;;;   o Fix Gnus to handle leading '.' in group names
 ;;;   o ACAP stuff (perhaps a different project, would be nice to ACAPify 
@@ -78,8 +77,9 @@
 ;;;   o Disconnected support (I haven't a clue about the Gnus Agent thing,
 ;;;     but IMAP has very good disconnected support)
 ;;;   o Support RFC2221 (Login referrals)
-;;;   o Support RFC2095 (MD5 logins -- is there a MD5 library in Elisp?)
+;;;   o Support RFC2195 (MD5 logins -- use Gareth Rees's library?)
 ;;;   o IMAP2BIS compatibility (RFC2061)
+;;;   o Debug imtest, it dumps with "Time is out of bounds" sometimes
 ;;;   
 
 (require 'imap4rev1)
@@ -96,7 +96,7 @@
 
 (nnoo-declare nnimap) ; we derive from no one
 
-(defconst nnimap-version "nnimap 0.3.17")
+(defconst nnimap-version "nnimap 0.3.18")
 
 (defvoo nnimap-list-pattern "*" 
 "*PATTERN or list of PATTERNS use to limit available groups.  
@@ -587,7 +587,10 @@
     (with-current-buffer nnimap-server-buffer
       (setq imap-data-folder (make-vector imap-convenient-group-prime 0)
 	    imap-current-folder nil)
-      (let* ((patterns (mapcar (lambda (p) (if (consp p) p (cons "\"\"" p)))
+      (let* ((patterns (mapcar (lambda (p) (if (and (consp p)
+						    (cdr p))
+					       p 
+					     (cons "\"\"" p)))
                                (if (or (atom nnimap-list-pattern)
                                        (atom (cdr nnimap-list-pattern)))
                                    (list nnimap-list-pattern)
@@ -661,11 +664,6 @@
 ;	    (setq nnimap-group-alist 
 ;		  (nnimap-update-alist-soft group (list active)
 ;					    nnimap-group-alist)))))
-    
-      ;; As long as the UIDVALIDITY is the same, UIDs
-      ;; are vaild and persist (so save it)
-      (gnus-group-set-parameter group 'uidvalidity
-                                (imap-folder-get 'uidvalidity))
 
       ;; Replace list of read and marked articles with authoritative
       ;; data from server
@@ -993,13 +991,27 @@
 	  (setq imap-message-data (make-vector 199 0)) ; itty bitty obarray???
 	  ;; Folder must be set during SELECT
 	  (setq imap-current-folder group)
-	  (unless (nnimap-ok-p (nnimap-send-command-wait
-				(concat (if (gnus-ephemeral-group-p group)
-					    "EXAMINE"
-					  "SELECT")
-					" " group)))
-	    ;; Failed SELECT unselects the current group
-	    (setq imap-current-folder nil))))
+	  (if (not (nnimap-ok-p (nnimap-send-command-wait
+				 (concat (if (gnus-ephemeral-group-p group)
+					     "EXAMINE"
+					   "SELECT")
+					 " " group))))
+	      ;; Failed SELECT unselects the current group
+	      (setq imap-current-folder nil)
+	    ;; check/set UIDVALIDITY
+	    (let* ((groupname (gnus-group-normally-qualified
+			       'nnimap
+			       (or server (nnoo-current-server 'nnimap))
+			       group))
+		   (new-uid (imap-folder-get 'uidvalidity))
+		   (old-uid (gnus-group-get-parameter groupname 'uidvalidity)))
+	      (if old-uid
+		  (when (not (equal old-uid new-uid))
+		    (message "UIDVALIDITY clash. Old value `%s', new `%s'"
+			     old-uidvalidity new-uidvalidity)
+		    (setq imap-current-folder nil))
+		(gnus-group-add-parameter groupname 
+					  (cons 'uidvalidity new-uid)))))))
       imap-current-folder)))
 
 ;;; Other functions
diff -u nnimap-0.3.17/ChangeLog nnimap-0.3.18/ChangeLog
--- nnimap-0.3.17/ChangeLog	Mon Aug 10 01:08:49 1998
+++ nnimap-0.3.18/ChangeLog	Tue Aug 11 00:35:21 1998
@@ -1,3 +1,21 @@
+1998-08-11 00:35:05  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap 0.3.18 released
+
+1998-08-11 00:34:41  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap.el (nnimap-possibly-change-group): uidvalidity set/check
+
+1998-08-11 00:34:18  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap.el (nnimap-request-update-info): remove broken
+	uidvalidity stuff
+
+1998-08-11 00:05:55  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap.el (nnimap-request-list): handle nnimap-list-pattern that
+	look like '("INBOX")
+
 1998-08-10 01:08:45  Simon Josefsson  <jas@pdc.kth.se>
 
 	* nnimap 0.3.17 released