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

Re: 要望:リンクを新しいバ ッファで開く機能



>>>>> In [emacs-w3m : No.01896]
>>>>>	KURODA Chihiro <chee@subdimension.com> wrote:

黒田さん> 早速試させていただきました。グーです。

黒田さん> 気づいたところ一点だけ。
黒田さん> http://emacs-w3m.namazu.org/
黒田さん> のように href=# でページ内に飛ぶケースでは tab のタイトルが
黒田さん> 同じバッファが二つできる訳ですが、tab のクリックによる切り替えが
黒田さん> 効かなくなります。おそらく XEmacs 側で同名タブを想定していない
黒田さん> のが原因だと思うのですが、 emacs-w3m 側でうまくするとすれば
黒田さん> 同名タイトル | 同名タイトル <2> | ... という感じでしょうか。

ご指摘ありがとうございます。なるほど、名前はユニークでないといけ
ないのですね。

;; gutter-items.el では同じ名前のバッファが 10個以上ある場合を想
;; 定していないようですね。バグじゃないかしら。

以下のようにバッファ番号を先頭に付けてみました。まだ少し調整する
必要がありますが。

(defadvice format-buffers-tab-line
  (around w3m-xmas-show-current-title-in-buffer-tab (buffer) activate)
  "Advised by Emacs-W3M.
Show the current title string in the buffer tab.  Unfortunately,
existing XEmacs does not support showing non-ascii characters.  When a
title contains non-ascii characters, show a url name by default."
  (with-current-buffer buffer
    (if (eq 'w3m-mode major-mode)
	(let ((len (specifier-instance
		    buffers-tab-default-buffer-line-length))
	      (name (if (string-match "^[ -~]+$" w3m-current-title)
			w3m-current-title
		      (if (string-match "^[^/:]+:/+" w3m-current-url)
			  (substring w3m-current-url (match-end 0))
			w3m-current-url)))
	      (num (if (string-match ".*<\\(.+\\)>$" (buffer-name buffer))
		       (match-string 1 (buffer-name buffer)))))
	  (when (string-equal "/" (substring name -1))
	    (setq name (substring name 0 (1- (length name)))))
	  (setq ad-return-value
		(if num
		    (if (and (> len 0)
			     (> (length name) len))
			(concat "[" num "]"
				(substring name 0 (- len 5 (length num)))
				"...")
		      (concat "[" num "]" name))
		  (if (and (> len 0)
			   (> (length name) len))
		      (concat (substring name 0 (- len 3)) "...")
		    name))))
      ad-do-it)))
-- 
Katsumi Yamaoka <yamaoka@namazu.org>