[Mew-dist 06777] Re: mew-refile-view.el (Re: mew-refile.el)
Shun-ichi GOTO
gotoh at example.com
1998年 10月 22日 (木) 17:29:06 JST
後藤@太陽計測です
>>>>> From: "Takashi P.KATOH" <p-katoh at example.com>
> From: Hideyuki SHIRAI (白井秀行) <shirai at example.com>
> Subject: [Mew-dist 06769] Re: mew-refile.el
> > mew-refile.el の話が出ているので、便乗してお願いしてしまうのです
> > が、refile 先を summary に表示する機能があると、*安心* できてあ
> > りがたいです。
>
> こんなのはどうでしょう?
> 表示されるのは Summary buffer じゃないですけど。
>
> Summary buffer で M-x mew-refile-view とすると、
...snip...
白井さんの紹介された水戸さんの方法も、加藤さんの方法もいいですね。
加藤さんのコードのほうは、x (mew-summary-exec)の際に、
「これからこういうふぅにrefileするよ。 いいかい?」
と確認とれるようにして使うとか、あるいはbyte-compileの
ログのように結果を残しつづけるとか、それをファイルに保存して
くれるとか。アイディアは膨らむ。
自分としては、「deleteとrefileのログが残ってくれたらなぁ」と
思いつづけて、はや○年。なんだか一挙に二度うれしいです。(^^)
さっそく水戸さんのコードを使ってみたところ、Summary内の各行の長さを
80文字(window-width)以上にして (setq truncate-lines t) にして
使っている自分の環境ではちょっと困りましたので、以下のようにして
使い始めました。お尻も揃うようになりました。
--- 1 Thu Oct 22 06:50:18 1998
+++ 2 Thu Oct 22 07:27:53 1998
@@ -31,19 +31,25 @@
(mew-summary-remove-refile-folders)
(let ((msg (mew-summary-message-number))
(buffer-read-only nil)
- folders len rs re c)
- (setq folders (concat " " (mew-refile-folders msg)))
- (setq len (string-width folders))
- (if (< len 1) ()
- (end-of-line)
- (setq re (point))
-; (setq rs (if (> re len) (- re len) 1))
- (setq c 0)
- (while (< c len)
+ folders maxwid wid)
+ (setq folders (concat " " (mew-refile-folders msg))
+ maxwid (- (window-width) 1 (string-width folders)))
+ (when (< 0 maxwid)
+ (end-of-line)
+ ;; begin with whole of line
+ (setq wid (string-width (buffer-substring (save-excursion
+ (beginning-of-line)
+ (point))
+ (point))))
+ ;; check and shorten
+ (while (< maxwid wid)
(backward-char)
- (setq c (+ c (char-width (following-char)))))
- (setq rs (point))
- (set-text-properties rs re '(invisible t))
- (goto-char re)
- (insert folders)
+ (setq wid (- wid (char-width (following-char)))))
+ ;; now hide from current point to eol
+ (set-text-properties (point)
+ (save-excursion (end-of-line) (point))
+ '(invisible t))
+ ;; write destrination folder
+ (end-of-line)
+ (insert (make-string (- maxwid wid) ? ) folders) ; with adjust
(set-buffer-modified-p nil)))))
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
Mew-dist メーリングリストの案内