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

nnimap 0.114 -> 0.115 patches



Index: nnimap/ChangeLog
diff -u nnimap/ChangeLog:1.228 nnimap/ChangeLog:1.232
--- nnimap/ChangeLog:1.228	Fri Jun  4 06:45:01 1999
+++ nnimap/ChangeLog	Sun Jun 13 05:14:58 1999
@@ -1,4 +1,25 @@
+1999-06-13  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap 0.115 released.
+
+	* nnimap.el (nnimap-request-article-part): Message article fetch.
+
+	* imap.el (imap-mailbox-examine): New function.
+	(imap-mailbox-expunge): Only expunge when mailbox open.
+	(imap-mailbox-close): Only close when mailbox open.
+	(imap-kerberos4-open):
+	(imap-ssl-open-1):
+	(imap-network-open): Use insert-buffer-substring instead of
+	insert-buffer.
+
+1999-06-09  Simon Josefsson  <jas@pdc.kth.se>
+
+	* imap.el (imap-parse-acl): Don't infloop.
+
 1999-06-04  Simon Josefsson  <jas@pdc.kth.se>
+
+	* nnimap.el (nnimap-request-article-part): Handle non-existant
+	articles.
 
 	* nnimap 0.114 released.
 
Index: nnimap/imap.el
diff -u nnimap/imap.el:1.143 nnimap/imap.el:1.147
--- nnimap/imap.el:1.143	Thu Jun  3 06:38:54 1999
+++ nnimap/imap.el	Sun Jun 13 05:13:41 1999
@@ -356,7 +356,7 @@
 	       (imap-disable-multibyte)
 	       (buffer-disable-undo)
 	       (goto-char (point-max))
-	       (insert-buffer buffer)))
+	       (insert-buffer-substring buffer)))
       (let ((response (match-string 1)))
 	(erase-buffer)
 	(message "Kerberized IMAP connection: %s" response)
@@ -392,7 +392,7 @@
 	       (imap-disable-multibyte)
 	       (buffer-disable-undo)
 	       (goto-char (point-max))
-	       (insert-buffer buffer)))
+	       (insert-buffer-substring buffer)))
 	(erase-buffer))
       (when (memq (process-status process) '(open run))
 	process))))
@@ -424,7 +424,7 @@
 	     (imap-disable-multibyte)
 	     (buffer-disable-undo)
 	     (goto-char (point-max))
-	     (insert-buffer buffer)))
+	     (insert-buffer-substring buffer)))
       (when (memq (process-status process) '(open run))
 	process))))
   
@@ -715,6 +715,10 @@
 		imap-mailbox-data old-data)
 	  nil)))))
 
