diff options
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/gnus/ChangeLog | 25 | ||||
| -rw-r--r-- | lisp/gnus/gnus-art.el | 54 | ||||
| -rw-r--r-- | lisp/gnus/gnus-delay.el | 3 | ||||
| -rw-r--r-- | lisp/gnus/gnus-group.el | 1 | ||||
| -rw-r--r-- | lisp/gnus/gnus-registry.el | 10 | ||||
| -rw-r--r-- | lisp/gnus/gnus.el | 4 | ||||
| -rw-r--r-- | lisp/gnus/nnimap.el | 59 |
7 files changed, 102 insertions, 54 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index c5bad44a985..47124f39810 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,28 @@ +2010-10-18 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-art.el (gnus-article-make-menu-bar): The article/group menus + aren't so wide as to need to switch off the edit menu. + + * gnus-delay.el (gnus-delay-article): Remove superfluous `group' + binding. Suggested by Leo <sdl.web@gmail.com> (bug #6613). + + * nnimap.el (nnimap-request-group): Don't SELECT the group twice on + `M-g'. + (nnimap-update-info): Update flags/read marks even if \* isn't part of + the permanent marks. + +2010-10-18 Andrew Cohen <cohen@andy.bu.edu> + + * gnus-registry.el (gnus-registry-split-fancy-with-parent): Splitting + according to references/in-reply-to obeys the ignore-groups variable, + while splitting by sender and subject do not. + +2010-10-18 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-art.el (gnus-article-dumbquotes-map): Make into a char/string + alist, so that we can look for non-Unicode chars. + (article-translate-strings): Allow both character and string maps. + 2010-10-18 Katsumi Yamaoka <yamaoka@jpl.org> * shr.el (shr-insert): Don't insert space behind a wide character diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 32411066da1..537ae4da8aa 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -916,25 +916,25 @@ image type in XEmacs if it is built with the libcompface library." "Function used to decode addresses.") (defvar gnus-article-dumbquotes-map - '(("\200" "EUR") - ("\202" ",") - ("\203" "f") - ("\204" ",,") - ("\205" "...") - ("\213" "<") - ("\214" "OE") - ("\221" "`") - ("\222" "'") - ("\223" "``") - ("\224" "\"") - ("\225" "*") - ("\226" "-") - ("\227" "--") - ("\230" "~") - ("\231" "(TM)") - ("\233" ">") - ("\234" "oe") - ("\264" "'")) + '((?\200 "EUR") + (?\202 ",") + (?\203 "f") + (?\204 ",,") + (?\205 "...") + (?\213 "<") + (?\214 "OE") + (?\221 "`") + (?\222 "'") + (?\223 "``") + (?\224 "\"") + (?\225 "*") + (?\226 "-") + (?\227 "--") + (?\230 "~") + (?\231 "(TM)") + (?\233 ">") + (?\234 "oe") + (?\264 "'")) "Table for MS-to-Latin1 translation.") (defcustom gnus-ignored-mime-types nil @@ -2138,9 +2138,18 @@ MAP is an alist where the elements are on the form (\"from\" \"to\")." (when (article-goto-body) (let ((inhibit-read-only t)) (dolist (elem map) - (save-excursion - (while (search-forward (car elem) nil t) - (replace-match (cadr elem))))))))) + (let ((from (car elem)) + (to (cadr elem))) + (save-excursion + (if (stringp from) + (while (search-forward from nil t) + (replace-match to)) + (while (not (eobp)) + (if (eq (following-char) from) + (progn + (delete-char 1) + (insert to)) + (forward-char 1))))))))))) (defun article-treat-overstrike () "Translate overstrikes into bold text." @@ -4393,7 +4402,6 @@ If variable `gnus-use-long-file-name' is non-nil, it is (defun gnus-article-make-menu-bar () (unless (boundp 'gnus-article-commands-menu) (gnus-summary-make-menu-bar)) - (gnus-turn-off-edit-menu 'article) (unless (boundp 'gnus-article-article-menu) (easy-menu-define gnus-article-article-menu gnus-article-mode-map "" diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el index 05bbaf53465..a257e5495a7 100644 --- a/lisp/gnus/gnus-delay.el +++ b/lisp/gnus/gnus-delay.el @@ -133,8 +133,7 @@ DELAY is a string, giving the length of the time. Possible values are: (message-add-header (format "%s: %s" gnus-delay-header deadline))) (set-buffer-modified-p t) ;; If group does not exist, create it. - (let ((group (format "nndraft:%s" gnus-delay-group))) - (gnus-agent-queue-setup gnus-delay-group)) + (gnus-agent-queue-setup gnus-delay-group) (message-disassociate-draft) (nndraft-request-associate-buffer gnus-delay-group) (save-buffer 0) diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 0d047133cd0..6cd8f75d94c 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el @@ -757,7 +757,6 @@ simple manner.") (symbol-value 'gnus-topic-mode))) (defun gnus-group-make-menu-bar () - (gnus-turn-off-edit-menu 'group) (unless (boundp 'gnus-group-reading-menu) (easy-menu-define diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index 6c2233f9c40..79080f21b7a 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el @@ -551,8 +551,9 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." key gnus-registry-max-track-groups))) (dolist (group groups) - (push group found-full) - (setq found (append (list group) (delete group found))))) + (when (and group (gnus-registry-follow-group-p group)) + (push group found-full) + (setq found (append (list group) (delete group found)))))) (push key matches) (gnus-message ;; raise level of messaging if gnus-registry-track-extra @@ -580,8 +581,9 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." key gnus-registry-max-track-groups))) (dolist (group groups) - (push group found-full) - (setq found (append (list group) (delete group found))))) + (when (and group (gnus-registry-follow-group-p group)) + (push group found-full) + (setq found (append (list group) (delete group found)))))) (push key matches) (gnus-message ;; raise level of messaging if gnus-registry-track-extra diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index 19b71551c14..5440a24eb5d 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -3938,7 +3938,9 @@ GROUP can also be an INFO structure." (not (eq (caar old-params) name))) (setq new-params (append new-params (list (car old-params))))) (setq old-params (cdr old-params))) - (gnus-group-set-info new-params (gnus-info-group info) 'params))))) + (if (listp group) + (gnus-info-set-params info new-params t) + (gnus-group-set-info new-params (gnus-info-group info) 'params)))))) (defun gnus-group-remove-parameter (group name) "Remove parameter NAME from GROUP. diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index 8f0a112c7f3..63f3a2d8425 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -617,7 +617,13 @@ textual parts.") (nreverse parts))) (deffoo nnimap-request-group (group &optional server dont-check info) - (let ((result (nnimap-possibly-change-group group server)) + (let ((result (nnimap-possibly-change-group + ;; Don't SELECT the group if we're going to select it + ;; later, anyway. + (if dont-check + nil + group) + server)) articles active marks high low) (with-current-buffer nntp-server-buffer (when result @@ -634,6 +640,7 @@ textual parts.") (nnimap-send-command "SELECT %S" (utf7-encode group t))) (flag-sequence (nnimap-send-command "UID FETCH 1:* FLAGS"))) + (setf (nnimap-group nnimap-object) group) (nnimap-wait-for-response flag-sequence) (setq marks (nnimap-flags-to-marks @@ -1105,12 +1112,13 @@ textual parts.") (unless (eq permanent-flags 'not-scanned) (gnus-group-set-parameter info 'permanent-flags - (if (memq '%* permanent-flags) - t - nil))) + (and (or (memq '%* permanent-flags) + (memq '%Seen permanent-flags)) + permanent-flags))) ;; Update marks and read articles if this isn't a ;; read-only IMAP group. - (when (cdr (assq 'permanent-flags (gnus-info-params info))) + (when (setq permanent-flags + (cdr (assq 'permanent-flags (gnus-info-params info)))) (if (and highestmodseq (not start-article)) ;; We've gotten the data by QRESYNCing. @@ -1136,27 +1144,32 @@ textual parts.") (gnus-info-read info)) (gnus-info-read info)) read))) - (gnus-info-set-read info read) + (when (or (not (listp permanent-flags)) + (memq '%Seen permanent-flags)) + (gnus-info-set-read info read)) ;; Update the marks. (setq marks (gnus-info-marks info)) (dolist (type (cdr nnimap-mark-alist)) - (let ((old-marks (assoc (car type) marks)) - (new-marks - (gnus-compress-sequence - (cdr (or (assoc (caddr type) flags) ; %Flagged - (assoc (intern (cadr type) obarray) flags) - (assoc (cadr type) flags)))))) ; "\Flagged" - (setq marks (delq old-marks marks)) - (pop old-marks) - (when (and old-marks - (> start-article 1)) - (setq old-marks (gnus-range-difference - old-marks - (cons start-article high))) - (setq new-marks (gnus-range-nconcat old-marks new-marks))) - (when new-marks - (push (cons (car type) new-marks) marks))) - (gnus-info-set-marks info marks t))))) + (when (or (not (listp permanent-flags)) + (memq (assoc (caddr type) flags) permanent-flags) + (memq '%* permanent-flags)) + (let ((old-marks (assoc (car type) marks)) + (new-marks + (gnus-compress-sequence + (cdr (or (assoc (caddr type) flags) ; %Flagged + (assoc (intern (cadr type) obarray) flags) + (assoc (cadr type) flags)))))) ; "\Flagged" + (setq marks (delq old-marks marks)) + (pop old-marks) + (when (and old-marks + (> start-article 1)) + (setq old-marks (gnus-range-difference + old-marks + (cons start-article high))) + (setq new-marks (gnus-range-nconcat old-marks new-marks))) + (when new-marks + (push (cons (car type) new-marks) marks))))) + (gnus-info-set-marks info marks t)))) ;; Note the active level for the next run-through. (gnus-group-set-parameter info 'active (gnus-active group)) (gnus-group-set-parameter info 'uidvalidity uidvalidity) |
