diff options
| author | Gnus developers | 2010-10-18 22:09:28 +0000 |
|---|---|---|
| committer | Katsumi Yamaoka | 2010-10-18 22:09:28 +0000 |
| commit | 7cad71ad21f4ee07ff4652c9e39ebf4510e0216b (patch) | |
| tree | 2560cf493299beced75147e7c11459725f5ce027 | |
| parent | 36ba6f0730619d7aef25f094418cff7b4c86f72a (diff) | |
| download | emacs-7cad71ad21f4ee07ff4652c9e39ebf4510e0216b.tar.gz emacs-7cad71ad21f4ee07ff4652c9e39ebf4510e0216b.zip | |
Merge changes made in Gnus trunk.
gnus-art.el: Make the "dumbquotes" translation work again.
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.
nnimap.el (nnimap-request-group): Don't SELECT the group twice on `M-g'.
nnimap.el (nnimap-update-info): Update flags/read marks even if \* isn't part of the permanent marks.
gnus-coding.texi (Gnus Maintainance Guide): Update to mention Emacs bzr/Gnus git sync.
gnus-delay.el (gnus-delay-article): Remove superfluous `group' binding.
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.
| -rw-r--r-- | doc/misc/ChangeLog | 5 | ||||
| -rw-r--r-- | doc/misc/gnus-coding.texi | 34 | ||||
| -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 |
9 files changed, 126 insertions, 69 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index df6e478a34e..76051efef27 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-10-18 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * gnus-coding.texi (Gnus Maintainance Guide): Update to mention Emacs | ||
| 4 | bzr/Gnus git sync. | ||
| 5 | |||
| 1 | 2010-10-15 Eli Zaretskii <eliz@gnu.org> | 6 | 2010-10-15 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix last | 8 | * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix last |
diff --git a/doc/misc/gnus-coding.texi b/doc/misc/gnus-coding.texi index 22b74c900b0..f513bc15a24 100644 --- a/doc/misc/gnus-coding.texi +++ b/doc/misc/gnus-coding.texi | |||
| @@ -288,14 +288,21 @@ Emacs repository might have been lost. | |||
| 288 | 288 | ||
| 289 | With the inclusion of Gnus 5.10, Miles Bader has set up an Emacs-Gnus | 289 | With the inclusion of Gnus 5.10, Miles Bader has set up an Emacs-Gnus |
| 290 | gateway to ensure the bug fixes from Emacs CVS are propagated to Gnus | 290 | gateway to ensure the bug fixes from Emacs CVS are propagated to Gnus |
| 291 | CVS semi-automatically. These bug fixes are installed on the stable | 291 | CVS semi-automatically. |
| 292 | branch and on the trunk. Basically the idea is that the gateway will | 292 | |
| 293 | cause all common files in Emacs and Gnus v5-10 to be identical except | 293 | After Emacs moved to bzr and Gnus moved to git, Katsumi Yamaoka has |
| 294 | when there's a very good reason (e.g., the Gnus version string in Emacs | 294 | taken over the chore of keeping Emacs and Gnus in sync. In general, |
| 295 | says @samp{5.11}, but the v5-10 version string remains @samp{5.10.x}). | 295 | changes made to one repository will usually be replicated in the other |
| 296 | Furthermore, all changes in these files in either Emacs or the v5-10 | 296 | within a few days. |
| 297 | branch will be installed into the Gnus CVS trunk, again except where | 297 | |
| 298 | there's a good reason. | 298 | Basically the idea is that the gateway will cause all common files in |
| 299 | Emacs and Gnus v5-13 to be identical except when there's a very good | ||
| 300 | reason (e.g., the Gnus version string in Emacs says @samp{5.11}, but | ||
| 301 | the v5-13 version string remains @samp{5.13.x}). Furthermore, all | ||
| 302 | changes in these files in either Emacs or the v5-13 branch will be | ||
| 303 | installed into the Gnus git trunk, again except where there's a good | ||
| 304 | reason. | ||
| 305 | |||
| 299 | @c (typically so far the only exception has been that the changes | 306 | @c (typically so far the only exception has been that the changes |
| 300 | @c already exist in the trunk in modified form). | 307 | @c already exist in the trunk in modified form). |
| 301 | Because of this, when the next major version of Gnus will be included in | 308 | Because of this, when the next major version of Gnus will be included in |
| @@ -311,9 +318,9 @@ If it's a file which is thought of as being outside of Gnus (e.g., the | |||
| 311 | new @file{encrypt.el}), you should probably make the change in the Emacs | 318 | new @file{encrypt.el}), you should probably make the change in the Emacs |
| 312 | tree, and it will show up in the Gnus tree a few days later. | 319 | tree, and it will show up in the Gnus tree a few days later. |
| 313 | 320 | ||
| 314 | If you don't have Emacs CVS access (or it's inconvenient), you can | 321 | If you don't have Emacs bzr access (or it's inconvenient), you can |
| 315 | change such a file in the v5-10 branch, and it should propagate to Emacs | 322 | change such a file in the v5-10 branch, and it should propagate to Emacs |
| 316 | CVS -- however, it will get some extra scrutiny (by Miles) to see if the | 323 | bzr -- however, it will get some extra scrutiny (by Miles) to see if the |
| 317 | changes are possibly controversial and need discussion on the mailing | 324 | changes are possibly controversial and need discussion on the mailing |
| 318 | list. Many changes are obvious bug-fixes however, so often there won't | 325 | list. Many changes are obvious bug-fixes however, so often there won't |
| 319 | be any problem. | 326 | be any problem. |
| @@ -321,12 +328,12 @@ be any problem. | |||
| 321 | @item | 328 | @item |
| 322 | If it's to a Gnus file, and it's important enough that it should be part | 329 | If it's to a Gnus file, and it's important enough that it should be part |
| 323 | of Emacs and the v5-10 branch, then you can make the change on the v5-10 | 330 | of Emacs and the v5-10 branch, then you can make the change on the v5-10 |
| 324 | branch, and it will go into Emacs CVS and the Gnus CVS trunk (a few days | 331 | branch, and it will go into Emacs bzr and the Gnus git trunk (a few days |
| 325 | later). The most prominent examples for such changes are bug-fixed | 332 | later). The most prominent examples for such changes are bug-fixed |
| 326 | including improvements on the documentation. | 333 | including improvements on the documentation. |
| 327 | 334 | ||
| 328 | If you know that there will be conflicts (perhaps because the affected | 335 | If you know that there will be conflicts (perhaps because the affected |
| 329 | source code is different in v5-10 and the Gnus CVS trunk), then you can | 336 | source code is different in v5-10 and the Gnus git trunk), then you can |
| 330 | install your change in both places, and when I try to sync them, there | 337 | install your change in both places, and when I try to sync them, there |
| 331 | will be a conflict -- however, since in most such cases there would be a | 338 | will be a conflict -- however, since in most such cases there would be a |
| 332 | conflict @emph{anyway}, it's often easier for me to resolve it simply if | 339 | conflict @emph{anyway}, it's often easier for me to resolve it simply if |
| @@ -338,9 +345,6 @@ For general Gnus development changes, of course you just make the | |||
| 338 | change on the Gnus Git trunk and it goes into Emacs a few years | 345 | change on the Gnus Git trunk and it goes into Emacs a few years |
| 339 | later... :-) | 346 | later... :-) |
| 340 | 347 | ||
| 341 | With the new Git repository, we'll probably set up something to | ||
| 342 | automatically synchronize with Emacs when possible. CVS was much less | ||
| 343 | powerful for this kind of synchronization. | ||
| 344 | @end itemize | 348 | @end itemize |
| 345 | 349 | ||
| 346 | Of course in any case, if you just can't wait for me to sync your | 350 | Of course in any case, if you just can't wait for me to sync your |
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 @@ | |||
| 1 | 2010-10-18 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * gnus-art.el (gnus-article-make-menu-bar): The article/group menus | ||
| 4 | aren't so wide as to need to switch off the edit menu. | ||
| 5 | |||
| 6 | * gnus-delay.el (gnus-delay-article): Remove superfluous `group' | ||
| 7 | binding. Suggested by Leo <sdl.web@gmail.com> (bug #6613). | ||
| 8 | |||
| 9 | * nnimap.el (nnimap-request-group): Don't SELECT the group twice on | ||
| 10 | `M-g'. | ||
| 11 | (nnimap-update-info): Update flags/read marks even if \* isn't part of | ||
| 12 | the permanent marks. | ||
| 13 | |||
| 14 | 2010-10-18 Andrew Cohen <cohen@andy.bu.edu> | ||
| 15 | |||
| 16 | * gnus-registry.el (gnus-registry-split-fancy-with-parent): Splitting | ||
| 17 | according to references/in-reply-to obeys the ignore-groups variable, | ||
| 18 | while splitting by sender and subject do not. | ||
| 19 | |||
| 20 | 2010-10-18 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 21 | |||
| 22 | * gnus-art.el (gnus-article-dumbquotes-map): Make into a char/string | ||
| 23 | alist, so that we can look for non-Unicode chars. | ||
| 24 | (article-translate-strings): Allow both character and string maps. | ||
| 25 | |||
| 1 | 2010-10-18 Katsumi Yamaoka <yamaoka@jpl.org> | 26 | 2010-10-18 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 27 | ||
| 3 | * shr.el (shr-insert): Don't insert space behind a wide character | 28 | * 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." | |||
| 916 | "Function used to decode addresses.") | 916 | "Function used to decode addresses.") |
| 917 | 917 | ||
| 918 | (defvar gnus-article-dumbquotes-map | 918 | (defvar gnus-article-dumbquotes-map |
| 919 | '(("\200" "EUR") | 919 | '((?\200 "EUR") |
| 920 | ("\202" ",") | 920 | (?\202 ",") |
| 921 | ("\203" "f") | 921 | (?\203 "f") |
| 922 | ("\204" ",,") | 922 | (?\204 ",,") |
| 923 | ("\205" "...") | 923 | (?\205 "...") |
| 924 | ("\213" "<") | 924 | (?\213 "<") |
| 925 | ("\214" "OE") | 925 | (?\214 "OE") |
| 926 | ("\221" "`") | 926 | (?\221 "`") |
| 927 | ("\222" "'") | 927 | (?\222 "'") |
| 928 | ("\223" "``") | 928 | (?\223 "``") |
| 929 | ("\224" "\"") | 929 | (?\224 "\"") |
| 930 | ("\225" "*") | 930 | (?\225 "*") |
| 931 | ("\226" "-") | 931 | (?\226 "-") |
| 932 | ("\227" "--") | 932 | (?\227 "--") |
| 933 | ("\230" "~") | 933 | (?\230 "~") |
| 934 | ("\231" "(TM)") | 934 | (?\231 "(TM)") |
| 935 | ("\233" ">") | 935 | (?\233 ">") |
| 936 | ("\234" "oe") | 936 | (?\234 "oe") |
| 937 | ("\264" "'")) | 937 | (?\264 "'")) |
| 938 | "Table for MS-to-Latin1 translation.") | 938 | "Table for MS-to-Latin1 translation.") |
| 939 | 939 | ||
| 940 | (defcustom gnus-ignored-mime-types nil | 940 | (defcustom gnus-ignored-mime-types nil |
| @@ -2138,9 +2138,18 @@ MAP is an alist where the elements are on the form (\"from\" \"to\")." | |||
| 2138 | (when (article-goto-body) | 2138 | (when (article-goto-body) |
| 2139 | (let ((inhibit-read-only t)) | 2139 | (let ((inhibit-read-only t)) |
| 2140 | (dolist (elem map) | 2140 | (dolist (elem map) |
| 2141 | (save-excursion | 2141 | (let ((from (car elem)) |
| 2142 | (while (search-forward (car elem) nil t) | 2142 | (to (cadr elem))) |
| 2143 | (replace-match (cadr elem))))))))) | 2143 | (save-excursion |
| 2144 | (if (stringp from) | ||
| 2145 | (while (search-forward from nil t) | ||
| 2146 | (replace-match to)) | ||
| 2147 | (while (not (eobp)) | ||
| 2148 | (if (eq (following-char) from) | ||
| 2149 | (progn | ||
| 2150 | (delete-char 1) | ||
| 2151 | (insert to)) | ||
| 2152 | (forward-char 1))))))))))) | ||
| 2144 | 2153 | ||
| 2145 | (defun article-treat-overstrike () | 2154 | (defun article-treat-overstrike () |
| 2146 | "Translate overstrikes into bold text." | 2155 | "Translate overstrikes into bold text." |
| @@ -4393,7 +4402,6 @@ If variable `gnus-use-long-file-name' is non-nil, it is | |||
| 4393 | (defun gnus-article-make-menu-bar () | 4402 | (defun gnus-article-make-menu-bar () |
| 4394 | (unless (boundp 'gnus-article-commands-menu) | 4403 | (unless (boundp 'gnus-article-commands-menu) |
| 4395 | (gnus-summary-make-menu-bar)) | 4404 | (gnus-summary-make-menu-bar)) |
| 4396 | (gnus-turn-off-edit-menu 'article) | ||
| 4397 | (unless (boundp 'gnus-article-article-menu) | 4405 | (unless (boundp 'gnus-article-article-menu) |
| 4398 | (easy-menu-define | 4406 | (easy-menu-define |
| 4399 | gnus-article-article-menu gnus-article-mode-map "" | 4407 | 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: | |||
| 133 | (message-add-header (format "%s: %s" gnus-delay-header deadline))) | 133 | (message-add-header (format "%s: %s" gnus-delay-header deadline))) |
| 134 | (set-buffer-modified-p t) | 134 | (set-buffer-modified-p t) |
| 135 | ;; If group does not exist, create it. | 135 | ;; If group does not exist, create it. |
| 136 | (let ((group (format "nndraft:%s" gnus-delay-group))) | 136 | (gnus-agent-queue-setup gnus-delay-group) |
| 137 | (gnus-agent-queue-setup gnus-delay-group)) | ||
| 138 | (message-disassociate-draft) | 137 | (message-disassociate-draft) |
| 139 | (nndraft-request-associate-buffer gnus-delay-group) | 138 | (nndraft-request-associate-buffer gnus-delay-group) |
| 140 | (save-buffer 0) | 139 | (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.") | |||
| 757 | (symbol-value 'gnus-topic-mode))) | 757 | (symbol-value 'gnus-topic-mode))) |
| 758 | 758 | ||
| 759 | (defun gnus-group-make-menu-bar () | 759 | (defun gnus-group-make-menu-bar () |
| 760 | (gnus-turn-off-edit-menu 'group) | ||
| 761 | (unless (boundp 'gnus-group-reading-menu) | 760 | (unless (boundp 'gnus-group-reading-menu) |
| 762 | 761 | ||
| 763 | (easy-menu-define | 762 | (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." | |||
| 551 | key | 551 | key |
| 552 | gnus-registry-max-track-groups))) | 552 | gnus-registry-max-track-groups))) |
| 553 | (dolist (group groups) | 553 | (dolist (group groups) |
| 554 | (push group found-full) | 554 | (when (and group (gnus-registry-follow-group-p group)) |
| 555 | (setq found (append (list group) (delete group found))))) | 555 | (push group found-full) |
| 556 | (setq found (append (list group) (delete group found)))))) | ||
| 556 | (push key matches) | 557 | (push key matches) |
| 557 | (gnus-message | 558 | (gnus-message |
| 558 | ;; raise level of messaging if gnus-registry-track-extra | 559 | ;; raise level of messaging if gnus-registry-track-extra |
| @@ -580,8 +581,9 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." | |||
| 580 | key | 581 | key |
| 581 | gnus-registry-max-track-groups))) | 582 | gnus-registry-max-track-groups))) |
| 582 | (dolist (group groups) | 583 | (dolist (group groups) |
| 583 | (push group found-full) | 584 | (when (and group (gnus-registry-follow-group-p group)) |
| 584 | (setq found (append (list group) (delete group found))))) | 585 | (push group found-full) |
| 586 | (setq found (append (list group) (delete group found)))))) | ||
| 585 | (push key matches) | 587 | (push key matches) |
| 586 | (gnus-message | 588 | (gnus-message |
| 587 | ;; raise level of messaging if gnus-registry-track-extra | 589 | ;; 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." | |||
| 3938 | (not (eq (caar old-params) name))) | 3938 | (not (eq (caar old-params) name))) |
| 3939 | (setq new-params (append new-params (list (car old-params))))) | 3939 | (setq new-params (append new-params (list (car old-params))))) |
| 3940 | (setq old-params (cdr old-params))) | 3940 | (setq old-params (cdr old-params))) |
| 3941 | (gnus-group-set-info new-params (gnus-info-group info) 'params))))) | 3941 | (if (listp group) |
| 3942 | (gnus-info-set-params info new-params t) | ||
| 3943 | (gnus-group-set-info new-params (gnus-info-group info) 'params)))))) | ||
| 3942 | 3944 | ||
| 3943 | (defun gnus-group-remove-parameter (group name) | 3945 | (defun gnus-group-remove-parameter (group name) |
| 3944 | "Remove parameter NAME from GROUP. | 3946 | "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.") | |||
| 617 | (nreverse parts))) | 617 | (nreverse parts))) |
| 618 | 618 | ||
| 619 | (deffoo nnimap-request-group (group &optional server dont-check info) | 619 | (deffoo nnimap-request-group (group &optional server dont-check info) |
| 620 | (let ((result (nnimap-possibly-change-group group server)) | 620 | (let ((result (nnimap-possibly-change-group |
| 621 | ;; Don't SELECT the group if we're going to select it | ||
| 622 | ;; later, anyway. | ||
| 623 | (if dont-check | ||
| 624 | nil | ||
| 625 | group) | ||
| 626 | server)) | ||
| 621 | articles active marks high low) | 627 | articles active marks high low) |
| 622 | (with-current-buffer nntp-server-buffer | 628 | (with-current-buffer nntp-server-buffer |
| 623 | (when result | 629 | (when result |
| @@ -634,6 +640,7 @@ textual parts.") | |||
| 634 | (nnimap-send-command "SELECT %S" (utf7-encode group t))) | 640 | (nnimap-send-command "SELECT %S" (utf7-encode group t))) |
| 635 | (flag-sequence | 641 | (flag-sequence |
| 636 | (nnimap-send-command "UID FETCH 1:* FLAGS"))) | 642 | (nnimap-send-command "UID FETCH 1:* FLAGS"))) |
| 643 | (setf (nnimap-group nnimap-object) group) | ||
| 637 | (nnimap-wait-for-response flag-sequence) | 644 | (nnimap-wait-for-response flag-sequence) |
| 638 | (setq marks | 645 | (setq marks |
| 639 | (nnimap-flags-to-marks | 646 | (nnimap-flags-to-marks |
| @@ -1105,12 +1112,13 @@ textual parts.") | |||
| 1105 | (unless (eq permanent-flags 'not-scanned) | 1112 | (unless (eq permanent-flags 'not-scanned) |
| 1106 | (gnus-group-set-parameter | 1113 | (gnus-group-set-parameter |
| 1107 | info 'permanent-flags | 1114 | info 'permanent-flags |
| 1108 | (if (memq '%* permanent-flags) | 1115 | (and (or (memq '%* permanent-flags) |
| 1109 | t | 1116 | (memq '%Seen permanent-flags)) |
| 1110 | nil))) | 1117 | permanent-flags))) |
| 1111 | ;; Update marks and read articles if this isn't a | 1118 | ;; Update marks and read articles if this isn't a |
| 1112 | ;; read-only IMAP group. | 1119 | ;; read-only IMAP group. |
| 1113 | (when (cdr (assq 'permanent-flags (gnus-info-params info))) | 1120 | (when (setq permanent-flags |
| 1121 | (cdr (assq 'permanent-flags (gnus-info-params info)))) | ||
| 1114 | (if (and highestmodseq | 1122 | (if (and highestmodseq |
| 1115 | (not start-article)) | 1123 | (not start-article)) |
| 1116 | ;; We've gotten the data by QRESYNCing. | 1124 | ;; We've gotten the data by QRESYNCing. |
| @@ -1136,27 +1144,32 @@ textual parts.") | |||
| 1136 | (gnus-info-read info)) | 1144 | (gnus-info-read info)) |
| 1137 | (gnus-info-read info)) | 1145 | (gnus-info-read info)) |
| 1138 | read))) | 1146 | read))) |
| 1139 | (gnus-info-set-read info read) | 1147 | (when (or (not (listp permanent-flags)) |
| 1148 | (memq '%Seen permanent-flags)) | ||
| 1149 | (gnus-info-set-read info read)) | ||
| 1140 | ;; Update the marks. | 1150 | ;; Update the marks. |
| 1141 | (setq marks (gnus-info-marks info)) | 1151 | (setq marks (gnus-info-marks info)) |
| 1142 | (dolist (type (cdr nnimap-mark-alist)) | 1152 | (dolist (type (cdr nnimap-mark-alist)) |
| 1143 | (let ((old-marks (assoc (car type) marks)) | 1153 | (when (or (not (listp permanent-flags)) |
| 1144 | (new-marks | 1154 | (memq (assoc (caddr type) flags) permanent-flags) |
| 1145 | (gnus-compress-sequence | 1155 | (memq '%* permanent-flags)) |
| 1146 | (cdr (or (assoc (caddr type) flags) ; %Flagged | 1156 | (let ((old-marks (assoc (car type) marks)) |
| 1147 | (assoc (intern (cadr type) obarray) flags) | 1157 | (new-marks |
| 1148 | (assoc (cadr type) flags)))))) ; "\Flagged" | 1158 | (gnus-compress-sequence |
| 1149 | (setq marks (delq old-marks marks)) | 1159 | (cdr (or (assoc (caddr type) flags) ; %Flagged |
| 1150 | (pop old-marks) | 1160 | (assoc (intern (cadr type) obarray) flags) |
| 1151 | (when (and old-marks | 1161 | (assoc (cadr type) flags)))))) ; "\Flagged" |
| 1152 | (> start-article 1)) | 1162 | (setq marks (delq old-marks marks)) |
| 1153 | (setq old-marks (gnus-range-difference | 1163 | (pop old-marks) |
| 1154 | old-marks | 1164 | (when (and old-marks |
| 1155 | (cons start-article high))) | 1165 | (> start-article 1)) |
| 1156 | (setq new-marks (gnus-range-nconcat old-marks new-marks))) | 1166 | (setq old-marks (gnus-range-difference |
| 1157 | (when new-marks | 1167 | old-marks |
| 1158 | (push (cons (car type) new-marks) marks))) | 1168 | (cons start-article high))) |
| 1159 | (gnus-info-set-marks info marks t))))) | 1169 | (setq new-marks (gnus-range-nconcat old-marks new-marks))) |
| 1170 | (when new-marks | ||
| 1171 | (push (cons (car type) new-marks) marks))))) | ||
| 1172 | (gnus-info-set-marks info marks t)))) | ||
| 1160 | ;; Note the active level for the next run-through. | 1173 | ;; Note the active level for the next run-through. |
| 1161 | (gnus-group-set-parameter info 'active (gnus-active group)) | 1174 | (gnus-group-set-parameter info 'active (gnus-active group)) |
| 1162 | (gnus-group-set-parameter info 'uidvalidity uidvalidity) | 1175 | (gnus-group-set-parameter info 'uidvalidity uidvalidity) |