[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

'cygwin type + binary data



# なぜ、私の w3m は NT4.0上 => 'native、Win2000 => 'cygwin にし
# ないと動かないんだろう。ほとんど同じ環境なんだけど (?_?)
## という話はおいといて。。。

LF=>CRLF 変換する w3m -dump_source は image/jpeg などの binary
data でも律儀に CRLF に変えてしまうのですね。
% w3m -T image/jpeg -dump_source hoge とかしてもだめでした。

そこで、(eq w3m-executable-type 'cygwin) の登場ですが、もとが
binary data だけに悩ましいのですが、どうやら w3m-w3m-retrieve()
内部の CRLF=>LF 変換のときに

	       (if length
		   (if (eq w3m-executable-type 'cygwin)
		       (cond
			;; No authentication and no bugs in output.
			((= (buffer-size) length))
			;; No authentication but new-line character is replaced to CRLF.
			((or (= (buffer-size)
				(+ length (count-lines (point-min) (point-max))))
			     (= (buffer-size)
				(+ length (count-lines (point-min) (point-max)) -1)))
                                                                                ~~
			 (while (search-forward "\r\n" nil t)
			   (delete-region (- (point) 2) (1- (point)))))
			(t;; Authentication

な感じで、つじつまが合うようです。最終行が LF で終わっていないか
ら、count-lines よりも 1byte 小さいよ、という感じなのかな。

ほとんど後藤さん向けのメールですが、これって正当性ありますかねぇ?
length がわからないとどうなるんだろう、ってことはないのかな?

-- 
白井秀行@だけど、やっと Win2000 で絵が出た。