🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.editor.mule
Article #83

Re: [emacs-20.3] Japanese character on buffer loaded as binary

#83
From: IWAMURO Motonori
Date: Wed, 26 Aug 1998 00:00
51 lines
3129 bytes
岩室@富士通です。

In article <KATE.98Aug25134356@yamato.trad.pfu.co.jp>,
kate@pfu.co.jp (KATAYAMA Yoshio) writes:
> 今回問題になっているように、multibyte-buffer → unibyte-buffer 
> のコピー(multibyte-string を unibyte-buffer に insert する場合
> も同じ)では、「各文字の最下位バイト」しかコピーされません。

  う、要するに何らかの手当をしてやらないと情報が落ちるのですね……。

# 何故こんな仕様になっているのでしょう??? わざわざ情報を落とすメリットっ
# て私には思いつかないのですが、あえてこういう変更をしているのだから何
# か意味があるんですよね?

> 例えば、multibyte-buffer で (setq A "あい") を行なってから、
> unibyte-buffer で (insert A) を行なうと、\242\244 が insert され
> ます。

  一番安直な方法としては、

  (let ((emc enable-multibyte-characters))
    (set-buffer-multibyte t)
    <今までのmultibyteがからむ処理>
    (set-buffer-multibyte emc))

みたいにすることでしょうか? (でもとっても重くなったりして……)

# ちゃんとコードを追いかけたわけではないので確証は持てていないのですが、
# binaryで読んだバッファではあくまでバイト単位で扱いたいみたいなので
# (mc-flagがnilになってる)、enable-multibyte-charactersはtにしたくない
# です。

  もう少しまっとうにやるなら、

(defun insert-mc-buffer-substring (buf &optional bgn end)
  (let (str)
    (save-excursion
      (set-buffer buf)
      (setq str (string-as-unibyte (buffer-substring
				    (if bgn bgn (point-min))
				    (if end end (point-max))))))
    (insert str)))

みたいなのを作ってmultibyteバッファ→unibyteバッファになっている部分を
全部置き換える?

# でもそれも何か違うような気がする……。
-- 
岩室元典@衛星システム開発部.技術開発統括部.NC本部.富士通株式会社
E-Mail: iwa@mmp.fujitsu.co.jp
夏だから、白熊さん ... だめ?          (『serial experimenTs lain』/テレビ東京)
Technical Details
Message-ID: <t8u330va5o.fsf@elhazard.inet.mmp.fujitsu.co.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <t8ogte7mtg.fsf@elhazard.inet.mmp.fujitsu.co.jp> <tl7yasi8uzx.fsf@mulelab.etl.go.jp> <t867fjeyx6.fsf@elhazard.inet.mmp.fujitsu.co.jp> <tl7zpcusywy.fsf@etl.go.jp> <t83eamfy5f.fsf@elhazard.inet.mmp.fujitsu.co.jp> <tl7g1emlgss.fsf@mulelab.etl.go.jp> <KATE.98Aug25134356@yamato.trad.pfu.co.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 10eba4,1b02ad5a9f963050
X-Google-Attributes: gid10eba4,public
X-Google-Thread: ff358,1b02ad5a9f963050
X-Google-Attributes: gidff358,public
From: IWAMURO Motonori <iwa@mmp.fujitsu.co.jp>
Subject: Re: [emacs-20.3] Japanese character on buffer loaded as binary
Date: 1998/08/26
Message-ID: <t8u330va5o.fsf@elhazard.inet.mmp.fujitsu.co.jp>
X-Deja-AN: 384762520
References: <t8ogte7mtg.fsf@elhazard.inet.mmp.fujitsu.co.jp>  <tl7yasi8uzx.fsf@mulelab.etl.go.jp>  <t867fjeyx6.fsf@elhazard.inet.mmp.fujitsu.co.jp>  <tl7zpcusywy.fsf@etl.go.jp>  <t83eamfy5f.fsf@elhazard.inet.mmp.fujitsu.co.jp>  <tl7g1emlgss.fsf@mulelab.etl.go.jp> <KATE.98Aug25134356@yamato.trad.pfu.co.jp>
Content-Type: text/plain; charset=ISO-2022-JP
X-Complaints-To: usenet@holyday.mmp.fujitsu.co.jp
X-Trace: holyday.mmp.fujitsu.co.jp 904092632 372 (None) 133.161.65.69
Organization: FUJITSU Ltd., Kawasaki, Japan
Mime-Version: 1.0 (generated by tm-edit 7.106)
Newsgroups: fj.editor.mule,fj.editor.emacs