From: ShengHuo ZHU Date: Tue, 5 Mar 2002 13:15:01 +0000 (+0000) Subject: * mail-source.el (make-source-make-complex-temp-name): Use X-Git-Url: http://cgit.sxemacs.org/?a=commitdiff_plain;h=113abdf7b10aa64f8370569d1f661dcd4f103805;p=gnus * mail-source.el (make-source-make-complex-temp-name): Use make-temp-file. * mm-util.el (mm-make-temp-file): New function. * nneething.el (nneething-file-name): Use it. * mml-smime.el (mml-smime-encrypt): Ditto. * mm-view.el (mm-inline-wash-with-file): Ditto. * mm-decode.el (mm-display-external, mm-create-image-xemacs): Ditto. * gnus-uu.el (gnus-uu-decode-binhex, gnus-uu-decode-binhex-view) (gnus-uu-digest-mail-forward, gnus-uu-initialize): Ditto. * gnus-start.el (gnus-slave-save-newsrc): Ditto. * gnus-fun.el (gnus-convert-image-to-gray-x-face): Ditto. * gnus-art.el (gnus-mime-print-part): Ditto. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d58c25634..714023696 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,19 @@ +2002-03-05 ShengHuo ZHU + + * mail-source.el (make-source-make-complex-temp-name): Use + make-temp-file. + + * mm-util.el (mm-make-temp-file): New function. + * nneething.el (nneething-file-name): Use it. + * mml-smime.el (mml-smime-encrypt): Ditto. + * mm-view.el (mm-inline-wash-with-file): Ditto. + * mm-decode.el (mm-display-external, mm-create-image-xemacs): Ditto. + * gnus-uu.el (gnus-uu-decode-binhex, gnus-uu-decode-binhex-view) + (gnus-uu-digest-mail-forward, gnus-uu-initialize): Ditto. + * gnus-start.el (gnus-slave-save-newsrc): Ditto. + * gnus-fun.el (gnus-convert-image-to-gray-x-face): Ditto. + * gnus-art.el (gnus-mime-print-part): Ditto. + 2002-03-04 Paul Jarc * message.el (nnmaildir-article-number-to-base-name): New diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index d53f21acf..a894c64b9 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -3790,7 +3790,7 @@ General format specifiers can also be used. See (gnus-article-check-buffer) (let* ((handle (or handle (get-text-property (point) 'gnus-data))) (contents (and handle (mm-get-part handle))) - (file (make-temp-name (expand-file-name "mm." mm-tmp-directory))) + (file (mm-make-temp-file (expand-file-name "mm." mm-tmp-directory))) (printer (mailcap-mime-info (mm-handle-type handle) "print"))) (when contents (if printer diff --git a/lisp/gnus-fun.el b/lisp/gnus-fun.el index 473470bc5..1000ff74d 100644 --- a/lisp/gnus-fun.el +++ b/lisp/gnus-fun.el @@ -75,7 +75,8 @@ Output to the current buffer, replace text, and don't mingle error." (shell-quote-argument file))))) (defun gnus-convert-image-to-gray-x-face (file depth) - (let* ((mapfile (make-temp-name (expand-file-name "gnus." mm-tmp-directory))) + (let* ((mapfile (mm-make-temp-file (expand-file-name "gnus." + mm-tmp-directory))) (levels (expt 2 depth)) (step (/ 255 (1- levels))) color-alist bits bits-list mask pixel x-faces) diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 681fc3240..bcada00a4 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -2582,7 +2582,7 @@ If FORCE is non-nil, the .newsrc file is read." (save-excursion (set-buffer gnus-dribble-buffer) (let ((slave-name - (make-temp-name (concat gnus-current-startup-file "-slave-"))) + (mm-make-temp-file (concat gnus-current-startup-file "-slave-"))) (modes (ignore-errors (file-modes (concat gnus-current-startup-file ".eld"))))) (let ((coding-system-for-write gnus-ding-file-coding-system)) diff --git a/lisp/gnus-uu.el b/lisp/gnus-uu.el index 6ab183a3b..ad0e236db 100644 --- a/lisp/gnus-uu.el +++ b/lisp/gnus-uu.el @@ -407,7 +407,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." gnus-uu-default-dir gnus-uu-default-dir)))) (setq gnus-uu-binhex-article-name - (make-temp-name (concat gnus-uu-work-dir "binhex"))) + (mm-make-temp-file (expand-file-name "binhex" gnus-uu-work-dir))) (gnus-uu-decode-with-method 'gnus-uu-binhex-article n dir)) (defun gnus-uu-decode-uu-view (&optional n) @@ -460,7 +460,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (read-file-name "Unbinhex, view and save in dir: " gnus-uu-default-dir gnus-uu-default-dir))) (setq gnus-uu-binhex-article-name - (make-temp-name (concat gnus-uu-work-dir "binhex"))) + (mm-make-temp-file (expand-file-name "binhex" gnus-uu-work-dir))) (let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic))) (gnus-uu-decode-binhex n file))) @@ -471,7 +471,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." "Digests and forwards all articles in this series." (interactive "P") (let ((gnus-uu-save-in-digest t) - (file (make-temp-name (nnheader-concat gnus-uu-tmp-dir "forward"))) + (file (mm-make-temp-file (nnheader-concat gnus-uu-tmp-dir "forward"))) (message-forward-as-mime message-forward-as-mime) (mail-parse-charset gnus-newsgroup-charset) (mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets) @@ -1752,8 +1752,7 @@ Gnus might fail to display all of it.") gnus-uu-tmp-dir))) (setq gnus-uu-work-dir - (make-temp-name (concat gnus-uu-tmp-dir "gnus"))) - (gnus-make-directory gnus-uu-work-dir) + (mm-make-temp-file (concat gnus-uu-tmp-dir "gnus") 'dir)) (set-file-modes gnus-uu-work-dir 448) (setq gnus-uu-work-dir (file-name-as-directory gnus-uu-work-dir)) (push (cons gnus-newsgroup-name gnus-uu-work-dir) diff --git a/lisp/mail-source.el b/lisp/mail-source.el index bb8f353aa..73891cd9e 100644 --- a/lisp/mail-source.el +++ b/lisp/mail-source.el @@ -469,13 +469,16 @@ Return the number of files that were found." (error "Cannot get new mail")) 0))))))))) -(defun mail-source-make-complex-temp-name (prefix) - (let ((newname (make-temp-name prefix)) - (newprefix prefix)) - (while (file-exists-p newname) - (setq newprefix (concat newprefix "x")) - (setq newname (make-temp-name newprefix))) - newname)) +(eval-and-compile + (if (fboundp 'make-temp-file) + (defalias 'mail-source-make-complex-temp-name 'make-temp-file) + (defun mail-source-make-complex-temp-name (prefix) + (let ((newname (make-temp-name prefix)) + (newprefix prefix)) + (while (file-exists-p newname) + (setq newprefix (concat newprefix "x")) + (setq newname (make-temp-name newprefix))) + newname)))) (defun mail-source-callback (callback info) "Call CALLBACK on the mail file, and then remove the mail file. diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index fdb91319a..86318b412 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -665,8 +665,8 @@ external if displayed external." (mm-handle-set-undisplayer handle mm))))) ;; The function is a string to be executed. (mm-insert-part handle) - (let* ((dir (make-temp-name - (expand-file-name "emm." mm-tmp-directory))) + (let* ((dir (mm-make-temp-file + (expand-file-name "emm." mm-tmp-directory) 'dir)) (filename (or (mail-content-type-get (mm-handle-disposition handle) 'filename) @@ -679,14 +679,13 @@ external if displayed external." (copiousoutput (assoc "copiousoutput" mime-info)) file buffer) ;; We create a private sub-directory where we store our files. - (make-directory dir) (set-file-modes dir 448) (if filename (setq file (expand-file-name (gnus-map-function mm-file-name-rewrite-functions (file-name-nondirectory filename)) dir)) - (setq file (make-temp-name (expand-file-name "mm." dir)))) + (setq file (mm-make-temp-file (expand-file-name "mm." dir)))) (let ((coding-system-for-write mm-binary-coding-system)) (write-region (point-min) (point-max) file nil 'nomesg)) (message "Viewing with %s" method) @@ -1167,7 +1166,7 @@ be determined." ;; (without a ton of work) is to write them ;; out to a file, and then create a file ;; specifier. - (let ((file (make-temp-name + (let ((file (mm-make-temp-file (expand-file-name "emm.xbm" mm-tmp-directory)))) (unwind-protect diff --git a/lisp/mm-util.el b/lisp/mm-util.el index 24635b875..18bf4d7fb 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -780,6 +780,20 @@ If INHIBIT is non-nil, inhibit mm-inhibit-file-name-handlers." (t 'iso-8859-1)))) +;; It is not a MIME function, but some MIME functions use it. +(defalias 'mm-make-temp-file + (if (fboundp 'make-temp-file) + 'make-temp-file + (lambda (prefix &optional dir-flag) + (let ((file (expand-file-name + (make-temp-name prefix) + (if (fboundp 'temp-directory) + (temp-directory) + temporary-file-directory)))) + (if dir-flag + (make-directory file)) + file)))) + (provide 'mm-util) ;;; mm-util.el ends here diff --git a/lisp/mm-view.el b/lisp/mm-view.el index b763bfa30..2ab689835 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -311,7 +311,7 @@ will not be substituted.") (delete-region (match-beginning 0) (match-end 0)))) (defun mm-inline-wash-with-file (post-func cmd &rest args) - (let ((file (make-temp-name + (let ((file (mm-make-temp-file (expand-file-name "mm" mm-tmp-directory)))) (let ((coding-system-for-write 'binary)) (write-region (point-min) (point-max) file nil 'silent)) diff --git a/lisp/mml-smime.el b/lisp/mml-smime.el index d5baf3f59..2eec91961 100644 --- a/lisp/mml-smime.el +++ b/lisp/mml-smime.el @@ -45,7 +45,8 @@ (if (not (and (not (file-exists-p tmp)) (get-buffer tmp))) (push tmp certfiles) - (setq file (make-temp-name mm-tmp-directory)) + (setq file (mm-make-temp-file (expand-file-name "mml." + mm-tmp-directory))) (with-current-buffer tmp (write-region (point-min) (point-max) file)) (push file certfiles) diff --git a/lisp/nneething.el b/lisp/nneething.el index bf9e1c605..e013acb96 100644 --- a/lisp/nneething.el +++ b/lisp/nneething.el @@ -422,7 +422,7 @@ included.") (if (numberp article) (if (setq fname (cadr (assq article nneething-map))) (expand-file-name fname dir) - (make-temp-name (expand-file-name "nneething" dir))) + (mm-make-temp-file (expand-file-name "nneething" dir))) (expand-file-name article dir)))) (provide 'nneething)