Subject: 簡易 MIME header encoder/decoder: tiny-mime.el version 2.2 [1/2]

From: [email-masked] (守岡 知彦 (MORIOKA Tomohiko))
Date: Tue, 9 Nov 1993 14:14:11 GMT

tiny-mime.el version 2.2 をお届けします。

  今回から、ISO-2022-JP, Base64 header の encoder を正式サポートします。

  また、encode しない field を指定できます。

  そして、試験的に、Subject: に encoded-word が含まれる場合、それを 
decode した形の、X-Nsubject: を作成する機能を追加しました。

（この message は MIME で処理することによって、自動的に file を取り出
せます。非対応の方は、エディター等で、切り出して下さい）
┏『健康と美容のために食後に一杯の紅茶』━━━━━━━━━━━━━━┓
┃                    守岡 知彦 (MORIOKA Tomohiko)                  ┃
┃　                                    Email: <[email-masked]>┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

---

From: [email-masked] (Kenji Rikitake)
Date: 09 Nov 1993 12:49:28 GMT

In article <[email-masked]> [email-masked] (Kenji Rikitake) writes:
 |動作は保証しませんがとりあえずは使えています。森岡さん、戸村さんありがとう。

「守岡」さんの間違いでした。大変失礼しました。

// Kenji
--
Kenji Rikitake <[email-masked]> <[email-masked]>    (More available!)
Persuade me you may, but I won't be persuaded.                 -- Aristophanes

---

From: [email-masked] (飯島昭博)
Date: Wed, 10 Nov 1993 01:43:29 GMT

(株)クボタの飯島です。tiny-mime.elをありがたく使わせて頂いてます。

In article <[email-masked]>
   守岡 知彦さん <[email-masked]> writes: 
>   3.2 encode
>     tiny-mime.el を load して、encode したい buffer 上で、
>	   M-x mime/encode-message-header
>   を実行します。

GNUS 3.14.4 で  gnus-Inews-article-hook に mime/encode-message-header 
を追加して、ほいほい使ってみたら Subject:については快調に動いてました。

そこで From: にも漢字を入れてみようと思い、
	From: 飯島昭博<[email-masked]>
と、入れたら 何故か失敗して、JISで出ていってしまいました。

もう一度、基本に戻って 出す前に手動で mime/encode-message-header をし
てみると、 Symbol's function definition is void: cadr と出て、
「From: 飯島昭博<[email-masked]>」の行だけ消えていました。

これ「From: [email-masked] (飯島昭博)」を手動で 
mime/encode-message-header をしたら うまくいきました。

これは tiny-mime.el ver 2.2 の 問題なのでしょうか？

便乗質問です。NetNewsで許される From: の書き方は、
  From: [email-masked] (飯島昭博) こっちだけじゃなく、
  From: 飯島昭博<[email-masked]>  これもＯＫですよね？

--
	クボタ ＮＤＢプロジェクト	F1BM-069 OPEN-ML-014 DCT-003
飯島 昭博 (Akihiro Iijima) [email-masked]

---

From: [email-masked] (守岡 知彦 (MORIOKA Tomohiko))
Date: Wed, 10 Nov 1993 22:11:37 GMT

>>>>> <[email-masked]> にて、
	[email-masked] (飯島昭博) 氏曰く、

飯島> GNUS 3.14.4 で  gnus-Inews-article-hook に mime/encode-message-header 
飯島> を追加して、ほいほい使ってみたら Subject:については快調に動いてました。

飯島> そこで From: にも漢字を入れてみようと思い、
飯島> 	From: 飯島昭博<[email-masked]>
飯島> と、入れたら 何故か失敗して、JISで出ていってしまいました。

飯島> もう一度、基本に戻って 出す前に手動で mime/encode-message-header をし
飯島> てみると、 Symbol's function definition is void: cadr と出て、
飯島> 「From: 飯島昭博<[email-masked]>」の行だけ消えていました。

飯島> これ「From: [email-masked] (飯島昭博)」を手動で 
飯島> mime/encode-message-header をしたら うまくいきました。

飯島> これは tiny-mime.el ver 2.2 の 問題なのでしょうか？

  どうも、cadr がないみたいですね。しまった。とりあえず、どっかに

(defun cadr (lst)
	(car (cdr lst)))

を応急処置として入れておけば大丈夫だと思います。

  しばらくしたら、改訂版を投稿することにします。

飯島> 便乗質問です。NetNewsで許される From: の書き方は、
飯島>   From: [email-masked] (飯島昭博) こっちだけじゃなく、
飯島>   From: 飯島昭博<[email-masked]>  これもＯＫですよね？

  はい、そうです。

