Function: ediff-make-empty-tmp-file

ediff-make-empty-tmp-file is a byte-compiled function defined in ediff-util.el.gz.

Signature

(ediff-make-empty-tmp-file PROPOSED-NAME &optional KEEP-PROPOSED-NAME)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-util.el.gz
;; Create a temporary file.
;; The returned file name (created by appending some random characters at the
;; end of PROPOSED-NAME is guaranteed to point to a newly created empty file.
;; This is a replacement for make-temp-name, which eliminates a security hole.
;; If KEEP-PROPOSED-NAME isn't nil, try to keep PROPOSED-NAME, unless such file
;; already exists.
;; It is a modified version of make-temp-file in emacs 20.5
(defun ediff-make-empty-tmp-file (proposed-name &optional keep-proposed-name)
  (let ((file proposed-name))
    (while (condition-case ()
               (progn
		 (if (or (file-exists-p file) (not keep-proposed-name))
		     (setq file (make-temp-name proposed-name)))
                 (write-region "" nil file nil 'silent nil 'excl)
                 nil)
            (file-already-exists t))
      ;; the file was somehow created by someone else between
      ;; `make-temp-name' and `write-region', let's try again.
      nil)
    file))