[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: 漢字名のファイルがオープンできない



>>>>> meadow-users-jp の No. 1957
>>>>> Message-Id: <uzoss2248.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> で、
>>>>> "himi" == Miyashita Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxxxxxxxxxxxxxxxx>さま曰く...

himi> しかし、Emacsは、まだ、coding-systemを知らないんだから、いったい
himi> いつの時点でdecodeすべきなんでしょう?

ファイルをオープンするときには、もう coding-system を知っていますよね?

ですから、 startup.el をこんな風にしてはいけないでしょうか?

(defun command-line-normalize-file-name (file)
  "Collapse multiple slashes to one, to handle non-Emacs file names."
  (save-match-data
    (setq file (decode-coding-string file
				     (or file-name-coding-system
					 default-file-name-coding-system)))
    ;; Use arg 1 so that we don't collapse // at the start of the file name.
    ;; That is significant on some systems.
    ;; However, /// at the beginning is supposed to mean just /, not //.
    (if (string-match "^///+" file)
	(setq file (replace-match "/" t t file)))
    (while (string-match "//+" file 1)
      (setq file (replace-match "/" t t file)))
    file))

;; .eamcs にこれを書いておくと、とりあえず開けるようになるみたいです。

himi> ## やっぱり無理があるような気が...してきました。起動時にlocaleから
himi> ## 設定するというのもないではないのだけど、それはあまりやりたくな
himi> ## いし、command lineで制御できないというのも困りものだし。

Command line の世界って、 locale に従って動いていることが現状多いので、
command line の解釈を locale に従って行うというのは、そんなに変なことで
はないと思うのですが、どういう理由で「あまりやりたくない」のでしょうか?

;; Locale 自体が嫌いとか? :-)
-- 
鈴木圭一 / keiichi@xxxxxxxxx
PGP finger print (DH/DSS)
0B32 B37E 6DE9 3BC1 68A4  4089 7AAF 2B03 ECBD 614B