Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

gnus-recover-ja

1 view
Skip to first unread message

Katsumi Yamaoka

unread,
Aug 14, 2001, 4:52:57 AM8/14/01
to
ちかごろ

Content-Type: text/plain; charset="Auto-Detect"
Content-Transfer-Encoding: 8bit

といったヘッダで、本文が shift_jis でエンコードされたメッセージ
が来ます。たいていはゴミなのですが読めないのも癪なので、以前から
使っていたプログラムを最新の T-gnus で使えるようにしました。

ftp://ftp.jpl.org/pub/elisp/gnus-recover-ja.el.gz

使い方はファイルに書いてありますが、できることは本文が shift_jis
か euc-japan で正しくエンコードされているものを読めるようにする
だけで、ファイルに保存された記事には手を付けません。また、昔はよ
くあった euc-japan の MSB 落ちとか junet の ESC 落ちなどには対応
していません。いったん読めるようにしてしまえば返信もできます。

ところで、Mule 2 や Emacs 20 の内部コードを XEmacs でデコードす
ることはできるでしょうか?
--
Katsumi Yamaoka <yam...@jpl.org>

Katsumi Yamaoka

unread,
Aug 23, 2001, 3:49:52 AM8/23/01
to
fj.kanji の続きです。:-p

>>>>> In [semi-gnus-ja : No.6222]
>>>>> Katsumi Yamaoka <yam...@jpl.org> wrote:

山岡> ところで、Mule 2 や Emacs 20 の内部コードを XEmacs でデコードす
山岡> ることはできるでしょうか?

