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

Re: kill-new に第三引数が追加された



>>>>> In [emacs-w3m : No.04562]
>>>>>	NAKAJIMA Mikio <minakaji@osaka.email.ne.jp> wrote:

中島さん>   kill-region する度に変なエラーが出る、と思って調べたら、最
中島さん> 近 cvs 上の Emacs 21 で kill-new に第三引数が追加されたよう
中島さん> です。

[...]

中島さん> エレガントに処理する方法を思いつかなかったので直してません。
中島さん> 識者の方お願いします。

こんなんで良いのでしょうか?

(let (current-load-list)
  (defadvice kill-new (before strip-keymap-properties-from-kill activate)
    "Advised by emacs-w3m.
Strip `keymap' or `local-map' properties from a killed string."
    (if (text-property-any 0 (length (ad-get-arg 0))
			   'text-rendered-by-mime-w3m t (ad-get-arg 0))
	(remove-text-properties 0 (length (ad-get-arg 0))
				'(keymap nil local-map nil)
				(ad-get-arg 0)))))

;; エレガントかどうかを論ずる以前の内容ですけれど。:-p

ちなみに、関数の引数の最大数は w3m-function-max-args() で調べる
ことができます。と書いたのも束の間、21.3.50 用にはちょっと変更が
必用でした。^^;;

;;; w3m-util.el
  (defun w3m-function-max-args (function)
[...]
-	(length (delq '&optional arglist))))))
+	(length (delq '&optional (copy-sequence arglist)))))))

CVS commit はちゃんと検証してからにします。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>