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

nnimap 0.32 -> 0.33 patches



Index: nnimap/ChangeLog
diff -u nnimap/ChangeLog:1.100 nnimap/ChangeLog:1.102
--- nnimap/ChangeLog:1.100	Sat Oct 10 13:02:31 1998
+++ nnimap/ChangeLog	Thu Oct 15 10:54:15 1998
@@ -1,3 +1,36 @@
+1998-10-15 19:52:19  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap 0.33 released.
+
+1998-10-15 19:32:08  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap.texi: Updated to nnimap 0.33
+	(install): Gnus doc URL removed (keeps changing).
+	(config): Fix.
+	(config-authinfo): Fix.
+	(config-auth-method): Fix. CRAM-MD5 does not require XEmacs.
+	(config-expiring): Fix.
+
+1998-10-15 19:19:19  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap.el (nnimap-request-update-info-internal): Only extend
+	group info if necessery.
+	(nnimap-request-update-info-internal): Simplify finding of read
+	articles.
+
+1998-10-15 16:32:57  Simon Josefsson  <jas@pdc.kth.se>
+
+	* imap.el (imap-authenticate-cram-md5): Use base64-decode, don't
+	require TM/FLIM.
+	
+1998-10-14 19:59:25  Simon Josefsson  <jas@pdc.kth.se>
+
+	* imap.el (imap-authenticate-login): Quote username/password.
+
+1998-10-10 23:15:07  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap.texi (download): New URL.
+
 1998-10-10 22:00:32  Simon Josefsson  <jas@pdc.kth.se>
 
 	* nnimap 0.32 released.
Index: nnimap/imap.el
diff -u nnimap/imap.el:1.43 nnimap/imap.el:1.45
--- nnimap/imap.el:1.43	Sat Oct 10 12:23:55 1998
+++ nnimap/imap.el	Thu Oct 15 07:36:14 1998
@@ -40,7 +40,6 @@
 ;;; o On expunge, remove messages from message-data. Note it doesn't
 ;;;   return UIDs.  Ouch.
 ;;; o Rename "folder" to "mailbox".
