aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGnus developers2011-09-10 23:30:53 +0000
committerKatsumi Yamaoka2011-09-10 23:30:53 +0000
commite21bac426b787ac0f03c3a64341ec98995ea8262 (patch)
treea3877a583cca99774594050a192fde13e57e7b78
parent3199b96fc585576ffb2ced6542a2bc2d6172f510 (diff)
downloademacs-e21bac426b787ac0f03c3a64341ec98995ea8262.tar.gz
emacs-e21bac426b787ac0f03c3a64341ec98995ea8262.zip
Merge changes made in Gnus trunk.
gnus.texi: Remove mentions of `recent', which are now obsolete. (Interactive): Document `quiet'. nnimap.el: Redo the charset handling. Let Gnus encode the names, as it does with all other backends, but decode the names immediately after getting them. gnus-group.el (gnus-group-name-charset): Always return `utf-7' when decoding nnimap groups. gnus.el (gnus-variable-list): Don't save `gnus-format-specs' in the newsrc file. It doesn't seem like an important optimisation any more. nnimap.el (nnimap-transform-headers): Fix regexp to be less prone to overflows. gnus.el (gnus-article-mark-lists): Remove `recent'. (gnus-interactive-exit): Extend to `quiet'. gnus-sum.el (gnus-offer-save-summaries): Use it. gnus-art.el (gnus-treat-hide-citation-maybe): Add more doc to the string. plstore.el (plstore--get-buffer): Silence compiler warnings by renaming function arguments from `this'. gnus-sum.el (gnus-newsgroup-recent): Removed. gnus-spec.el (gnus-lrm-string-p): `bidi-string-mark-left-to-right' has been renamed. (gnus-lrm-string-p): Include RLM and PDF, too. gnus-int.el (gnus-open-server): Make the "denied" message clearer (bug#9225).
-rw-r--r--doc/misc/ChangeLog5
-rw-r--r--doc/misc/gnus.texi26
-rw-r--r--lisp/gnus/ChangeLog39
-rw-r--r--lisp/gnus/gnus-art.el7
-rw-r--r--lisp/gnus/gnus-ems.el4
-rw-r--r--lisp/gnus/gnus-group.el4
-rw-r--r--lisp/gnus/gnus-int.el3
-rw-r--r--lisp/gnus/gnus-spec.el6
-rw-r--r--lisp/gnus/gnus-sum.el28
-rw-r--r--lisp/gnus/gnus.el9
-rw-r--r--lisp/gnus/nnimap.el35
-rw-r--r--lisp/gnus/plstore.el44
12 files changed, 134 insertions, 76 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 8260df911a8..cd0c62b2e09 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,8 @@
12011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * gnus.texi: Remove mentions of `recent', which are now obsolete.
4 (Interactive): Document `quiet'.
5
12011-08-15 Suvayu Ali <fatkasuvayu+linux@gmail.com> (tiny change) 62011-08-15 Suvayu Ali <fatkasuvayu+linux@gmail.com> (tiny change)
2 7
3 * org.texi (Images in LaTeX export): rewrite. 8 * org.texi (Images in LaTeX export): rewrite.
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 439ff7fbc55..9f886e3dc6e 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -2983,7 +2983,7 @@ The available operators are @code{not}, @code{and} and @code{or}.
2983Predicates include @code{tick}, @code{unsend}, @code{undownload}, 2983Predicates include @code{tick}, @code{unsend}, @code{undownload},
2984@code{unread}, @code{dormant}, @code{expire}, @code{reply}, 2984@code{unread}, @code{dormant}, @code{expire}, @code{reply},
2985@code{killed}, @code{bookmark}, @code{score}, @code{save}, 2985@code{killed}, @code{bookmark}, @code{score}, @code{save},
2986@code{cache}, @code{forward}, @code{unseen} and @code{recent}. 2986@code{cache}, @code{forward}, and @code{unseen}.
2987 2987
2988@end table 2988@end table
2989 2989
@@ -6165,18 +6165,9 @@ religiously) are marked with an @samp{S} in the second column
6165(@code{gnus-saved-mark}). 6165(@code{gnus-saved-mark}).
6166 6166
6167@item 6167@item
6168@vindex gnus-recent-mark
6169Articles that according to the server haven't been shown to the user
6170before are marked with a @samp{N} in the second column
6171(@code{gnus-recent-mark}). Note that not all servers support this
6172mark, in which case it simply never appears. Compare with
6173@code{gnus-unseen-mark}.
6174
6175@item
6176@vindex gnus-unseen-mark 6168@vindex gnus-unseen-mark
6177Articles that haven't been seen before in Gnus by the user are marked 6169Articles that haven't been seen before in Gnus by the user are marked
6178with a @samp{.} in the second column (@code{gnus-unseen-mark}). 6170with a @samp{.} in the second column (@code{gnus-unseen-mark}).
6179Compare with @code{gnus-recent-mark}.
6180 6171
6181@item 6172@item
6182@vindex gnus-downloaded-mark 6173@vindex gnus-downloaded-mark
@@ -22265,8 +22256,9 @@ is @code{t} by default.
22265 22256
22266@item gnus-interactive-exit 22257@item gnus-interactive-exit
22267@vindex gnus-interactive-exit 22258@vindex gnus-interactive-exit
22268Require confirmation before exiting Gnus. This variable is @code{t} by 22259If non-@code{nil}, require a confirmation when exiting Gnus. If
22269default. 22260@code{quiet}, update any active summary buffers automatically without
22261querying. The default value is @code{t}.
22270@end table 22262@end table
22271 22263
22272 22264
@@ -27993,10 +27985,6 @@ non-@code{nil}, the summary buffer is shown and updated as it's being
27993built. 27985built.
27994 27986
27995@item 27987@item
27996The new @code{recent} mark @samp{.} indicates newly arrived messages (as
27997opposed to old but unread messages).
27998
27999@item
28000Gnus supports RFC 2369 mailing list headers, and adds a number of 27988Gnus supports RFC 2369 mailing list headers, and adds a number of
28001related commands in mailing list groups. @xref{Mailing List}. 27989related commands in mailing list groups. @xref{Mailing List}.
28002 27990
@@ -29572,9 +29560,9 @@ propagate the mark information to the server.
29572marks (preserving all marks not mentioned). @var{mark} is a list of 29560marks (preserving all marks not mentioned). @var{mark} is a list of
29573marks; where each mark is a symbol. Currently used marks are 29561marks; where each mark is a symbol. Currently used marks are
29574@code{read}, @code{tick}, @code{reply}, @code{expire}, @code{killed}, 29562@code{read}, @code{tick}, @code{reply}, @code{expire}, @code{killed},
29575@code{dormant}, @code{save}, @code{download}, @code{unsend}, 29563@code{dormant}, @code{save}, @code{download}, @code{unsend}, and
29576@code{forward} and @code{recent}, but your back end should, if 29564@code{forward}, but your back end should, if possible, not limit
29577possible, not limit itself to these. 29565itself to these.
29578 29566
29579Given contradictory actions, the last action in the list should be the 29567Given contradictory actions, the last action in the list should be the
29580effective one. That is, if your action contains a request to add the 29568effective one. That is, if your action contains a request to add the
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 010070526ef..e9e887dd34c 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,42 @@
12011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * nnimap.el: Redo the charset handling. Let Gnus encode the names, as
4 it does with all other backends, but decode the names immediately after
5 getting them.
6
7 * gnus-group.el (gnus-group-name-charset): Always return `utf-7' when
8 decoding nnimap groups.
9
10 * gnus.el (gnus-variable-list): Don't save `gnus-format-specs' in the
11 newsrc file. It doesn't seem like an important optimisation any more.
12
132011-09-10 Dave Abrahams <dave@boostpro.com> (tiny change)
14
15 * nnimap.el (nnimap-transform-headers): Fix regexp to be less prone to
16 overflows.
17
182011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
19
20 * gnus.el (gnus-article-mark-lists): Remove `recent'.
21 (gnus-interactive-exit): Extend to `quiet'.
22
23 * gnus-sum.el (gnus-offer-save-summaries): Use it.
24
25 * gnus-art.el (gnus-treat-hide-citation-maybe): Add more doc to the
26 string.
27
28 * plstore.el (plstore--get-buffer): Silence compiler warnings by
29 renaming function arguments from `this'.
30
31 * gnus-sum.el (gnus-newsgroup-recent): Removed.
32
33 * gnus-spec.el (gnus-lrm-string-p): `bidi-string-mark-left-to-right'
34 has been renamed.
35 (gnus-lrm-string-p): Include RLM and PDF, too.
36
37 * gnus-int.el (gnus-open-server): Make the "denied" message clearer
38 (bug#9225).
39
12011-09-10 Eli Zaretskii <eliz@gnu.org> 402011-09-10 Eli Zaretskii <eliz@gnu.org>
2 41
3 Add autoload cookies for functions used by sendmail.el. 42 Add autoload cookies for functions used by sendmail.el.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 39abad7dae7..8149e555276 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1237,9 +1237,12 @@ predicate. See Info node `(gnus)Customizing Articles'."
1237 :type gnus-article-treat-custom) 1237 :type gnus-article-treat-custom)
1238 1238
1239(defcustom gnus-treat-hide-citation-maybe nil 1239(defcustom gnus-treat-hide-citation-maybe nil
1240 "Hide cited text. 1240 "Hide cited text according to certain conditions.
1241Valid values are nil, t, `head', `first', `last', an integer or a 1241Valid values are nil, t, `head', `first', `last', an integer or a
1242predicate. See Info node `(gnus)Customizing Articles'." 1242predicate. See Info node `(gnus)Customizing Articles'.
1243
1244See `gnus-cite-hide-percentage' and `gnus-cite-hide-absolute' for
1245how to control what it hides."
1243 :group 'gnus-article-treat 1246 :group 'gnus-article-treat
1244 :link '(custom-manual "(gnus)Customizing Articles") 1247 :link '(custom-manual "(gnus)Customizing Articles")
1245 :type gnus-article-treat-custom) 1248 :type gnus-article-treat-custom)
diff --git a/lisp/gnus/gnus-ems.el b/lisp/gnus/gnus-ems.el
index aed471c38f4..5acc9d117e4 100644
--- a/lisp/gnus/gnus-ems.el
+++ b/lisp/gnus/gnus-ems.el
@@ -210,8 +210,8 @@
210 end nil)))))) 210 end nil))))))
211 211
212(defmacro gnus-string-mark-left-to-right (string) 212(defmacro gnus-string-mark-left-to-right (string)
213 (if (fboundp 'string-mark-left-to-right) 213 (if (fboundp 'bidi-string-mark-left-to-right)
214 `(string-mark-left-to-right ,string) 214 `(bidi-string-mark-left-to-right ,string)
215 string)) 215 string))
216 216
217(eval-and-compile 217(eval-and-compile
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 5cc01759a04..36fb9e8343b 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -1201,7 +1201,7 @@ The following commands are available:
1201 (if (eq (car method) 'nnimap) 1201 (if (eq (car method) 'nnimap)
1202 ;; IMAP groups should not be encoded, since they do the encoding 1202 ;; IMAP groups should not be encoded, since they do the encoding
1203 ;; in utf7 in the protocol. 1203 ;; in utf7 in the protocol.
1204 nil 1204 'utf-8
1205 (let ((item (or (assoc method gnus-group-name-charset-method-alist) 1205 (let ((item (or (assoc method gnus-group-name-charset-method-alist)
1206 (and (consp method) 1206 (and (consp method)
1207 (assoc (list (car method) (cadr method)) 1207 (assoc (list (car method) (cadr method))
@@ -4069,7 +4069,7 @@ If DONT-SCAN is non-nil, scan non-activated groups as well."
4069 (gnus-group-update-group group nil t)) 4069 (gnus-group-update-group group nil t))
4070 (if (eq (gnus-server-status (gnus-find-method-for-group group)) 4070 (if (eq (gnus-server-status (gnus-find-method-for-group group))
4071 'denied) 4071 'denied)
4072 (gnus-error 3 "Server denied access") 4072 (gnus-error 3 "Server previously determined to be down; not retrying")
4073 (gnus-error 3 "%s error: %s" group (gnus-status-message group))))) 4073 (gnus-error 3 "%s error: %s" group (gnus-status-message group)))))
4074 (when beg 4074 (when beg
4075 (goto-char beg)) 4075 (goto-char beg))
diff --git a/lisp/gnus/gnus-int.el b/lisp/gnus/gnus-int.el
index b9b191cd09c..9877736bb09 100644
--- a/lisp/gnus/gnus-int.el
+++ b/lisp/gnus/gnus-int.el
@@ -255,7 +255,8 @@ If it is down, start it up (again)."
255 ;; If this method was previously denied, we just return nil. 255 ;; If this method was previously denied, we just return nil.
256 (if (eq (nth 1 elem) 'denied) 256 (if (eq (nth 1 elem) 'denied)
257 (progn 257 (progn
258 (gnus-message 1 "Denied server %s" server) 258 (gnus-message
259 1 "Server %s previously determined to be down; not retrying" server)
259 nil) 260 nil)
260 ;; Open the server. 261 ;; Open the server.
261 (let* ((open-server-function 262 (let* ((open-server-function
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el
index 31cb9864ff2..2345c4fc141 100644
--- a/lisp/gnus/gnus-spec.el
+++ b/lisp/gnus/gnus-spec.el
@@ -91,8 +91,10 @@ text properties. This is only needed on XEmacs, as Emacs does this anyway."
91 (header gnus-tmp-from)) 91 (header gnus-tmp-from))
92 92
93(defmacro gnus-lrm-string-p (string) 93(defmacro gnus-lrm-string-p (string)
94 (if (fboundp 'string-mark-left-to-rigth) 94 (if (fboundp 'bidi-string-mark-left-to-right)
95 `(eq (aref ,string (1- (length ,string))) 8206) 95 ;; LRM, RLM, PDF characters as integers to avoid breaking Emacs
96 ;; 23.
97 `(memq (aref ,string (1- (length ,string))) '(8206 8207 8236))
96 nil)) 98 nil))
97 99
98(defvar gnus-lrm-string (if (ignore-errors (string 8206)) 100(defvar gnus-lrm-string (if (ignore-errors (string 8206))
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index bb8c719a4fd..7e63237c676 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -1499,9 +1499,6 @@ the type of the variable (string, integer, character, etc).")
1499(defvar gnus-newsgroup-forwarded nil 1499(defvar gnus-newsgroup-forwarded nil
1500 "List of articles that have been forwarded in the current newsgroup.") 1500 "List of articles that have been forwarded in the current newsgroup.")
1501 1501
1502(defvar gnus-newsgroup-recent nil
1503 "List of articles that have are recent in the current newsgroup.")
1504
1505(defvar gnus-newsgroup-expirable nil 1502(defvar gnus-newsgroup-expirable nil
1506 "Sorted list of articles in the current newsgroup that can be expired.") 1503 "Sorted list of articles in the current newsgroup that can be expired.")
1507 1504
@@ -1578,7 +1575,6 @@ This list will always be a subset of gnus-newsgroup-undownloaded.")
1578 gnus-newsgroup-saved 1575 gnus-newsgroup-saved
1579 gnus-newsgroup-replied 1576 gnus-newsgroup-replied
1580 gnus-newsgroup-forwarded 1577 gnus-newsgroup-forwarded
1581 gnus-newsgroup-recent
1582 gnus-newsgroup-expirable 1578 gnus-newsgroup-expirable
1583 gnus-newsgroup-killed 1579 gnus-newsgroup-killed
1584 gnus-newsgroup-unseen 1580 gnus-newsgroup-unseen
@@ -3743,8 +3739,6 @@ buffer that was in action when the last article was fetched."
3743 gnus-forwarded-mark) 3739 gnus-forwarded-mark)
3744 ((memq gnus-tmp-current gnus-newsgroup-saved) 3740 ((memq gnus-tmp-current gnus-newsgroup-saved)
3745 gnus-saved-mark) 3741 gnus-saved-mark)
3746 ((memq gnus-tmp-number gnus-newsgroup-recent)
3747 gnus-recent-mark)
3748 ((memq gnus-tmp-number gnus-newsgroup-unseen) 3742 ((memq gnus-tmp-number gnus-newsgroup-unseen)
3749 gnus-unseen-mark) 3743 gnus-unseen-mark)
3750 (t gnus-no-mark))) 3744 (t gnus-no-mark)))
@@ -5395,8 +5389,6 @@ or a straight list of headers."
5395 gnus-forwarded-mark) 5389 gnus-forwarded-mark)
5396 ((memq number gnus-newsgroup-saved) 5390 ((memq number gnus-newsgroup-saved)
5397 gnus-saved-mark) 5391 gnus-saved-mark)
5398 ((memq number gnus-newsgroup-recent)
5399 gnus-recent-mark)
5400 ((memq number gnus-newsgroup-unseen) 5392 ((memq number gnus-newsgroup-unseen)
5401 gnus-unseen-mark) 5393 gnus-unseen-mark)
5402 (t gnus-no-mark)) 5394 (t gnus-no-mark))
@@ -5807,8 +5799,6 @@ If SELECT-ARTICLES, only select those articles from GROUP."
5807 (memq article gnus-newsgroup-forwarded)) 5799 (memq article gnus-newsgroup-forwarded))
5808 ((eq type 'seen) 5800 ((eq type 'seen)
5809 (not (memq article gnus-newsgroup-unseen))) 5801 (not (memq article gnus-newsgroup-unseen)))
5810 ((eq type 'recent)
5811 (memq article gnus-newsgroup-recent))
5812 (t t)))) 5802 (t t))))
5813 5803
5814(defun gnus-articles-to-read (group &optional read-all) 5804(defun gnus-articles-to-read (group &optional read-all)
@@ -10985,8 +10975,6 @@ If NO-EXPIRE, auto-expiry will be inhibited."
10985 gnus-forwarded-mark) 10975 gnus-forwarded-mark)
10986 ((memq article gnus-newsgroup-saved) 10976 ((memq article gnus-newsgroup-saved)
10987 gnus-saved-mark) 10977 gnus-saved-mark)
10988 ((memq article gnus-newsgroup-recent)
10989 gnus-recent-mark)
10990 ((memq article gnus-newsgroup-unseen) 10978 ((memq article gnus-newsgroup-unseen)
10991 gnus-unseen-mark) 10979 gnus-unseen-mark)
10992 (t gnus-no-mark)) 10980 (t gnus-no-mark))
@@ -12594,12 +12582,16 @@ UNREAD is a sorted list."
12594 ;; Go through all these summary buffers and offer to save them. 12582 ;; Go through all these summary buffers and offer to save them.
12595 (when buffers 12583 (when buffers
12596 (save-excursion 12584 (save-excursion
12597 (map-y-or-n-p 12585 (if (eq gnus-interactive-exit 'quiet)
12598 "Update summary buffer %s? " 12586 (dolist (buffer buffers)
12599 (lambda (buf) 12587 (switch-to-buffer buffer)
12600 (switch-to-buffer buf) 12588 (gnus-summary-exit))
12601 (gnus-summary-exit)) 12589 (map-y-or-n-p
12602 buffers))))) 12590 "Update summary buffer %s? "
12591 (lambda (buf)
12592 (switch-to-buffer buf)
12593 (gnus-summary-exit))
12594 buffers))))))
12603 12595
12604(defun gnus-summary-setup-default-charset () 12596(defun gnus-summary-setup-default-charset ()
12605 "Setup newsgroup default charset." 12597 "Setup newsgroup default charset."
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 34759cee06f..b6be03da2b9 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -1591,7 +1591,9 @@ commands will still require prompting."
1591 :type 'boolean) 1591 :type 'boolean)
1592 1592
1593(defcustom gnus-interactive-exit t 1593(defcustom gnus-interactive-exit t
1594 "*If non-nil, require your confirmation when exiting Gnus." 1594 "*If non-nil, require your confirmation when exiting Gnus.
1595If `quiet', update any active summary buffers automatically
1596first before exiting."
1595 :group 'gnus-exit 1597 :group 'gnus-exit
1596 :type 'boolean) 1598 :type 'boolean)
1597 1599
@@ -2623,7 +2625,7 @@ a string, be sure to use a valid format, see RFC 2616."
2623 (scored . score) (saved . save) 2625 (scored . score) (saved . save)
2624 (cached . cache) (downloadable . download) 2626 (cached . cache) (downloadable . download)
2625 (unsendable . unsend) (forwarded . forward) 2627 (unsendable . unsend) (forwarded . forward)
2626 (recent . recent) (seen . seen))) 2628 (seen . seen)))
2627 2629
2628(defconst gnus-article-special-mark-lists 2630(defconst gnus-article-special-mark-lists
2629 '((seen range) 2631 '((seen range)
@@ -2689,8 +2691,7 @@ such as a mark that says whether an article is stored in the cache
2689 gnus-newsrc-last-checked-date 2691 gnus-newsrc-last-checked-date
2690 gnus-newsrc-alist gnus-server-alist 2692 gnus-newsrc-alist gnus-server-alist
2691 gnus-killed-list gnus-zombie-list 2693 gnus-killed-list gnus-zombie-list
2692 gnus-topic-topology gnus-topic-alist 2694 gnus-topic-topology gnus-topic-alist)
2693 gnus-format-specs)
2694 "Gnus variables saved in the quick startup file.") 2695 "Gnus variables saved in the quick startup file.")
2695 2696
2696(defvar gnus-newsrc-alist nil 2697(defvar gnus-newsrc-alist nil
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index 52c4b3c4290..d26df2395ec 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -168,6 +168,8 @@ textual parts.")
168 nnmail-extra-headers)))) 168 nnmail-extra-headers))))
169 169
170(deffoo nnimap-retrieve-headers (articles &optional group server fetch-old) 170(deffoo nnimap-retrieve-headers (articles &optional group server fetch-old)
171 (when group
172 (setq group (nnimap-decode-gnus-group group)))
171 (with-current-buffer nntp-server-buffer 173 (with-current-buffer nntp-server-buffer
172 (erase-buffer) 174 (erase-buffer)
173 (when (nnimap-possibly-change-group group server) 175 (when (nnimap-possibly-change-group group server)
@@ -190,7 +192,7 @@ textual parts.")
190 (let (article bytes lines size string) 192 (let (article bytes lines size string)
191 (block nil 193 (block nil
192 (while (not (eobp)) 194 (while (not (eobp))
193 (while (not (looking-at "\\* [0-9]+ FETCH.+UID \\([0-9]+\\)")) 195 (while (not (looking-at "\\* [0-9]+ FETCH.+?UID \\([0-9]+\\)"))
194 (delete-region (point) (progn (forward-line 1) (point))) 196 (delete-region (point) (progn (forward-line 1) (point)))
195 (when (eobp) 197 (when (eobp)
196 (return))) 198 (return)))
@@ -523,6 +525,8 @@ textual parts.")
523 nnimap-status-string) 525 nnimap-status-string)
524 526
525(deffoo nnimap-request-article (article &optional group server to-buffer) 527(deffoo nnimap-request-article (article &optional group server to-buffer)
528 (when group
529 (setq group (nnimap-decode-gnus-group group)))
526 (with-current-buffer nntp-server-buffer 530 (with-current-buffer nntp-server-buffer
527 (let ((result (nnimap-possibly-change-group group server)) 531 (let ((result (nnimap-possibly-change-group group server))
528 parts structure) 532 parts structure)
@@ -554,6 +558,8 @@ textual parts.")
554 (cons group article))))))) 558 (cons group article)))))))
555 559
556(deffoo nnimap-request-head (article &optional group server to-buffer) 560(deffoo nnimap-request-head (article &optional group server to-buffer)
561 (when group
562 (setq group (nnimap-decode-gnus-group group)))
557 (when (nnimap-possibly-change-group group server) 563 (when (nnimap-possibly-change-group group server)
558 (with-current-buffer (nnimap-buffer) 564 (with-current-buffer (nnimap-buffer)
559 (when (stringp article) 565 (when (stringp article)
@@ -700,7 +706,11 @@ textual parts.")
700 (incf num))) 706 (incf num)))
701 (nreverse parts))) 707 (nreverse parts)))
702 708
709(defun nnimap-decode-gnus-group (group)
710 (decode-coding-string group 'utf-8))
711
703(deffoo nnimap-request-group (group &optional server dont-check info) 712(deffoo nnimap-request-group (group &optional server dont-check info)
713 (setq group (nnimap-decode-gnus-group group))
704 (let ((result (nnimap-possibly-change-group 714 (let ((result (nnimap-possibly-change-group
705 ;; Don't SELECT the group if we're going to select it 715 ;; Don't SELECT the group if we're going to select it
706 ;; later, anyway. 716 ;; later, anyway.
@@ -750,16 +760,19 @@ textual parts.")
750 t)))) 760 t))))
751 761
752(deffoo nnimap-request-create-group (group &optional server args) 762(deffoo nnimap-request-create-group (group &optional server args)
763 (setq group (nnimap-decode-gnus-group group))
753 (when (nnimap-possibly-change-group nil server) 764 (when (nnimap-possibly-change-group nil server)
754 (with-current-buffer (nnimap-buffer) 765 (with-current-buffer (nnimap-buffer)
755 (car (nnimap-command "CREATE %S" (utf7-encode group t)))))) 766 (car (nnimap-command "CREATE %S" (utf7-encode group t))))))
756 767
757(deffoo nnimap-request-delete-group (group &optional force server) 768(deffoo nnimap-request-delete-group (group &optional force server)
769 (setq group (nnimap-decode-gnus-group group))
758 (when (nnimap-possibly-change-group nil server) 770 (when (nnimap-possibly-change-group nil server)
759 (with-current-buffer (nnimap-buffer) 771 (with-current-buffer (nnimap-buffer)
760 (car (nnimap-command "DELETE %S" (utf7-encode group t)))))) 772 (car (nnimap-command "DELETE %S" (utf7-encode group t))))))
761 773
762(deffoo nnimap-request-rename-group (group new-name &optional server) 774(deffoo nnimap-request-rename-group (group new-name &optional server)
775 (setq group (nnimap-decode-gnus-group group))
763 (when (nnimap-possibly-change-group nil server) 776 (when (nnimap-possibly-change-group nil server)
764 (with-current-buffer (nnimap-buffer) 777 (with-current-buffer (nnimap-buffer)
765 (nnimap-unselect-group) 778 (nnimap-unselect-group)
@@ -774,6 +787,7 @@ textual parts.")
774 (nnimap-command "EXAMINE DOES.NOT.EXIST")) 787 (nnimap-command "EXAMINE DOES.NOT.EXIST"))
775 788
776(deffoo nnimap-request-expunge-group (group &optional server) 789(deffoo nnimap-request-expunge-group (group &optional server)
790 (setq group (nnimap-decode-gnus-group group))
777 (when (nnimap-possibly-change-group group server) 791 (when (nnimap-possibly-change-group group server)
778 (with-current-buffer (nnimap-buffer) 792 (with-current-buffer (nnimap-buffer)
779 (car (nnimap-command "EXPUNGE"))))) 793 (car (nnimap-command "EXPUNGE")))))
@@ -801,6 +815,7 @@ textual parts.")
801 815
802(deffoo nnimap-request-move-article (article group server accept-form 816(deffoo nnimap-request-move-article (article group server accept-form
803 &optional last internal-move-group) 817 &optional last internal-move-group)
818 (setq group (nnimap-decode-gnus-group group))
804 (with-temp-buffer 819 (with-temp-buffer
805 (mm-disable-multibyte) 820 (mm-disable-multibyte)
806 (when (funcall (if internal-move-group 821 (when (funcall (if internal-move-group
@@ -829,6 +844,7 @@ textual parts.")
829 result))))))) 844 result)))))))
830 845
831(deffoo nnimap-request-expire-articles (articles group &optional server force) 846(deffoo nnimap-request-expire-articles (articles group &optional server force)
847 (setq group (nnimap-decode-gnus-group group))
832 (cond 848 (cond
833 ((null articles) 849 ((null articles)
834 nil) 850 nil)
@@ -956,6 +972,8 @@ textual parts.")
956 "delete this article now")))))) 972 "delete this article now"))))))
957 973
958(deffoo nnimap-request-scan (&optional group server) 974(deffoo nnimap-request-scan (&optional group server)
975 (when group
976 (setq group (nnimap-decode-gnus-group group)))
959 (when (and (nnimap-possibly-change-group nil server) 977 (when (and (nnimap-possibly-change-group nil server)
960 nnimap-inbox 978 nnimap-inbox
961 nnimap-split-methods) 979 nnimap-split-methods)
@@ -971,6 +989,7 @@ textual parts.")
971 flags)) 989 flags))
972 990
973(deffoo nnimap-request-update-group-status (group status &optional server) 991(deffoo nnimap-request-update-group-status (group status &optional server)
992 (setq group (nnimap-decode-gnus-group group))
974 (when (nnimap-possibly-change-group nil server) 993 (when (nnimap-possibly-change-group nil server)
975 (let ((command (assoc 994 (let ((command (assoc
976 status 995 status
@@ -981,6 +1000,7 @@ textual parts.")
981 (nnimap-command "%s %S" (cadr command) (utf7-encode group t))))))) 1000 (nnimap-command "%s %S" (cadr command) (utf7-encode group t)))))))
982 1001
983(deffoo nnimap-request-set-mark (group actions &optional server) 1002(deffoo nnimap-request-set-mark (group actions &optional server)
1003 (setq group (nnimap-decode-gnus-group group))
984 (when (nnimap-possibly-change-group group server) 1004 (when (nnimap-possibly-change-group group server)
985 (let (sequence) 1005 (let (sequence)
986 (with-current-buffer (nnimap-buffer) 1006 (with-current-buffer (nnimap-buffer)
@@ -1005,6 +1025,7 @@ textual parts.")
1005 (nnimap-wait-for-response sequence)))))) 1025 (nnimap-wait-for-response sequence))))))
1006 1026
1007(deffoo nnimap-request-accept-article (group &optional server last) 1027(deffoo nnimap-request-accept-article (group &optional server last)
1028 (setq group (nnimap-decode-gnus-group group))
1008 (when (nnimap-possibly-change-group nil server) 1029 (when (nnimap-possibly-change-group nil server)
1009 (nnmail-check-syntax) 1030 (nnmail-check-syntax)
1010 (let ((message-id (message-field-value "message-id")) 1031 (let ((message-id (message-field-value "message-id"))
@@ -1081,6 +1102,7 @@ textual parts.")
1081 result)) 1102 result))
1082 1103
1083(deffoo nnimap-request-replace-article (article group buffer) 1104(deffoo nnimap-request-replace-article (article group buffer)
1105 (setq group (nnimap-decode-gnus-group group))
1084 (let (group-art) 1106 (let (group-art)
1085 (when (and (nnimap-possibly-change-group group nil) 1107 (when (and (nnimap-possibly-change-group group nil)
1086 ;; Put the article into the group. 1108 ;; Put the article into the group.
@@ -1186,7 +1208,8 @@ textual parts.")
1186 ;; what and how to request the data. 1208 ;; what and how to request the data.
1187 (dolist (info infos) 1209 (dolist (info infos)
1188 (setq params (gnus-info-params info) 1210 (setq params (gnus-info-params info)
1189 group (gnus-group-real-name (gnus-info-group info)) 1211 group (nnimap-decode-gnus-group
1212 (gnus-group-real-name (gnus-info-group info)))
1190 active (cdr (assq 'active params)) 1213 active (cdr (assq 'active params))
1191 uidvalidity (cdr (assq 'uidvalidity params)) 1214 uidvalidity (cdr (assq 'uidvalidity params))
1192 modseq (cdr (assq 'modseq params))) 1215 modseq (cdr (assq 'modseq params)))
@@ -1262,13 +1285,15 @@ textual parts.")
1262 (active (gnus-active group))) 1285 (active (gnus-active group)))
1263 (when active 1286 (when active
1264 (insert (format "%S %d %d y\n" 1287 (insert (format "%S %d %d y\n"
1265 (gnus-group-real-name group) 1288 (decode-coding-string
1289 (gnus-group-real-name group) 'utf-8)
1266 (cdr active) 1290 (cdr active)
1267 (car active))))))))))) 1291 (car active)))))))))))
1268 1292
1269(defun nnimap-update-infos (flags infos) 1293(defun nnimap-update-infos (flags infos)
1270 (dolist (info infos) 1294 (dolist (info infos)
1271 (let* ((group (gnus-group-real-name (gnus-info-group info))) 1295 (let* ((group (nnimap-decode-gnus-group
1296 (gnus-group-real-name (gnus-info-group info))))
1272 (marks (cdr (assoc group flags)))) 1297 (marks (cdr (assoc group flags))))
1273 (when marks 1298 (when marks
1274 (nnimap-update-info info marks))))) 1299 (nnimap-update-info info marks)))))
@@ -1570,6 +1595,8 @@ textual parts.")
1570 (articles &optional limit force-new dependencies)) 1595 (articles &optional limit force-new dependencies))
1571 1596
1572(deffoo nnimap-request-thread (header &optional group server) 1597(deffoo nnimap-request-thread (header &optional group server)
1598 (when group
1599 (setq group (nnimap-decode-gnus-group group)))
1573 (if gnus-refer-thread-use-nnir 1600 (if gnus-refer-thread-use-nnir
1574 (nnir-search-thread header) 1601 (nnir-search-thread header)
1575 (when (nnimap-possibly-change-group group server) 1602 (when (nnimap-possibly-change-group group server)
diff --git a/lisp/gnus/plstore.el b/lisp/gnus/plstore.el
index 5f9a61aa843..ab78e508480 100644
--- a/lisp/gnus/plstore.el
+++ b/lisp/gnus/plstore.el
@@ -135,38 +135,38 @@ May either be a string or a list of strings.")
135 (message "%s...%d%%" handback 135 (message "%s...%d%%" handback
136 (if (> total 0) (floor (* (/ current (float total)) 100)) 0)))) 136 (if (> total 0) (floor (* (/ current (float total)) 100)) 0))))
137 137
138(defun plstore--get-buffer (this) 138(defun plstore--get-buffer (arg)
139 (aref this 0)) 139 (aref arg 0))
140 140
141(defun plstore--get-alist (this) 141(defun plstore--get-alist (arg)
142 (aref this 1)) 142 (aref arg 1))
143 143
144(defun plstore--get-encrypted-data (this) 144(defun plstore--get-encrypted-data (arg)
145 (aref this 2)) 145 (aref arg 2))
146 146
147(defun plstore--get-secret-alist (this) 147(defun plstore--get-secret-alist (arg)
148 (aref this 3)) 148 (aref arg 3))
149 149
150(defun plstore--get-merged-alist (this) 150(defun plstore--get-merged-alist (arg)
151 (aref this 4)) 151 (aref arg 4))
152 152
153(defun plstore--set-buffer (this buffer) 153(defun plstore--set-buffer (arg buffer)
154 (aset this 0 buffer)) 154 (aset arg 0 buffer))
155 155
156(defun plstore--set-alist (this plist) 156(defun plstore--set-alist (arg plist)
157 (aset this 1 plist)) 157 (aset arg 1 plist))
158 158
159(defun plstore--set-encrypted-data (this encrypted-data) 159(defun plstore--set-encrypted-data (arg encrypted-data)
160 (aset this 2 encrypted-data)) 160 (aset arg 2 encrypted-data))
161 161
162(defun plstore--set-secret-alist (this secret-alist) 162(defun plstore--set-secret-alist (arg secret-alist)
163 (aset this 3 secret-alist)) 163 (aset arg 3 secret-alist))
164 164
165(defun plstore--set-merged-alist (this merged-alist) 165(defun plstore--set-merged-alist (arg merged-alist)
166 (aset this 4 merged-alist)) 166 (aset arg 4 merged-alist))
167 167
168(defun plstore-get-file (this) 168(defun plstore-get-file (arg)
169 (buffer-file-name (plstore--get-buffer this))) 169 (buffer-file-name (plstore--get-buffer arg)))
170 170
171(defun plstore--make (&optional buffer alist encrypted-data secret-alist 171(defun plstore--make (&optional buffer alist encrypted-data secret-alist
172 merged-alist) 172 merged-alist)