changeset 15877:33e652659075

(decipher-get-undo-copy): New function. (decipher-get-undo): Use it.
author Richard M. Stallman <rms@gnu.org>
date Sat, 17 Aug 1996 03:12:18 +0000
parents d814bc72503f
children 315c7d1ae3f4
files lisp/play/decipher.el
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/play/decipher.el	Sat Aug 17 02:10:31 1996 +0000
+++ b/lisp/play/decipher.el	Sat Aug 17 03:12:18 1996 +0000
@@ -125,11 +125,13 @@
      (1 font-lock-keyword-face)
      (2 font-lock-string-face)))
   "Expressions to fontify in Decipher mode.
+
 Ciphertext uses `font-lock-keyword-face', plaintext uses
 `font-lock-string-face', comments use `font-lock-comment-face', and
 checkpoints use `font-lock-reference-face'.  You can customize the
 display by changing these variables.  For best results, I recommend
 that all faces use the same background color.
+
 For example, to display ciphertext in the `bold' face, use
   (add-hook 'decipher-mode-hook
             (lambda () (set (make-local-variable 'font-lock-keyword-face)
@@ -406,13 +408,17 @@
               (setcdr (nthcdr (1- new-size) decipher-undo-list) nil)
               (setq decipher-undo-list-size new-size))))))
 
+(defun decipher-get-undo-copy (cons)
+  (if cons
+      (cons (car cons) (cdr cons))))
+
 (defun decipher-get-undo (cipher-char plain-char)
   ;; Return an undo record that will undo the result of
   ;;   (decipher-set-map CIPHER-CHAR PLAIN-CHAR)
-  ;; We must use copy-list because the original cons cells will be
+  ;; We must copy the cons cell because the original cons cells will be
   ;; modified using setcdr.
-  (let ((cipher-map (copy-list (rassoc cipher-char decipher-alphabet)))
-        (plain-map  (copy-list (assoc  plain-char  decipher-alphabet))))
+  (let ((cipher-map (decipher-get-undo-copy (rassoc cipher-char decipher-alphabet)))
+        (plain-map  (decipher-get-undo-copy (assoc  plain-char  decipher-alphabet))))
     (cond ((equal ?\  plain-char)
            cipher-map)
           ((equal cipher-char (cdr plain-map))