diff options
| author | Karl Heuer | 1994-03-14 21:20:25 +0000 |
|---|---|---|
| committer | Karl Heuer | 1994-03-14 21:20:25 +0000 |
| commit | cbd4993c584af7aed3a3a48db4d5af7231759efc (patch) | |
| tree | b99ceed136bcd700a1cc7fac657e687a98e562fd | |
| parent | 05041ba0f89f952debdd3c3f09b842401f917b7d (diff) | |
| download | emacs-cbd4993c584af7aed3a3a48db4d5af7231759efc.tar.gz emacs-cbd4993c584af7aed3a3a48db4d5af7231759efc.zip | |
(view-register, insert-register): Handle dead marker.
| -rw-r--r-- | lisp/register.el | 29 |
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) |