-;;; o Use pGnus's base64 if available.
 ;;; 
 
 (eval-when-compile (require 'cl))
@@ -348,12 +347,11 @@
   (with-current-buffer (or buffer (current-buffer))
     (and (imap-authinfo-get server)
 	 (imap-ok-p (imap-send-command-wait 
-		       (concat "LOGIN " (car imap-authinfo) 
-			       " " (cdr imap-authinfo)))))))
+		       (concat "LOGIN \"" (car imap-authinfo) 
+			       "\" \"" (cdr imap-authinfo) "\""))))))
 
 (defun imap-authenticate-cram-md5 (server &optional buffer)
   "Login to server using the AUTH CRAM-MD5 method."
-  (require 'mel-b) ;; from TM/FLIM
   (require 'rfc2104)
   (require 'md5)
   (with-current-buffer (or buffer (current-buffer))
@@ -364,10 +362,10 @@
 	   (list 
 	    "AUTHENTICATE CRAM-MD5"
 	    (lambda (challenge)
-	      (let* ((decoded (base64-decode-string challenge))
+	      (let* ((decoded (base64-decode challenge))
 		     (hash (rfc2104-hash 'md5 64 16 (cdr imap-authinfo) decoded))
 		     (response (concat (car imap-authinfo) " " hash))
-		     (encoded (base64-encode-string response)))
+		     (encoded (base64-encode response)))
 		encoded))))))))
 
 (defun imap-authenticate (server &optional buffer)
Index: nnimap/nnimap.el
diff -u nnimap/nnimap.el:1.77 nnimap/nnimap.el:1.79
--- nnimap/nnimap.el:1.77	Sat Oct 10 12:48:56 1998
+++ nnimap/nnimap.el	Thu Oct 15 10:53:59 1998
@@ -71,11 +71,10 @@
 ;;;     about the group (possible?) (fixed?)
 ;;;   o split to other backends, different split rules for different
 ;;;     servers/inboxes
-;;;   o UTF-7 encode mailbox names (does Gnus deal with SPC in group names?)
-;;;   o Fix Gnus to handle leading '.' in group names
+;;;   o Fix Gnus to handle SPC and leading '.' in group names
 ;;;   o Fix the flag situation when using the Gnus Agent
 ;;;   o Support RFC2221 (Login referrals)
-;;;   o IMAP2BIS compatibility (RFC2061)
+;;;   o IMAP2BIS compatibility? (RFC2061)
 ;;;   o Debug imtest, it dumps with "Time is out of bounds" sometimes
 ;;;   o ACAP stuff (perhaps a different project, would be nice to ACAPify 
 ;;;     .newsrc.eld)
@@ -96,7 +95,7 @@
 
 (nnoo-declare nnimap) ; we derive from no one
 
-(defconst nnimap-version "nnimap 0.3.31")
+(defconst nnimap-version "nnimap 0.33")
 
 ;; Various server variables.
 
@@ -720,44 +719,26 @@
     ;; We reset the uidvalidity here because we are about to do a full resync.
     (gnus-info-set-params info (nnimap-update-alist-soft
 				'uidvalidity nil (gnus-info-params info)) t)
-  
+    
     (with-current-buffer nnimap-server-buffer
       (gnus-message 5 "Updating info for mailbox %s" group)
       
-      ;; extend info to have parameters (otherwise when we set them, 
-      ;; they don't get set)
-      (unless (gnus-info-params info) 
-	(gnus-info-set-params info nil t))
-      
       ;; Replace list of read and marked articles with authoritative
       ;; data from server.
-
+      
       ;; If server is read-only (no article mark memory), we don't
       ;; overwrite local flags -- this way one can use it as a nntp type
       ;; of server (all mark memory in client).
 
       (when (nnimap-mark-permanent-p 'read)
-	(gnus-info-set-read 
-	 info
-	 ;; xxx This is extremely slow.
-	 (let* (
-		;; oldseen could contain articles marked unread by other
-		;; imap clients!  we correct this
-		(oldseentmp (gnus-uncompress-range (gnus-info-read info)))
-		(unseen (imap-search "UNSEEN UNDELETED"))
-		(oldseen (gnus-set-difference oldseentmp unseen))
-		;; oldseen might lack articles marked as read by other
-		;; imap clients! we correct this
-		(newseen (imap-search "SEEN"))
-		;; ok, read articles are in oldseen+newseen (xxx lots of dupes)
-		(seen (append oldseen newseen))
-		;; sort to have gnus-compress-sequence remove dupes
-		(seens (sort seen '<))
-		(read (gnus-compress-sequence seens t)))
-	   (if (and read
-		    (atom (car read)))
-	       (list (cons (car read) (car read))) ;; xxx not my bug
-	     read))))
+	(let ((seen (gnus-compress-sequence (imap-search "SEEN") t)))
+	  ;; we can't return '(1) since this isn't a "list of ranges",
+	  ;; and we can't return '((1)) since gnus-list-of-unread-articles
+	  ;; is buggy so we return '((1 . 1)).
+	  (gnus-info-set-read info (if (and (atom (car seen))
+					    (null (cdr seen)))
+				       (list (cons (car seen) (car seen)))
+				     seen))))
 
       (mapc (lambda (pred)
 	      (when (and (nnimap-mark-permanent-p (cdr pred))
@@ -765,11 +746,12 @@
 				 (imap-folder-get 'list-flags)))
 		(gnus-info-set-marks
 		 info
-		 (nnimap-update-alist-soft 
+		 (nnimap-update-alist-soft
 		  (cdr pred)
 		  (gnus-compress-sequence
 		   (imap-search (nnimap-mark-to-predicate (cdr pred))))
-		  (gnus-info-marks info)))))
+		  (gnus-info-marks info))
+		 t)))
 	      gnus-article-mark-lists)))
   info)
 
Index: nnimap/nnimap.texi
diff -u nnimap/nnimap.texi:1.10 nnimap/nnimap.texi:1.12
--- nnimap/nnimap.texi:1.10	Mon Aug 31 08:36:49 1998
+++ nnimap/nnimap.texi	Thu Oct 15 10:34:26 1998
@@ -7,8 +7,8 @@
 @setchapternewpage odd
 @paragraphindent 0
 
-@set VERSION $Revision: 1.1 $
-@set NNIMAP-VERSION 0.3.30
+@set VERSION $Revision: 1.1 $
+@set NNIMAP-VERSION 0.33
 
 @ifinfo
      This file documents nnimap, an Emacs Lisp package for accessing
@@ -108,7 +108,7 @@
 @cindex Getting nnimap
 
 The latest version of this nnimap implementation is always available as 
-@url{http://vic20.dzp.se/gnus-imap/nnimap.tar.gz}@*
+@url{http://www.extundo.com/gnus-imap/nnimap.tar.gz}@*
 
 Download the archive and unpack it.
 
@@ -153,10 +153,8 @@
 
 Fire up Gnus and you should be able to tinker with nnimap in the server
 buffer. If you aren't familiar with the server buffer, never mind you
-wont miss anything. (Ok, ok, the excellent Gnus manual has a section on 
-the server buffer at 
-@url{http://www.gnus.org/manual/gnus_6.html#SEC130}
-if you want to know.)
+wont miss anything. (The excellent Gnus manual has a section on the
+server buffer if you really want to know.)
 
 @node config, using, install, Top
 @chapter Configuring nnimap
@@ -184,7 +182,7 @@
 		(nnimap-server-address "your.mail.server"))))
 @end lisp
 
-The imap variables used above are described below:
+The nnimap server variables used above are described below:
 @itemize @bullet
 @item
 @ref{config-server-address}.
@@ -218,7 +216,8 @@
 @vindex nnimap-authinfo-file
 
 Tired of telling nnimap about your username/password all the time?  The
-New and Improved Gnus, Gnus series 5.6.x that is, can do this for you.
+New and Improved Gnus, Gnus series 5.6.x and later that is, can do this
+for you.
 
 Unfortunately, you still have to tell it your username/password
 once. Whee, what a bugger. A bigger bugger (huh?) however is that you
@@ -333,7 +332,8 @@
 @cindex Authorization method
 @vindex nnimap-auth-method
 
-This server variable let's you change the login scheme used for the server.
+This server variable let's you change the login scheme used for the
+server. Naturally, the server must support the scheme selected.
 
 Valid options are:
 
@@ -345,8 +345,7 @@
 @item
 @dfn{login:} Force plain text password LOGIN.
 @item
-@dfn{cram-md5:} Force CRAM MD5 authentication. @strong{Note!} Requires
-(X)Emacs 20.x.
+@dfn{cram-md5:} Force CRAM MD5 authentication.
 @item
 @dfn{kerberos4:} Force KERBEROS_V4 authentication. @xref{config-krb}
 @item
@@ -503,15 +502,16 @@
 way you can think of).
 
 To hopefully not confuse things (but possibly confuse things further),
-nnimap has decided to use @code{nnmail-expiry-wait} and
-@code{nnmail-expiry-wait-function} variables for configuring the
-expiring process, so you would only need to tinker with the
+nnimap has decided to use the @code{nnmail-expiry-wait} and
+@code{nnmail-expiry-wait-function} variables to configure the expiring
+process. So you would only need to tinker with the
 @code{gnus-auto-expirable-newsgroups} regexp to include nnimap folders,
 or set the @code{auto-expire}, @code{total-expire} group parameters on
 nnimap folders to enable expiring.
 
 (The reasoning behind the decision to use nnmail variables is that these
-variables are set by the @code{expiry-wait} group parameter.)
+variables are set by Gnus when you set the @code{expiry-wait} group
+parameter.)
 
 @node config-krb, config-ssl, config-expiring, config
 @section Required programs for kerberos