[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: make-variable-buffer-local
- X-ml-count: 4012
- Subject: Re: make-variable-buffer-local
- From: Shun-ichi GOTO <gotoh@xxxxxxxxxxx>
- Date: Wed, 05 Dec 2001 14:32:02 +0900 (JST)
- X-mailer: Mew version 2.1 on Emacs 20.7 / Mule 4.1 (AOI)
>>>>> at 05 Dec 2001 10:52:38 +0900
>>>>> 圭一 == Keiichi Suzuki <keiichi@xxxxxxxxx> said,
圭一> make-variable-buffer-local() した変数の default-value を
圭一> setq-default 以外の方法で変更することはできるのでしょうか?
圭一> ;; 何らかの副作用等で,意図せず変更してしまうとか。
とりあえずこれで再現できた (meadow -q で実験済み)
current value = 1, default value = 0 だったものが
current value = 2, default value = 1 となり、現象を確認できます。
(let* ((buf-name "*test-buffer*")
(buf (get-buffer buf-name)))
(when buf
(kill-buffer buf)
(setq buf (get-buffer buf-name)))
(make-variable-buffer-local 'foo)
(setq-default foo 0)
(setq foo 1)
(describe-variable 'foo)
(sit-for 1)
(save-excursion
(let ((foo 2))
(set-buffer (get-buffer-create "*test-buffer*"))
;;(setq foo 3)
;;(describe-variable 'foo)
(sit-for 1)))
(describe-variable 'foo))
圭一> 私の環境で,通常の運用をしていると,何かのタイミングで
圭一> `fill-prefix' の default-value が, "" に変更されてしまい,それ
圭一> がどこで起っているのかを調べています。
深くは考えてないけど...
save-excursion による副作用はdocument にもかかれているのでまぁ良いのです
が、ちょっと不思議な現象があります。例えば上の例のとおり(setq foo 3) や
(describe-variable 'foo)を両方ともコメント合うとした例だと、先のような現
象再現をしてくれるのですが、コメント合うとされた部分を1つずつコメントを
外してみると結果が変わってきたりします。save-excursion の副作用は関連あ
りそう?
## これ以上の追求は時間の都合でパス。
--- Regards,
Shun-ichi Goto <gotoh@xxxxxxxxxxx>
R&D Group, TAIYO Corp., Tokyo, JAPAN