[#10553] base64.rb — Sinichiro Dezawa <dezawa@...>

出沢です

92 messages 1998/11/01
[#10565] Re: base64.rb — Shin-ichiro Hara <sinara@...> 1998/11/01

原です。

[#10583] Re: base64.rb — matz@... (Yukihiro Matsumoto) 1998/11/02

まつもと ゆきひろです

[#10595] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/02

出沢です

[#10611] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

出沢です

[#10613] Re: base64.rb — matz@... (Yukihiro Matsumoto) 1998/11/04

まつもと ゆきひろです

[#10614] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

matz> kconvにかけるってのは反則ですか? 今のkconvはB-encodingをデ

[#10615] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

>あー、そんなのがあったのか。反則だ。

[#10616] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

dezawa> >あー、そんなのがあったのか。反則だ。

[#10617] Re: base64.rb — WATANABE Hirofumi <watanabe@...> 1998/11/04

わたなべです.

[#10618] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

watanabe> 何も指定しなくていいです. もともとは nkf で

[#10621] Re: base64.rb — matz@... (Yukihiro Matsumoto) 1998/11/04

まつもと ゆきひろです

[#10623] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

matz> エンコードにはpack("m")がお勧めなのかなあ.

[#10635] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

dezawa> 手を付け兼ねてるのは、

[#10642] Re: base64.rb — WATANABE Hirofumi <watanabe@...> 1998/11/05

わたなべです.

[#10648] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/05

watanabe> エスケープとか全部含めて encode する必要があります.

[#10654] Re: base64.rb — WATANABE Hirofumi <watanabe@...> 1998/11/05

わたなべです.

[#10659] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/05

watanabe> といろいろ問題はあるけど pack("m") は encode した結果が長く

[#10663] Re: base64.rb — WATANABE Hirofumi <watanabe@...> 1998/11/05

わたなべです.

[#10664] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/05

watanabe> 自前で細切れに処理しないとだめかな?

[#10672] Re: base64.rb — aamine@... 1998/11/05

あおきです。

[#10673] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/05

aamine> さらに難しくしてしまうのもなんなんですが

[#10702] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/07

出沢@フジフイルム です

[#10796] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/13

出沢です

[#10800] Re: base64.rb — Shun-ichi GOTO <gotoh@...> 1998/11/13

後藤@太陽計測です

[#10801] Re: base64.rb — Toru Hoshina <toru@...> 1998/11/13

保科です。

[#10802] Re: base64.rb — Shun-ichi GOTO <gotoh@...> 1998/11/13

後藤@太陽計測です

[#10804] Re: base64.rb — Toru Hoshina <toru@...> 1998/11/13

保科です。

[#10806] Re: base64.rb — Shun-ichi GOTO <gotoh@...> 1998/11/13

後藤@太陽計測です

[#10737] Re: base64.rb — aamine@... 1998/11/09

あおきです。

[#10741] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/09

すばやい

[#10676] 11/10 tokyo offline meeting — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

19 messages 1998/11/06

[#10697] Re: 11/10 tokyo offline meeting — KIMURA Koichi <kkimura@...>

35 messages 1998/11/07
[#10708] Re: 11/10 tokyo offline meeting — TEI meiki <tei@...> 1998/11/07

鄭です。

[#10709] Re: 11/10 tokyo offline meeting — Sinichiro Dezawa <dezawa@...> 1998/11/07

では 「やぐら茶屋」NSビル店 で一応決まりということで?

[#10713] Re: 11/10 tokyo offline meeting — TEI meiki <tei@...> 1998/11/07

鄭です。

[#10721] Re: 11/10 tokyo offline meeting — keiju@... (石塚圭樹 ) 1998/11/08

けいじゅ@日本ラショナルソフトウェアです.

[#10729] Re: 11/10 tokyo offline meeting — matz@... (Yukihiro Matsumoto) 1998/11/09

まつもと ゆきひろです

[#10738] Re: 11/10 tokyo offline meeting — keiju@... (石塚圭樹 ) 1998/11/09

けいじゅ@日本ラショナルソフトウェアです.

[#10743] Re: 11/10 tokyo offline meeting — ARIMA Yasuhiro <fit0298@...> 1998/11/09

Regard to "[ruby-list:10738] Re: 11/10 tokyo offline meeting"

[#10747] ruby 1.1c7 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

23 messages 1998/11/09

[#10904] ruby 1.1c8 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

16 messages 1998/11/17

[#10910] require error (tkutil.so -> tk.so) — ttate@...

立石です。

17 messages 1998/11/17
[#10924] Re: require error (tkutil.so -> tk.so) — matz@... (Yukihiro Matsumoto) 1998/11/18

まつもと ゆきひろです

[#10926] Re: require error (tkutil.so -> tk.so) — WATANABE Hirofumi <watanabe@...> 1998/11/18

わたなべです.

[#11054] ruby-list offline meeting at 11/27 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

36 messages 1998/11/26
[#11056] Re: ruby-list offline meeting at 11/27 — Sinichiro Dezawa <dezawa@...> 1998/11/26

残念なのですが、出沢は無理そうです。

[#11057] Re: ruby-list offline meeting at 11/27 — matz@... (Yukihiro Matsumoto) 1998/11/26

まつもと ゆきひろです

[#11061] Re: ruby-list offline meeting at 11/27 — IWAMURO Motonori <iwa@...> 1998/11/26

岩室@富士通です。

[#11062] Re: ruby-list offline meeting at 11/27 — keiju@... (石塚圭樹 ) 1998/11/26

けいじゅ@日本ラショナルソフトウェアです.

[#11067] Re: ruby-list offline meeting at 11/27 — "D.Kanda" <MAP2303@...> 1998/11/26

[#11072] Re: ruby-list offline meeting at 11/27 — keiju@... (石塚圭樹 ) 1998/11/26

けいじゅ@日本ラショナルソフトウェアです.

[ruby-list:10827] Re: base64.rb

From: Shun-ichi GOTO <gotoh@...>
Date: 1998-11-14 06:33:24 UTC
List: ruby-list #10827
後藤@太陽計測です

>>>>> From: Toru Hoshina <toru@gte.net>
> 頭から順送りに見て、encodeしないで済むところは読み飛ばし、encodeが
> 必要なのが確定した時点で、そこから前後にencode対象となる範囲を伸ばし、
> encoded wordの長さを確定する、という感じでしょうか?
> 
> 0x1Bを見つけた時点で、この先はencodeが必要だ、などと判断するのでしょうが
> その前の部分には空白をはさまないで英数字がひっついてるかも知れませんから、
> そのさらに前の空白を見つけるか、文字列の先頭まで戻りながら見るのでしょう。
> そうしないと、本当のencode開始位置が定まりませんよね。

上記はシーケンシャルにポインタを動かして判定していく、といった感じかと
思います。結構大変だと自分では思うので、別の方法をご紹介しておきます。

rfc2047の枠内でアルゴリズムを作るとしたら、こんな1例になるのでは? と、
以前 mew-distで提案したことがあります。そのときの案の概要です。それは
1行(というか1ヘッダ)を丸ごと読み、charsetを考慮したtokenに切り分け、
隣接をmergeしていく方法でした。

* SPは空白(white-space or tab)
* AWORDは空白を除くASCII文字の並び
* EWORDは上記以外
* APARTはエンコードする必要の無い並び
* EPARTはエンコードすべき並び
* BOLはfield-bodyの頭、EOLはfield-bodyの末尾

field-bodyを構成するBOL 1*(SP AWORD EWORD) EOLの並びに対して縮小ルール
を適用します。

・(BOL|SP) AWORD 0*(SP AWORD) (SP|EOL) は APARTへ縮小
・EWORDはEPARTへ縮小
・隣接する EPART同士は EPARTへ縮小
・EPART SP EPARTの並びは EPARTへ縮小
・隣接するEPARTとAWORDは1つのEPARTへ縮小
・そのた

結果、APART EPARTが交互に現れ、APARTはその両端がBOL,SP,EOLのいずれか
が保証されるルールです。(tokenのグループ化操作ということになります)

最後にEPARTを(折り返しと複数charsetを考慮して)エンコードします。

こう考えると、結構いけると思いますが。

(注) 実際のMewでは実際にはこの方法とはちょっと違う方法を使っていますが
     大枠はSP ASCII SPに着目しているので似ています。
     FLIMは細かく見ていませんが、token分割後にグループ操作する点では
     類似です。


具体例として

"[ruby-list 1234] Re: 今日はruby で programing" 
 ~~~~~~~~~~ ~~~~~ ~~~ ~~~~~~    ~  ~
           ~     ~   ~      ~~~~ ~~ ~~~~~~~~~~

を以下のようにtoken化し、順に縮小します

BOL AWORD SP AWORD SP AWORD SP EWORD AWORD SP EWORD SP AWORD EOL
------------v-----------------
          APART                EWORD AWORD SP EWORD SP AWORD EOL
                               -----v-----
          APART                   EPART    SP EWORD SP AWORD EOL
                                  ---------v-------
          APART                          EPART      SP AWORD EOL
                                                    -----v------
          APART                          EPART         APART

結果、となります。

APART : "[ruby-list 1234] Re: "
EPART : "今日はruby で"
APART : " programming"

field-body折り返しは、それぞれの空白部か、encoded-word途中で
行います。

とまぁ、こんな方法もあります。
文字列のリスト操作なのであんまり難しくないと思います。


> > > などとなります(笑)
> > 
> > というわけで、そうはならないわけです。(^^;
> 
> 御意です。やはり腐っていたのですね(笑) あ〜よかった(なにが?)

よかった(^^;

#でも、決して「間違いだ」といえないところがネックなんですよね :-(

--- Regards,
 Shun-ichi Goto  <gotoh@taiyo.co.jp>
   R&D Group, TAIYO Corp., Tokyo, JAPAN

In This Thread