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

Re: w3m crashes emacs



>>>>> In [emacs-w3m : No.08530] 白井秀行さん wrote:

>> -    (set-buffer-multibyte t)
>> -    (decode-coding-region (point-min) (point-max) w3m-current-coding-system)))
>> +    (decode-coding-region (point-min) (point-max) w3m-current-coding-system)
>> +    (set-buffer-multibyte t)))

> # なんか、どっかで見た記憶があるなぁと思ったのですが。。。

> このパッチの部分ですが、ちょうど、一年前に半田さんから

>>> (set-buffer-multibyte nil) が原因です。 utf-8 は
>>> post-read-conversion 関数を使いますが、これは unibyte-buffer
>>> ではうまく動きません。

> と教えてもらって、現在の順番に変えたところなのでした。

おっと。とりあえず commit してしまおうと思っていたところでした。
ちなみに、Leon さんが指摘したページの coding system は gb2312 だっ
たんですが、最新の Emacs 23 ではこんな感じになります。

(let ((str (encode-coding-string
	    (string (make-char 'chinese-gb2312 86 80)
		    (make-char 'chinese-gb2312 57 122))
	    'gb2312))
      (default-enable-multibyte-characters nil)
      str1 str2)
  (with-temp-buffer
    (insert str)
    (setq str1 (buffer-string))
    (set-buffer-multibyte t)
    (setq str2 (buffer-string))
    (decode-coding-region (point-min) (point-max) 'gb2312)
    (list str1 str2 (buffer-string))))
 => ("\326\320\271\372"
     "\326■\372"
     #("\326■\301\272" 0 2 (charset chinese-gb2312)))

?■ == 1081

> もしかして、Emacs-23 とそれ以前で処理を変えないだめ、ということ
> かしらん?

で、実は日本語のページも、さっきの対策をしないとバケバケなんです。
なんか ding でも Emacs 23 対応の漠然とした話が出ていたんですが、
これからは Emacs 23 で生活してみようかしら。

> From: Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxx> 曰く
> Subject: [emacs-w3m:07888] decode-coding-regin() with utf-8
> Message-ID: <20050314.191333.218408748.shirai.hideyuki@xxxxxxxxxxxxxxxxxxx>
> Date: Mon, 14 Mar 2005 19:13:33 +0900 (JST)

> から始まるスレッドです。

> http://emacs-w3m.namazu.org/ml/msg07786.html
> http://emacs-w3m.namazu.org/ml/msg07787.html
> http://emacs-w3m.namazu.org/ml/msg07788.html
> http://emacs-w3m.namazu.org/ml/msg07789.html
> などなど参照のこと。

どうもありがとうございます。