From 9310f19da1b42a9da2f4cde15e605d04b9420655 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Mon, 1 Nov 2010 22:21:10 +0000 Subject: [PATCH] Merge changes made in Gnus trunk. nnimap.el (nnimap-parse-line): Don't bug out oddly formed replies (bug #7311). gnus-cite.el (gnus-article-fill-cited-article): Minimize the long-lines case by only filling the long lines. gnus-start.el (gnus-ask-server-for-new-groups): Return the new groups. gnus-group.el (gnus-group-find-new-groups): Display all the new groups. gnus-start.el (gnus-find-new-newsgroups): Return the list of new groups. nnimap.el (nnimap-request-group): Store the new updated info. nnimap.el (nnimap-request-group): Select the group when we don't know whether it exists or not. --- lisp/gnus/ChangeLog | 21 +++++++++++++++++++++ lisp/gnus/gnus-cite.el | 11 ++++++++++- lisp/gnus/gnus-group.el | 10 ++++++++-- lisp/gnus/gnus-start.el | 5 +++-- lisp/gnus/nnimap.el | 14 ++++++++++---- 5 files changed, 52 insertions(+), 9 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 4ebf11251b9..d233a667126 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,24 @@ +2010-11-01 Lars Magne Ingebrigtsen + + * nnimap.el (nnimap-request-group): Store the new updated info. + (nnimap-request-group): Select the group when we don't know whether it + exists or not. + + * gnus-start.el (gnus-ask-server-for-new-groups): Return the new + groups. + + * gnus-group.el (gnus-group-find-new-groups): Display all the new + groups. + + * gnus-start.el (gnus-find-new-newsgroups): Return the list of new + groups. + + * gnus-cite.el (gnus-article-fill-cited-article): Minimize the + long-lines case by only filling the long lines. + + * nnimap.el (nnimap-parse-line): Don't bug out oddly formed replies + (bug #7311). + 2010-11-01 Katsumi Yamaoka * shr.el: No need to declare `declare-function' since shr.el is for diff --git a/lisp/gnus/gnus-cite.el b/lisp/gnus/gnus-cite.el index a010a833e9d..2d44e36258a 100644 --- a/lisp/gnus/gnus-cite.el +++ b/lisp/gnus/gnus-cite.el @@ -545,7 +545,16 @@ longer than the frame width." (unless do-fill (setq do-fill (gnus-article-foldable-buffer (cdar marks)))) (when do-fill - (fill-region (point-min) (point-max)))) + (if (not long-lines) + (fill-region (point-min) (point-max)) + (goto-char (point-min)) + (while (not (eobp)) + (end-of-line) + (when (> (current-column) (frame-width)) + (save-restriction + (narrow-to-region (line-beginning-position) (point)) + (fill-region (point-min) (point-max)))) + (forward-line 1))))) (set-marker (caar marks) nil) (setq marks (cdr marks))) (when marks diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 24215a61950..5a65d30ec1c 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el @@ -4186,8 +4186,14 @@ groups. With 2 C-u's, use most complete method possible to query the server for new groups, and subscribe the new groups as zombies." (interactive "p") - (gnus-find-new-newsgroups (or arg 1)) - (gnus-group-list-groups)) + (let ((new-groups (gnus-find-new-newsgroups (or arg 1))) + current-group) + (gnus-group-list-groups) + (setq current-group (gnus-group-group-name)) + (dolist (group new-groups) + (gnus-group-jump-to-group group)) + (when current-group + (gnus-group-jump-to-group current-group)))) (defun gnus-group-edit-global-kill (&optional article group) "Edit the global kill file. diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index f480d304d4b..2466ddd28b7 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -1145,7 +1145,8 @@ for new groups, and subscribe the new groups as zombies." (if (> groups 0) (gnus-message 5 "%d new newsgroup%s arrived." groups (if (> groups 1) "s have" " has")) - (gnus-message 5 "No new newsgroups.")))))) + (gnus-message 5 "No new newsgroups.")) + groups)))) (defun gnus-matches-options-n (group) ;; Returns `subscribe' if the group is to be unconditionally @@ -1243,7 +1244,7 @@ for new groups, and subscribe the new groups as zombies." (gnus-message 5 "No new newsgroups")) (when got-new (setq gnus-newsrc-last-checked-date new-date)) - got-new)) + new-newsgroups)) (defun gnus-subscribe-group (group &optional previous method) "Subscribe GROUP and put it after PREVIOUS." diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index ea8a0fc95e5..ef7831caa29 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -669,7 +669,8 @@ textual parts.") (let ((result (nnimap-possibly-change-group ;; Don't SELECT the group if we're going to select it ;; later, anyway. - (if dont-check + (if (and dont-check + (assoc group nnimap-current-infos)) nil group) server)) @@ -698,7 +699,8 @@ textual parts.") 1 group "SELECT"))))) (when (and info marks) - (nnimap-update-infos marks (list info))) + (nnimap-update-infos marks (list info)) + (nnimap-store-info info (gnus-active (gnus-info-group info)))) (goto-char (point-max)) (let ((uidnext (nth 5 (car marks)))) (setq high (or (if uidnext @@ -1555,12 +1557,16 @@ textual parts.") (split-string (buffer-substring (1+ (point)) - (1- (search-forward "]" (line-end-position) 'move))))) + (if (search-forward "]" (line-end-position) 'move) + (1- (point)) + (point))))) ((eql char ?\() (split-string (buffer-substring (1+ (point)) - (1- (search-forward ")" (line-end-position) 'move))))) + (if (search-forward ")" (line-end-position) 'move) + (1- (point)) + (point))))) ((eql char ?\") (forward-char 1) (buffer-substring -- 2.39.5