---

From: [email-masked] (Kenji Rikitake)
Date: 09 Nov 1993 12:25:36 GMT

VM 4.41 および sendmail.el に対する tiny-mime.el 2.2 用の簡単なパッチ、
tiny-mime.elで関数cadrが動作しなかった人のためのパッチ、
そしてsendmail.elのための電総研の戸村さんが作成されたパッチの4点セットです。

動作は保証しませんがとりあえずは使えています。森岡さん、戸村さんありがとう。

// Kenji
// 本当ならMIMEのMultipartにすればいいんだけど、まだmetamailがない。

-----break-----
This patch ensures definition of "cadr" and other Common LISP functions,
extensively used in tiny-mime.el 2.2.

// Kenji Rikitake <[email-masked]>

*** tiny-mime.el-	Tue Nov  9 19:58:46 1993
--- tiny-mime.el	Tue Nov  9 20:07:04 1993
***************
*** 24,29 ****
--- 24,33 ----
  
  (provide 'tiny-mime)
  
+ ;;; somehow my elisp compiler doesn't handle this
+ ;;; by Kenji Rikitake 9-NOV-1993
+ (require 'cl)
+ 
  ;;; @ MIME encoded-word definition
  ;;;
  
-----break-----
VM 4.41 ;) に対する tiny-mime.el 用のパッチです。 vm-show-mime-header 
を nil 以外にすることで、MIME形式のヘッダをtiny-mime.elを使って表示時
に自動変換します。

// Kenji Rikitake <[email-masked]>

*** vm.el-	Sun Oct 24 20:28:22 1993
--- vm.el	Sun Oct 24 23:04:32 1993
***************
*** 38,43 ****
--- 38,51 ----
  
  (provide 'vm)
  
+ ;;; *** preliminary patch 24-OCT-1993
+ ;;; *** by Kenji Rikitake, for using tiny-mime.el
+ (require 'tiny-mime)
+ 
+ (defvar vm-show-mime-header nil
+   "*Show MIME header using tiny-mime if non-nil.")
+ ;;; ***
+ 
  (defvar vm-primary-inbox "~/INBOX"
    "*Mail is moved from the system mailbox to this file for reading.")
  
***************
*** 1024,1029 ****
--- 1032,1042 ----
  	  (forward-line (if (natnump vm-preview-lines) vm-preview-lines 0))
  	  (point)))
       (vm-text-of (car vm-message-pointer))))
