ptexinfmt.el; Fix last change
[elisp/wanderlust.git] / elmo / elmo-archive.el
index 0c94f92..274bde1 100644 (file)
      (rar . "^[ \t]%s\\([0-9]+\\)$"))))
 
 (defvar elmo-archive-suffix-alist
-   '((lha . ".lzh")  ; default
-;;;  (lha . ".lzs")
-     (zip . ".zip")
-     (zoo . ".zoo")
-;;;  (arc . ".arc")
-;;;  (arj . ".arj")
-     (rar . ".rar")
-     (tar . ".tar")
-     (tgz . ".tar.gz")))
+  '((lha . ".lzh")                     ; default
+;;;     (lha . ".lzs")
+    (zip . ".zip")
+    (zoo . ".zoo")
+;;;     (arc . ".arc")
+;;;     (arj . ".arj")
+    (rar . ".rar")
+    (tar . ".tar")
+    (tgz . ".tar.gz")))
 
 ;;; lha
 (defvar elmo-archive-lha-method-alist
     '((ls    . ("gtar" "-tf"))
       (cat   . ("gtar" "-Oxf"))
       (ext   . ("gtar" "-xf"))
-;;;    (rm    . ("gtar" "--delete" "-f")) ;; well not work
+;;;      (rm    . ("gtar" "--delete" "-f")) ; well not work
       )))
 
 ;;; GNU tar (*.tar.gz, *.tar.Z, *.tar.bz2)
   '((ls         . ("gtar" "-ztf"))
     (cat        . ("gtar" "-Ozxf"))
     (create     . ("gtar" "-zcf"))
-;;; (rm         . elmo-archive-tgz-rm-func)
+;;;    (rm         . elmo-archive-tgz-rm-func)
     (cp         . elmo-archive-tgz-cp-func)
     (mv         . elmo-archive-tgz-mv-func)
     (ext        . ("gtar" "-zxf"))
     (decompress . ("gzip" "-d"))
     (compress   . ("gzip"))
     (append     . ("gtar" "-uf"))
-;;; (delete     . ("gtar" "--delete" "-f")) ; well not work
+;;;    (delete     . ("gtar" "--delete" "-f")) ; well not work
     ))
 
 (defvar elmo-archive-method-list
   '(elmo-archive-lha-method-alist
     elmo-archive-zip-method-alist
     elmo-archive-zoo-method-alist
-;;; elmo-archive-tar-method-alist
+;;;    elmo-archive-tar-method-alist
     elmo-archive-tgz-method-alist
-;;; elmo-archive-arc-method-alist
-;;; elmo-archive-arj-method-alist
+;;;    elmo-archive-arc-method-alist
+;;;    elmo-archive-arj-method-alist
     elmo-archive-rar-method-alist))
 
 ;;; Internal vars.
@@ -428,20 +428,19 @@ TYPE specifies the archiver's symbol."
        (error "WARNING: read-only mode: %s (method undefined)" type))
       (cond
        ((file-directory-p tmp-dir)
-       ()) ;nop
+       ())                             ; nop
        ((file-exists-p tmp-dir)
        ;; file exists
        (error "Create directory failed; File \"%s\" exists" tmp-dir))
        (t
        (elmo-make-directory tmp-dir)))