(defun decode-coding-fsfmacs-region (start end)
"Decode the text between START and END which is encoded in FSFmacs
internal coding-system."
(let ((tempfile (expand-file-name (make-temp-name ".fsf")
temporary-file-directory))
(coding-system-for-read 'iso-2022-7bit)
(coding-system-for-write 'binary))
(write-region start end tempfile nil 'silent)
(call-process "emacs" nil nil nil
"-q" "-no-site-file" "-batch" "-eval"
(concat "\
(let ((coding-system-for-read 'binary)\
(coding-system-for-write 'iso-2022-7bit-unix))\
(with-temp-file \"" tempfile "\"\
(insert-file-contents \"" tempfile "\")))"))
(save-excursion
(goto-char start)
(delete-region start end)
(insert-file-contents tempfile)
(delete-file tempfile))))
--
山岡克美 / きゃー,石投げないで。 ^^;;

Akihiro Arisawa

unread,
Aug 24, 2001, 5:15:17 AM8/24/01
to
>>>>> In [semi-gnus-ja : No.6222]
>>>>> yam...@jpl.org (Katsumi Yamaoka) wrote:

山岡さん> ところで、Mule 2 や Emacs 20 の内部コードを XEmacs でデコードす
山岡さん> ることはできるでしょうか?

configure 時に --debug 付きで XEmacs を作ると internal という
coding-system が使えるらしいですが、普通は付けてないですよねえ。


ccl を使えば可能だとは思いますが…。

(require 'pccl)
(require 'mucs)
(require 'mucs-ccl)
(define-ccl-program emacs-mule-decoder
`(1
(loop
,@(mucs-ccl-read-char-1)
,@(mucs-ccl-write-char-1)
(repeat))))
(define-ccl-program emacs-mule-encoder
`(1
(loop
,@(mucs-ccl-read-char-1)
,@(mucs-ccl-write-char-1)
(repeat))))
(make-ccl-coding-system
'emacs-mule ?=
"Emacs internal format used in buffer and string.

Encoding text with this coding system produces the actual byte
sequence of the text in buffers and strings. An exception is made for
eight-bit-control characters. Each of them is encoded into a single
byte."
'emacs-mule-decoder 'emacs-mule-encoder)

--
有沢 明宏

Katsumi Yamaoka

unread,
Aug 24, 2001, 5:39:41 AM8/24/01
to
>>>>> In [semi-gnus-ja : No.6234]
>>>>> a...@atesoft.advantest.co.jp (Akihiro Arisawa) wrote:

山岡> ところで、Mule 2 や Emacs 20 の内部コードを XEmacs でデコードす
山岡> ることはできるでしょうか?

有沢さん> configure 時に --debug 付きで XEmacs を作ると internal とい
有沢さん> う coding-system が使えるらしいですが、

ははあ、そういえばかすかに記憶があります。

有沢さん> 普通は付けてないですよねえ。

はい、--debug=no --error-checking=none --with-debug-malloc=no で
す。どうせ XEmacs コアのデバッグなんてできないから。^^;;

有沢さん> ccl を使えば可能だとは思いますが…。

有沢さん> (require 'pccl)
有沢さん> (require 'mucs)
有沢さん> (require 'mucs-ccl)

おお、

(decode-coding-string
(encode-coding-string "あいうえお" 'emacs-mule)
'emacs-mule)
=> "あいうえお"

有沢さんてすごい!
実はいまだに XEmacs では ucs-conv-1.01-pkg を使っているんですが、
これを機に Mule-UCS に乗り換えることにします。
どうもありがとうございました。
--
Katsumi Yamaoka <yam...@jpl.org>
;; Mule-UCS-0.84-pkg でも作るとするか...

Akihiro Arisawa

unread,
Aug 24, 2001, 6:02:51 AM8/24/01
to
>>>>> In [semi-gnus-ja : No.6235]
>>>>> yam...@jpl.org (Katsumi Yamaoka) wrote:

山岡さん> ところで、Mule 2 や Emacs 20 の内部コードを XEmacs でデコードす
山岡さん> ることはできるでしょうか?

有沢> ccl を使えば可能だとは思いますが…。
有沢> (require 'mucs)
有沢> (require 'mucs-ccl)

山岡さん> 実はいまだに XEmacs では ucs-conv-1.01-pkg を使っているんですが、
山岡さん> これを機に Mule-UCS に乗り換えることにします。

mucs-ccl (と mucs) を require してますが、ぢつは
mucs-ccl-write-char-1 / mucs-ccl-read-char-1 しか使ってないです。

それらの関数を見ていただくとお分かりでしょうが、展開した形で
decoder / encode を記述すると Mule-UCS は不要です (^^;

# Mule-UCS は全然分からない(;_;)


ちなみに XEmacs-21.1 であれば decoder / encoder はもっと簡単で、
以下でできちゃいます。

(define-ccl-program emacs-mule-decoder
'(1 (loop (read r0) (write-repeat r0))))
(define-ccl-program emacs-mule-encoder
'(1 (loop (read r0) (write-repeat r0))))

--
有沢 明宏

Katsumi Yamaoka

unread,
Aug 24, 2001, 9:09:33 AM8/24/01
to
;; semi-gnus とは関係無い話しになってしまってごめんなさい。
;; 行き掛かり上と、ここには himi さんもいらっしゃるので、もうし
;; ばらく低レベルな話を書かせて下さい。^^;;

>>>>> In [semi-gnus-ja : No.6236]
>>>>> a...@atesoft.advantest.co.jp (Akihiro Arisawa) wrote:

山岡> 実はいまだに XEmacs では ucs-conv-1.01-pkg を使っているんですが、
山岡> これを機に Mule-UCS に乗り換えることにします。

有沢さん> mucs-ccl (と mucs) を require してますが、ぢつは
有沢さん> mucs-ccl-write-char-1 / mucs-ccl-read-char-1 しか使ってない
有沢さん> です。

有沢さん> それらの関数を見ていただくとお分かりでしょうが、展開した形で
有沢さん> decoder / encode を記述すると Mule-UCS は不要です (^^;

なるほど。

有沢さん> # Mule-UCS は全然分からない(;_;)

有沢さん> ちなみに XEmacs-21.1 であれば decoder / encoder はもっと簡単
有沢さん> で、以下でできちゃいます。

ううーむ、何と。確かに動きますねえ。

ところで、せっかくなので、

山岡> ;; Mule-UCS-0.84-pkg でも作るとするか...

ftp://ftp.jpl.org/pub/tmp/.notready/Mule-UCS-0.84-pkg.tar.gz

というものを、ちょっと怪しい最新の XEmacs 21.5.2 で作ってみまし
た。約 1MB あります。
一応 (require 'un-define) すると使えるんですが、find-file などで
自動コード判定が効かないため、手で指定してあげる必要があります。
このあたりのことはどうしていらっしゃるんですか?

;; 実は XEmacs で Mule-UCS を使いこなしている人はいない? ^^;;

すみませんが今日はこれにて。
--
Katsumi Yamaoka <yam...@jpl.org>

Akihiro Arisawa

unread,
Aug 25, 2001, 10:46:40 AM8/25/01
to
あとから気付いたのですが、XEmacs-21.4 などの場合も、
encoder / decoder は (write|read)-multibyte-character を
使うだけで良いですね(^^;

(define-ccl-program emacs-mule-decoder
`(1
(loop
(read-multibyte-character r0 r1)
(write-multibyte-character r0 r1)
(repeat))))

>>>>> In <yosuitfd...@jpl.org>
>>>>> Katsumi Yamaoka <yam...@jpl.org> wrote:

山岡さん> 一応 (require 'un-define) すると使えるんですが、find-file などで
山岡さん> 自動コード判定が効かないため、手で指定してあげる必要があります。
山岡さん> このあたりのことはどうしていらっしゃるんですか?

XEmacs では un-tools も動かないし、自動コード判定はできないと
思ってたのですが、どうなのでしょうね。

;; 普段は XEmacs を使っていないから追及してません(^^;

--
有沢 明宏

MIYASHITA Hisashi(宮下 尚:HIMI)

unread,
Aug 25, 2001, 11:51:59 AM8/25/01
to
Katsumi Yamaoka <yam...@jpl.org> writes:

> ;; semi-gnus とは関係無い話しになってしまってごめんなさい。
> ;; 行き掛かり上と、ここには himi さんもいらっしゃるので、もうし
> ;; ばらく低レベルな話を書かせて下さい。^^;;

## 今は、Li18nuxもやってるし、ごたごたが多すぎて、Emacsの仕事が
## 疎かになっていて、かなしい。;_;

> 一応 (require 'un-define) すると使えるんですが、find-file などで
> 自動コード判定が効かないため、手で指定してあげる必要があります。
> このあたりのことはどうしていらっしゃるんですか?

これ、たしか、xemacs-muleで、誰か要求していたような気がするんだけど...

> ;; 実は XEmacs で Mule-UCS を使いこなしている人はいない? ^^;;

XEmacsで、IIIMECFを使っている人は、Mule-UCSも使っていると思う。^^;;;

まぁ、なんにせよ、Mule-UCSは、もう、かなりの部分を再構築しないといけない
用になってきたように思います。大体、Mule-UCSのかなりの部分をCで書き直して、
XのUnicode XLCに放り込むという計画もあるような気がするし。;_;

## そうなると、もう、licenseもGPLだけでは無理ですね。

from himi

Katsumi Yamaoka

unread,
Aug 27, 2001, 12:09:54 AM8/27/01
to
;; himi さん、お呼び立てしてしまってすみません。

>>>>> In [semi-gnus-ja : No.6238]
>>>>> a...@mbf.sphere.ne.jp (Akihiro Arisawa) wrote:

有沢さん> あとから気付いたのですが、XEmacs-21.4 などの場合も、
有沢さん> encoder / decoder は (write|read)-multibyte-character を
有沢さん> 使うだけで良いですね(^^;

なるほどぉ。
結局のところ XEmacs のマルチバイト文字の内部表現はけっして波平
("~") などではなくて、非常に大雑把に言えば FSF Emacs と同じ。
単に elisp で普通にアクセスできる手段が無かっただけなのですね。

;; 関係無いですが、
;; ftp://ftp.st.ryukoku.ac.jp/pub/japanized/kterm-6.2.0.ext02.patch.gz
;; には emacs なんて一言も書いてないのに、これを当てた kterm は
;; Emacs の内部コードのままで日本語を表示できます。

山岡> 一応 (require 'un-define) すると使えるんですが、find-file などで
山岡> 自動コード判定が効かないため、手で指定してあげる必要があります。
山岡> このあたりのことはどうしていらっしゃるんですか?

有沢さん> XEmacs では un-tools も動かないし、自動コード判定はできないと
有沢さん> 思ってたのですが、どうなのでしょうね。

>>>>> In [semi-gnus-ja : No.6239] 宮下尚さん wrote:

himi> これ、たしか、xemacs-muleで、誰か要求していたような気がするんだ
himi> けど...

山岡> ;; 実は XEmacs で Mule-UCS を使いこなしている人はいない? ^^;;

himi> XEmacsで、IIIMECFを使っている人は、Mule-UCSも使っていると思う。
himi> ^^;;;

失礼いたしました。当面は自動コード判定ができなくても困らないので、
XEmacs でもしばらく Mule-UCS を使ってみることにしました。

;; UTF-2000 はまた別の機会に。^^;;

himi> まぁ、なんにせよ、Mule-UCSは、もう、かなりの部分を再構築しないと
himi> いけない用になってきたように思います。大体、Mule-UCSのかなりの部
himi> 分をCで書き直して、XのUnicode XLCに放り込むという計画もあるよう
himi> な気がするし。;_;
himi> ## そうなると、もう、licenseもGPLだけでは無理ですね。

ううむ、ぼくには雲の上の話ですが、陰ながら応援しております。

;; かく言うぼくは X11R6.6 が make できなくてほったらかしの体たら
;; く。^^;;

以下は有沢さんが書いて下さったコードのまとめです。

emacs-mule.el
0 new messages