annotate lisp/rot13.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 1d1d5d9bd884
children 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
1 ;;; rot13.el --- display a buffer in ROT13
658
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 583
diff changeset
2
74442
b2e5081b9320 Update copyright years.
Glenn Morris <rgm@gnu.org>
parents: 74262
diff changeset
3 ;; Copyright (C) 1988, 2001, 2002, 2003, 2004, 2005,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
4 ;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
5
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 38038
diff changeset
6 ;; Author: Howard Gayle
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 658
diff changeset
7 ;; Maintainer: FSF
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
13 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; (at your option) any later version.
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19 ;; GNU General Public License for more details.
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23
7942
bc5dccc5375f Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 3769
diff changeset
24 ;;; Commentary:
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25
45514
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
26 ;; The entry point, `rot13-other-window', performs a Caesar cipher
49597
e88404e8f2cf Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 45514
diff changeset
27 ;; encrypt/decrypt on the current buffer and displays the result in another
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
28 ;; window. ROT13 encryption is sometimes used on USENET as a read-at-your-
2315
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
29 ;; own-risk wrapper for material some might consider offensive, such as
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
30 ;; ethnic humor.
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
31 ;;
3769
36f561d76b12 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 2524
diff changeset
32 ;; Written by Howard Gayle.
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 ;; This hack is mainly to show off the char table stuff.
45514
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
34 ;;
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
35 ;; New entry points, `rot13', `rot13-string', and `rot13-region' that
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
36 ;; performs Ceasar cipher encrypt/decrypt on buffers and strings, was
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
37 ;; added by Simon Josefsson.
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 658
diff changeset
39 ;;; Code:
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 658
diff changeset
40
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 (defvar rot13-display-table
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 (let ((table (make-display-table))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 (i 0))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 (while (< i 26)
2524
d026367ad08e (rot13-display-table): Use `vector', not `make-rope'.
Richard M. Stallman <rms@gnu.org>
parents: 2522
diff changeset
45 (aset table (+ i ?a) (vector (+ (% (+ i 13) 26) ?a)))
d026367ad08e (rot13-display-table): Use `vector', not `make-rope'.
Richard M. Stallman <rms@gnu.org>
parents: 2522
diff changeset
46 (aset table (+ i ?A) (vector (+ (% (+ i 13) 26) ?A)))
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 (setq i (1+ i)))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 table)
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
49 "Char table for ROT13 display.")
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50
45514
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
51 (defvar rot13-translate-table
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
52 (let ((str (make-string 127 0))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
53 (i 0))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
54 (while (< i 127)
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
55 (aset str i i)
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
56 (setq i (1+ i)))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
57 (setq i 0)
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
58 (while (< i 26)
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
59 (aset str (+ i ?a) (+ (% (+ i 13) 26) ?a))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
60 (aset str (+ i ?A) (+ (% (+ i 13) 26) ?A))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
61 (setq i (1+ i)))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
62 str)
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
63 "String table for ROT13 translation.")
45514
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
64
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
65 ;;;###autoload
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
66 (defun rot13 (object &optional start end)
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
67 "Return ROT13 encryption of OBJECT, a buffer or string."
45514
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
68 (if (bufferp object)
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
69 (with-current-buffer object
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
70 (rot13-region start end))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
71 (rot13-string object)))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
72
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
73 ;;;###autoload
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
74 (defun rot13-string (string)
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
75 "Return ROT13 encryption of STRING."
45514
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
76 (with-temp-buffer
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
77 (insert string)
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
78 (rot13-region (point-min) (point-max))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
79 (buffer-string)))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
80
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
81 ;;;###autoload
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
82 (defun rot13-region (start end)
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
83 "ROT13 encrypt the region between START and END in current buffer."
45514
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
84 (interactive "r")
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
85 (translate-region start end rot13-translate-table))
a7fc02accfb3 (rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents: 38412
diff changeset
86
2522
c93900809245 (rot13-other-window): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents: 2315
diff changeset
87 ;;;###autoload
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 (defun rot13-other-window ()
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
89 "Display current buffer in ROT13 in another window.
38038
f874bc96a6a5 (rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 38034
diff changeset
90 The text itself is not modified, only the way it is displayed is affected.
f874bc96a6a5 (rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 38034
diff changeset
91
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
92 To terminate the ROT13 display, delete that window. As long as that window
38038
f874bc96a6a5 (rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 38034
diff changeset
93 is not deleted, any buffer displayed in it will become instantly encoded
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
94 in ROT13.
38038
f874bc96a6a5 (rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 38034
diff changeset
95
38034
ddb7488bec81 (rot13-other-window): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 14169
diff changeset
96 See also `toggle-rot13-mode'."
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 (interactive)
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 (let ((w (display-buffer (current-buffer) t)))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 (set-window-display-table w rot13-display-table)))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100
8626
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
101 ;;;###autoload
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
102 (defun toggle-rot13-mode ()
74262
1ef61f432321 (rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
103 "Toggle the use of ROT13 encoding for the current window."
8626
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
104 (interactive)
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
105 (if (eq (window-display-table (selected-window)) rot13-display-table)
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
106 (set-window-display-table (selected-window) nil)
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
107 (if (null (window-display-table (selected-window)))
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
108 (set-window-display-table (selected-window) rot13-display-table))))
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
109
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110 (provide 'rot13)
658
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 583
diff changeset
111
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
112 ;; arch-tag: ad5b9ca8-946c-4414-996f-e9b1bf9ec79f
658
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 583
diff changeset
113 ;;; rot13.el ends here