# HG changeset patch # User Richard M. Stallman # Date 1005617399 0 # Node ID 0eb891bb0d3e257698ad4143e01cc67481ca2a5c # Parent eac4b1ccb6b85b1e9e232607b86dcf626f467364 (clone-indirect-buffer): Error if major mode symbol has a no-clone-indirect property. (clone-buffer): Check for obvious errors before reading clone name. diff -r eac4b1ccb6b8 -r 0eb891bb0d3e lisp/simple.el --- 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))))