* mail-source.el (make-source-make-complex-temp-name): Use
authorShengHuo ZHU <zsh@cs.rochester.edu>
Tue, 5 Mar 2002 13:15:01 +0000 (13:15 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Tue, 5 Mar 2002 13:15:01 +0000 (13:15 +0000)
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.

lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-fun.el
lisp/gnus-start.el
lisp/gnus-uu.el
lisp/mail-source.el
lisp/mm-decode.el
lisp/mm-util.el
lisp/mm-view.el
lisp/mml-smime.el
lisp/nneething.el

index d58c256..7140236 100644 (file)
@@ -1,3 +1,19 @@
+2002-03-05  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * 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  <prj@po.cwru.edu>
 
        * message.el (nnmaildir-article-number-to-base-name): New
index d53f21a..a894c64 100644 (file)
@@ -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
index 473470b..1000ff7 100644 (file)
@@ -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)
index 681fc32..bcada00 100644 (file)
@@ -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))
index 6ab183a..ad0e236 100644 (file)
@@ -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)
index bb8f353..73891cd 100644 (file)
@@ -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.
index fdb9131..86318b4 100644 (file)
@@ -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
index 24635b8..18bf4d7 100644 (file)
@@ -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
index b763bfa..2ab6898 100644 (file)
@@ -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))
index d5baf3f..2eec919 100644 (file)
@@ -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)
index bf9e1c6..e013acb 100644 (file)
@@ -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)