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

Re: how to setuo Mule-UCS



こんにちは。chiyu(AKABA Nobuyuki)といいます。

> 次のような設定をしてみました。
> Meadow1.10 + Mule-UCS-0.62を使用しました。
> 
> 実は、次のような不具合があります。
> 下のコードをevaluateした後、はじめて(既存の).javaファイルを
> find-fileすると、
> File mode specification error: (args-out-of-range 0 3)
> というエラーがエコーエリアに表示され、
> バッファ内もUnicode Escapesがdecodeされていません。
> そして、もう一度find-fileすると、以後は正しくdecodeされます。

UE-to-mule-bufferという関数の、replace-matchの部分を
以下のように変更したら、.javaファイルのはじめてのfind-fileでも
正しくdecodeされるようになりました。

どうして前回のだとうまくいかないのか、謎です。


(defun UE-to-mule-buffer nil ;Mule-UCS-0.62/lisp/un-define.el内のucs-to-charを使用
  "Convert the current buffer from Unicode Escapes notation into mule characters."
  (interactive "*")
  (save-excursion
    (save-restriction
      (let (ucs-number)
        (goto-char (point-min)) ;バッファの先頭へ。
        (while (re-search-forward "\\\\u\\([0-9a-f][0-9a-f][0-9a-f][0-9a-f]\\)" nil t)
                                        ;JavaのUnicode Escapesを探す。
          (setq ucs-number (string-to-number 
                            (buffer-substring (match-beginning 1) (match-end 1)) 16))
          (replace-match "")
          (insert-char (ucs-to-char ucs-number) 1)))))) ;それをMule内部の文字に変換


それから、まったくの勘違いだったら申し訳ないのですが、
Mule-UCS-0.62を使用しているのですが、
un-define.el内の un-define-basic-translation-charset-order-list
という変数で、charsetの順番を変更して(ByteCompileして)も
その効果が現れないのですが、どうしてなのでしょう?
# そのための変数ですよね???

  (tae-declare-translation
   'unicode-basic-translation-rule
の部分で順番をかえれば、これは効果が現れます。

以上。おじゃましました。