[Mew-dist 03521] Re: draft/mime directory can't override.

Mito mit at example.com
1998年 1月 28日 (水) 10:25:09 JST


※ "山" こと Kazu at example.com さんの
   『[Mew-dist 03517] Re: draft/mime directory can't override.』
   からの引用です。

山> ああ、要するに mew-encoding-syntax ごと上書きしたいのですね。

# s/encoding/encode/ ですよね。

そうです。

山> - c で file1 をコピーする
山> - c で file2 を file1 へ上書きする

山> このとき、最初の file1 に対する Mew 内部の mew-encoding-syntax はどちらを
山> 優先すべきなのかと。

[Mew-dist 3192] の修正では file1 の mew-encode-syntax をひき
つぐだけだから、file1 と file2 が違う syntax の場合は危険か
もしれませんね。

syntax の決めかたは深く追ってなかったのですが、tofile のサ
フィックスできまるものと思い、tofile 自体は同じ名前だから 
syntaxも同じとはずと思い mew-decode-syntax は更新しないよう
にしたんだと思います。

山> c は、ファイルが存在した場合内部で d と同じ処理をするというのなら、一
山> 貫性は取れるのですが、逆に上書きが簡単になって、危険ではありませんか?

いったん削除するようにしてみました。
# β9はインストールしていないので、β8 へのパッチです。
こんなかんじならOKでしょうか?
-- 
1/28 10:23頃
NECソフトウェア新潟  水戸
mailto:mit at example.com
-------------- next part --------------
--- mew-attach.el	1998/01/28 00:41:20	1.1
+++ mew-attach.el	1998/01/28 01:00:29
@@ -400,13 +400,22 @@
 			"link to %s(%s): " 
 			subdir
 			(file-name-nondirectory fromfile))))
-	   (efile (concat subdir tofile)))
-      (while (file-exists-p (expand-file-name efile mimedir))
-	(setq tofile (mew-input-string 
-		      (concat (format "%s exists. " efile)"link to %s(%s): ")
-		      subdir
-		      (file-name-nondirectory fromfile)))
-	(setq efile (concat subdir tofile)))
+	   (efile (concat subdir tofile))
+	   (force nil))
+      (while (and (not force)
+		  (file-exists-p (expand-file-name efile mimedir)))
+	(if (y-or-n-p (format "%s exists. Overwrite it? " efile))
+	    (setq force t)
+	  (setq tofile (mew-input-string 
+			(concat (format "%s exists. " efile)"link to %s(%s): ")
+			subdir
+			(file-name-nondirectory fromfile)))
+	  (setq efile (concat subdir tofile))))
+      (if (not force)
+	  ()
+	(delete-file (expand-file-name efile mimedir))
+	(setq mew-encode-syntax
+	      (mew-syntax-remove-entry mew-encode-syntax nums)))
       (mew-symbolic-link fromfile (expand-file-name efile mimedir))
       (setq mew-encode-syntax
 	    (mew-syntax-insert-entry
@@ -425,20 +434,28 @@
     (let* ((nums (mew-attach-nums))
 	   (subdir (mew-attach-expand-path mew-encode-syntax nums))
 	   (mimedir (mew-expand-folder (mew-draft-to-mime (buffer-name))))
- 	   (fromfile (or from (mew-input-file-name "Copy from : ")))
- 	   (tofile (or to
+	   (fromfile (or from (mew-input-file-name "Copy from : ")))
+	   (tofile (or to
 		       (mew-input-string
 			"Copy to %s(%s): "
 			subdir
 			(file-name-nondirectory fromfile))))
-	   (efile (concat subdir tofile)))
-      (while (file-exists-p (expand-file-name efile mimedir))
-	(setq tofile (mew-input-string
-		      (concat (format "%s exists. " efile) "Copy to %s(%s): ")
-		      subdir
-		      (file-name-nondirectory fromfile)))
-	(setq efile (concat subdir tofile)))
-      (copy-file fromfile (expand-file-name efile mimedir))
+	   (efile (concat subdir tofile))
+	   (force nil))
+      (while (and (not force)
+		  (file-exists-p (expand-file-name efile mimedir)))
+	(if (y-or-n-p (format "%s exists. Overwrite it? " efile))
+	    (setq force t)
+	  (setq tofile (mew-input-string
+			(concat (format "%s exists. " efile)
+				"Copy to %s(%s): ")
+			subdir
+			(file-name-nondirectory fromfile)))
+	  (setq efile (concat subdir tofile))))
+      (copy-file fromfile (expand-file-name efile mimedir) t)
+      (if force
+	  (setq mew-encode-syntax
+		(mew-syntax-remove-entry mew-encode-syntax nums)))
       (setq mew-encode-syntax
 	    (mew-syntax-insert-entry
 	     mew-encode-syntax 


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