Synch with Gnus.
authoryamaoka <yamaoka>
Sun, 10 Sep 2000 23:23:12 +0000 (23:23 +0000)
committeryamaoka <yamaoka>
Sun, 10 Sep 2000 23:23:12 +0000 (23:23 +0000)
lisp/ChangeLog
lisp/gnus.el
lisp/imap.el
lisp/message.el
lisp/nnimap.el

index 701b729..9f37d87 100644 (file)
@@ -1,3 +1,23 @@
+2000-09-10  Dave Love  <fx@gnu.org>
+
+       * message.el: Require mail-abbrevs for XEmacs for a problem with
+       keybinding despite the autoloads for it.
+
+2000-09-08  Simon Josefsson  <simon@josefsson.org>
+
+       * imap.el (imap-kerberos4-open): Erase more (fixes race condition?).
+
+       * nnimap.el (nnimap-request-update-info-internal): Remove tick
+       marks from dormant articles. (See nnimap-request-set-mark.)
+       (nnimap-retrieve-headers-progress): Demule.
+       (nnimap-open-server): Call nnoo-change-server twice, once for
+       getting the nnimap-server-buffer and once for letting n-c-s set
+       the variables in that buffer.
+
+2000-09-08  David Edmondson <dme@dme.org>
+
+       * gnus.el (gnus-short-group-name): Guess separator.
+
 2000-09-07  Tadashi Watanabe  <watanabe@sigmaitec.co.jp>
 
        * smiley.el (smiley-buffer, smiley-create-glyph): Work with GTK
index eb8203f..c911fc0 100644 (file)
@@ -2714,9 +2714,21 @@ just the host name."
                group (substring group (+ 1 colon))))
        (setq foreign (concat foreign ":")))
       ;; Collapse group name leaving LEVELS uncollapsed elements
-      (let* ((glist (split-string group "\\."))
-            (glen (length glist))
+      (let* ((slist (split-string group "/"))
+            (slen (length slist))
+            (dlist (split-string group "\\."))
+            (dlen (length dlist))
+            glist
+            glen
+            gsep
             res)
+       (if (> slen dlen)
+           (setq glist slist
+                 glen slen
+                 gsep "/")
+         (setq glist dlist
+               glen dlen
+               gsep "."))
        (setq levels (- glen levels))
        (dolist (g glist)
          (push (if (>= (decf levels) 0)
@@ -2725,7 +2737,7 @@ just the host name."
                      (substring g 0 1))
                  g)
                res))
-       (concat foreign (mapconcat 'identity (nreverse res) "."))))))
+       (concat foreign (mapconcat 'identity (nreverse res) gsep))))))
 
 (defun gnus-narrow-to-body ()
   "Narrow to the body of an article."
index 5998a4a..0b22925 100644 (file)
@@ -427,6 +427,7 @@ If ARGS, PROMPT is used as an argument to `format'."
        cmd done)
     (while (and (not done) (setq cmd (pop cmds)))
       (message "Opening Kerberos 4 IMAP connection with `%s'..." cmd)
+      (erase-buffer)
       (let* ((port (or port imap-default-port))
             (process (as-binary-process
                       (start-process
index 2a35e45..f39e775 100644 (file)
@@ -43,6 +43,9 @@
 
 (require 'mailheader)
 (require 'nnheader)
+;; This is apparently necessary even though things are autoloaded:
+(if (featurep 'xemacs)
+    (require 'mail-abbrevs))
 (require 'mime-edit)
 (eval-when-compile (require 'static))
 
index e628681..8dcfe10 100644 (file)
@@ -396,11 +396,12 @@ If EXAMINE is non-nil the group is selected read-only."
       (with-current-buffer nnimap-server-buffer
        (setq uid imap-current-message
              mbx imap-current-mailbox
-             headers (if (imap-capability 'IMAP4rev1)
-                         ;; xxx don't just use car? alist doesn't contain
-                         ;; anything else now, but it might...
-                         (nth 2 (car (imap-message-get uid 'BODYDETAIL)))
-                       (imap-message-get uid 'RFC822.HEADER))
+             headers (nnimap-demule
+                      (if (imap-capability 'IMAP4rev1)
+                          ;; xxx don't just use car? alist doesn't contain
+                          ;; anything else now, but it might...
+                          (nth 2 (car (imap-message-get uid 'BODYDETAIL)))
+                        (imap-message-get uid 'RFC822.HEADER)))
              lines (imap-body-lines (imap-message-body imap-current-message))
              chars (imap-message-get imap-current-message 'RFC822.SIZE)))
       (nnheader-insert-nov
@@ -580,6 +581,8 @@ If EXAMINE is non-nil the group is selected read-only."
                      (cadr (assq 'nnimap-server-address defs))) defs)
        (push (list 'nnimap-address server) defs)))
     (nnoo-change-server 'nnimap server defs)
+    (with-current-buffer (get-buffer-create nnimap-server-buffer)
+      (nnoo-change-server 'nnimap server defs))
     (or (and nnimap-server-buffer
             (imap-opened nnimap-server-buffer))
        (nnimap-open-connection server))))
@@ -844,6 +847,18 @@ function is generally only called when Gnus is shutting down."
                      (gnus-info-marks info))
                     t)))
                gnus-article-mark-lists)
+
+       ;; nnimap mark dormant article as ticked too (for other clients)
+       ;; so we remove that mark for gnus since we support dormant
+       (gnus-info-set-marks
+        info 
+        (nnimap-update-alist-soft
+         'tick
+         (gnus-remove-from-range
+          (cdr-safe (assoc 'tick (gnus-info-marks info)))
+          (cdr-safe (assoc 'dormant (gnus-info-marks info))))
+         (gnus-info-marks info))
+        t)
        
        (gnus-message 5 "nnimap: Updating info for %s...done"
                      (gnus-info-group info))