[Mew-Win32 01094] mew-cmail-cnv (Re: How to convert a cmail file to Mew files)

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
1998年 12月 15日 (火) 19:11:54 JST


白井です。

From: 小関 吉則 (KOSEKI Yoshinori) <kose at example.com> さん曰く
Subject: [Mew-Win32 01091] Re: How to convert a cmail file to Mew files
Message-ID: <1998Dec15af0pluhw.kose at example.com>
Date: 15 Dec 1998 16:44:27 +0900

白井> # そのときは、ダイレクトメールで cmail の folder をいただけると
白井> # ありがたいです。(あたりさわりの無いどこぞの ML でそんなにでか
白井> # くないものを)

小関> 送りましょうか?

小関さん、どうもです。m(__)m

From: Shuichi Kitaguchi <shuuic-k at example.com> さん曰く
Subject: [Mew-Win32 01093] Re: How to convert a cmail file to Mew files
Message-ID: <19981215170829B.shuuic-k at example.com>
Date: Tue, 15 Dec 1998 17:08:29 +0900 (JST)

白井> いつもお世話になっていながら、たいへん申し訳ないのですが、
白井> http://www.mew.org/Win32 の mew-win32-mvm を Ver.0.08 に変えてお
白井> いて貰えないでしょうか? 

北口> ちょうどやっていたところでした(^^;
北口>   http://www.mew.org/Win32/mew-win32-mvm-0.08.tar.gz
北口> からどうぞ。

北口さん、どうもです。m(__)m


というわけで、現実から逃げたかったので cmail -> mew の converter
をでっちあげました。

# だって、仕事が辛かったんだもん ;_;

mew が立ち上がった状態で、

M-x load-library mew-cmail-cnv
M-x mew-cmail-cnv
  で、cmail の folder を入力する。

と、普通は "+inbox" に追加されます。
+inbox や cmail の folder を壊すことはないと思いますが、安全のた
め backup してからお願いします。実験した cmail の folder はちょっ
と小さいので、本番(?)でなにかあったら教えて下さいね。^^;;;

-------------- next part --------------
;; -*- emacs-lisp -*-
;; mew-cmail-cnv.el Ver.0.01
;;
;; cmail-folder -> mew/mh converter.
;;
;; M-x mew
;; M-x load-library mew-cmail-cnv
;; M-x mew-cmail-cnv
;;     input cmail-folder
;;

(defvar mew-cmail-cnv-imstore mew-use-imap)

(cond
 ((boundp 'MULE)
  (setq mew-cs-cmail-cnv-crash '*noconv*)
  (setq mew-cs-cmail-cnv '*noconv*))
 (t
  (setq mew-cs-cmail-cnv-crash 'raw-text)
  (setq mew-cs-cmail-cnv 'raw-text)))

(defun mew-cmail-cnv (crashbox)
  "cmail folder to mew inbox."
  (interactive "fcmail folder: ") ;; for Debug.
  (let ((buf (get-buffer-create "*mew crashbox*"))
	(folder mew-inbox-folder)
	(count 0)
	(cmail-folder (file-name-nondirectory crashbox))
	beg filenum dstfile)
    (unwind-protect
	(progn
	  (set-buffer buf)
	  (erase-buffer)
	  ;; (condition-case nil
	  ;; (progn
	  (setq filenum (string-to-int
			 (mew-folder-new-message folder t)))
	  (mew-frwlet mew-cs-cmail-cnv-crash mew-cs-cmail-cnv-crash
		      (insert-file-contents crashbox))
	  (if (boundp 'MULE)
	      (progn
		(goto-char (point-min))
		;; 13 = \015 = ^M
		(while (re-search-forward (concat (char-to-string ?\015) "$") nil t)
		  (replace-match ""))))
	  (goto-char (point-min))
	  ;; 12 = \014 = ^L
	  (while (re-search-forward (concat (char-to-string ?\014) "\n") nil t)
	    (setq count (1+ count))
	    (setq beg (point))
	    ;; 31 = \037 = ^_
	    (if (re-search-forward (concat "\n" (char-to-string ?\037)) nil t)
		(progn
		  (forward-line -1)
		  (end-of-line)
		  (message "Getting mail from %s to %s/%d (%d)..."
			   cmail-folder folder filenum count)
		  (if mew-cmail-cnv-imstore
		      (mew-piolet
		       mew-cs-cmail-cnv-crash mew-cs-cmail-cnv
		       (call-process-region beg (point)
					    mew-prog-imstore
					    nil nil nil
					    (format "--dst=%s" folder)))
		    (setq dstfile
			  (mew-expand-folder
			   folder (int-to-string filenum)))
		    (mew-frwlet mew-cs-cmail-cnv mew-cs-cmail-cnv
				(write-region beg (point) dstfile)))
		  (message "Getting mail from %s to %s/%d (%d)...done."
			   cmail-folder folder filenum count)
		  (setq filenum (1+ filenum))))))
      (kill-buffer buf))))

(provide 'mew-cmail-cnv)
;;; end.
-------------- next part --------------

-- 
白井秀行 (Hideyuki SHIRAI)


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