aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGnus developers2010-10-18 22:09:28 +0000
committerKatsumi Yamaoka2010-10-18 22:09:28 +0000
commit7cad71ad21f4ee07ff4652c9e39ebf4510e0216b (patch)
tree2560cf493299beced75147e7c11459725f5ce027
parent36ba6f0730619d7aef25f094418cff7b4c86f72a (diff)
downloademacs-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/ChangeLog5
-rw-r--r--doc/misc/gnus-coding.texi34
-rw-r--r--lisp/gnus/ChangeLog25
-rw-r--r--lisp/gnus/gnus-art.el54
-rw-r--r--lisp/gnus/gnus-delay.el3
-rw-r--r--lisp/gnus/gnus-group.el1
-rw-r--r--lisp/gnus/gnus-registry.el10
-rw-r--r--lisp/gnus/gnus.el4
-rw-r--r--lisp/gnus/nnimap.el59
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 @@
12010-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
12010-10-15 Eli Zaretskii <eliz@gnu.org> 62010-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
289With the inclusion of Gnus 5.10, Miles Bader has set up an Emacs-Gnus 289With the inclusion of Gnus 5.10, Miles Bader has set up an Emacs-Gnus
290gateway to ensure the bug fixes from Emacs CVS are propagated to Gnus 290gateway to ensure the bug fixes from Emacs CVS are propagated to Gnus
291CVS semi-automatically. These bug fixes are installed on the stable 291CVS semi-automatically.
292branch and on the trunk. Basically the idea is that the gateway will 292
293cause all common files in Emacs and Gnus v5-10 to be identical except 293After Emacs moved to bzr and Gnus moved to git, Katsumi Yamaoka has
294when there's a very good reason (e.g., the Gnus version string in Emacs 294taken over the chore of keeping Emacs and Gnus in sync. In general,
295says @samp{5.11}, but the v5-10 version string remains @samp{5.10.x}). 295changes made to one repository will usually be replicated in the other
296Furthermore, all changes in these files in either Emacs or the v5-10 296within a few days.
297branch will be installed into the Gnus CVS trunk, again except where 297
298there's a good reason. 298Basically the idea is that the gateway will cause all common files in
299Emacs and Gnus v5-13 to be identical except when there's a very good
300reason (e.g., the Gnus version string in Emacs says @samp{5.11}, but
301the v5-13 version string remains @samp{5.13.x}). Furthermore, all
302changes in these files in either Emacs or the v5-13 branch will be
303installed into the Gnus git trunk, again except where there's a good
304reason.
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).
301Because of this, when the next major version of Gnus will be included in 308Because 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
311new @file{encrypt.el}), you should probably make the change in the Emacs 318new @file{encrypt.el}), you should probably make the change in the Emacs
312tree, and it will show up in the Gnus tree a few days later. 319tree, and it will show up in the Gnus tree a few days later.
313 320
314If you don't have Emacs CVS access (or it's inconvenient), you can 321If you don't have Emacs bzr access (or it's inconvenient), you can
315change such a file in the v5-10 branch, and it should propagate to Emacs 322change such a file in the v5-10 branch, and it should propagate to Emacs
316CVS -- however, it will get some extra scrutiny (by Miles) to see if the 323bzr -- however, it will get some extra scrutiny (by Miles) to see if the
317changes are possibly controversial and need discussion on the mailing 324changes are possibly controversial and need discussion on the mailing
318list. Many changes are obvious bug-fixes however, so often there won't 325list. Many changes are obvious bug-fixes however, so often there won't
319be any problem. 326be any problem.
@@ -321,12 +328,12 @@ be any problem.
321@item 328@item
322If it's to a Gnus file, and it's important enough that it should be part 329If it's to a Gnus file, and it's important enough that it should be part
323of Emacs and the v5-10 branch, then you can make the change on the v5-10 330of Emacs and the v5-10 branch, then you can make the change on the v5-10
324branch, and it will go into Emacs CVS and the Gnus CVS trunk (a few days 331branch, and it will go into Emacs bzr and the Gnus git trunk (a few days
325later). The most prominent examples for such changes are bug-fixed 332later). The most prominent examples for such changes are bug-fixed
326including improvements on the documentation. 333including improvements on the documentation.
327 334
328If you know that there will be conflicts (perhaps because the affected 335If you know that there will be conflicts (perhaps because the affected
329source code is different in v5-10 and the Gnus CVS trunk), then you can 336source code is different in v5-10 and the Gnus git trunk), then you can
330install your change in both places, and when I try to sync them, there 337install your change in both places, and when I try to sync them, there
331will be a conflict -- however, since in most such cases there would be a 338will be a conflict -- however, since in most such cases there would be a
332conflict @emph{anyway}, it's often easier for me to resolve it simply if 339conflict @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
338change on the Gnus Git trunk and it goes into Emacs a few years 345change on the Gnus Git trunk and it goes into Emacs a few years
339later... :-) 346later... :-)
340 347
341With the new Git repository, we'll probably set up something to
342automatically synchronize with Emacs when possible. CVS was much less
343powerful for this kind of synchronization.
344@end itemize 348@end itemize
345 349
346Of course in any case, if you just can't wait for me to sync your 350Of 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 @@
12010-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
142010-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
202010-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
12010-10-18 Katsumi Yamaoka <yamaoka@jpl.org> 262010-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)