annotate lisp/rot13.el @ 17846:c427501449a1

(display_text_line): Move the code to fill out the line with the newline's face to the end of the newline code. Add changes (commented out) to record ellipsis positions in charstarts.
author Richard M. Stallman <rms@gnu.org>
date Fri, 16 May 1997 07:32:59 +0000
parents 83f275dcd93a
children ddb7488bec81
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
658
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 583
diff changeset
1 ;;; rot13.el --- display a buffer in rot13.
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 583
diff changeset
2
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
3 ;; Copyright (C) 1988 Free Software Foundation, Inc.
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
4
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 658
diff changeset
5 ;; Author: Howard Gayle:
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 658
diff changeset
6 ;; Maintainer: FSF
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 ;; any later version.
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 ;; GNU General Public License for more details.
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 8626
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 8626
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 8626
diff changeset
23 ;; Boston, MA 02111-1307, USA.
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24
7942
bc5dccc5375f Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 3769
diff changeset
25 ;;; Commentary:
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26
3769
36f561d76b12 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 2524
diff changeset
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
36f561d76b12 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 2524
diff changeset
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
36f561d76b12 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 2524
diff changeset
33 ;; Written by Howard Gayle.
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 ;; This hack is mainly to show off the char table stuff.
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 (defvar rot13-display-table
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 (let ((table (make-display-table))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 (i 0))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 (setq i (1+ i)))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 table)
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 "Char table for rot 13 display.")
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47
2522
c93900809245 (rot13-other-window): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents: 2315
diff changeset
48 ;;;###autoload
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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.
1e700f134344 (rot13-other-window): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 7942
diff changeset
51 To terminate the rot13 display, delete that window."
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 (interactive)
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 (let ((w (display-buffer (current-buffer) t)))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 (set-window-display-table w rot13-display-table)))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55
8626
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
56 ;;;###autoload
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
57 (defun toggle-rot13-mode ()
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
58 "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
59 (interactive)
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
60 (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
61 (set-window-display-table (selected-window) nil)
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
62 (if (null (window-display-table (selected-window)))
fe49c4bb99d4 (toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents: 8568
diff changeset
63 (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
64
583
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65 (provide 'rot13)
658
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 583
diff changeset
66
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 583
diff changeset
67 ;;; rot13.el ends here