*** empty log message ***
[gnus] / lisp / gnus-uu.el
index f2176c3..6b79c8f 100644 (file)
@@ -259,7 +259,7 @@ The headers will be included in the sequence they are matched.")
 (defvar gnus-uu-generated-file-list nil)
 (defvar gnus-uu-work-dir nil)
 
-(defconst gnus-uu-output-buffer-name "*Gnus UU Output*")
+(defconst gnus-uu-output-buffer-name " *Gnus UU Output*")
 
 (defconst gnus-uu-highest-article-number 1)
 (defvar gnus-uu-default-dir default-directory)
@@ -1458,24 +1458,35 @@ The headers will be included in the sequence they are matched.")
                (insert (make-string (- length (- (point) beg)) ? ))))
          (forward-line 1))))))
 
+(defvar gnus-uu-tmp-alist nil)
+
 (defun gnus-uu-initialize ()
-  (setq gnus-uu-highest-article-number 1)
-  (gnus-uu-check-for-generated-files)
-  (setq gnus-uu-tmp-dir (file-name-as-directory 
-                        (expand-file-name gnus-uu-tmp-dir)))
-
-  (if (not (file-directory-p gnus-uu-tmp-dir))
-      (error "Temp directory %s doesn't exist" gnus-uu-tmp-dir)
-    (if (not (file-writable-p gnus-uu-tmp-dir))
-       (error "Temp directory %s can't be written to" gnus-uu-tmp-dir)))
-
-  (setq gnus-uu-work-dir 
-       (make-temp-name (concat gnus-uu-tmp-dir "gnus")))
-  (gnus-uu-add-file gnus-uu-work-dir)
-  (if (not (file-directory-p gnus-uu-work-dir)) 
-      (gnus-make-directory gnus-uu-work-dir))
-  (set-file-modes gnus-uu-work-dir 448)
-  (setq gnus-uu-work-dir (file-name-as-directory gnus-uu-work-dir)))
+  (let (entry)
+    (if (if (setq entry (assoc gnus-newsgroup-name gnus-uu-tmp-alist))
+           (if (file-exists-p (cdr entry))
+               (setq gnus-uu-work-dir (cdr entry))
+             (setq gnus-uu-tmp-alist (delq entry gnus-uu-tmp-alist))
+             nil))
+       t
+      (setq gnus-uu-highest-article-number 1)
+      (setq gnus-uu-tmp-dir (file-name-as-directory 
+                            (expand-file-name gnus-uu-tmp-dir)))
+      (if (not (file-directory-p gnus-uu-tmp-dir))
+         (error "Temp directory %s doesn't exist" gnus-uu-tmp-dir)
+       (if (not (file-writable-p gnus-uu-tmp-dir))
+           (error "Temp directory %s can't be written to" 
+                  gnus-uu-tmp-dir)))
+
+      (setq gnus-uu-work-dir 
+           (make-temp-name (concat gnus-uu-tmp-dir "gnus")))
+      (gnus-uu-add-file gnus-uu-work-dir)
+      (if (not (file-directory-p gnus-uu-work-dir)) 
+         (gnus-make-directory gnus-uu-work-dir))
+      (set-file-modes gnus-uu-work-dir 448)
+      (setq gnus-uu-work-dir (file-name-as-directory gnus-uu-work-dir))
+      (setq gnus-uu-tmp-alist (cons (cons gnus-newsgroup-name gnus-uu-work-dir)
+                                   gnus-uu-tmp-alist)))))
+
 
 ;; Kills the temporary uu buffers, kills any processes, etc.
 (defun gnus-uu-clean-up ()