-      (elmo-bind-directory
-       tmp-dir
-       (write-region (point) (point) dummy nil 'no-msg)
-       (prog1
-          (elmo-archive-call-method method args)
-        (if (file-exists-p dummy)
-            (delete-file dummy)))
-       ))))
+      (elmo-bind-directory tmp-dir
+       (write-region (point) (point) dummy nil 'no-msg)
+       (prog1
+           (elmo-archive-call-method method args)
+         (if (file-exists-p dummy)
+             (delete-file dummy)))
+       ))))
 
 (luna-define-method elmo-folder-delete ((folder elmo-archive-folder))
   (let ((msgs (and (elmo-folder-exists-p folder)
@@ -560,7 +559,7 @@ TYPE specifies the archiver's symbol."
         (prefix (elmo-archive-folder-archive-prefix-internal folder))
         (method (elmo-archive-get-method type 'cat))
         (args (list arc (elmo-concat-path
-                         prefix (int-to-string number)))))
+                         prefix (number-to-string number)))))
     (and (file-exists-p arc)
         (as-binary-process
          (elmo-archive-call-method method args t))
@@ -600,25 +599,24 @@ TYPE specifies the archiver's symbol."
          (elmo-make-directory (directory-file-name tmp-dir))))
       (setq newfile (elmo-concat-path
                     prefix
-                    (int-to-string next-num)))
-      (elmo-bind-directory
-       tmp-dir
-       (if (and (or (functionp method) (car method))
-               (file-writable-p newfile))
-          (progn
-            (setq dst-buffer (current-buffer))
-            (with-current-buffer src-buffer
-              (copy-to-buffer dst-buffer (point-min) (point-max)))
-            (as-binary-output-file
-                 (write-region (point-min) (point-max) newfile nil 'no-msg))
-            (when (elmo-archive-call-method method (list arc newfile))
-              (elmo-folder-preserve-flags
-               folder
-               (with-current-buffer src-buffer
-                 (elmo-msgdb-get-message-id-from-buffer))
-               flags)
-              t))
-        nil)))))
+                    (number-to-string next-num)))
+      (elmo-bind-directory tmp-dir
+       (if (and (or (functionp method) (car method))
+                (file-writable-p newfile))
+           (progn
+             (setq dst-buffer (current-buffer))
+             (with-current-buffer src-buffer
+               (copy-to-buffer dst-buffer (point-min) (point-max)))
+             (as-binary-output-file
+              (write-region (point-min) (point-max) newfile nil 'no-msg))
+             (when (elmo-archive-call-method method (list arc newfile))
+               (elmo-folder-preserve-flags
+                folder
+                (with-current-buffer src-buffer
+                  (elmo-msgdb-get-message-id-from-buffer))
+                flags)
+               t))
+         nil)))))
 
 (defun elmo-folder-append-messages-*-archive (folder
                                              src-folder
@@ -703,25 +701,24 @@ TYPE specifies the archiver's symbol."
         (n-method (elmo-archive-get-method type 'ext))
         (tmp-msgs (mapcar (lambda (x) (elmo-concat-path
                                        prefix
-                                       (int-to-string x))) numbers))
+                                       (number-to-string x))) numbers))
         number)
     ;; Expand files in the tmp-dir-src.
-    (elmo-bind-directory
-     tmp-dir-src
-     (cond
-      ((functionp n-method)
-       (funcall n-method (cons arc tmp-msgs)))
-      (p-method
-       (let ((p-prog (car p-method))
-            (p-prog-arg (cdr p-method)))
-        (elmo-archive-exec-msgs-subr1
-         p-prog (append p-prog-arg (list arc)) tmp-msgs)))
-      (t
-       (let ((n-prog (car n-method))
-            (n-prog-arg (cdr n-method)))
-        (elmo-archive-exec-msgs-subr2
-         n-prog (append n-prog-arg (list arc)) tmp-msgs
-         (length arc))))))
+    (elmo-bind-directory tmp-dir-src
+      (cond
+       ((functionp n-method)
+       (funcall n-method (cons arc tmp-msgs)))
+       (p-method
+       (let ((p-prog (car p-method))
+             (p-prog-arg (cdr p-method)))
+         (elmo-archive-exec-msgs-subr1
+          p-prog (append p-prog-arg (list arc)) tmp-msgs)))
+       (t
+       (let ((n-prog (car n-method))
+             (n-prog-arg (cdr n-method)))
+         (elmo-archive-exec-msgs-subr2
+          n-prog (append n-prog-arg (list arc)) tmp-msgs
+          (length arc))))))
     ;; Move files to the tmp-dir-dst.
     (setq number start-number)
     (dolist (tmp-file tmp-msgs)
@@ -730,7 +727,7 @@ TYPE specifies the archiver's symbol."
                    tmp-dir-src)
                   (expand-file-name
                    (if start-number
-                       (int-to-string number)
+                       (number-to-string number)
                      (file-name-nondirectory tmp-file))
                    tmp-dir-dst))
       (if start-number (incf number)))
