Mercurial > emacs
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 |
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 | 3 ;; Copyright (C) 1988, 2001, 2002, 2003, 2004, 2005, |
106815 | 4 ;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
845 | 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 | 8 |
9 ;; This file is part of GNU Emacs. | |
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 | 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 | 15 |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
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 | 23 |
7942 | 24 ;;; Commentary: |
583 | 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 | 32 ;; Written by Howard Gayle. |
583 | 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 | 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 | 41 (defvar rot13-display-table |
42 (let ((table (make-display-table)) | |
43 (i 0)) | |
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 | 47 (setq i (1+ i))) |
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 | 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 | 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 | 97 (interactive) |
98 (let ((w (display-buffer (current-buffer) t))) | |
99 (set-window-display-table w rot13-display-table))) | |
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 | 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 |