Function: ediff-write-merge-buffer-and-maybe-kill

ediff-write-merge-buffer-and-maybe-kill is a byte-compiled function defined in ediff-util.el.gz.

Signature

(ediff-write-merge-buffer-and-maybe-kill BUF FILE &optional SHOW-FILE SAVE-AND-CONTINUE)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-util.el.gz
;; write merge buffer.  If the optional argument save-and-continue is non-nil,
;; then don't kill the merge buffer
(defun ediff-write-merge-buffer-and-maybe-kill (buf file
					       &optional
					       show-file save-and-continue)
  (if (not (eq (find-buffer-visiting file) buf))
      (let ((warn-message
	     (format "Another buffer is visiting file %s. Too dangerous to save the merge buffer"
		     file)))
	(beep)
	(message "%s" warn-message)
	(with-output-to-temp-buffer ediff-msg-buffer
	  (princ "\n\n")
	  (princ warn-message)
	  (princ "\n\n")
	  )
	(sit-for 2))
    (ediff-with-current-buffer buf
      (if (or (not (file-exists-p file))
	      (y-or-n-p (format "File %s exists, overwrite? " file)))
	  (progn
	    ;;(write-region nil nil file)
	    (ediff-with-current-buffer buf
	      (set-visited-file-name file)
	      (save-buffer))
	    (if show-file
		(progn
		  (message "Merge buffer saved in: %s" file)
		  (set-buffer-modified-p nil)
		  (sit-for 3)))
	    (if (and
		 (not save-and-continue)
		 (y-or-n-p "Merge buffer saved.  Now kill the buffer? "))
		(ediff-kill-buffer-carefully buf)))))
    ))