[Mew-dist 311] call-process "cp", "ln", "rm", ....

SAKAI Kiyotaka ksakai at example.com
1996年 12月 18日 (水) 22:25:43 JST


Mew では

  (call-process "cp" nil nil nil old-file new-file)
  (call-process "ln" nil nil nil "-s" old-file new-file)
  (call-process "rm" nil nil nil file)

という syntax を何か所かで用いていますが、call-process は vfork() する
分無駄なので、代わりに

  (copy-file old-file new-file)
  (make-symbolic-link old-file new-file)
  (delete-file file)

という syntax を用いた方がいいと思います。

ついでに、もう、完全に Emacs 18 のサポートをやめるのであれば、
make-directory() も利用できますね。
-- 
酒井 清隆 (E-mail: ksakai at example.com)

-------------- next part --------------
===================================================================
RCS file: RCS/mew-summary.el,v
retrieving revision 1.1
diff -u -r1.1 mew-summary.el
--- mew-summary.el	1996/12/18 13:08:43	1.1
+++ mew-summary.el	1996/12/18 13:09:38
@@ -1645,16 +1645,14 @@
 	    )))
     (while fld-msg-list
       (if mew-os2-p
-	  (call-process "cp" nil nil nil
-			(mew-expand-file-name
-			 (cdr (car fld-msg-list)) ;; message
-			 (car (car fld-msg-list))) ;; folder
-			(mew-draft-get-new mimefolder))
-	(call-process "ln" nil nil nil "-s"
-		      (mew-expand-file-name
-		       (cdr (car fld-msg-list)) ;; message
-		       (car (car fld-msg-list))) ;; folder
-		      (mew-draft-get-new mimefolder))
+	  (copy-file (mew-expand-file-name
+		      (cdr (car fld-msg-list)) ;; message
+		      (car (car fld-msg-list))) ;; folder
+		     (mew-draft-get-new mimefolder))
+	(make-symbolic-link (mew-expand-file-name
+			     (cdr (car fld-msg-list)) ;; message
+			     (car (car fld-msg-list))) ;; folder
+			    (mew-draft-get-new mimefolder))
 	)
       (setq fld-msg-list (cdr fld-msg-list)))
     ))
-------------- next part --------------
===================================================================
RCS file: RCS/mew-attach.el,v
retrieving revision 1.1
diff -u -r1.1 mew-attach.el
--- mew-attach.el	1996/12/18 13:05:40	1.1
+++ mew-attach.el	1996/12/18 13:11:54
@@ -362,15 +362,12 @@
 	  (if (null (mew-y-or-n-p (message "File %s exists. Overwrite it? "
 					   efile)))
 	      (setq doit nil)
-	    (call-process "rm" nil nil nil 
-			  (expand-file-name efile mimedir))))
+	    (delete-file (expand-file-name efile mimedir))))
       (if (null doit)
 	  ()
 	(if mew-os2-p
-	    (call-process "cp" nil nil nil fromfile 
-			  (expand-file-name efile mimedir))
-	  (call-process "ln" nil nil nil "-s" fromfile 
-			(expand-file-name efile mimedir)))
+	    (copy-file fromfile (expand-file-name efile mimedir))
+	  (make-symbolic-link fromfile (expand-file-name efile mimedir)))
 	(setq mew-encode-syntax
 	      (mew-syntax-insert-entry
 	       mew-encode-syntax 


Mew-dist メーリングリストの案内