Mercurial > emacs
annotate lisp/rot13.el @ 42811:cf0c0ef57504
*** empty log message ***
| author | Jason Rumney <jasonr@gnu.org> |
|---|---|
| date | Thu, 17 Jan 2002 19:29:24 +0000 |
| parents | 253f761ad37b |
| children | a7fc02accfb3 |
| rev | line source |
|---|---|
|
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Jan?k <Pavel@Janik.cz>
parents:
38038
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 |
| 845 | 3 ;; Copyright (C) 1988 Free Software Foundation, Inc. |
| 4 | |
|
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Jan?k <Pavel@Janik.cz>
parents:
38038
diff
changeset
|
5 ;; Author: Howard Gayle |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
6 ;; Maintainer: FSF |
| 583 | 7 |
| 8 ;; This file is part of GNU Emacs. | |
| 9 | |
| 10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
| 11 ;; it under the terms of the GNU General Public License as published by | |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
12 ;; the Free Software Foundation; either version 2, or (at your option) |
| 583 | 13 ;; any later version. |
| 14 | |
| 15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
| 16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 ;; GNU General Public License for more details. | |
| 19 | |
| 20 ;; You should have received a copy of the GNU General Public License | |
| 14169 | 21 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
| 22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 23 ;; Boston, MA 02111-1307, USA. | |
| 583 | 24 |
| 7942 | 25 ;;; Commentary: |
| 583 | 26 |
| 3769 | 27 ;; The single entry point, `rot13-other-window', performs a Caesar cipher |
|
2315
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
845
diff
changeset
|
28 ;; encrypt/decrypt on the current buffer and displays the result in another |
| 3769 | 29 ;; 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
|
30 ;; 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
|
31 ;; ethnic humor. |
|
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
845
diff
changeset
|
32 ;; |
| 3769 | 33 ;; Written by Howard Gayle. |
| 583 | 34 ;; This hack is mainly to show off the char table stuff. |
| 35 | |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
36 ;;; Code: |
|
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
37 |
| 583 | 38 (defvar rot13-display-table |
| 39 (let ((table (make-display-table)) | |
| 40 (i 0)) | |
| 41 (while (< i 26) | |
|
2524
d026367ad08e
(rot13-display-table): Use `vector', not `make-rope'.
Richard M. Stallman <rms@gnu.org>
parents:
2522
diff
changeset
|
42 (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
|
43 (aset table (+ i ?A) (vector (+ (% (+ i 13) 26) ?A))) |
| 583 | 44 (setq i (1+ i))) |
| 45 table) | |
| 46 "Char table for rot 13 display.") | |
| 47 | |
|
2522
c93900809245
(rot13-other-window): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents:
2315
diff
changeset
|
48 ;;;###autoload |
| 583 | 49 (defun rot13-other-window () |
|
8568
1e700f134344
(rot13-other-window): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
7942
diff
changeset
|
50 "Display current buffer in rot 13 in another window. |
|
38038
f874bc96a6a5
(rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
38034
diff
changeset
|
51 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
|
52 |
|
f874bc96a6a5
(rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
38034
diff
changeset
|
53 To terminate the rot13 display, delete that window. As long as that window |
|
f874bc96a6a5
(rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
38034
diff
changeset
|
54 is not deleted, any buffer displayed in it will become instantly encoded |
|
f874bc96a6a5
(rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
38034
diff
changeset
|
55 in rot 13. |
|
f874bc96a6a5
(rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
38034
diff
changeset
|
56 |
|
38034
ddb7488bec81
(rot13-other-window): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
14169
diff
changeset
|
57 See also `toggle-rot13-mode'." |
| 583 | 58 (interactive) |
| 59 (let ((w (display-buffer (current-buffer) t))) | |
| 60 (set-window-display-table w rot13-display-table))) | |
| 61 | |
|
8626
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
62 ;;;###autoload |
|
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
63 (defun toggle-rot13-mode () |
|
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
64 "Toggle the use of rot 13 encoding for the current window." |
|
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
65 (interactive) |
|
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
66 (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
|
67 (set-window-display-table (selected-window) nil) |
|
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
68 (if (null (window-display-table (selected-window))) |
|
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
69 (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
|
70 |
| 583 | 71 (provide 'rot13) |
|
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
583
diff
changeset
|
72 |
|
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
583
diff
changeset
|
73 ;;; rot13.el ends here |
