[Mew-dist 03838] visible headers (was Re: Mew-dist 03833)
Mito
mit at example.com
1998年 2月 19日 (木) 10:42:24 JST
※ "冨" こと togashi at example.com さんの
『[Mew-dist 03833] Re: to be visible X-Mew field.』からの引用です。
冨> デフォルトでみえるフィールドの件なんですが、最終的にはどのようなフィー
冨> ルドを残したほうがよいという結論になったのでしょうか(初心者うんぬんの
冨> 話も含めて)。
この件は、私としてはどうでもいいので、識者の方々のご意見に従
います。(_ _)
遅ればせながら b12 から b14 に ver-up したのですが、やはり
visible/invisible header の指定方法がとても分りにくいと思い
ました。
現在 mew-field-invisible という名称にもかかわらず、必ずしも
invisible にならないというのが問題なんだと思います。
私なりに考えてみましたが、
(1) mew-field-visible に指定されているものは表示する
(2) mew-field-invisible に指定されているものは表示しない
(3) どちらにも指定されているものは優先度を持たせる
(4) どちらにも指定されていないものは表示しない
とすれば比較的分りやすいのではないかと思います。
(3) の場合ですが、現在 mew-field-visible では部分一致を許し
ていませんが、これを許すようにして、一致した文字列が多いほう
を優先するというふうにしてみました。
例)
visible: "X-Mailer"
invisible: "X-"
とした場合、"X-"で始まる field は表示しないが、"X-Mailer:"
は表示する。
(4) でどちらにも指定されていないものを非表示にするというのが
嫌な場合は、mew-field-visile に "." を指定すればいいわけです
ので、問題ないと思います。
以上のような仕様にしてみましましたので、
mew-field-other-visible は必要なくなりましたので、なくしまし
た。
どうでしょう?
--
2/19 10:36頃
NECソフトウェア新潟 水戸
mailto:mit at example.com
-------------- next part --------------
--- mew-decode.el 1998/02/18 05:21:04 1.1
+++ mew-decode.el 1998/02/19 01:04:52
@@ -651,14 +651,26 @@
;;;
(defun mew-make-field-regex (fields)
- (mapconcat (function (lambda (x) (concat "^" x))) fields "\\|")
+ (mapconcat (function (lambda (x)
+ (if (string-match "^\\^" x) x (concat "^" x))))
+ fields "\\|")
)
(defun mew-field-make-regex ()
(setq mew-field-visible-regex
(mew-make-field-regex mew-field-visible))
(setq mew-field-invisible-regex
- (mew-make-field-regex mew-field-invisible)))
+ (mew-make-field-regex mew-field-invisible))
+ (let ((vf mew-field-visible)
+ (ivf mew-field-invisible))
+ (while (car vf)
+ (if (string-match "^[^^]" (car vf))
+ (setcar vf (concat "^" (car vf))))
+ (setq vf (cdr vf)))
+ (while (car ivf)
+ (if (string-match "^[^^]" (car ivf))
+ (setcar ivf (concat "^" (car ivf))))
+ (setq ivf (cdr ivf)))))
(mew-field-make-regex)
@@ -674,7 +686,8 @@
(invisible-regex mew-field-invisible-regex)
(visible (make-vector len nil))
(case-fold-search t)
- (others nil) (key "") (line "") (beg nil) (n nil))
+ (others nil) (key "") (line "") (beg nil) (n nil)
+ visible-score invisible-score)
(save-restriction
(narrow-to-region (point-min) (point))
(goto-char (point-min))
@@ -683,25 +696,30 @@
(setq beg (match-beginning 0))
(forward-line)
(while (looking-at mew-lwsp) (forward-line))
- (if (and (string-match invisible-regex key)
- (not (string-match visible-regex key)))
+ (if (string-match visible-regex key)
+ (setq visible-score (match-end 0))
+ (setq visible-score nil))
+ (if (string-match invisible-regex key)
+ (setq invisible-score (match-end 0))
+ (setq invisible-score nil))
+ (if (and invisible-score (not visible-score))
()
(setq line (mew-buffer-substring beg (point)))
(delete-region beg (point))
- (if (null (string-match visible-regex key))
+ (if (or (not visible-score)
+ (and invisible-score (> invisible-score visible-score)))
(setq others (concat others line))
- (setq n (mew-member-case-equal key mew-field-visible))
+ (setq n (mew-member-match key mew-field-visible))
(aset visible n (concat (aref visible n) line))
))
))
- (and (not mew-field-other-visible) others (insert others))
+ (and others (insert others))
(or nodisplay (recenter 0))
(setq n 0)
(while (< n len)
(if (aref visible n) (insert (aref visible n)))
(setq n (1+ n))
)
- (and mew-field-other-visible others (insert others))
)
(mew-highlight-header-region (point-min) (point))
(mew-highlight-x-face (point-min) (point))
--- mew-vars.el 1998/02/18 06:04:45 1.1
+++ mew-vars.el 1998/02/19 00:58:31
@@ -398,15 +398,9 @@
"Resent-Sender:" "Resent-Reply-To:" "Delivery-Date:"
"Delivered-To:" "Posted:" "In-Reply-To:" "References:"
"Precedence:" "Lines:"
- "X-.*" "From$")
+ "X-" "From$")
"*These fields are hidden when a message is displayed over a message
buffer. Back-scroll makes them visible.")
-
-(defvar mew-field-other-visible t
- "*If *non-nil*, other fields than fields of mew-field-visible and
-that of mew-field-invisible are displayed after that of mew-field-visible.
-Otherwise, they are hidden over a message buffer. That is,
-fields of mew-field-visible are visible only.")
;;
;; Draft mode
Mew-dist メーリングリストの案内