+(defun imap-mailbox-examine (mailbox &optional buffer)
+  "Examine MAILBOX on server in BUFFER"
+  (imap-mailbox-select mailbox buffer 'exmine))
+
 (defun imap-mailbox-unselect (&optional buffer)
   "Close current folder in BUFFER, without expunging articles."
   (with-current-buffer (or buffer (current-buffer))
@@ -734,18 +738,19 @@
   "Expunge articles in current folder in BUFFER. If BUFFER is
 nil the current buffer is assumed."
   (with-current-buffer (or buffer (current-buffer))
-    (unless (eq imap-state 'examine)
+    (when (and imap-current-mailbox (not (eq imap-state 'examine)))
       (imap-ok-p (imap-send-command-wait "EXPUNGE")))))
 
 (defun imap-mailbox-close (&optional buffer)
   "Expunge articles and close current folder in BUFFER. If BUFFER is
 nil the current buffer is assumed."
   (with-current-buffer (or buffer (current-buffer))
-    (when (imap-ok-p (imap-send-command-wait "CLOSE"))
-      (setq imap-current-mailbox nil
-	    imap-message-data nil
-	    imap-state 'auth)
-      t)))
+    (when (and imap-current-mailbox
+	       (imap-ok-p (imap-send-command-wait "CLOSE")))
+	(setq imap-current-mailbox nil
+	      imap-message-data nil
+	      imap-state 'auth)
+	t)))
 
 (defun imap-mailbox-create (mailbox &optional buffer)
   "Create MAILBOX on server in BUFFER. If BUFFER is nil the current
@@ -1740,16 +1745,15 @@
 ;;   rights          ::= astring
 
 (defun imap-parse-acl ()
-  (let ((mailbox (imap-parse-mailbox)))
-    (when (eq (char-after) ?\ )
-      (let (acl)
-	(while (eq (char-after) ?\ )
-	  (let (identifier rights)
-	    (setq identifier (imap-parse-astring))
-	    (when (equal (char-after) ?\ )
-	      (setq rights (imap-parse-astring))
-	      (setq acl (append acl (list (cons identifier rights)))))))
-	(imap-mailbox-put 'acl acl mailbox)))))
+  (let ((mailbox (imap-parse-mailbox))
+	identifier rights acl)
+    (while (eq (char-after) ?\ )
+      (imap-forward)
+      (setq identifier (imap-parse-astring))
+      (imap-forward)
+      (setq rights (imap-parse-astring))
+      (setq acl (append acl (list (cons identifier rights)))))
+    (imap-mailbox-put 'acl acl mailbox)))
 
 ;;   flag-list       = "(" [flag *(SP flag)] ")"
 ;;
Index: nnimap/nnimap.el
diff -u nnimap/nnimap.el:1.181 nnimap/nnimap.el:1.183
--- nnimap/nnimap.el:1.181	Fri Jun  4 06:44:50 1999
+++ nnimap/nnimap.el	Sun Jun 13 05:14:48 1999
@@ -99,7 +99,7 @@
 (gnus-declare-backend "nnimap" 'mail 'address 'prompt-address 
 		      'physical-address)
 
-(defconst nnimap-version "nnimap 0.114")
+(defconst nnimap-version "nnimap 0.115")
 
 (defvoo nnimap-address nil
   "Address of physical IMAP server.  If nil, use the virtual server's name.")
@@ -516,22 +516,19 @@
   (when (nnimap-possibly-change-group group server)
     (with-current-buffer (or to-buffer nntp-server-buffer)
       (erase-buffer)
-      (let (artnum)
-	(insert (nnimap-demule
-		 (or (imap-fetch
-		      (setq artnum
-			    (if (stringp article)
-				(car-safe (imap-search 
-					   (format "HEADER Message-Id %s"
-						   article)
-					   nnimap-server-buffer))
-			      article))
-		      part prop nil nnimap-server-buffer)
+      (and (stringp article)
+	   (setq article (car-safe (imap-search
+				    (format "HEADER Message-Id %s" article)
+				    nnimap-server-buffer))))
+      (when article
+	(gnus-message 9 "nnimap: Fetching (part of) article %d..." article)
+	(insert (nnimap-demule 
+		 (or (imap-fetch article part prop nil nnimap-server-buffer)
 		     "")))
-	(nnheader-ms-strip-cr)
-	(if (bobp)
-	    (nnheader-report 'nnimap "No such article")
-	  (cons group artnum))))))
+	(nnheader-ms-strip-cr))
+      (if (bobp)
+	  (nnheader-report 'nnimap "No such article")
+	(cons group article)))))
 
 (deffoo nnimap-request-article (article &optional group server to-buffer)
   (nnimap-request-article-part 
@@ -592,7 +589,7 @@
 (deffoo nnimap-request-list (&optional server)
   (when (nnimap-possibly-change-server server)
     (with-current-buffer nntp-server-buffer
-      (gnus-message 5 "Generating active list for %s..." server)
+      (gnus-message 5 "nnimap: Generating active list for %s..." server)
       (erase-buffer)
       (dolist (pattern (nnimap-pattern-to-list-arguments 
 			nnimap-list-pattern))
@@ -604,7 +601,7 @@
 	      (string-match " " mbx)
 	      ;; We lie about high/low article number
 	      (insert (format "%s 0 1 y\n" mbx)))))
-      (gnus-message 5 "Generating active list for %s...done" server))
+      (gnus-message 5 "nnimap: Generating active list for %s...done" server))
     t))
 
 (deffoo nnimap-request-post (&optional server)
@@ -635,7 +632,7 @@
   (when (nnimap-possibly-change-group group server)
     (with-current-buffer nnimap-server-buffer
       (let (action)
-	(gnus-message 7 "Setting marks in %s:%s..."  
+	(gnus-message 7 "nnimap: Setting marks in %s:%s..."  
 		      (nnoo-current-server 'nnimap) group)
 	(while (setq action (pop actions))
 	  (let ((range (nth 0 action))
@@ -666,7 +663,7 @@
 		     (imap-message-flags-set
 		      (nnimap-range-to-string range)
 		      (nnimap-mark-to-flag marks nil t)))))))
-	(gnus-message 7 "Setting marks in %s:%s...done" 
+	(gnus-message 7 "nnimap: Setting marks in %s:%s...done" 
 		      (nnoo-current-server 'nnimap) group))))
   nil)
 
@@ -769,7 +766,7 @@
       date)))
 
 (defun nnimap-request-expire-articles-progress ()
-  (gnus-message 5 "Expiring; marking article %d for deletion..." 
+  (gnus-message 5 "nnimap: Marking article %d for deletion..." 
 		imap-current-message))
 
 ;; Notice that we don't actually delete anything, we just mark them deleted.
Index: nnimap/ssl.el
diff -u nnimap/ssl.el:1.1 nnimap/ssl.el:1.2
--- nnimap/ssl.el:1.1	Fri Mar 26 14:07:07 1999
+++ nnimap/ssl.el	Sun Jun 13 03:11:36 1999
@@ -1,7 +1,7 @@
 ;;; ssl.el,v --- ssl functions for emacsen without them builtin
 ;; Author: $Author: jas $
-;; Created: $Date: 2002/10/01 14:18:17 $
-;; Version: $Revision: 1.1 $
+;; Created: $Date: 2002/10/01 14:18:17 $
+;; Version: $Revision: 1.1 $
 ;; Keywords: comm
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;