Mercurial > emacs
annotate lisp/rot13.el @ 51195:3cbf29813eea
(struct frame): Rename members height to text_lines,
width to text_cols, window_height to total_lines, window_width to
total_cols, new_height to new_text_lines, new_width to
new_text_cols. All uses changed.
(struct frame): New members which consolidate common members of
x_output, w32_output, and mac_output structures: left_pos,
top_pos, pixel_height, pixel_width, x_pixels_diff, y_pixels_diff,
win_gravity, size_hint_flags, border_width, internal_border_width,
line_height, fringe_cols, left_fringe_width, right_fringe_width,
want_fullscreen. All uses changed.
(struct frame): New member column_width contaning the canonical
column width, analogue to line_height. All uses changed.
(struct frame): Rename members scroll_bar_pixel_width to
config_scroll_bar_width, and scroll_bar_cols to
config_scroll_bar_cols. All uses changed.
(struct frame): New member scroll_bar_actual_width which
consolidates and renames the vertical_scroll_bar_extra member of
x_output, w32_output, and mac_output structures. All uses changed.
(FRAME_PIXEL_HEIGHT): Renamed from PIXEL_HEIGHT and moved
from x/w32/macterm.h files. All uses changed. Also change code
which referred to f->output_data...->pixel_height.
(FRAME_PIXEL_WIDTH): Renamed from PIXEL_WIDTH and moved
from x/w32/macterm.h files. All uses changed. Also change code
which referred to f->output_data...->pixel_width.
(FRAME_LINES): Renamed from FRAME_HEIGHT. All uses changed.
Also change code which referred to f->height.
(FRAME_COLS): Renamed from FRAME_WIDTH. All uses changed.
Also change code which referred to f->width.
(FRAME_NEW_HEIGHT, FRAME_NEW_WIDTH): Remove macros; change uses
to update new_text_lines and new_text_cols members directly.
(FRAME_CONFIG_SCROLL_BAR_WIDTH): Renamed from
FRAME_SCROLL_BAR_PIXEL_WIDTH. All uses changed.
(FRAME_CONFIG_SCROLL_BAR_COLS): Renamed from
FRAME_SCROLL_BAR_COLS. All uses changed.
(FRAME_LEFT_SCROLL_BAR_COLS, FRAME_RIGHT_SCROLL_BAR_COLS):
Renamed from FRAME_LEFT_SCROLL_BAR_WIDTH and
FRAME_RIGHT_SCROLL_BAR_WIDTH, resp. All uses changed.
(FRAME_SCROLL_BAR_AREA_WIDTH, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
(FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH): New macros.
(FRAME_TOTAL_COLS): Renamed from FRAME_WINDOW_WIDTH.
(SET_FRAME_COLS): Renamed from SET_FRAME_WIDTH.
(FRAME_TOTAL_COLS_ARG): Renamed from FRAME_WINDOW_WIDTH_ARG.
(WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Remove unused macro.
(WINDOW_VERTICAL_SCROLL_BAR_HEIGHT): Remove unused macro.
(FRAME_LINE_HEIGHT): Renamed from CANON_Y_UNIT. Unconditionally
return line_height member (it now has proper value also for
non-window frames).
(FRAME_COLUMN_WIDTH): Renamed from CANON_X_UNIT. Unconditionally
return new column_width member (rather than the default font width).
(FRAME_FRINGE_COLS, FRAME_LEFT_FRINGE_WIDTH)
(FRAME_RIGHT_FRINGE_WIDTH): Renamed from FRAME_X_... and moved
from x/w32/macterm.h files. Unconditionally return corresponding
member of frame structure (they now have proper values also for
non-window frames).
(FRAME_TOTAL_FRINGE_WIDTH): Renamed from FRAME_FRINGE_WIDTH.
Calculate return value from left and right widths.
(FRAME_INTERNAL_BORDER_WIDTH): Unconditionally return
internal_border_width member (has proper value for non-window frame).
(FRAME_PIXEL_X_FROM_CANON_X): Renamed from PIXEL_X_FROM_CANON_X.
(FRAME_PIXEL_Y_FROM_CANON_Y): Renamed from PIXEL_Y_FROM_CANON_Y.
(FRAME_CANON_X_FROM_PIXEL_X): Renamed from CANON_X_FROM_PIXEL_X.
(FRAME_CANON_Y_FROM_PIXEL_Y): Renamed from CANON_Y_FROM_PIXEL_Y.
(FRAME_LINE_TO_PIXEL_Y): Renamed from CHAR_TO_PIXEL_ROW,
consolidated from xterm.h, macterm.h, and w32term.h.
(FRAME_COL_TO_PIXEL_X): Renamed from CHAR_TO_PIXEL_COL,
consolidated from xterm.h, macterm.h, and w32term.h.
(FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Renamed from
CHAR_TO_PIXEL_WIDTH consolidated from x/mac/w32term.h.
(FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Renamed from
CHAR_TO_PIXEL_HEIGHT consolidated from x/mac/w32term.h.
(FRAME_PIXEL_Y_TO_LINE): Renamed from PIXEL_TO_CHAR_ROW
consolidated from x/mac/w32term.h.
(FRAME_PIXEL_X_TO_COL): Renamed from PIXEL_TO_CHAR_COL
consolidated from x/mac/w32term.h.
(FRAME_PIXEL_WIDTH_TO_TEXT_COLS): Renamed from
PIXEL_TO_CHAR_WIDTH consolidated from x/mac/w32term.h.
(FRAME_PIXEL_HEIGHT_TO_TEXT_LINES): Renamed from
PIXEL_TO_CHAR_HEIGHT consolidated from x/mac/w32term.h.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Sat, 24 May 2003 21:58:07 +0000 |
parents | e88404e8f2cf |
children | 695cf19ef79e d7ddb3e565de |
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 |
45514
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
3 ;; Copyright (C) 1988,2002 Free Software Foundation, Inc. |
845 | 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 |
45514
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
27 ;; The entry point, `rot13-other-window', performs a Caesar cipher |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45514
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. |
45514
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
35 ;; |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
36 ;; 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
|
37 ;; 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
|
38 ;; added by Simon Josefsson. |
583 | 39 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
40 ;;; Code: |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
41 |
583 | 42 (defvar rot13-display-table |
43 (let ((table (make-display-table)) | |
44 (i 0)) | |
45 (while (< i 26) | |
2524
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))) |
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))) |
583 | 48 (setq i (1+ i))) |
49 table) | |
50 "Char table for rot 13 display.") | |
51 | |
45514
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
52 (defvar rot13-translate-table |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
53 (let ((str (make-string 127 0)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
54 (i 0)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
55 (while (< i 127) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
56 (aset str i i) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
57 (setq i (1+ i))) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
58 (setq i 0) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
59 (while (< i 26) |
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 (aset str (+ i ?A) (+ (% (+ i 13) 26) ?A)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
62 (setq i (1+ i))) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
63 str) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
64 "String table for rot 13 translation.") |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
65 |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
66 ;;;###autoload |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
67 (defun rot13 (object &optional start end) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
68 "Return Rot13 encryption of OBJECT, a buffer or string." |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
69 (if (bufferp object) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
70 (with-current-buffer object |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
71 (rot13-region start end)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
72 (rot13-string object))) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
73 |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
74 ;;;###autoload |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
75 (defun rot13-string (string) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
76 "Return Rot13 encryption of STRING." |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
77 (with-temp-buffer |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
78 (insert string) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
79 (rot13-region (point-min) (point-max)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
80 (buffer-string))) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
81 |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
82 ;;;###autoload |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
83 (defun rot13-region (start end) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
84 "Rot13 encrypt the region between START and END in current buffer." |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
85 (interactive "r") |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
86 (translate-region start end rot13-translate-table)) |
a7fc02accfb3
(rot13-translate-table): New variable.
Simon Josefsson <jas@extundo.com>
parents:
38412
diff
changeset
|
87 |
2522
c93900809245
(rot13-other-window): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents:
2315
diff
changeset
|
88 ;;;###autoload |
583 | 89 (defun rot13-other-window () |
8568
1e700f134344
(rot13-other-window): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
7942
diff
changeset
|
90 "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
|
91 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
|
92 |
f874bc96a6a5
(rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
38034
diff
changeset
|
93 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
|
94 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
|
95 in rot 13. |
f874bc96a6a5
(rot13-other-window): Some more doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
38034
diff
changeset
|
96 |
38034
ddb7488bec81
(rot13-other-window): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
14169
diff
changeset
|
97 See also `toggle-rot13-mode'." |
583 | 98 (interactive) |
99 (let ((w (display-buffer (current-buffer) t))) | |
100 (set-window-display-table w rot13-display-table))) | |
101 | |
8626
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
102 ;;;###autoload |
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
103 (defun toggle-rot13-mode () |
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
104 "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
|
105 (interactive) |
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
106 (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
|
107 (set-window-display-table (selected-window) nil) |
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
108 (if (null (window-display-table (selected-window))) |
fe49c4bb99d4
(toggle-rot13-mode): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8568
diff
changeset
|
109 (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
|
110 |
583 | 111 (provide 'rot13) |
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
583
diff
changeset
|
112 |
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
583
diff
changeset
|
113 ;;; rot13.el ends here |