(gnus-read-active-file): Ditto.
[gnus] / lisp / ChangeLog
1 2010-11-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
2
3         * gnus-start.el (gnus-get-unread-articles): Ignore totally non-existent
4         methods.
5         (gnus-read-active-file): Ditto.
6
7         * gnus-group.el (gnus-group-read-ephemeral-group): Remove superfluous
8         ": " from the prompt.
9         (gnus-group-make-group): Ditto.
10
11 2010-11-07  Glenn Morris  <rgm@gnu.org>
12
13         * gnus-bookmark.el (gnus-bookmark-bmenu-show-infos)
14         (gnus-bookmark-kill-line): Use point-at-eol.
15
16 2010-11-07  Katsumi Yamaoka  <yamaoka@jpl.org>
17
18         * gnus-gravatar.el (gnus-gravatar-transform-address): No need to skip
19         asterisks in From header.
20
21 2010-11-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
22
23         * gnus-ems.el (gnus-put-image): Use a blank text as the insertion
24         string to avoid making the From headers syntactically invalid.
25
26         * message.el (message-send-mail): Don't insert courtesy messages if the
27         message already has List-Post and List-ID messages.
28
29 2010-11-06  Glenn Morris  <rgm@gnu.org>
30
31         * gnus-art.el (gnus-treat-article): Give dynamic local variables
32         `condition', `type', `length' a prefix.
33         (gnus-treat-predicate): Update for above name changes.
34
35 2010-11-06  Andrew Cohen  <cohen@andy.bu.edu>
36
37         * nnir.el (gnus-summary-nnir-goto-thread): Remove function and
38         binding.  Handled by `gnus-summary-refer-thread' instead.
39         (nnir-warp-to-article): New backend function.
40
41         * nnimap.el (nnimap-request-thread): Force dependency updating.
42
43         * gnus-sum.el (gnus-fetch-headers): Allow more arguments.
44         (gnus-summary-refer-thread): Rework to improve thread-referral.
45
46         * gnus-int.el (gnus-warp-to-article): New function.
47
48         * gnus-sum.el (gnus-summary-article-map): Bind it.
49
50 2010-11-04  Andrew Cohen  <cohen@andy.bu.edu>
51
52         * nnir.el (gnus-summary-nnir-goto-thread): Limit work done by
53         gnus-summary-refer-thread.
54
55         * gnus-sum.el (gnus-build-all-threads): Force updating of dependency
56         headers.
57         (gnus-summary-limit-include-thread): Prevent articles in thread from
58         being cut in gnus-cut-threads.
59         (gnus-summary-refer-thread): Limit retrieved headers to those in
60         thread.
61
62 2010-11-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
63
64         * message.el (message-send-mail): Use the value of
65         message-courtesy-message from the message buffer.
66
67         * gnus-html.el (gnus-html-browse-url): Implement mailto: URLs.
68
69         * shr.el (shr-browse-url): Implement mailto: URLs.
70
71         * gnus-sum.el (gnus-summary-show-article): Take `t' as the arg to mean
72         "raw".
73
74         * nnimap.el (nnimap-find-article-by-message-id): Don't EXAMINE a group
75         if it's already selected.
76
77         * mm-decode.el (mm-save-part): Put the entire path in the `M-n' slot.
78
79 2010-11-04  Katsumi Yamaoka  <yamaoka@jpl.org>
80
81         * shr.el (shr-tag-img): Use string-width and truncate-string-to-width
82         to measure the length and truncate alt text.
83
84 2010-11-03  Glenn Morris  <rgm@gnu.org>
85
86         * nndiary.el (nndiary-generate-nov-databases-1)
87         (nndiary-generate-active-info): Rename dynamic variable `files' to
88         something less generic.
89
90 2010-11-03  Andrew Cohen  <cohen@andy.bu.edu>
91
92         * nnir.el (nnir-request-move-article): Call the underlying backend to
93         move articles from nnir.
94
95 2010-11-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
96
97         * gnus-cite.el (gnus-article-natural-long-line-p): Remove.
98
99 2010-11-02  Julien Danjou  <julien@danjou.info>
100
101         * nnir.el: Remove wais support.
102
103 2010-11-02  Glenn Morris  <rgm@gnu.org>
104
105         * gnus-html.el: Reorder requirements to quieten compiler.
106
107 2010-11-02  Katsumi Yamaoka  <yamaoka@jpl.org>
108
109         * gnus-cite.el (gnus-article-fill-cited-article): Make fill work
110         properly for XEmacs as well.
111         (gnus-article-fill-cited-article, gnus-article-foldable-buffer)
112         (gnus-article-natural-long-line-p): Use window-width rather than
113         frame-width.
114
115 2010-11-01  Andrew Cohen  <cohen@andy.bu.edu>
116
117         * nnir.el (nnir-run-gmane): Inhibit demon.  Return nil if no messages.
118         (nnir-read-parms): Don't modify query.
119         (nnir-run-query): Add ability to search topic on current line.
120         (nnir-get-active): Clean up.
121
122 2010-11-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
123
124         * gnus-cite.el (gnus-article-foldable-buffer): Protect against
125         degenerate articles.
126
127         * gnus-sum.el (gnus-print-buffer): Rewrite to use with-temp-buffer.
128         (gnus-print-buffer): Just print the buffer as is, without any copying
129         to a buffer and then re-highlighting.
130
131         * nnimap.el (nnimap-request-group): Store the new updated info.
132         (nnimap-request-group): Select the group when we don't know whether it
133         exists or not.
134
135         * gnus-start.el (gnus-ask-server-for-new-groups): Return the new
136         groups.
137
138         * gnus-group.el (gnus-group-find-new-groups): Display all the new
139         groups.
140
141         * gnus-start.el (gnus-find-new-newsgroups): Return the list of new
142         groups.
143
144         * gnus-cite.el (gnus-article-fill-cited-article): Minimize the
145         long-lines case by only filling the long lines.
146
147         * nnimap.el (nnimap-parse-line): Don't bug out oddly formed replies
148         (bug #7311).
149
150 2010-11-01  Katsumi Yamaoka  <yamaoka@jpl.org>
151
152         * shr.el: No need to declare `declare-function' since shr.el is for
153         only Emacsen that provide `libxml-parse-html-region'.
154
155         * dgnushack.el: Remove `(defvar iswitchb-temp-buflist)', that is
156         effective only in a file it is referred to.
157
158 2010-11-01  Glenn Morris  <rgm@gnu.org>
159
160         * mm-util.el (gnus-completing-read): Autoload.
161         (mm-read-coding-system): Simplify Emacs definition.
162
163         * nnmail.el (gnus-activate-group):
164         * nnimap.el (gnutls-negotiate):
165         * nntp.el (netrc-parse): Fix declarations.
166
167 2010-11-01  Katsumi Yamaoka  <yamaoka@jpl.org>
168
169         * gnus-util.el (gnus-string-match-p): New function, that is an alias to
170         string-match-p in Emacs >=23.
171
172         * gnus-msg.el (gnus-configure-posting-styles)
173         * nnir.el (nnir-run-gmane): Use gnus-string-match-p.
174
175 2010-11-01  Glenn Morris  <rgm@gnu.org>
176
177         * nnir.el (declare-function): Add compat stub.
178         (mm-url-insert, mm-url-encode-www-form-urlencoded): Declare.
179         (nnir-run-gmane): Require 'mm-url.
180
181         * mm-util.el (mm-string-to-multibyte): Simplify.
182
183         * shr.el (declare-function): Add compat stub.
184         (url-cache-create-filename): Declare.
185         (mm-disable-multibyte, widget-convert-button): Autoload.
186
187         * smime.el (ldap-search): Declare.
188         (smime-cert-by-ldap-1): Require ldap on Emacs.
189
190         * nnimap.el: Require nnmail, and gnus-sum when compiling.
191         (nnimap-keepalive): Use gnus-float-time.
192
193         * mail-source.el (nnheader-message, gnus-float-time): Autoload.
194         (mail-source-delete-crash-box): Use gnus-float-time.
195
196         * gnus-dired.el (gnus-completing-read): Autoload.
197
198         * mm-view.el (gnus-rescale-image): Autoload.
199
200         * mm-decode.el (gnus-completing-read, gnus-blocked-images): Autoload.
201
202         * gnus.el (gnus-sloppily-equal-method-parameters): Move defn before use.
203
204         * sieve-manage.el: Require 'cl when compiling.
205
206         * gnus-util.el (iswitchb-read-buffer): Declare rather than autoload.
207         (gnus-iswitchb-completing-read): Require iswitchb.
208         (gnus-select-frame-set-input-focus): Silence compiler.
209
210 2010-10-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
211
212         * message.el (message-subject-trailing-was-query): Change default to t,
213         since I think that's what most people want.
214
215         * nnimap.el (nnimap-request-accept-article): Erase buffer before
216         appending for easier debugging.
217         (nnimap-wait-for-connection): Take a regexp.
218         (nnimap-request-accept-article): Wait for the continuation line before
219         sending anything unless we're streaming.
220
221         * gnus-art.el (gnus-treat-article): Only inhibit body washing, and
222         leave the header washing to take place.
223
224 2010-10-31  Daniel Dehennin  <daniel.dehennin@baby-gnu.org>
225
226         * gnus-msg.el (gnus-configure-posting-styles): Permit the use of
227         regular expression match and replace in posting styles.
228
229 2010-10-31  Andrew Cohen  <cohen@andy.bu.edu>
230
231         * nnir.el (gnus-group-make-nnir-group,nnir-run-query): Allow searching
232         an entire server.
233         (nnir-get-active): New function.
234         (nnir-run-imap): Use it.
235         (nnir-run-gmane): Who knew, gmane search returns an article score!
236
237         * gnus-srvr.el (gnus-server-mode-map): add binding "G" to search the
238         server on the current line with nnir.
239
240 2010-10-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
241
242         * gnus-cite.el (gnus-article-foldable-buffer): Refactor out.
243         (gnus-article-foldable-buffer): Don't fold regions that have a ragged
244         left edge.
245         (gnus-article-foldable-buffer): Skip past the prefix when determining
246         raggedness.
247
248         * gnus-sum.el (gnus-summary-show-article): Add `C-u C-u g' for showing
249         the raw article, and change `C-u g' to show the article without doing
250         treatments.
251
252         * gnus-art.el (gnus-mime-display-alternative): Actually pass the type
253         on to `gnus-treat-article'.
254         (gnus-inhibit-article-treatments): New variable.
255
256         * gnus.el: Autoload gnus-article-fill-cited-long-lines.
257
258         * gnus-art.el (gnus-treatment-function-alist): Have
259         gnus-treat-fill-long-lines point to gnus-article-fill-cited-long-lines.
260         (gnus-treat-fill-long-lines): Change default to fill all text/plain
261         sections.
262
263         * gnus-cite.el (gnus-article-fill-cited-article): Remove unused `force'
264         parameter.
265         (gnus-article-fill-cited-long-lines): New function.
266         (gnus-article-fill-cited-article): Allow filling only long sections.
267
268         * shr.el (shr-find-fill-point): Don't break lines between punctuation
269         and non-punctuation (like after the apostrophe in "'We").
270
271         * gnus-sum.el (gnus-summary-select-article): Make sure
272         gnus-original-article-buffer is alive.
273
274         * nndoc.el (nndoc-dissect-buffer): Reverse the order of the articles to
275         reflect the order they're in in the digest.
276
277         * gnus.el (gnus-group-startup-message): Move point to the start of the
278         buffer.
279
280         * nnimap.el (nnimap-capability): New function.
281         (nnimap-open-connection): Only send AUTHENTICATE PLAIN if LOGINDISABLED
282         is set.
283
284 2010-10-31  David Engster  <dengste@eml.cc>
285
286         * nnmairix.el (nnmairix-get-valid-servers): Return list of strings to
287         conform with changes to gnus-completing-read.
288
289 2010-10-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
290
291         * shr.el (shr-tag-img): Output "*" instead of "[img]".
292
293 2010-10-30  Andrew Cohen  <cohen@andy.bu.edu>
294
295         * nnir.el move defvar, defcustom around to keep file organized and keep
296         byte-compiler quiet.
297         (nnir-read-parms): accept search-engine as arg.
298         (nnir-run-query): pass search-engine as arg.
299         (nnir-search-engine): remove.
300
301 2010-10-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
302
303         * shr.el (shr-generic): The text nodes should be text, not :text.
304
305         * nnir.el (nnir-search-engine): Ressurect variable, since it's used
306         later in the file.
307
308 2010-10-30  Andrew Cohen  <cohen@andy.bu.edu>
309
310         * nnir.el: general clean up. allow searching with multiple
311         engines. allow separate extra-parameters for each engine. batch queries
312         when possible.
313         (nnir-imap-default-search-key,nnir-method-default-engines): add
314         customize interface.
315         (nnir-run-gmane): new engine.
316         (nnir-engines): use it. qualify all prompts with engine name.
317         (nnir-search-engine): remove global variable.
318         (nnir-run-hyrex): restore for now.
319         (nnir-extra-parms,nnir-search-history): new variables.
320         (gnus-group-make-nnir-group): use them.
321         (nnir-group-server): remove in favor of gnus-group-server.
322         (nnir-request-group): avoid searching twice.
323         (nnir-sort-groups-by-server): new function.
324
325 2010-10-30  Julien Danjou  <julien@danjou.info>
326
327         * gnus-group.el: Remove gnus-group-fetch-control.
328
329         * gnus-start.el (gnus-find-new-newsgroups): Remove
330         gnus-check-first-time-used.
331
332         * gnus.el: Remove gnus-backup-default-subscribed-newsgroups.
333
334 2010-10-30  Knut Anders Hatlen  <kahatlen@gmail.com>  (tiny change)
335
336         * nnimap.el (nnimap-update-info): Allow 'ticked and other flags to be
337         set on groups that don't have \* permanentflags.
338
339 2010-10-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
340
341         * shr.el (shr-tag-span): Drop colorisation of regions since we don't
342         control the background color.
343         (shr-tag-img): Ignore very small web bug type images.
344         (shr-put-image): Add help-echo alt texts to the images.
345         (shr-tag-video): Show the video poster image.
346
347 2010-10-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
348
349         * shr.el (shr-table-depth): New variable.
350         (shr-tag-table-1): Only insert the images after the top-level table.
351
352         * nnimap.el (nnimap-split-incoming-mail): Fix typo.
353
354         * gnus-util.el (gnus-list-memq-of-list): New function.
355
356         * nnimap.el (nnimap-split-incoming-mail): Note that the INBOX has been
357         selected.
358         (nnimap-unsplittable-articles): New slot.
359         (nnimap-new-articles): Use it.
360
361 2010-10-29  Stephen Berman  <stephen.berman@gmx.net>  (tiny change)
362
363         * gnus-group.el (gnus-group-get-new-news-this-group): Don't have point
364         move to the previous line on `M-g'.
365
366 2010-10-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
367
368         * gnus-msg.el (gnus-inews-do-gcc): Don't have the backends do the slow
369         *-request-group, which seems unnecessary.
370
371         * nnimap.el (nnimap-quote-specials): Function copied over from
372         imap.el.
373         (nnimap-open-connection): Use AUTHENTICATE PLAIN on servers that say
374         they support that.  Suggested by Tom Regner.
375
376 2010-10-29  Julien Danjou  <julien@danjou.info>
377
378         * gnus-sum.el (gnus-summary-delete-marked-as-read): Remove obsolete
379         defalias.
380         (gnus-summary-delete-marked-with): Remove obsolete defalias.
381
382         * gnus.el: Remove `gnus-nntp-service' variable.
383         (gnus-secondary-servers): Make obsolete.
384         (gnus-nntp-server): Make obsolete.
385
386         * gnus-start.el (gnus-1): Remove x-splash calls.
387
388         * gnus-ems.el (gnus-x-splash): Remove.
389
390         * gnus.el (gnus-group-startup-message): Simplify/update code.
391
392         * gnus-xmas.el (gnus-xmas-define): Remove unused gnus-characterp
393         definition.
394
395         * gnus-group.el (gnus-group-make-tool-bar): Check for display graphic
396         capability before doing anything.
397         (gnus-group-insert-group-line): Remove useless
398         gnus-group-remove-excess-properties.
399
400 2010-10-29  Katsumi Yamaoka  <yamaoka@jpl.org>
401
402         * gnus-art.el (gnus-article-goto-part): Work for article narrowed by ^L.
403
404 2010-10-28  Lars Magne Ingebrigtsen  <larsi@gnus.org>
405
406         * gnus-sum.el (gnus-summary-rescan-group): Try to restore the window
407         config after reselecting.
408
409 2010-10-28  Julien Danjou  <julien@danjou.info>
410
411         * shr.el (shr-put-image): Use point even if only inserting text.
412         (shr-put-image): Save excursion when inserting alt text on non-graphic
413         display, so the behaviour is the same when we are on a graphic display.
414
415         * nnir.el (nnir-run-swish-e): Remove hyrex support.
416
417 2010-10-28  Katsumi Yamaoka  <yamaoka@jpl.org>
418
419         * gnus-art.el (gnus-article-jump-to-part): Error on no part; fix prompt.
420         (gnus-mime-copy-part): Check coding system, not charset.
421         (gnus-mime-view-part-externally): Never remove part.
422         (gnus-mime-view-part-internally): Don't remove part here.
423         (gnus-article-part-wrapper): Make sure MIME tag is visible.
424         (gnus-article-goto-part): Go to displayed or preferred subpart if it is
425         multipart/alternative.
426
427         * mm-decode.el (mm-display-part): Take optional arg `force'.
428
429 2010-10-26  Julien Danjou  <julien@danjou.info>
430
431         * gnus-group.el (gnus-group-default-list-level): Add this function to
432         compute the default list level.
433         (gnus-group-default-list-level): Add possibility to use a function.
434
435 2010-10-27  Katsumi Yamaoka  <yamaoka@jpl.org>
436
437         * mm-decode.el (mm-shr): Add undisplayer to MIME handle.
438
439         * gnus-group.el (gnus-group-completing-read)
440         (gnus-read-ephemeral-bug-group): Replace replace-regexp-in-string with
441         gnus-replace-in-string.
442
443 2010-10-26  Katsumi Yamaoka  <yamaoka@jpl.org>
444
445         * shr.el (shr-tag-div): Added.
446
447         * lpath.el: Fbind current-idle-time for XEmacs 21.4 and SXEmacs 22.1.
448
449 2010-10-25  Julien Danjou  <julien@danjou.info>
450
451         * gnus-util.el: Remove `gnus-with-local-quit'.
452
453         * gnus-demon.el (gnus-demon-init): Use run-with-idle-timer function.
454
455 2010-10-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
456
457         * gnus-sum.el (gnus-summary-select-article): Fix type error in checking
458         the original article buffer.
459
460 2010-10-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
461
462         * nnimap.el (nnimap-request-head): New function.
463         (nnimap-request-move-article): Try to be slighly faster by not
464         requesting the entire message when moving.
465         (nnimap-transform-headers): Don't bug out on bodiless articles.
466         (nnimap-send-command): Have no outstanding messages if the IMAP server
467         doesn't support streaming.
468         (nnimap-transform-headers): Fold {quoted} strings more sloppily.
469
470 2010-10-24  Julien Danjou  <julien@danjou.info>
471
472         * message.el (message-default-headers): Fix type.
473
474 2010-10-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
475
476         * gnus-html.el (gnus-html-prefetch-images): Decode entities before
477         prefetching images.
478
479         * gnus-sum.el (gnus-group-make-articles-read): Propagate marks to the
480         backend for unknown groups.  This is mainly useful for nnimap groups.
481
482         * gnus-agent.el (gnus-agent-fetch-group): Don't download stuff if the
483         group isn't covered by the agent.
484
485 2010-10-22  Andrew Cohen  <cohen@andy.bu.edu>
486
487         * nnir.el (nnir-method-default-engines): new variable.
488         (nnir-run-query): use it.
489         (nnir-group-mode-hook): remove key binding and move to gnus-group.el.
490         (gnus-summary-nnir-goto-thread): change group if needed.
491
492         * gnus-group.el (gnus-group-group-map): add key binding for
493         gnus-group-make-nnir-group.
494
495 2010-10-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
496
497         * shr.el (shr-tag-object): Added.
498
499         * gnus-sum.el (gnus-summary-select-article): Make sure we have the
500         original article buffer live.
501         (gnus-summary-select-article-buffer): Mention
502         gnus-widen-article-buffer.
503
504 2010-10-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
505
506         * shr.el (shr-tag-strong): Added.
507
508 2010-10-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
509
510         * gnus-group.el (gnus-group-completing-read): Remove all newlines from
511         group names.  They mess up the group buffer badly.
512
513         * shr.el (shr-tag-img): Don't bug out on images that don't have a SRC.
514
515         * gnus-group.el (gnus-group-mark-group): Use gnus-group-position-point
516         instead of the summary one.
517
518 2010-10-22  Katsumi Yamaoka  <yamaoka@jpl.org>
519
520         * mml.el (mml-preview): Work properly when editing article.
521
522         * gnus-start.el (gnus-read-active-file-1): Don't add method to
523         gnus-have-read-active-file if it's already been in.
524
525 2010-10-22  Tom Tromey  <tromey@redhat.com>
526
527         * gnus-group.el (gnus-group-unsubscribe-group): Fix args passed to
528         gnus-group-completing-read.
529
530 2010-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
531
532         * message.el (message-mode-map): Don't bind M-; to comment region, to
533         allow the global comment-dwim to work.
534
535 2010-10-21  Julien Danjou  <julien@danjou.info>
536
537         * message.el (message-setup-1): Allow message-default-headers to be a
538         function.
539
540 2010-10-21  Katsumi Yamaoka  <yamaoka@jpl.org>
541
542         * shr.el (shr-tag-table): Simplify.
543
544 2010-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
545
546         * gnus-html.el (gnus-html-prefetch-images): Only prefetch http images
547         to avoid trying to snarf invalid stuff.
548
549         * gnus-sum.el (gnus-summary-edit-article-done): Bind free variable.
550
551         * gnus.el (gnus-message-archive-group): Quote value.
552         (gnus-message-archive-group): Mark as changed.
553
554         * shr.el (shr-add-font): Don't put the font properties on the newline
555         or the indentation.
556
557         * message.el (message-fix-before-sending): Change options when sending
558         non-printable characters.
559
560         * gnus.el (gnus-message-archive-method): Change the default to
561         monthly outgoing groups.
562
563         * gnus-sum.el (gnus-summary-edit-article-done): Try to replace articles
564         that have gotten new numbers.
565
566         * nnimap.el (nnimap-request-replace-article): New function.
567
568 2010-10-21  Katsumi Yamaoka  <yamaoka@jpl.org>
569
570         * nnrss.el (nnrss-wash-html-in-text-plain-parts): Remove.
571         (nnrss-request-article): Don't use special html washing code.
572
573 2010-10-20  Katsumi Yamaoka  <yamaoka@jpl.org>
574
575         * shr.el (shr-tag-table): Remove useless nconc.
576
577 2010-10-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
578
579         * gnus-art.el (article-wash-html): Simplify and remove the charset
580         stuff.  Use the normal html rendering code instead of the special html
581         washing code.
582
583         * mm-view.el (mm-text-html-renderer-alist): Add the `shr' and
584         `gnus-w3m' symbols.
585         (mm-text-html-washer-alist): Removed.
586
587         * mm-decode.el (mm-inline-text-html-renderer): Removed.
588         (mm-inline-media-tests): Removed use.
589         (mm-text-html-renderer): Change default to the `shr' symbol.
590
591         * mm-view.el (mm-inline-text-html): Removed use.
592
593         * gnus-art.el (gnus-blocked-images): New function.  Allow the
594         `gnus-blocked-images' to be a function.
595         (gnus-article-wash-function): Removed.
596
597 2010-10-20  Julien Danjou  <julien@danjou.info>
598
599         * spam.el (spam-list-of-processors): Mark as obsolete.
600
601         * nnimap.el (nnimap-request-article): Fix BODYSTRUCTURE retrieval.
602         (nnimap-insert-partial-structure): Fix boundary detection.
603
604 2010-10-20  Andreas Seltenreich  <seltenreich@gmx.de>
605
606         * gnus-draft.el (gnus-draft-check-draft-articles): Don't unnecessarily
607         run file-truename on remote files.  This can be expensive and even
608         prevent one from editing drafts if some unrelated buffer has a stale
609         connection.
610
611 2010-10-20  Katsumi Yamaoka  <yamaoka@jpl.org>
612
613         * shr.el (shr-find-fill-point): Shorten line if the preceding char is
614         kinsoku-eol regardless of shr-kinsoku-shorten.
615         (shr-tag-table-1): Rename from shr-tag-table; make it a subroutine.
616         (shr-tag-table): Support caption, thead, and tfoot.
617
618 2010-10-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
619
620         * shr.el (shr-find-fill-point): Don't leave blanks at the start of some
621         lines.
622         (shr-save-contents): New command and keystroke.
623
624         * nndoc.el (nndoc-type-alist): Add git support.
625         (nndoc-git-type-p): New function.
626         (nndoc-transform-git-article): Ditto.
627         (nndoc-transform-git-headers): Ditto.
628         (nndoc-transform-git-headers): Generate Subject headers.
629
630         * shr.el (shr-parse-style): New function.
631         (shr-tag-span): Ditto.
632
633         * nnmairix.el (nnmairix-summary-mode-hook): Move nnmairix's `$' command
634         to `G G' to avoid collisions.
635
636 2010-10-19  Katsumi Yamaoka  <yamaoka@jpl.org>
637
638         * shr.el: Load kinsoku if necessary.
639         (shr-kinsoku-shorten): New internal variable.
640         (shr-find-fill-point): Make kinsoku shorten text line if
641         shr-kinsoku-shorten is bound to non-nil.
642         (shr-tag-table): Bild shr-kinsoku-shorten to t; refer to
643         shr-indentation too when testing if table is wider than frame width.
644         (shr-insert-table): Use `string-width' instead of `length' to measure
645         text width.
646         (shr-insert-table-ruler): Make sure indentation is done at bol.
647
648 2010-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>
649
650         * nnimap.el (nnimap-request-move-article, nnimap-parse-line)
651         (nnimap-process-expiry-targets): Use unibyte for buffers that hold
652         undecoded network data.
653
654 2010-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
655
656         * gnus-agent.el (gnus-agent-toggle-plugged): Use the right minor mode
657         name in the mode line spec so that the mode line menu works
658         (bug #2431).
659
660         * message.el (message-get-reply-headers): If we're fed `to-address',
661         then always use that.
662
663         * gnus-art.el (gnus-article-make-menu-bar): The article/group menus
664         aren't so wide as to need to switch off the edit menu.
665
666         * gnus-delay.el (gnus-delay-article): Remove superfluous `group'
667         binding.  Suggested by Leo <sdl.web@gmail.com> (bug #6613).
668
669         * nnimap.el (nnimap-request-group): Don't SELECT the group twice on
670         `M-g'.
671         (nnimap-update-info): Update flags/read marks even if \* isn't part of
672         the permanent marks.
673
674 2010-10-18  Andrew Cohen  <cohen@andy.bu.edu>
675
676         * gnus-registry.el (gnus-registry-split-fancy-with-parent):
677         Splitting according to references/in-reply-to obeys the ignore-groups
678         variable, while splitting by sender and subject do not.
679
680 2010-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
681
682         * gnus-art.el (gnus-article-dumbquotes-map): Make into a char/string
683         alist, so that we can look for non-Unicode chars.
684         (article-translate-strings): Allow both character and string maps.
685
686 2010-10-18  Katsumi Yamaoka  <yamaoka@jpl.org>
687
688         * shr.el (shr-insert): Don't insert space behind a wide character
689         categorized as kinsoku-bol, or between characters both categorized as
690         nospace.
691
692 2010-10-16  Andrew Cohen  <cohen@andy.bu.edu>
693
694         * gnus-sum.el (gnus-summary-refer-thread): Bug fix. Add the thread
695         headers to gnus-newsgroup-headers.
696
697 2010-10-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
698
699         * shr.el (shr-tag-img): Don't align images -- since we're not
700         rescaling, this often leads to ugly displays.
701
702 2010-10-15  Andrew Cohen  <cohen@andy.bu.edu>
703
704         * gnus-sum.el (gnus-summary-refer-thread): Unconditionally ignore
705         duplicates.
706
707 2010-10-15  Kan-Ru Chen  <kanru@kanru.info>  (tiny change)
708
709         * gnus-diary.el (gnus-diary-check-message): Fix gnus-completing-read
710         call.
711
712 2010-10-15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
713
714         * gnus.el: Autoload gnus-html-show-images.
715
716         * nnimap.el: Use nnheader-message throughout.
717
718         * shr.el (shr-tag-img): Ignore images with no data.
719
720 2010-10-15  Julien Danjou  <julien@danjou.info>
721
722         * mml.el (mml-generate-mime-1): Add `mml-enable-flowed' variable to add
723         a possibility to disable format=flow encoding when using hard newlines.
724
725 2010-10-15  Katsumi Yamaoka  <yamaoka@jpl.org>
726
727         * shr.el (shr-insert): Remove space inserted before or after a
728         breakable character or at the beginning or the end of a line.
729         (shr-find-fill-point): Do kinsoku; find the second best point or give
730         it up if there's no breakable point.
731
732 2010-10-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
733
734         * nnimap.el (nnimap-open-connection): Message when opening connection
735         for debugging purposes.
736
737         * gnus-art.el (gnus-article-setup-buffer): Set article mode truncation
738         on every setup buffer call to allow this to change from article to
739         article.
740
741         * shr.el (shr-tag-table): Experimental feature: Truncate lines in
742         buffers where we have a wide table.
743
744 2010-10-14  Andrew Cohen  <cohen@andy.bu.edu>
745
746         * gnus-sum.el (gnus-summary-refer-thread): Implement a version that
747         uses *-request-thread.
748
749 2010-10-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
750
751         * nnimap.el (nnimap-open-connection): Remove %s from openssl
752         incantation, which is no longer valid.
753
754 2010-10-14  Julien Danjou  <julien@danjou.info>
755
756         * shr.el: Fix defcustom type (char -> character).
757
758 2010-10-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
759
760         * nnimap.el (nnimap-open-connection): tls-program should be a list of
761         programs.
762
763 2010-10-14  Julien Danjou  <julien@danjou.info>
764
765         * shr.el (shr-tag-a): Use url-link as widget type.
766
767         * gnus-group.el (gnus-group-insert-group-line): Fix group argument to
768         `gnus-group-get-icon'.
769
770 2010-10-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
771
772         * nnimap.el (nnimap-close-server): Forget the nnimap data on close.
773         This should make server editing work better.
774
775         * shr.el (shr-find-fill-point): Don't inloop on indented text.
776
777         * tls.el (tls-program): Remove spurious %s from openssl.
778
779         * nnimap.el (nnimap-open-connection): Fix open-tls-stream call.
780         (nnimap-parse-flags): Fix regexp.
781
782         * shr.el (shr-find-fill-point): Use a filling algorithm that should
783         probably work for CJVK text, too.
784
785         * nnimap.el (nnimap-extend-tls-programs): Removed.
786         (nnimap-open-connection): Bind STARTTLS to openssl explicitly.
787
788         * tls.el (tls-starttls-switches): Remove starttls hack.
789         (open-tls-stream): Ditto.
790         (tls-find-starttls-argument): Ditto.
791
792 2010-10-13  Julien Danjou  <julien@danjou.info>
793
794         * nnimap.el (nnimap-parse-flags): Be more strict when looking for FETCH
795         responses.
796
797 2010-10-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
798
799         * mm-decode.el (mm-shr): Allow use from non-Gnus users.
800
801         * gnus-spec.el (gnus-parse-simple-format): princ doesn't really insert
802         anything in Emacs.
803
804         * shr.el (shr-current-column): Remove buggy and unnecessary function.
805
806 2010-10-13  Julien Danjou  <julien@danjou.info>
807
808         * shr.el (shr-width): Make shr-width a defcustom with default to
809         fill-column.
810         (shr-tag-img): Use shr-width rather than fill-column.
811
812 2010-10-13  Katsumi Yamaoka  <yamaoka@jpl.org>
813
814         * dgnushack.el (byte-optimize-apply)
815         * gnus-dired.el (gnus-dired-attach): Silence XEmacs 21.5 when compiling.
816
817         * gnus-gravatar.el (gnus-gravatar-transform-address): Adjust avatars'
818         position when (X-)Faces exist.
819         (gnus-treat-from-gravatar, gnus-treat-mail-gravatar): Force displaying
820         avatars when called interactively.
821
822 2010-10-12  Katsumi Yamaoka  <yamaoka@jpl.org>
823
824         * gnus-gravatar.el (gnus-gravatar-too-ugly): Don't test if
825         gnus-article-x-face-too-ugly is bound.
826
827 2010-10-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
828
829         * rfc2231.el (rfc2231-parse-string): Ignore repeated parts.
830
831         * nnimap.el (nnimap-request-rename-group): Unselect by selecting a
832         mailbox that doesn't exist.
833
834 2010-10-12  Julien Danjou  <julien@danjou.info>
835
836         * shr.el (shr-tag-img): Encode URL properly when retrieving.
837         (shr-get-image-data): Encode URL properly when fetching from cache.
838         (shr-tag-img): Use aligned-to spaces to align correctly images.
839
840         * gnus-gravatar.el (gnus-gravatar-insert): Check if buffer is alive
841         before inserting the Gravatar.
842
843         * shr.el (shr-tag-img): Add align attribute support for <img>.
844
845 2010-10-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
846
847         * gnus-gravatar.el (gnus-art): Required.
848
849         * gnus-sum.el (gnus-summary-mark-as-unread-forward)
850         (gnus-summary-mark-as-unread-backward, gnus-summary-mark-as-unread):
851         Remove long obsoleted functions.
852
853 2010-10-11  Katsumi Yamaoka  <yamaoka@jpl.org>
854
855         * lpath.el: Fbind gnutls-negotiate for Emacs 22 and XEmacsen.
856
857         * nnimap.el (gnutls-negotiate): Silence the byte compiler.
858
859         * gnus-art.el, gnus-cache.el, gnus-fun.el, gnus-group.el:
860         gnus-picon.el, gnus-spec.el, gnus-sum.el, gnus-util.el, gnus.el:
861         hashcash.el, imap.el, mail-source.el, message.el, mm-bodies.el:
862         mm-decode.el, mm-extern.el, mm-util.el, mm-view.el, mml-smime.el:
863         mml.el, mml1991.el, mml2015.el, nnfolder.el, nnheader.el, nnmail.el:
864         nnmaildir.el, nnrss.el, nntp.el, pgg-parse.el, pgg.el, rfc1843.el:
865         sieve-manage.el, smime.el, spam.el: Fix comment for declare-function.
866
867 2010-10-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
868
869         * nnimap.el (nnimap-request-rename-group): Select group read-only
870         before renaming it.
871
872         * shr.el (shr-insert): Fix up the white space only regexp.
873
874         * nnimap.el (nnimap-transform-split-mail): Not all articles have
875         bodies.  Protect against this.  Reported by Michael Welsh Duggan.
876
877         * shr.el (shr-current-column): New function.
878         (shr-find-fill-point): New function.
879
880 2010-10-11  Michael Welsh Duggan  <md5i@md5i.com>  (tiny change)
881
882         * sieve-manage.el (sieve-manage-open): Allow port names as well as port
883         numbers.
884
885 2010-10-11  Julien Danjou  <julien@danjou.info>
886
887         * shr.el (shr-hr-line): Add.
888         (shr-tag-hr): Use shr-hr-line to specify which character to use to
889         display hr lines.
890         (shr-max-columns): Do not change state to nil if we just inserting
891         spaces.
892
893 2010-10-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
894
895         * gnus-topic.el (gnus-topic-read-group): If after the last group,
896         select the last group.
897
898 2010-10-11  Teodor Zlatanov  <tzz@lifelogs.com>
899
900         * gnus-int.el (gnus-run-hook-with-args): Autoload from gnus-util.el.
901
902 2010-10-10  Dan Nicolaescu  <dann@ics.uci.edu>
903
904         * dig.el (dig-mode-map): Declare and define in one step.
905
906 2010-10-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
907
908         * nnimap.el (nnimap-update-qresync-info): \Flagged messages are read
909         for Gnus.
910         (nnimap-retrieve-group-data-early): utf7-encode the group parameters.
911         (nnimap-update-qresync-info): Mark \Seen articles as read.
912
913         * gnus-sum.el (gnus-summary-set-local-parameters): Ignore the `active'
914         non-variable, too.
915
916         * nnimap.el (nnimap-open-connection): Use gnutls STARTTLS, if
917         available.
918         (nnimap-update-info): Rely more on the current active than the param
919         active to avoid marking articles as read too much.
920
921         * auth-source.el (auth-source-create): Use (user-login-name) for the
922         user name default.
923
924         * nnimap.el (nnimap-update-info): If the server doesn't return any
925         useful info, just use the previous info.
926         (nnimap-update-info): Prefer old info over start-article.
927         (nnimap-update-qresync-info): Finish implementing QRESYNC.
928
929 2010-10-10  Andrew Cohen  <cohen@andy.bu.edu>
930
931         * nnir.el (autoload): Clean up autoloads.
932         (nnir-imap-default-search-key): Renamed from
933         nnir-imap-search-field. Use key rather than value.
934         (nnir-imap-search-other): New variable.
935         (nnir-read-parm): Use it.
936         (nnir-imap-expr-to-imap): Use %S rather than imap-quote-specials.
937         (gnus-summary-nnir-goto-thread): Modify to work with imap.
938
939 2010-10-10  Stefan Monnier  <monnier@iro.umontreal.ca>
940
941         * nnimap.el (nnimap-wait-for-response): If the user hits `C-g', kill
942         the process, too.
943
944 2010-10-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
945
946         * spam.el (gnus-summary-mode-map): Bind to "$".  Suggested by Russ
947         Allbery.
948
949         * shr.el: Rework the way things are indented by <li> slightly.
950
951         * gnus.el (gnus-group-set-parameter): Fix typo.
952
953         * nnimap.el: Start implementing QRESYNC support.
954
955 2010-10-09  Julien Danjou  <julien@danjou.info>
956
957         * nnir.el (nnir-engines): Fix too many arguments.
958
959 2010-10-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
960
961         * nnmail.el (nnmail-expiry-target-group): Say that every expiry target
962         group is the "last", so that the backends like nnfolder actually save
963         their folders.
964
965         * nnimap.el (nnimap-open-connection): If we have gnutls loaded, then
966         try to use that for the tls stream.
967         (nnimap-retrieve-group-data-early): Rework the marks code to heed
968         UIDVALIDITY and find out which groups are read-only and not.
969         (nnimap-get-flags): Use the same marks parsing code as the rest of
970         nnimap.
971
972 2010-10-09  Julien Danjou  <julien@danjou.info>
973
974         * nnir.el (nnir-read-parm): Fix call to gnus-completing-read.
975
976         * gnus-gravatar.el (gnus-gravatar-transform-address): Error errors when
977         retrieving gravatars.
978
979         * shr.el (shr-table-corner): Add.
980         (shr-table-line): Add.
981         (shr-insert-table-ruler): Use the above defcustoms to insert tables.
982
983 2010-10-08  Julien Danjou  <julien@danjou.info>
984
985         * mm-decode.el (mm-text-html-renderer): Add mm-shr in choice list.
986
987 2010-10-08  Teodor Zlatanov  <tzz@lifelogs.com>
988
989         * gnus-util.el (gnus-alist-pull): Rename `gnus-pull'.
990
991         * gnus-sum.el (gnus-mark-article-as-unread)
992         (gnus-summary-mark-article-as-unread, gnus-summary-remove-bookmark)
993         (gnus-summary-set-bookmark): Use it.
994
995         * gnus-msg.el (gnus-setup-message): Use it.
996
997         * gnus-demon.el (gnus-demon-remove-handler): Use it.
998
999         * gnus.el (gnus-group-remove-parameter): Use it.
1000
1001         * gnus-group.el (gnus-group-make-web-group): Use it.
1002
1003         * gnus-demon.el (gnus-demon-remove-handler): Use it.
1004
1005         * nnregistry.el: Update docs to mention manual.
1006
1007         * gnus-registry.el: Update docs to mention nnregistry.el.
1008         (gnus-registry-initialize): Don't install nnregistry refer method
1009         automatically.
1010         (gnus-registry-install-nnregistry): Remove it.
1011
1012 2010-10-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
1013
1014         * shr.el (shr-insert): Don't insert double spaces.
1015
1016 2010-10-08  Katsumi Yamaoka  <yamaoka@jpl.org>
1017
1018         * gnus-gravatar.el (gnus-treat-from-gravatar)
1019         (gnus-treat-mail-gravatar): Bind gnus-gravatar-too-ugly to nil when
1020         called interactively.
1021
1022         * gnus-art.el (gnus-mime-view-part-externally)
1023         (gnus-mime-view-part-internally): Make predicate function passed to
1024         gnus-mime-view-part-as-type assume argument is a mime type, not a list
1025         of a mime type.
1026
1027         * shr.el (shr-table-widths): Don't use cl function `reduce'.
1028
1029 2010-10-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
1030
1031         * shr.el (require): Require cl when compiling.
1032         (shr-tag-hr): New function.
1033
1034         * nnimap.el (nnimap-update-info): Remove double setting of high.
1035         (nnimap-update-info): Don't ignore groups that have no UIDNEXT.  This
1036         makes nnimap work properly on Courier again.
1037
1038         * gnus.el (gnus-carpal): The carpal mode has been removed, but define
1039         the variable for backwards compatability.
1040
1041         * mm-decode.el (mm-save-part): If given a non-directory result, expand
1042         the file name before using to avoid setting mm-default-directory to
1043         nil.
1044
1045         * gnus-start.el (gnus-get-unread-articles): Require gnus-agent before
1046         bidning gnus-agent variables.
1047
1048         * shr.el (shr-render-td): Use a cache for the table rendering function
1049         to avoid getting an exponential rendering behaviour in nested tables.
1050         (shr-insert): Rework the line-breaking algorithm.
1051         (shr-insert): Don't leave trailing spaces.
1052         (shr-insert-table): Also insert empty TDs.
1053         (shr-tag-blockquote): Ensure paragraphs after </ul>.
1054
1055 2010-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>
1056
1057         * gnus-sum.el (gnus-number): Rename from `number'.
1058         (gnus-article-marked-p, gnus-summary-limit-to-display-predicate)
1059         (gnus-summary-limit-children): Update uses correspondingly.
1060
1061 2010-10-07  Katsumi Yamaoka  <yamaoka@jpl.org>
1062
1063         * gnus-gravatar.el (gnus-gravatar-too-ugly): New user option.
1064         (gnus-gravatar-transform-address): Don't show avatars of people of
1065         which mail addresses match gnus-gravatar-too-ugly.
1066
1067 2010-10-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
1068
1069         * shr.el (shr-table-widths): Expand TD elements to fill available
1070         space.
1071
1072 2010-10-07  Julien Danjou  <julien@danjou.info>
1073
1074         * nnimap.el (nnimap-request-rename-group): Add this method.
1075
1076 2010-10-07  Katsumi Yamaoka  <yamaoka@jpl.org>
1077
1078         * gnus-html.el (gnus-html-schedule-image-fetching): Remove function
1079         name from XEmacs' function-arglist.
1080
1081         * gnus-gravatar.el (gnus-gravatar-insert): Don't add properties to
1082         gravatar under XEmacs.
1083
1084 2010-10-07  Teodor Zlatanov  <tzz@lifelogs.com>
1085
1086         * auth-source.el: Update docs with TODO items.
1087
1088         * gnus-sync.el: Update docs to explain state and plans.
1089
1090         * gnus-int.el (gnus-after-set-mark-hook, gnus-before-update-mark-hook):
1091         Hooks for mark updates.
1092         (gnus-request-set-mark, gnus-request-update-mark): Use them.
1093
1094         * gnus-util.el (gnus-run-hooks-with-args): Convenience function to run
1095         hooks with arguments, which is needed for mark update hooks.
1096
1097 2010-10-06  Julien Danjou  <julien@danjou.info>
1098
1099         * gnus.el (gnus-expand-group-parameter): Only return and act on what
1100         was matched.
1101
1102         * sieve-manage.el: Update example in `Commentary'.
1103
1104         * sieve.el (sieve-open-server): Use sieve-manage-authenticate.
1105
1106         * sieve-manage.el (sieve-manage-open): Use sieve-manage-default-port,
1107         not 2000.
1108         (sieve-manage-authenticate): Re-add function.
1109
1110 2010-10-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
1111
1112         * shr.el (shr-insert): Get 'space transition right.
1113         (shr-render-td): Only delete space at the end of the TD.
1114
1115         * nnimap.el (nnimap-open-connection): Prepare to support
1116         open-gnutls-stream.
1117
1118         * shr.el: Rearrange function order to be more logical.
1119
1120 2010-10-06  Julien Danjou  <julien@danjou.info>
1121
1122         * nnrss.el (nnrss-check-group): Remove 404 URL in comment.
1123         (nnrss-discover-feed): Remove 404 URL in docstring.
1124
1125         * nnir.el: Fix Swish-E URL.
1126         Fix Namazu URL.
1127
1128         * message.el (message-change-subject): Remove 404 URL in a comment.
1129
1130 2010-10-06  Katsumi Yamaoka  <yamaoka@jpl.org>
1131
1132         * gnus-art.el (gnus-mime-view-part-as-type): Make it work when being
1133         called interactively.
1134
1135         * gnus-util.el (gnus-remove-if): Allow hash table.
1136         (gnus-remove-if-not): New function.
1137
1138         * gnus-art.el (gnus-mime-view-part-as-type)
1139         * gnus-score.el (gnus-summary-score-effect)
1140         * gnus-sum.el (gnus-read-move-group-name):
1141         Replace remove-if-not with gnus-remove-if-not.
1142
1143         * gnus-group.el (gnus-group-completing-read):
1144         Regard collection as a hash table if it is not a list.
1145
1146 2010-10-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
1147
1148         * shr.el (shr-render-td): Allow blank/missing <TD>s.
1149
1150         * shr.el: Document the table-rendering algorithm.
1151
1152 2010-10-05  Katsumi Yamaoka  <yamaoka@jpl.org>
1153
1154         * dgnushack.el (dgnushack-compile): Exclude shr.el from being compiled
1155         for Emacsen having no `libxml-parse-html-region' support.
1156
1157 2010-10-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
1158
1159         * gnus-html.el (gnus-html-schedule-image-fetching): Protect against