X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/d9ecc911ffc5f2d961a8c96129bafbb8d16a17f7..cd30a521aa838f6bcf08ee6ffb62986cd2bf8daa:/lisp/rot13.el diff --git a/lisp/rot13.el b/lisp/rot13.el index 75af4d1026..e346c97a5f 100644 --- a/lisp/rot13.el +++ b/lisp/rot13.el @@ -18,18 +18,19 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to -;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. -;; Commentary: +;;; Commentary: -;; The single entry point, `rot13-other-window', oerforms a Caesar cipher +;; The single entry point, `rot13-other-window', performs a Caesar cipher ;; encrypt/decrypt on the current buffer and displays the result in another -;; window. Rot13 encryption is sometimes used on USENET as a read-at-yur- +;; window. Rot13 encryption is sometimes used on USENET as a read-at-your- ;; own-risk wrapper for material some might consider offensive, such as ;; ethnic humor. ;; -;; Written by Howard Gayle. See case-table.el for details. +;; Written by Howard Gayle. ;; This hack is mainly to show off the char table stuff. ;;; Code: @@ -38,18 +39,29 @@ (let ((table (make-display-table)) (i 0)) (while (< i 26) - (aset table (+ i ?a) (make-rope (+ (% (+ i 13) 26) ?a))) - (aset table (+ i ?A) (make-rope (+ (% (+ i 13) 26) ?A))) + (aset table (+ i ?a) (vector (+ (% (+ i 13) 26) ?a))) + (aset table (+ i ?A) (vector (+ (% (+ i 13) 26) ?A))) (setq i (1+ i))) table) "Char table for rot 13 display.") +;;;###autoload (defun rot13-other-window () - "Display current buffer in rot 13 in another window." + "Display current buffer in rot 13 in another window. +To terminate the rot13 display, delete that window." (interactive) (let ((w (display-buffer (current-buffer) t))) (set-window-display-table w rot13-display-table))) +;;;###autoload +(defun toggle-rot13-mode () + "Toggle the use of rot 13 encoding for the current window." + (interactive) + (if (eq (window-display-table (selected-window)) rot13-display-table) + (set-window-display-table (selected-window) nil) + (if (null (window-display-table (selected-window))) + (set-window-display-table (selected-window) rot13-display-table)))) + (provide 'rot13) ;;; rot13.el ends here