+ ;;; *** for using tiny-mime.el
+   (if vm-show-mime-header
+     (mime/decode-message-header)
+     )
+ ;;; ***
    (let ((w (get-buffer-window (current-buffer))))
      (and w (progn (set-window-start w (point-min))
  		  (set-window-point w (point-max))))
-----break-----
Mule 1.0.1 に付属している sendmail.el に、Nemacs/contrib の中のパッチ
を当てたものを、更にtiny-mime.elでMIME対応にするパッチです。

mail-header-encode-to-mimeをnil以外にすることで、送信時に自動的にMIME
header encodeを行い、かつ MIME-Version:, Content-Type: のヘッダーを加
えます。

// Kenji Rikitake <[email-masked]>

*** sendmail.el-	Sat Sep 18 13:08:01 1993
--- sendmail.el	Tue Nov  9 20:50:25 1993
***************
*** 38,43 ****
--- 38,51 ----
  
  (provide 'sendmail)
  
+ ;;; *** for tiny-mime.el V2.2
+ ;;; *** by Kenji Rikitake 9-NOV-1993
+ (require 'tiny-mime)
+ 
+ (defvar mail-header-encode-to-mime nil
+   "*Encode header to MIME format using tiny-mime if non-nil.")
+ ;;; ***
+ 
  ;(defconst mail-self-blind nil
  ;  "Non-nil means insert BCC to self in messages to be sent.
  ;This is done when the message is initialized,
***************
*** 113,118 ****
--- 121,134 ----
  	(insert "BCC: " (user-login-name) "\n"))
      (if mail-archive-file-name
  	(insert "FCC: " mail-archive-file-name "\n"))
+ ;;; *** for adding MIME-support header
+ ;;; *** by Kenji Rikitake 9-NOV-1993
+     (if mail-header-encode-to-mime
+       (insert-string
+         (format "%s\n%s\n" 
+           "Mime-Version: 1.0"
+           "Content-Type: text/plain; charset=ISO-2022-JP")))
+ ;;; ***
      (insert mail-header-separator "\n"))
    (if to (goto-char (point-max)))
    (or to subject in-reply-to
***************
*** 185,190 ****
--- 201,213 ----
  Otherwise any failure is reported in a message back to
  the user from the mailer."
    (interactive)
+ ;;; *** for tiny-mime.el V2.2
+ ;;; *** by Kenji Rikitake 9-NOV-1993
+   (if mail-header-encode-to-mime
+     (progn
+       (message "Encoding header to MIME format...")
+       (mime/encode-message-header)))
+ ;;; ***
    (message "Sending...")
    (funcall send-mail-function)
    (set-buffer-modified-p nil)
-----break-----
Mule 1.0 のsendmail.elに当てるためのNemacsのcontrib中に添付されていた
電総研の戸村さんによるパッチです。(戸村さんに感謝。)

// Kenji Rikitake <[email-masked]>

*** sendmail.el.orig	Thu Jun 10 14:40:42 1993
--- sendmail.el	Sat Sep 18 13:08:01 1993
***************
*** 1,3 ****
--- 1,19 ----
+ ;;;; Ver.18.55a  modified by S. Tomura 89-Oct-24
+ ;;;;             mail-yank-original: universal argument handling
+ ;;;; Ver.18.55   created by S. Tomura 89-Oct-24
+ ;;;; Ver.18.52   created by S. Tomura 89-Mar-16
+ ;;; Nemacs Ver. 3.0
+ ;;;; Ver.18.51a  modified by S. Tomura 88-Sep-2
+ ;;;;             Fcc: checks the file is in buffer or not.
+ ;;;; Ver.18.50   created by S. Tomura 88-Jun-11
+ ;;; Nemacs Ver.2.1   
+ ;;;; Ver.18.47b  modified by S. Tomura 88-Jun-7
+ ;;;;             mail-yank-original is changed to prompt quoting marker.
+ ;;;; Ver.18.47a  modified by S. Tomura 88-Feb-8
+ ;;;;             Remote sendmail facility added.
+ ;;;; Ver.xx.yyc  modified by S. Tomura .....
+ ;;;;	  mail-yank-original-indent-rigidly added.
+ ;;;;
  ;; Mail sending commands for Emacs.
  ;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  
***************
*** 175,180 ****
--- 191,200 ----
    (delete-auto-save-file-if-necessary)
    (message "Sending...done"))
  
+ ;;; patch by S.Tomura 87-Dec-8
+ (defvar sendmail-host-name nil "Host name where the mail will be sent to.")
+ ;;; end of patch
+ 
  (defun sendmail-send-it ()
    (let ((errbuf (if mail-interactive
  		    (generate-new-buffer " sendmail errors")
***************
*** 231,241 ****
  		  (erase-buffer))))
  	  (apply 'call-process-region
  		 (append (list (point-min) (point-max)
! 			       (if (boundp 'sendmail-program)
! 				   sendmail-program
! 				 "/usr/lib/sendmail")
! 			       nil errbuf nil
! 			       "-oi" "-t")
  			 ;; Always specify who from,
  			 ;; since some systems have broken sendmails.
  			 (list "-f" (user-login-name))
--- 251,278 ----
  		  (erase-buffer))))
  	  (apply 'call-process-region
  		 (append (list (point-min) (point-max)
! 			       ;;; patch by S.Tomura 87-Dec-8
! 			       )
! 			       ;;;(if (boundp 'sendmail-program)
! 			       ;;; sendmail-program
! 			       ;;; "/usr/lib/sendmail")
! 			       ;;; nil errbuf nil
! 			       ;;; "-oi" "-t")
! 			 (if sendmail-host-name
! 			     (list "rsh" 
! 				   nil errbuf nil
! 				   sendmail-host-name
! 				   (if (boundp 'sendmail-program)
! 				       sendmail-program
! 				    "/usr/lib/sendmail")
! 				   "-oi" "-t")
! 			   (list
! 			    (if (boundp 'sendmail-program)
! 				sendmail-program
! 			      "/usr/lib/sendmail")
! 			    nil errbuf nil
! 			    "-oi" "-t"))
! 			 ;;; end of patch
  			 ;; Always specify who from,
  			 ;; since some systems have broken sendmails.
  			 (list "-f" (user-login-name))
***************
*** 305,310 ****
--- 342,358 ----
  	(while (search-forward "\nFrom " nil t)
  	  (forward-char -5)
  	  (insert ?>)))
+       ;;; patch by S. Tomura 88-Sep-2
+       ;;; We must check the file is in buffer or not. If it is in buffer, 
+       ;;; something other than append-to-file must be done.
+       (let ((l fcc-list))
+ 	(while l
+ 	  (if (get-file-buffer (car l))
+ 	      (progn (beep)
+ 		     (error "Can not do Fcc: file %s exists in buffer."
+ 			       (car l))))
+ 	  (setq l (cdr l))))
+       ;;; end of patch 
        (while fcc-list
  	(let ((buffer (get-file-buffer (car fcc-list))))
  	  (if buffer
***************
*** 393,398 ****
--- 441,456 ----
  Just \\[universal-argument] as argument means don't indent
  and don't delete any header fields."
    (interactive "P")
+ ;;; patch by S. Tomura 1988-Jun-7, 89-Oct-24
+   (if (consp arg)
+       nil
+     (let ((marker (read-string
+ 		   (concat "Quoting marker (default: " 
+ 			   mail-yank-original-quoting-indicator
+ 			   ") : " ))))
+       (if (not (equal marker ""))
+ 	  (setq mail-yank-original-quoting-indicator marker))))
+ ;;; end of patch  
    (if mail-reply-buffer
        (let ((start (point)))
  	(delete-windows-on mail-reply-buffer)
***************
*** 400,409 ****
  	(if (consp arg)
  	    nil
  	  (mail-yank-clear-headers start (mark))
! 	  (indent-rigidly start (mark)
! 			  (if arg (prefix-numeric-value arg) 3)))
  	(exchange-point-and-mark)
  	(if (not (eolp)) (insert ?\n)))))
  
  (defun mail-yank-clear-headers (start end)
    (save-excursion
--- 458,496 ----
  	(if (consp arg)
  	    nil
  	  (mail-yank-clear-headers start (mark))
! ;;; patched by S. Tomura 1987-06-12
! ;;;	  (indent-rigidly start (mark)
! ;;;			  (if arg (prefix-numeric-value arg) 3)))
! 	  (mail-yank-original-indent-rigidly start (mark)
! 		(if arg (prefix-numeric-value arg) 
! 		    mail-yank-original-default-indentation)
! 		mail-yank-original-quoting-indicator))
! ;;; end of patch
  	(exchange-point-and-mark)
  	(if (not (eolp)) (insert ?\n)))))
+ 
+ ;;; patched by S. Tomura 1987-06-12
+ (defvar mail-yank-original-default-indentation 3 " ")
+ (defvar mail-yank-original-quoting-indicator ">>"  " ")
+ 
+ (defun mail-yank-original-indent-rigidly (start end arg indicator)
+   "Indent all lines starting in the region sideways by ARG columns and insert indicator.
+ Called from a program, takes three arguments, START, END and ARG."
+   (interactive "r\np")
+   (save-excursion
+     (goto-char end)
+     (setq end (point-marker))
+     (goto-char start)
+     (or (bolp) (forward-line 1))
+     (while (< (point) end)
+       (let ((indent (current-indentation)))
+ 	(delete-region (point) (progn (skip-chars-forward " \t") (point)))
+ 	(indent-to (max 0 arg) 0)
+ 	(insert indicator)
+ 	(indent-to (max 0 (+ indent arg (length indicator))) 0))
+       (forward-line 1))
+     (move-marker end nil)))
+ ;;; end of patch.
  
  (defun mail-yank-clear-headers (start end)
    (save-excursion

---

From: [email-masked] (Kazuhiko Yamamoto)
Date: Thu, 11 Nov 1993 13:01:03 GMT

> 飯島>   From: 飯島昭博<[email-masked]>  これもＯＫですよね？

僕の経験からいうと, MIME に対応してない人にとっては, 英語(アドレスなど)
を先に書く方が親切だと思います. 世の中どんなニュースリーダがあるか分か
りません. エンコードした日本語を先に書いていると, スペースの関係からデ
コードされない文字列しか表示できないニュースリーダがあるのではないでしょ
うか？

たぶん, ニュースリーダの From と メールリーダの From を同じにされると
思います. 僕がメールの From に先に日本語を入れていた頃, 「Mac のメール
リーダでは, スペースの関係からデコードされない文字列しか表示できない.」
とクレームが来たことがあります.

--
九州大学大学院工学研究科情報工学専攻 修士課程二年
								山本和彦
e-mail: [email-masked]

---

From: [email-masked] (Kenji Rikitake)
Date: 11 Nov 1993 06:31:25 GMT

In article <[email-masked]> [email-masked] (Kenji Rikitake) writes:
 |+ ;;; somehow my elisp compiler doesn't handle this
 |+ ;;; by Kenji Rikitake 9-NOV-1993
 |+ (require 'cl)

こんなたいそうなことをしなくとも、

-- cut here --
*** tiny-mime.el-	Tue Nov  9 19:58:46 1993
--- tiny-mime.el	Thu Nov 11 01:13:58 1993
***************
*** 24,29 ****
--- 24,35 ----
  
  (provide 'tiny-mime)
  
+ ;;; somehow my elisp compiler doesn't handle this
+ ;;; by Kenji Rikitake 9-NOV-1993
+ ;;;(require 'cl)
+ (defun caar (lst) (car (car lst)))
+ (defun cadr (lst) (car (cdr lst)))
+ 
  ;;; @ MIME encoded-word definition
  ;;;
  
-- cut here --  

で良いようです。ずっと高速です。守岡さんも書いてましたが、参考まで。

// Kenji

---

From: [email-masked] (Akihiko Kuroe)
Date: 12 Nov 93 02:30:58 GMT

黒江＠大日本印刷です。

In article <[email-masked]>
	[email-masked] writes:

> 思います. 

これは同じでいいんじゃないですか？
メールでもニュースでもFrom:はFrom:で、何も違わないと思います。

> を先に書く方が親切だと思います. 

それは同感です。
「MIME文字列は必ず後置にする」という取り決めでもあったならば、
私はもっとMIMEに好感を持ったかもしれない。
＃今はあまり好きじゃない。それでも流れて来るものは仕方ないから
＃なるべく読めるように対応してるけど。

> 世の中どんなニュースリーダがあるか分か

こういうことは、どちらの場合にも起こり得ますよね。
メールリーダであるかニュースリーダであるかに関わらず。
--
(世の中どんなメールリーダがあるかも分からないと思う)
黒江明彦＠大日本印刷 画像研究所3部
<[email-masked]>

---

From: [email-masked] (稲村 雄 =JANE=)
Date: Thu, 11 Nov 1993 04:08:55 GMT

こういうときは fj.sources への cross post は外しましょう。

というだけじゃなんですので (B-)、わかるとこだけ。

>>In article <[email-masked]>,
>>	[email-masked] (飯島昭博) writes:

aki> 便乗質問です。NetNewsで許される From: の書き方は、
aki>   From: [email-masked] (飯島昭博) こっちだけじゃなく、
aki>   From: 飯島昭博<[email-masked]>  これもＯＫですよね？

詳しくは rfc1036 を読んでもらえばいいんですが、どっちも許さ
れます。“<”の前には space を入れた方がいいでしょうけど。

ただし、rfc1036 で定義されている From: フィールドの形式は rfc822 
の mailbox の定義よりいくぶん (かなり?) きついものになってま
すので、

From: INAMURA (JANE) You <[email-masked]>
From: [email-masked] (INAMURA (JANE) You)

などというのはたぶん駄目でしょう。また、

From: inamura (INAMURA You) @nsis.cl.nec.co.jp

なんてのは確実に駄目です。822 ではこんなのさえも許されてるん
ですが。
--
稲村 雄 =JANE=

---

From: [email-masked] (Takahiro Yamamoto2)
Date: Wed, 10 Nov 1993 08:55:29 GMT

NTTソフト研の山本隆広と申します。

In article <[email-masked]> [email-masked] (=?ISO-2022-JP?B?GyRCPGkyLBsoQiAbJEJDTkknGyhC?=
 (MORIOKA Tomohiko)) writes:

 ]] 『tiny-mime.el 説明書』
で、
 ]] 6.1.2 patch を当てる
 ]] 6.1.2.1 GNUS の場合
 ]]   GNUS 4.1 もしくは 3.14.4 を入手しておく。
 ]]   そして、それぞれのバージョンに対応した patch を gnus.el に当てる
 ]] （GNUS 4.1 用は gnus-4.1-MIME.patch-2, GNUS 3.14.4 用は 
 ]] gnus-3.14.4-MIME.patch という file 名です）。
 ]]   それが成功すると、patch の当たった gnus.el を byte-compile する。

すいません、元記事がなくなってしまったので教えて下さい。

gnus-3.14.4-MIME.patch という file はどうすれば入手できるでしょうか？

--
---     Takahiro YAMAMOTO                               ---
---        NTT Software Laboratories                    ---
---           TEL (03)3740-6058  FAX (03)3740-5524      ---
---              <[email-masked]>    (^_^)      ---