[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:04112] Re: fluid-let



おおいわです。

>> On Fri, 4 Feb 2000 12:11:46 +0900, Tetsuya Kamei <kamei@xxxxxxxxxxxx> said:

Tetsuya> んー、これと同じではないかと…。

Tetsuya>   (let ((buffer-read-only nil))
Tetsuya>     (declare (special buffer-read-only))
Tetsuya>     (insert "abc"))

…………………。(^^;;

# buffer-read-only が special ならいいのになぁとか
# 思いつつ書いたのですが、local に宣言できるのを
# すっかり見落としていました。

……確かに Common Lisp マニュアルには

(defun hack (thing *mod*)       ;The binding of the parameter 
  (declare (special *mod*))     ; *mod* is visible to hack1, 
    (hack1 (car thing)))        ; but not that of thing 

(defun hack1 (arg) 
  (declare (special *mod*))     ;Declare references to *mod* 
                                ; within hack1 to be special 
  (if (atom arg) *mod* 
    (cons (hack1 (car arg)) (hack1 (cdr arg)))))

という例はあるのですが、今回の場合だと2番目の declare は
なくてもいいということなのでしょうか……。(?_?)
まぁ動いたからいいや (^^;;

buffer-read-only が buffer-local であることを考えると
素直に declare を使った方がいいですね。
(拙作 fluid-let は set-buffer すると違うものに書き戻してしまう) 

ついでというわけでもないのですがちょっと質問が。
# お手の空いている時で結構です。

(set-text-color from to &optional foreground background char extend-p)
の char と、
(set-text-attribute from to tag &key :foreground :background :bold :underline :strike-out :prefix :extend)
の tag はどのように使えばいいのでしょうか。

tag はとりあえず後でそれを使って操作しているのが grep.l とかから
分かったのですが、単純にテキストの一部に下線を付けたい時などは、
nil を渡してしまっていいのでしょうか。

-- 
大岩 寛   Yutaka Oiwa        
       東京大学大学院 理学系研究科情報科学専攻 修士課程 米澤研究室
      <oiwa@xxxxxxxxxxxxxxxxxxxxx>, <yutaka@xxxxxxxxxxxxxxxxxxxxx>
PGP fingerprint = C9 8D 5C B8 86 ED D8 07  EA 59 34 D8 F4 65 53 61

Index Home