From fe175df30800f36eb3d8b56cdebabbf5b6be7159 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Sun, 10 Sep 2000 23:23:12 +0000 Subject: [PATCH] Synch with Gnus. --- lisp/ChangeLog | 20 ++++++++++++++++++++ lisp/gnus.el | 18 +++++++++++++++--- lisp/imap.el | 1 + lisp/message.el | 3 +++ lisp/nnimap.el | 25 ++++++++++++++++++++----- 5 files changed, 59 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 701b729..9f37d87 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,23 @@ +2000-09-10 Dave Love + + * message.el: Require mail-abbrevs for XEmacs for a problem with + keybinding despite the autoloads for it. + +2000-09-08 Simon Josefsson + + * 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 + + * gnus.el (gnus-short-group-name): Guess separator. + 2000-09-07 Tadashi Watanabe * smiley.el (smiley-buffer, smiley-create-glyph): Work with GTK diff --git a/lisp/gnus.el b/lisp/gnus.el index eb8203f..c911fc0 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -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." diff --git a/lisp/imap.el b/lisp/imap.el index 5998a4a..0b22925 100644 --- a/lisp/imap.el +++ b/lisp/imap.el @@ -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 diff --git a/lisp/message.el b/lisp/message.el index 2a35e45..f39e775 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -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)) diff --git a/lisp/nnimap.el b/lisp/nnimap.el index e628681..8dcfe10 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -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)) -- 1.7.10.4