annotate lisp/rot13.el @ 38717:152fbfce2115

(start_display): Don't try to determine the continuation lines width if lines are truncated. It's superfluous and leads to incorrect results if POS is not visible in the window after reseating the iterator at the previous line start.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 07 Aug 2001 11:36:43 +0000
parents 253f761ad37b
children a7fc02accfb3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
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
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
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.
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
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 (interactive)
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59 (let ((w (display-buffer (current-buffer) t)))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 (set-window-display-table w rot13-display-table)))
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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
3c0c1cd8428a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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