From: kjana@... (YANAGAWA Kazuhisa) Date: 1998-11-17T22:20:52+09:00 Subject: [ruby-list:10913] Re: base64.rb In message <19981117085145O.dezawa@miya.fujifilm.co.jp> Sinichiro Dezawa writes: > kjana> # \s+ で split -> should_encode? true な token ではさまれる空白は > kjana> # reduce. > > ん? ちょっとBUGみっけ。 > 逆ですよ、ここは。true で挟まれる所の空白は保存する為に > まとめてencodeが必要ですから、 だから reduce.... 逆だっけ? # should_encode ::= should_encode whites should_encode # | string_which_contains_non_ASCIIprintable. # whites ::= \s+. 書き方が変だったのは確かですが.空白を reduce ってなんなんだ (^^? > kjana> while should_encode? tmp[1] > kjana> tok << tmp.shift.to_s > kjana> tok << tmp.shift.to_s > kjana> break unless tmp[0] > kjana> end > > tok << " " > tok << tmp.shift.to_s > > でないと。(typoみたいにも見えますが) tmp = str.split(/(\s+)/) だから,tmp は whites と non-whites が交互に現れることが保証されると 思うんですけど. # () に注意. 処理中の token が should_encode であるから残りの頭(tmp[0])は whites で,tmp[1] は「次の次」ですよね. > 変換前にあった空白は、その数や型(っていうか、SP,tab,LF,CR)は > 保存すべきでしょうか? で,あれだと保存できてるわけです.ただ保存すべきかどうかまではしらな いのでした. =========================================================================== 柳川和久 @ 東大阪市 . 大阪府 kjana@os.xaxon.ne.jp November 17, 1998 Shortest way may be longest way.