Mercurial > emacs
changeset 40966:0eb891bb0d3e
(clone-indirect-buffer): Error if major mode symbol
has a no-clone-indirect property.
(clone-buffer): Check for obvious errors before reading clone name.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 13 Nov 2001 02:09:59 +0000 |
parents | eac4b1ccb6b8 |
children | ab0564ba441e |
files | lisp/simple.el |
diffstat | 1 files changed, 17 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/simple.el Tue Nov 13 00:07:54 2001 +0000 +++ b/lisp/simple.el Tue Nov 13 02:09:59 2001 +0000 @@ -3898,8 +3898,14 @@ If DISPLAY-FLAG is non-nil, the new buffer is shown with `pop-to-buffer'. This runs the normal hook `clone-buffer-hook' in the new buffer after it has been set up properly in other respects." - (interactive (list (if current-prefix-arg (read-string "Name: ")) - t)) + (interactive + (progn + (if buffer-file-name + (error "Cannot clone a file-visiting buffer")) + (if (get major-mode 'no-clone) + (error "Cannot clone a buffer in %s mode" mode-name)) + (list (if current-prefix-arg (read-string "Name: ")) + t))) (if buffer-file-name (error "Cannot clone a file-visiting buffer")) (if (get major-mode 'no-clone) @@ -3963,9 +3969,15 @@ Optional last arg NORECORD non-nil means do not put this buffer at the front of the list of recently selected ones." - (interactive (list (if current-prefix-arg - (read-string "BName of indirect buffer: ")) - t)) + (interactive + (progn + (if (get major-mode 'no-clone-indirect) + (error "Cannot indirectly clone a buffer in %s mode" mode-name)) + (list (if current-prefix-arg + (read-string "BName of indirect buffer: ")) + t))) + (if (get major-mode 'no-clone-indirect) + (error "Cannot indirectly clone a buffer in %s mode" mode-name)) (setq newname (or newname (buffer-name))) (if (string-match "<[0-9]+>\\'" newname) (setq newname (substring newname 0 (match-beginning 0))))