* elmo-pipe.el (elmo-folder-rename): New method, rename
authoryoichi <yoichi>
Mon, 10 Feb 2003 04:24:28 +0000 (04:24 +0000)
committeryoichi <yoichi>
Mon, 10 Feb 2003 04:24:28 +0000 (04:24 +0000)
destination folder with leaving source folder as it is.

elmo/ChangeLog
elmo/elmo-pipe.el

index 9a8ef21..5a85509 100644 (file)
@@ -1,3 +1,8 @@
+2003-02-10  Yoichi NAKAYAMA  <yoichi@eken.phys.nagoya-u.ac.jp>
+
+       * elmo-pipe.el (elmo-folder-rename): New method, rename
+       destination folder with leaving source folder as it is.
+
 2003-02-08  KAMO Tomoyuki  <kamo@ITmanage.co.jp>
 
        * elmo-nntp.el (elmo-nntp-get-folders-info): Don't use
index e2dfc04..c4194b7 100644 (file)
 (luna-define-method elmo-folder-pack-numbers ((folder elmo-pipe-folder))
   (elmo-folder-pack-numbers (elmo-pipe-folder-dst-internal folder)))
 
+(luna-define-method elmo-folder-rename ((folder elmo-pipe-folder) new-name)
+  (let* ((new-folder (elmo-make-folder new-name)))
+    (unless (string= (elmo-folder-name-internal
+                     (elmo-pipe-folder-src-internal folder))
+                    (elmo-folder-name-internal
+                     (elmo-pipe-folder-src-internal new-folder)))
+      (error "Source folder differ"))
+    (unless (eq (elmo-folder-type-internal
+                (elmo-pipe-folder-dst-internal folder))
+               (elmo-folder-type-internal
+                (elmo-pipe-folder-dst-internal new-folder)))
+      (error "Not same folder type"))
+    (if (or (file-exists-p (elmo-folder-msgdb-path
+                           (elmo-pipe-folder-dst-internal new-folder)))
+           (elmo-folder-exists-p
+            (elmo-pipe-folder-dst-internal new-folder)))
+       (error "Already exists folder: %s" new-name))
+    (elmo-folder-send (elmo-pipe-folder-dst-internal folder)
+                     'elmo-folder-rename-internal
+                     (elmo-pipe-folder-dst-internal new-folder))
+    (elmo-msgdb-rename-path folder new-folder)))
+
 (require 'product)
 (product-provide (provide 'elmo-pipe) (require 'elmo-version))