Function: custom-get-fresh-buffer

custom-get-fresh-buffer is a byte-compiled function defined in cus-edit.el.gz.

Signature

(custom-get-fresh-buffer NAME)

Documentation

Get a fresh new buffer with name NAME.

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.

Source Code

;; Defined in /usr/src/emacs/lisp/cus-edit.el.gz
(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.
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 (and buf (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)
	;; Delete overlays before erasing the buffer so the overlay hooks
	;; don't get run spuriously when we erase the buffer.
	(let ((ols (overlay-lists)))
	  (dolist (ol (nconc (car ols) (cdr ols)))
	    (delete-overlay ol)))
	(erase-buffer)
	buf))))