]> git.eshelyaron.com Git - emacs.git/commitdiff
(custom-get-fresh-buffer): Be extra paranoid,
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 1 Jun 2003 18:40:10 +0000 (18:40 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 1 Jun 2003 18:40:10 +0000 (18:40 +0000)
just in case some used a file of the wrong name.

lisp/cus-edit.el

index c7cb7d67ce4ecdf576acb61cb43b5a5fe06f8e15..51e4e5b1f3ab53ab441a578090b94e62a662e04d 100644 (file)
@@ -1208,12 +1208,21 @@ Called with one argument, the buffer to remove."
 
 (defun custom-get-fresh-buffer (name)
   "Get a fresh new buffer with name NAME.
-If the buffer already exist, clean it up to be like new."
+If the buffer already exist, clean it up to be like new.
+Beware: it's not quite like new.  Good enough for custom, but maybe
+not for everybody."
+  ;; To be more complete, we should also kill all permanent-local variables,
+  ;; but it's not needed for custom.
   (let ((buf (get-buffer name)))
+    (when (buffer-local-value 'buffer-file-name buf)
+      ;; This will check if the file is not saved.
+      (kill-buffer buf)
+      (setq buf nil))
     (if (null buf)
        (get-buffer-create name)
       (with-current-buffer buf
        (kill-all-local-variables)
+       (run-hooks 'kill-buffer-hook)
        (erase-buffer)
        (let ((ols (overlay-lists)))
          (dolist (ol (nconc (car ols) (cdr ols)))