@@ -752,21 +749,20 @@ TYPE specifies the archiver's symbol."
       (ding)
       (error "WARNING: read-only mode: %s (method undefined)" dst-type))
     (save-excursion
-      (elmo-bind-directory
-       dir
-       (cond
-       ((functionp n-method)
-        (funcall n-method (cons arc files)))
-       (p-method
-        (let ((p-prog (car p-method))
-              (p-prog-arg (cdr p-method)))
-          (elmo-archive-exec-msgs-subr1
-           p-prog (append p-prog-arg (list arc)) files)))
-       (t
-        (let ((n-prog (car n-method))
-              (n-prog-arg (cdr n-method)))
-          (elmo-archive-exec-msgs-subr2
-           n-prog (append n-prog-arg (list arc)) files (length arc)))))))))
+      (elmo-bind-directory dir
+       (cond
+        ((functionp n-method)
+         (funcall n-method (cons arc files)))
+        (p-method
+         (let ((p-prog (car p-method))
+               (p-prog-arg (cdr p-method)))
+           (elmo-archive-exec-msgs-subr1
+            p-prog (append p-prog-arg (list arc)) files)))
+        (t
+         (let ((n-prog (car n-method))
+               (n-prog-arg (cdr n-method)))
+           (elmo-archive-exec-msgs-subr2
+            n-prog (append n-prog-arg (list arc)) files (length arc)))))))))
 
 (luna-define-method elmo-folder-delete-messages-internal ((folder
                                                           elmo-archive-folder)
@@ -778,7 +774,7 @@ TYPE specifies the archiver's symbol."
         (n-method (elmo-archive-get-method type 'rm))
         (numbers (mapcar (lambda (x) (elmo-concat-path
                                       prefix
-                                      (int-to-string x)))
+                                      (number-to-string x)))
                          numbers)))
     (cond ((functionp n-method)
           (funcall n-method (cons arc numbers)))
@@ -921,7 +917,7 @@ TYPE specifies the archiver's symbol."
                                            method
                                            archive number type
                                            &optional prefix)
-  (let* ((msg (elmo-concat-path prefix (int-to-string number)))
+  (let* ((msg (elmo-concat-path prefix (number-to-string number)))
         (arg-list (list archive msg)))
     (when (elmo-archive-article-exists-p archive msg type)
       ;; insert article.
@@ -991,7 +987,8 @@ TYPE specifies the archiver's symbol."
        (insert
         (mapconcat
          'concat
-         (mapcar (lambda (x) (elmo-concat-path prefix (int-to-string x))) msgs)
+         (mapcar (lambda (x) (elmo-concat-path prefix (number-to-string x)))
+                 msgs)
          "\n"))
        (as-binary-process (apply 'call-process-region
                                  (point-min) (point-max)
@@ -1002,7 +999,7 @@ TYPE specifies the archiver's symbol."
          (elmo-msgdb-append
           new-msgdb
           (elmo-archive-parse-mmdf folder msgs flag-table)))
-;;;     ((looking-at delim2)   ;; UNIX MAIL
+;;;     ((looking-at delim2)           ; UNIX MAIL
 ;;;      (elmo-msgdb-append
 ;;;       new-msgdb
 ;;;       (elmo-archive-parse-unixmail msgs flag-table)))
@@ -1048,23 +1045,22 @@ TYPE specifies the archiver's symbol."
     (let* ((type (elmo-archive-folder-archive-type-internal folder))
           (arc (elmo-archive-get-archive-name folder))
           (method (elmo-archive-get-method type 'cat))
-          (args (list arc (elmo-concat-path prefix (int-to-string number)))))
+          (args (list arc (elmo-concat-path prefix (number-to-string number)))))
       (elmo-set-work-buf
-       (when (file-exists-p arc)
-        (as-binary-process
-         (elmo-archive-call-method method args t))
-        (set-buffer-multibyte default-enable-multibyte-characters)
-        (decode-mime-charset-region (point-min)(point-max) elmo-mime-charset)
-        (elmo-message-buffer-match-condition condition number))))))
+       (when (file-exists-p arc)
+         (as-binary-process
+          (elmo-archive-call-method method args t))
+         (set-buffer-multibyte default-enable-multibyte-characters)
+         (decode-mime-charset-region (point-min)(point-max) elmo-mime-charset)
+         (elmo-message-buffer-match-condition condition number))))))
 
 (luna-define-method elmo-folder-search ((folder elmo-archive-folder)
                                        condition &optional from-msgs)
-  (let* (;;(args (elmo-string-to-list key))
-        ;; XXX: I don't know whether `elmo-archive-list-folder'
-        ;;      updates match-data.
-        ;; (msgs (or from-msgs (elmo-archive-list-folder spec)))
+  (let* ((case-fold-search nil)
+;;;     (args (elmo-string-to-list key))
+;;; XXX: I don't know whether `elmo-archive-list-folder' updates match-data.
+;;;     (msgs (or from-msgs (elmo-archive-list-folder spec)))
         (msgs (or from-msgs (elmo-folder-list-messages folder)))
-        (case-fold-search nil)
         ret-val)
     (elmo-with-progress-display (elmo-folder-search (length msgs)) "Searching"
       (dolist (number msgs)