って呼んだら、(日本のEmacs 界隈では)山岡師のことでしょうな、普通。
(cond ((fboundp 'replace-in-string) (defalias 'my-replace-in-string 'replace-in-string)) (t (defun my-replace-in-string (str regex replace) (when (stringp str) (let ((start 0) (len (length replace))) (save-match-data (while (setq start (string-match regex str start)) (setq str (concat (substring str 0 (match-beginning 0)) replace (substring str (match-end 0)))) (setq start (+ start len)))))) str))) (setq migemo-after-conv-function 'migemo-add-zenkaku-pattern) (defun migemo-add-zenkaku-pattern (word pattern) (let ((zenup (japanese-zenkaku (upcase word))) (zendown (japanese-zenkaku (downcase word))) (len (length word)) (i 0) (zenkaku "") upchar downchar) (while (< i len) (setq upchar (aref zenup i)) (setq downchar (aref zendown i)) (if (eq upchar downchar) (setq zenkaku (format "%s\a%c" zenkaku upchar)) (setq zenkaku (format "%s\a[%c%c]" zenkaku downchar upchar))) (setq i (1+ i))) (if (= len 1) (setq pattern (format "%s\\|%s" pattern (substring zenkaku 1))) (setq pattern (format "\\(%s\\)\\|\\(%s\\)" pattern (substring zenkaku 1)))) (my-replace-in-string pattern "\a" migemo-white-space-regexp)))これ、XEmacs でも動くじゃん ^^;;; 昨日は試してもみないで何を勘違いしていたことやら。
これ、どんな環境の人が落ちているのかな?と再度 2ch を見に行ったら、すでに Emacs part.8 って消えちゃっているのですね。2ch ってそういうものなのか。。。
従来の migemo と 0.40 で一番変わったところは、'^G' を white space を表現するコードとして (rubyな)migemo に出力させて、そいつを elisp で migemo-white-space-regexp に置き換えるところだと思うので、落ちちゃう人は
(1) (setq hoge (migemo-get-pattern "s")) で落ちる。(使う文字は "s" とか "t" が良いと思う)
(2) (re-search-forward hoge) or (re-search-backward hoge) で落ちる。
(3) うんにゃ、連打しなければ大丈夫。
(4) 良く考えたら "C-r" のときに落ちるみたい。(処理が変わったのでありうる)
(5) (setq migemo-options '("-S" "migemo" "-t" "emacs")) したら落ちないぞ。
ぐらいをすべからく実験し報告すべし。Emacs の Version と環境と年齢もね。