-(static-condition-case nil
- ;; compile-time check
- (progn
- (delete-file (make-temp-file "EMU" nil ".txt"))
- (if (get 'make-temp-file 'defun-maybe)
- (error "`make-temp-file' is already defined")))
- (wrong-number-of-arguments ; Emacs 21.1-21.3
- ;; load-time check.
- ;; Replace original definition.
- (or (fboundp 'si:make-temp-file)
- (progn
- (fset 'si:make-temp-file (symbol-function 'make-temp-file))
- (put 'make-temp-file 'defun-maybe t)
- (defun make-temp-file (prefix &optional dir-flag suffix)
- "\
+;;
+;; Emacs 21.1-21.3 ; replace with CVS version of `make-temp-file'.
+;; (make-temp-file PREFIX &optional DIR-FLAG)
+;;
+;; Emacs 20 and earlier ; install our version of `make-temp-file', for
+;; or XEmacs ; single-user system or for multi-user system.
+(eval-when-compile
+ (cond
+ ((get 'make-temp-file 'defun-maybe)
+ ;; this form is already evaluated during compilation.
+ )
+ ((not (fboundp 'make-temp-file))
+ ;; Emacs 20 and earlier, or XEmacs.
+ (put 'make-temp-file 'defun-maybe 'none))
+ (t
+ (let* ((object (symbol-function 'make-temp-file))
+ (arglist (cond
+ ((byte-code-function-p object)
+ (if (fboundp 'compiled-function-arglist)
+ (compiled-function-arglist object)
+ (aref object 0)))
+ ((eq (car-safe object) 'lambda)
+ (nth 1 object))
+ ;; `make-temp-file' is a built-in.
+ )))
+ ;; arglist: (prefix &optional dir-flag suffix)
+ (cond
+ ((not arglist)
+ ;; `make-temp-file' is a built-in; expects 3-args.
+ (put 'make-temp-file 'defun-maybe '3-args))
+ ((> (length arglist) 3)
+ ;; Emacs 21 CVS.
+ (put 'make-temp-file 'defun-maybe '3-args))
+ (t
+ ;; Emacs 21.1-21.3
+ (put 'make-temp-file 'defun-maybe '2-args)))))))
+
+(static-cond
+ ((eq (get 'make-temp-file 'defun-maybe) '3-args)
+ (put 'make-temp-file 'defun-maybe '3-args))
+ ((eq (get 'make-temp-file 'defun-maybe) '2-args)
+ (put 'make-temp-file 'defun-maybe '2-args)
+ (or (fboundp 'si:make-temp-file)
+ (fset 'si:make-temp-file (symbol-function 'make-temp-file)))
+ (setq current-load-list (cons 'make-temp-file current-load-list))
+ (defun make-temp-file (prefix &optional dir-flag suffix)
+ "\