Mercurial > emacs
annotate lisp/rot13.el @ 83619:5da6a46ddbd6
* s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
* termhooks.h (union display_info): Add mac_display_info.
* term.c (init_tty): Only use terminal->kboard when MULTI_KBOARD
is defined.
* macterm.h (struct mac_display_info): Add terminal.
* w32term.c (w32_initialize): Make static.
* macterm.c (XTset_terminal_modes): Add a terminal parameter.
(XTreset_terminal_modes): Likewise.
(x_clear_frame): Add a frame parameter.
(note_mouse_movement): Get rif from the frame.
(mac_term_init): Initialize the terminal.
(mac_initialize): Make static and move terminal initialization ...
(mac_create_terminal): ... in this new function.
* macmenu.c: Reorder includes.
(Fx_popup_menu): Use terminal specific mouse_position_hook.
* macfns.c (x_set_mouse_color): Get rif from the frame.
(x_set_tool_bar_lines): Don't use updating_frame.
(mac_window): Add 2 new parameters for consistency with other
systems.
(Fx_create_frame): Fix doc string. Rename the parameter.
(Fx_create_frame): Set the frame parameters following what is done
in X11 and w32.
(Fx_open_connection): Remove window-system check.
(start_hourglass): Likewise.
(x_create_tip_frame): Get the keyboard from the terminal.
* w32fns.c (Fx_create_frame): Use kboard from the terminal.
* term/mac-win.el: Provide mac-win.
(mac-initialized): New variable.
(mac-initialize-window-system): New function. Move global setup
here.
(handle-args-function-alist, frame-creation-function-alist):
(window-system-initialization-alist): Add mac entries.
* loadup.el: Load mac-win on a Mac.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Sat, 19 May 2007 19:08:02 +0000 |
parents | e3694f1cb928 |
children | 9355f9b7bbff 95d0cdf160ea |
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, |
75347 | 4 ;; 2006, 2007 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 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; 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
|
13 ;; the Free Software Foundation; either version 2, or (at your option) |
583 | 14 ;; any later version. |
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 | |
14169 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64091 | 23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 ;; Boston, MA 02110-1301, USA. | |
583 | 25 |
7942 | 26 ;;; Commentary: |
583 | 27 |
45514
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
28 ;; The entry point, `rot13-other-window', performs a Caesar cipher |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45514
diff
changeset
|
29 ;; 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
|
30 ;; 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
|
31 ;; 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
|
32 ;; ethnic humor. |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
845
diff
changeset
|
33 ;; |
3769 | 34 ;; Written by Howard Gayle. |
583 | 35 ;; 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
|
36 ;; |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
37 ;; 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
|
38 ;; 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
|
39 ;; added by Simon Josefsson. |
583 | 40 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
41 ;;; Code: |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
42 |
583 | 43 (defvar rot13-display-table |
44 (let ((table (make-display-table)) | |
45 (i 0)) | |
46 (while (< i 26) | |
2524
d026367ad08e
(rot13-display-table): Use `vector', not `make-rope'.
Richard M. Stallman <rms@gnu.org>
parents:
2522
diff
changeset
|
47 (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
|
48 (aset table (+ i ?A) (vector (+ (% (+ i 13) 26) ?A))) |
583 | 49 (setq i (1+ i))) |
50 table) | |
74262
1ef61f432321
(rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents:
68651
diff
changeset
|
51 "Char table for ROT13 display.") |
583 | 52 |
45514
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
53 (defvar rot13-translate-table |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
54 (let ((str (make-string 127 0)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
55 (i 0)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
56 (while (< i 127) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
57 (aset str i i) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
58 (setq i (1+ i))) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
59 (setq i 0) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
60 (while (< i 26) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
61 (aset str (+ i ?a) (+ (% (+ i 13) 26) ?a)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
62 (aset str (+ i ?A) (+ (% (+ i 13) 26) ?A)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
63 (setq i (1+ i))) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
64 str) |
74262
1ef61f432321
(rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents:
68651
diff
changeset
|
65 "String table for ROT13 translation.") |
45514
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
66 |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
67 ;;;###autoload |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
68 (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
|
69 "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
|
70 (if (bufferp object) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
71 (with-current-buffer object |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
72 (rot13-region start end)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
73 (rot13-string object))) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
74 |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
75 ;;;###autoload |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
76 (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
|
77 "Return ROT13 encryption of STRING." |
45514
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
78 (with-temp-buffer |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
79 (insert string) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
80 (rot13-region (point-min) (point-max)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
81 (buffer-string))) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
82 |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
83 ;;;###autoload |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
84 (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
|
85 "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
|
86 (interactive "r") |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
87 (translate-region start end rot13-translate-table)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
88 |
2522
c93900809245
(rot13-other-window): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents:
2315
diff
changeset
|
89 ;;;###autoload |
583 | 90 (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
|
91 "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
|
92 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
|
93 |
74262
1ef61f432321
(rot13-display-table, rot13-translate-table, rot13, rot13-string, rot13-region,
Juanma Barranquero <lekktu@gmail.com>
parents:
68651
diff
changeset
|
94 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
|
95 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
|
96 in ROT13. |
38038
f874bc96a6a5
(rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
38034
diff
changeset
|
97 |
38034
ddb7488bec81
(rot13-other-window): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
14169
diff
changeset
|
98 See also `toggle-rot13-mode'." |
583 | 99 (interactive) |
100 (let ((w (display-buffer (current-buffer) t))) | |
101 (set-window-display-table w rot13-display-table))) | |
102 | |
8626
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
103 ;;;###autoload |
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
104 (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
|
105 "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
|
106 (interactive) |
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
107 (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
|
108 (set-window-display-table (selected-window) nil) |
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
109 (if (null (window-display-table (selected-window))) |
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
110 (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
|
111 |
583 | 112 (provide 'rot13) |
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
583
diff
changeset
|
113 |
52401 | 114 ;;; arch-tag: ad5b9ca8-946c-4414-996f-e9b1bf9ec79f |
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
583
diff
changeset
|
115 ;;; rot13.el ends here |