aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1994-03-14 21:20:25 +0000
committerKarl Heuer1994-03-14 21:20:25 +0000
commitcbd4993c584af7aed3a3a48db4d5af7231759efc (patch)
treeb99ceed136bcd700a1cc7fac657e687a98e562fd
parent05041ba0f89f952debdd3c3f09b842401f917b7d (diff)
downloademacs-cbd4993c584af7aed3a3a48db4d5af7231759efc.tar.gz
emacs-cbd4993c584af7aed3a3a48db4d5af7231759efc.zip
(view-register, insert-register): Handle dead marker.
-rw-r--r--lisp/register.el29
1 files changed, 18 insertions, 11 deletions
diff --git a/lisp/register.el b/lisp/register.el
index 34e64bf6ca3..76f05284c7b 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -144,10 +144,13 @@ REGISTER is a character."
144 (princ val)) 144 (princ val))
145 145
146 ((markerp val) 146 ((markerp val)
147 (princ "a buffer position:\nbuffer ") 147 (let ((buf (marker-buffer val)))
148 (princ (buffer-name (marker-buffer val))) 148 (if (null buf)
149 (princ ", position ") 149 (princ "a marker in no buffer")
150 (princ (+ 0 val))) 150 (princ "a buffer position:\nbuffer ")
151 (princ (buffer-name buf))
152 (princ ", position ")
153 (princ (marker-position val)))))
151 154
152 ((window-configuration-p val) 155 ((window-configuration-p val)
153 (princ "a window configuration.")) 156 (princ "a window configuration."))
@@ -183,13 +186,17 @@ Interactively, second arg is non-nil if prefix arg is supplied."
183 (interactive "cInsert register: \nP") 186 (interactive "cInsert register: \nP")
184 (push-mark) 187 (push-mark)
185 (let ((val (get-register char))) 188 (let ((val (get-register char)))
186 (if (consp val) 189 (cond
187 (insert-rectangle val) 190 ((consp val)
188 (if (stringp val) 191 (insert-rectangle val))
189 (insert val) 192 ((stringp val)
190 (if (or (integerp val) (markerp val)) 193 (insert val))
191 (princ (+ 0 val) (current-buffer)) 194 ((integerp val)
192 (error "Register does not contain text"))))) 195 (princ val (current-buffer)))
196 ((and (markerp val) (marker-position val))
197 (princ (marker-position val) (current-buffer)))
198 (t
199 (error "Register does not contain text"))))
193 (if (not arg) (exchange-point-and-mark))) 200 (if (not arg) (exchange-point-and-mark)))
194 201
195(defun copy-to-register (char start end &optional delete-flag) 202(defun copy-to-register (char start end &optional delete-flag)