Re: emiko: wrong usage of buffer-file-name

Katsumi Yamaoka <[email protected]> Wed, 13 Oct 2004 13:59:53 +0900
Newsgroups gmane.mail.emacs.mime.japanese
Organization Emacsen advocacy group
Message-ID <[email protected]>
>>>>> In [emacs-mime-ja : No.01940] 中山さん wrote:

> mime-view-insert-fontified-text-content を修正すべきとおもうのですが、
> どうするのがよいでしょうか。

案その1:


これに関連して、

(global-font-lock-mode 1)

を使う代わりに、各 mode ごとに以下のような hook を設定する

(add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock)

のは必ずしも邪道ではないと思うのですが、最初に set-auto-mode で
turn-on-font-lock が呼ばれたときに
font-lock-fontify-buffer-function の値が jit-lock-refontify になっ
てしまい、二回目に mime-view-insert-fontified-text-content が
font-lock-fontify-buffer を呼ぶと、font-lock が解除されてしまう
んですが、この問題を解決する妙案はありませんか?

試すためのフォーム:
(progn
  (global-font-lock-mode -1)
  (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock))

試すためのパート:
mime-view.el.diff (text/plain, 659 B)
--- mime-view.el~	2004-09-15 22:00:39 +0000
+++ mime-view.el	2004-10-13 04:56:04 +0000
@@ -979,10 +979,9 @@
 	    (mime-view-insert-text-content entity situation)
-	    (if mode
-		(funcall mode)
-	      (if (setq filename (mime-entity-filename entity))
-		  (unwind-protect
-		      (progn
-			(setq buffer-file-name filename)
-			(set-auto-mode))
-		    (setq buffer-file-name nil))))
+	    (cond (mode
+		   (funcall mode))
+		  ((setq filename (mime-entity-filename entity))
+		   (let ((buffer-file-name
+			  (expand-file-name (file-name-nondirectory filename)
+					    temporary-file-directory)))
+		     (set-auto-mode))))
 	    (require 'font-lock)
test.el (application/octet-stream, 24 B) - not displayed