[mew-dist 26370] Some hacks around summary column (Re: IMAP sync vs. trash)
Shun-ichi TAHARA ( 田原 俊一 )
jado at example.com
2005年 5月 28日 (土) 01:38:14 JST
> ところで、mew-summary-form-body-starter に依存しないコード、というのが
> かなり昔から懸案になってたと思うので、手元でやってみているのですが、
・mew-summary-form-body-starter に依存しない
→thread の桁合わせは subj の後ろで行なう
→refile 先表示は body の位置に行なう
・mew-summary-form の末尾以外でもフィールド幅に 0 を認める
→(0 subj) とした場合、subj の後が揃わないので、thread での桁合わせ
も行なわない
→refile 先表示は summary の右端に行なう
・scan 幅処理の修正
→現状のコードでは mew-summary-scan-width より 3桁短くなっている
- thread 用の t で 1桁カウント
- 予め mew-summary-scan-width から 1引いているのに、scan 時にもう
一度 1を引いている
これを修正し、mew-summary-scan-width - 1 桁出るようにした
・thread を畳む処理の修正
→summary-form の先頭 (mark の次) が type でない場合に表示がおかしく
なっていたので、type の桁に + 記号を出すようにした
→連続して t), t( をすると表示がおかしくなっていたのを修正
パッチを添付します。cvs 先頭用ですが、4.2.50〜51 にも当たります。
なお、refile 先は、summary-form で … (0 subj) "|" (0 body) のようにし
た場合は、summary の右端に表示されます。
これ、結構具合がいい気がするので、常にこのように表示するとどうだろう、
とも考えてますが、いかがでしょう?
_______________________________
田原 俊一 jado at example.com, shunichi_tahara at example.com
http://flowernet.gr.jp/jado/
FingerPrint: 16 9E 70 3B 05 86 5D 08 B8 4C 47 3A E7 E9 8E D9
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
-------------- next part --------------
Index: mew-imap.el
===================================================================
RCS file: /cvsmew/mew/mew-imap.el,v
retrieving revision 1.248
diff -c -r1.248 mew-imap.el
*** mew-imap.el 26 May 2005 06:15:48 -0000 1.248
--- mew-imap.el 27 May 2005 15:48:53 -0000
***************
*** 1175,1180 ****
--- 1175,1181 ----
(mew-imap-exec-recover bnm))
(mew-summary-lock process "IMAPing" (or sshpro sslpro))
(mew-sinfo-set-summary-form (mew-get-summary-form bnm))
+ (mew-sinfo-set-body-column (mew-get-summary-form bnm 'body))
(mew-sinfo-set-unread-mark nil)
(mew-sinfo-set-scan-id nil)
(mew-info-clean-up pnm)
Index: mew-local.el
===================================================================
RCS file: /cvsmew/mew/mew-local.el,v
retrieving revision 1.93
diff -c -r1.93 mew-local.el
*** mew-local.el 26 May 2005 06:15:48 -0000 1.93
--- mew-local.el 27 May 2005 15:48:53 -0000
***************
*** 258,263 ****
--- 258,264 ----
range pro opts)
(message "Scanning %s..." bnm)
(mew-sinfo-set-summary-form (mew-get-summary-form bnm))
+ (mew-sinfo-set-body-column (mew-get-summary-form bnm 'body))
(mew-sinfo-set-unread-mark nil)
(mew-sinfo-set-scan-id nil)
(mew-info-clean-up pnm)
Index: mew-nntp.el
===================================================================
RCS file: /cvsmew/mew/mew-nntp.el,v
retrieving revision 1.122
diff -c -r1.122 mew-nntp.el
*** mew-nntp.el 26 May 2005 06:15:48 -0000 1.122
--- mew-nntp.el 27 May 2005 15:48:53 -0000
***************
*** 443,448 ****
--- 443,449 ----
(when process
(mew-summary-lock process "NNTPing" (or sshpro sslpro))
(mew-sinfo-set-summary-form (mew-get-summary-form bnm))
+ (mew-sinfo-set-body-column (mew-get-summary-form bnm 'body))
(mew-sinfo-set-unread-mark nil)
(mew-sinfo-set-scan-id nil)
(mew-info-clean-up pnm)
Index: mew-pop.el
===================================================================
RCS file: /cvsmew/mew/mew-pop.el,v
retrieving revision 1.196
diff -c -r1.196 mew-pop.el
*** mew-pop.el 26 May 2005 06:15:49 -0000 1.196
--- mew-pop.el 27 May 2005 15:48:54 -0000
***************
*** 672,677 ****
--- 672,678 ----
(mew-summary-visible-buffer bnm))
(mew-summary-lock process "POPing" (or sshpro sslpro))
(mew-sinfo-set-summary-form (mew-get-summary-form bnm))
+ (mew-sinfo-set-body-column (mew-get-summary-form bnm 'body))
(mew-sinfo-set-unread-mark nil)
(mew-sinfo-set-scan-id nil)
(mew-info-clean-up pnm)
Index: mew-refile.el
===================================================================
RCS file: /cvsmew/mew/mew-refile.el,v
retrieving revision 1.132
diff -c -r1.132 mew-refile.el
*** mew-refile.el 26 May 2005 06:15:49 -0000 1.132
--- mew-refile.el 27 May 2005 15:48:54 -0000
***************
*** 598,627 ****
(defvar mew-override-body-open "<")
(defvar mew-override-body-close "> ")
- (defconst mew-regex-override-body
- (concat (regexp-quote mew-override-body-open)
- "[^>\r\n]*"
- (regexp-quote mew-override-body-close)))
(defun mew-summary-refile-override-body (folders-str)
(let* ((open mew-override-body-open)
(close mew-override-body-close)
! (len (+ (length folders-str) (length open) (length close))))
(save-excursion
! (when (mew-summary-goto-body 'after)
! (when (looking-at mew-regex-override-body)
! (mew-elet
! (delete-region (point) (match-end 0))))
(mew-elet
! (insert-and-inherit open folders-str close))))
len))
(defun mew-summary-refile-remove-body ()
! (save-excursion
! (when (and (mew-summary-goto-body 'after)
! (looking-at mew-regex-override-body))
! (mew-elet
! (delete-region (point) (match-end 0))))))
(defun mew-summary-refile-log (fld folders-str)
(save-excursion
--- 598,638 ----
(defvar mew-override-body-open "<")
(defvar mew-override-body-close "> ")
(defun mew-summary-refile-override-body (folders-str)
(let* ((open mew-override-body-open)
(close mew-override-body-close)
! (len (+ (length folders-str) (length open) (length close)))
! (width (min 30 ;; xxx
! (+ (string-width folders-str)
! (string-width open) (string-width close))))
! (column (or (mew-sinfo-get-body-column) (- (mew-scan-width) width)))
! start end)
(save-excursion
! (mew-summary-refile-remove-body)
! (if (= (move-to-column column) column)
! (setq start (point))
! (backward-char)
! (setq start (point))
(mew-elet
! (while (< (current-column) column)
! (insert-and-inherit mew-sp))))
! (mew-elet
! (insert-and-inherit open folders-str close)
! (put-text-property start (point) 'mew-refile-view t)))
len))
(defun mew-summary-refile-remove-body ()
! (let ((body (or (mew-sinfo-get-body-column) (- (mew-scan-width) 1))))
! (save-excursion
! (move-to-column body)
! (when (get-text-property (point) 'mew-refile-view)
! (setq end (next-property-change
! (point) nil (save-excursion (end-of-line) (point))))
! (setq start (previous-property-change
! (point) nil (save-excursion (beginning-of-line) (point))))
! (mew-elet
! (delete-region start end))))))
(defun mew-summary-refile-log (fld folders-str)
(save-excursion
Index: mew-scan.el
===================================================================
RCS file: /cvsmew/mew/mew-scan.el,v
retrieving revision 1.228
diff -c -r1.228 mew-scan.el
*** mew-scan.el 27 May 2005 05:59:17 -0000 1.228
--- mew-scan.el 27 May 2005 15:48:54 -0000
***************
*** 235,245 ****
;;; Scan from
;;;
! (defun mew-get-summary-form (folder &optional column)
"Get summary-form from 'mew-summary-form-list',
'mew-summary-form-list-string-type, and 'mew-summary-form-list-list-type'.
! 'mew-summary-form-header' is prepended. If COLUMN is non-nil, the number
! of thread indent position is returned."
(let (ret form col)
(setq ret (mew-folder-spec folder
mew-summary-form-list
--- 235,247 ----
;;; Scan from
;;;
! (defun mew-get-summary-form (folder &optional column afterp)
"Get summary-form from 'mew-summary-form-list',
'mew-summary-form-list-string-type, and 'mew-summary-form-list-list-type'.
! 'mew-summary-form-header' is prepended. If COLUMN is non-nil, the column
! number of specified element described in summary-form is returned, only
! when the position is fixed (otherwise, returns nil). If afterp is non-nil,
! the column number of just after position of specified element is returned."
(let (ret form col)
(setq ret (mew-folder-spec folder
mew-summary-form-list
***************
*** 249,274 ****
(mew-set '(form col) ret)
(setq form mew-summary-form))
(setq form (append mew-summary-form-header form))
! (if column
! (if (numberp col) col (mew-thread-column form))
! form)))
! (defun mew-thread-column (form)
! (let ((col 0) ret ent)
(catch 'loop
(while form
(setq ent (car form))
(setq form (cdr form))
(cond
((consp ent)
! (setq col (+ col (abs (car ent)))))
((stringp ent)
(setq col (+ col (string-width ent))))
((eq ent t)
! (throw 'loop (setq ret col)))
(t
! (setq col (1+ col))))))
! (or ret mew-thread-column)))
(defun mew-get-unread-mark (folder)
(car (mew-folder-spec folder
--- 251,290 ----
(mew-set '(form col) ret)
(setq form mew-summary-form))
(setq form (append mew-summary-form-header form))
! (cond
! ((and (eq column t) (numberp col))
! col)
! (column
! (mew-get-summary-column form column afterp))
! (t
! form))))
! (defmacro mew-get-summary-column-check (pos elm chk col)
! `(if (and ,pos (eq ,elm ,chk)) (throw 'loop ,col)))
!
! (defun mew-get-summary-column (form column afterp)
! (let ((col 0) (beforep (null afterp)) ent)
(catch 'loop
(while form
(setq ent (car form))
(setq form (cdr form))
(cond
((consp ent)
! (mew-get-summary-column-check beforep (car (cdr ent)) column col)
! (if (= (car ent) 0)
! (throw 'loop nil))
! (setq col (+ col (abs (car ent))))
! (mew-get-summary-column-check afterp (car (cdr ent)) column col))
((stringp ent)
(setq col (+ col (string-width ent))))
((eq ent t)
! (mew-get-summary-column-check t ent column col))
(t
! (mew-get-summary-column-check beforep ent column col)
! (setq col (1+ col))
! (mew-get-summary-column-check afterp ent column col))))
! (if (eq column t)
! mew-thread-column))))
(defun mew-get-unread-mark (folder)
(car (mew-folder-spec folder
***************
*** 282,316 ****
;;;
(defun mew-scan-get-piece (spec)
! (let (func width str rightp nopad)
! (if (stringp spec)
! (progn
! (setq TOTAL (+ TOTAL (string-width spec)))
! spec)
! (if (symbolp spec)
! (setq width 1 func spec)
! (mew-set '(width func) spec))
! (when (and (integerp width) (symbolp func))
! (when (= width 0)
! (setq width (- WIDTH TOTAL 1))
! (unless mew-use-spc-padding
! (setq nopad t)))
! (if (< width 0) (setq width (abs width) rightp t))
! (setq TOTAL (+ TOTAL width))
! (setq func (intern-soft
! (concat mew-summary-form-func-prefix (symbol-name func))))
! (when (fboundp func)
! (setq str (funcall func))
! (if rightp
! (if (<= (string-width str) width)
! (format (format "%%%ds" width) str)
! (setq TOTAL (+ (- TOTAL width) (string-width str)))
! str) ;; width may exceed.
! (mew-substring str width nil nopad)))))))
(defun mew-scan-get-line (mew-vec WIDTH)
(let* ((TOTAL 0) (fld "")
! (line (mapconcat 'mew-scan-get-piece (mew-sinfo-get-summary-form) ""))
par-id my-id msg ld uid siz irt-list)
(setq my-id (or (mew-idstr-get-first-id (MEW-ID)) ""))
;; RFC 2822 says: the "In-Reply-To:" field may be used to identify
--- 298,334 ----
;;;
(defun mew-scan-get-piece (spec)
! (let (func width str rightp remain)
! (when (< TOTAL WIDTH)
! (if (stringp spec)
! (progn
! (setq TOTAL (+ TOTAL (string-width spec)))
! spec)
! (if (symbolp spec)
! (setq width 1 func spec)
! (mew-set '(width func) spec))
! (when (and (integerp width) (symbolp func))
! (if (< width 0) (setq width (abs width) rightp t))
! (setq func (intern-soft
! (concat mew-summary-form-func-prefix (symbol-name func))))
! (when (fboundp func)
! (setq TOTAL (+ TOTAL width))
! (setq str (funcall func))
! (if rightp
! (if (> (setq remain (- width (string-width str))) 0)
! (concat (make-string remain mew-sp) str)
! (setq TOTAL (- TOTAL remain))
! str) ;; width may exceed.
! (if (> width 0)
! (mew-substring str width)
! (setq TOTAL (+ TOTAL (string-width str)))
! str))))))))
(defun mew-scan-get-line (mew-vec WIDTH)
(let* ((TOTAL 0) (fld "")
! (line (mew-substring
! (mapconcat 'mew-scan-get-piece (mew-sinfo-get-summary-form) "")
! WIDTH nil (null mew-use-spc-padding)))
par-id my-id msg ld uid siz irt-list)
(setq my-id (or (mew-idstr-get-first-id (MEW-ID)) ""))
;; RFC 2822 says: the "In-Reply-To:" field may be used to identify
Index: mew-summary.el
===================================================================
RCS file: /cvsmew/mew/mew-summary.el,v
retrieving revision 1.198
diff -c -r1.198 mew-summary.el
*** mew-summary.el 18 May 2005 11:54:42 -0000 1.198
--- mew-summary.el 27 May 2005 15:48:54 -0000
***************
*** 19,25 ****
"scan-id" "find-key" "cursor-line" "direction" "start-point"
"cache-time" "summary-form" "unread-mark" "refile-back"
"disp-msg" "case" "folder" "proto" "mid-marker" "mid-line" "ttl-line"
! "mark-review" "ret-pos"))
(mew-blinfo-defun 'mew-sinfo mew-sinfo-list)
--- 19,25 ----
"scan-id" "find-key" "cursor-line" "direction" "start-point"
"cache-time" "summary-form" "unread-mark" "refile-back"
"disp-msg" "case" "folder" "proto" "mid-marker" "mid-line" "ttl-line"
! "mark-review" "ret-pos" "body-column"))
(mew-blinfo-defun 'mew-sinfo mew-sinfo-list)
Index: mew-syntax.el
===================================================================
RCS file: /cvsmew/mew/mew-syntax.el,v
retrieving revision 1.89
diff -c -r1.89 mew-syntax.el
*** mew-syntax.el 26 May 2005 06:15:49 -0000 1.89
--- mew-syntax.el 27 May 2005 15:48:54 -0000
***************
*** 339,358 ****
(defsubst mew-summary-goto-mark ()
(beginning-of-line))
- (defsubst mew-summary-goto-body (&optional after)
- (when mew-summary-form-body-starter
- (beginning-of-line)
- (let ((beg (point)))
- (forward-line)
- (if (search-backward "\r" nil t)
- (if (search-backward mew-summary-form-body-starter beg t)
- (progn
- (if after (goto-char (match-end 0)))
- t)
- nil)
- (forward-line -1) ;; just in case
- nil))))
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Summary mode syntax
--- 339,344 ----
Index: mew-thread.el
===================================================================
RCS file: /cvsmew/mew/mew-thread.el,v
retrieving revision 1.124
diff -c -r1.124 mew-thread.el
*** mew-thread.el 26 May 2005 06:15:49 -0000 1.124
--- mew-thread.el 27 May 2005 15:48:54 -0000
***************
*** 244,250 ****
(disp (mew-sinfo-get-disp-msg))
(ctime (mew-sinfo-get-cache-time))
(case (mew-sinfo-get-case))
! (column (mew-get-summary-form folder 'column))
db size top start me prnt prnt-cld my-id prnt-id func msg line
tm1 tm2 tm3 tm4 tm5 tm6)
(message "Making thread (first pass)...")
--- 244,252 ----
(disp (mew-sinfo-get-disp-msg))
(ctime (mew-sinfo-get-cache-time))
(case (mew-sinfo-get-case))
! (column (mew-get-summary-form folder t))
! (type-column (mew-get-summary-form folder 'type))
! (subj-column (mew-get-summary-form folder 'subj t))
db size top start me prnt prnt-cld my-id prnt-id func msg line
tm1 tm2 tm3 tm4 tm5 tm6)
(message "Making thread (first pass)...")
***************
*** 313,318 ****
--- 315,322 ----
(mew-vinfo-set-top nil)
(mew-vinfo-set-db db)
(mew-vinfo-set-column column)
+ (mew-vinfo-set-type-column type-column)
+ (mew-vinfo-set-subj-column subj-column)
;;
(message "Making thread (second pass)...")
(setq tm3 (current-time))
***************
*** 338,344 ****
(message "Displaying thread...")
(setq tm5 (current-time))
(mew-summary-thread-print-top
! (mew-vinfo-get-top) folder column)
;;
;; Unmarking in both Summary and Thread
(when mark (mew-mark-undo-mark mew-mark-review))
--- 342,348 ----
(message "Displaying thread...")
(setq tm5 (current-time))
(mew-summary-thread-print-top
! (mew-vinfo-get-top) folder column subj-column)
;;
;; Unmarking in both Summary and Thread
(when mark (mew-mark-undo-mark mew-mark-review))
***************
*** 379,390 ****
(defun mew-thread-next-property2 (beg end level)
(text-property-any beg end 'mew-thread-indent level))
! (defun mew-thread-adjust-body (level)
! (when (mew-summary-goto-body)
! (mew-elet
! (let ((end (point))
! (width (* level mew-thread-indent-width))
! (sum 0))
(while (< sum width)
(setq sum (+ (char-width (char-before)) sum))
(forward-char -1))
--- 383,395 ----
(defun mew-thread-next-property2 (beg end level)
(text-property-any beg end 'mew-thread-indent level))
! (defun mew-thread-adjust-column (level column)
! (when column
! (let ((width (* level mew-thread-indent-width))
! (sum 0) end)
! (move-to-column (+ column width))
! (mew-elet
! (setq end (point))
(while (< sum width)
(setq sum (+ (char-width (char-before)) sum))
(forward-char -1))
***************
*** 397,403 ****
;;; Visualizing thread
;;;
! (defun mew-summary-thread-print-top (top folder column)
(while top
(let* ((me (car top))
(cld (mew-thread-get-child me)))
--- 402,408 ----
;;; Visualizing thread
;;;
! (defun mew-summary-thread-print-top (top folder column subj-column)
(while top
(let* ((me (car top))
(cld (mew-thread-get-child me)))
***************
*** 408,417 ****
(move-to-column column)
(mew-thread-put-property (point) (1+ (point)) 0)
(forward-line))
! (if cld (mew-summary-thread-print-tree cld folder column))
(setq top (cdr top)))))
! (defun mew-summary-thread-print-tree (tree folder column)
(let ((tree-stack nil)
(prefix "")
(level 1) pos)
--- 413,422 ----
(move-to-column column)
(mew-thread-put-property (point) (1+ (point)) 0)
(forward-line))
! (if cld (mew-summary-thread-print-tree cld folder column subj-column))
(setq top (cdr top)))))
! (defun mew-summary-thread-print-tree (tree folder column subj-column)
(let ((tree-stack nil)
(prefix "")
(level 1) pos)
***************
*** 428,434 ****
(insert prefix (aref mew-thread-indent-strings 0))
(insert prefix (aref mew-thread-indent-strings 1)))
(mew-thread-put-property pos (point) level)
! (mew-thread-adjust-body level)
(forward-line))
;;
(setq tree next)
--- 433,439 ----
(insert prefix (aref mew-thread-indent-strings 0))
(insert prefix (aref mew-thread-indent-strings 1)))
(mew-thread-put-property pos (point) level)
! (mew-thread-adjust-column level subj-column)
(forward-line))
;;
(setq tree next)
***************
*** 532,539 ****
(mew-decode-syntax-delete)
(save-excursion
(beginning-of-line)
! (when (looking-at
! (concat "^." (regexp-quote (char-to-string mew-mark-thread-root))))
(setq pruned (point))
(mew-thread-graft 'nomsg))
(move-to-column column)
--- 537,544 ----
(mew-decode-syntax-delete)
(save-excursion
(beginning-of-line)
! (move-to-column (mew-vinfo-get-type-column))
! (when (eq (char-after (point)) mew-mark-thread-root)
(setq pruned (point))
(mew-thread-graft 'nomsg))
(move-to-column column)
***************
*** 586,593 ****
(mew-decode-syntax-delete)
(save-excursion
(beginning-of-line)
! (when (looking-at
! (concat "^." (regexp-quote (char-to-string mew-mark-thread-root))))
(setq pruned (point))
(mew-thread-graft 'nomsg))
(move-to-column column)
--- 591,598 ----
(mew-decode-syntax-delete)
(save-excursion
(beginning-of-line)
! (move-to-column (mew-vinfo-get-type-column))
! (when (eq (char-after (point)) mew-mark-thread-root)
(setq pruned (point))
(mew-thread-graft 'nomsg))
(move-to-column column)
***************
*** 812,818 ****
(mew-thread-only
(mew-summary-goto-message)
(mew-decode-syntax-delete)
! (if (looking-at (concat "^." (regexp-quote (char-to-string mew-mark-thread-root))))
(mew-thread-graft)
(mew-thread-prune))
(mew-thread-move-cursor)
--- 817,824 ----
(mew-thread-only
(mew-summary-goto-message)
(mew-decode-syntax-delete)
! (move-to-column (mew-vinfo-get-type-column))
! (if (eq (char-after (point)) mew-mark-thread-root)
(mew-thread-graft)
(mew-thread-prune))
(mew-thread-move-cursor)
***************
*** 826,835 ****
(mew-decode-syntax-delete)
(save-excursion
(goto-char (point-min))
! (let (pos)
(while (setq pos (mew-thread-next-property2 (point) (point-max) 0))
(goto-char pos)
! (mew-thread-prune 'nomsg)
(forward-line))))
(when (eq (get-text-property (point) 'invisible) t)
(mew-re-search-backward-visible mew-regex-msg-or-part))
--- 832,843 ----
(mew-decode-syntax-delete)
(save-excursion
(goto-char (point-min))
! (let ((type-column (mew-vinfo-get-type-column)) pos)
(while (setq pos (mew-thread-next-property2 (point) (point-max) 0))
(goto-char pos)
! (move-to-column type-column)
! (if (not (eq (char-after (point)) mew-mark-thread-root))
! (mew-thread-prune 'nomsg))
(forward-line))))
(when (eq (get-text-property (point) 'invisible) t)
(mew-re-search-backward-visible mew-regex-msg-or-part))
***************
*** 844,852 ****
(mew-decode-syntax-delete)
(save-excursion
(goto-char (point-min))
! (let ((regex (concat "^." (regexp-quote (char-to-string mew-mark-thread-root)))))
! (while (re-search-forward regex nil t)
! (mew-thread-graft 'nomsg)
(forward-line))))
(mew-thread-move-cursor)
(set-buffer-modified-p nil)))
--- 852,863 ----
(mew-decode-syntax-delete)
(save-excursion
(goto-char (point-min))
! (let ((type-column (mew-vinfo-get-type-column)) pos)
! (while (setq pos (mew-thread-next-property2 (point) (point-max) 0))
! (goto-char pos)
! (move-to-column type-column)
! (if (eq (char-after (point)) mew-mark-thread-root)
! (mew-thread-graft 'nomsg))
(forward-line))))
(mew-thread-move-cursor)
(set-buffer-modified-p nil)))
***************
*** 873,879 ****
(put-text-property beg (point) 'invisible t)
(goto-char beg)
(forward-line -1)
! (forward-char)
(put-text-property (point) (1+ (point)) 'invisible t)
(insert mew-mark-thread-root))))))
--- 884,890 ----
(put-text-property beg (point) 'invisible t)
(goto-char beg)
(forward-line -1)
! (move-to-column (mew-vinfo-get-type-column))
(put-text-property (point) (1+ (point)) 'invisible t)
(insert mew-mark-thread-root))))))
***************
*** 899,905 ****
(setq beg (point)))
(goto-char start)
(forward-line -1)
! (forward-char)
(delete-char 1)
(put-text-property (point) (1+ (point)) 'invisible nil))))))
--- 910,916 ----
(setq beg (point)))
(goto-char start)
(forward-line -1)
! (move-to-column (mew-vinfo-get-type-column))
(delete-char 1)
(put-text-property (point) (1+ (point)) 'invisible nil))))))
***************
*** 944,949 ****
--- 955,961 ----
(defun mew-thread-glue-it ()
(let ((column (mew-vinfo-get-column))
+ (subj-column (mew-vinfo-get-subj-column))
(m (make-marker))
(width 0) (wd 0) (adjust 0)
(prefix "")
***************
*** 967,973 ****
(aref mew-thread-indent-strings 0))
(setq prefix (concat prefix (aref mew-thread-indent-strings 2)))
(setq prefix (concat prefix (aref mew-thread-indent-strings 3)))))
! (when (mew-summary-goto-body)
(while (> (point) beg)
(setq wd (+ wd (char-width (char-before))))
(forward-char -1)))
--- 979,986 ----
(aref mew-thread-indent-strings 0))
(setq prefix (concat prefix (aref mew-thread-indent-strings 2)))
(setq prefix (concat prefix (aref mew-thread-indent-strings 3)))))
! (when subj-column
! (move-to-column subj-column)
(while (> (point) beg)
(setq wd (+ wd (char-width (char-before))))
(forward-char -1)))
***************
*** 1002,1008 ****
(insert (aref mew-thread-indent-strings 1)))
(goto-char (mew-thread-next-property (point)))
(mew-thread-put-property pbeg (point) (+ indent pindent))
! (mew-thread-adjust-body (- pindent adjust))
(catch 'loop
(while t
(forward-line)
--- 1015,1021 ----
(insert (aref mew-thread-indent-strings 1)))
(goto-char (mew-thread-next-property (point)))
(mew-thread-put-property pbeg (point) (+ indent pindent))
! (mew-thread-adjust-column (- pindent adjust) subj-column)
(catch 'loop
(while t
(forward-line)
***************
*** 1017,1023 ****
(insert (aref mew-thread-indent-strings 3)))
(goto-char (mew-thread-next-property (point)))
(mew-thread-put-property pbeg (point) (+ idt pindent))
! (mew-thread-adjust-body (- pindent adjust))))
(beginning-of-line)
(setq end (point))
(when (looking-at mew-regex-thread-separator)
--- 1030,1036 ----
(insert (aref mew-thread-indent-strings 3)))
(goto-char (mew-thread-next-property (point)))
(mew-thread-put-property pbeg (point) (+ idt pindent))
! (mew-thread-adjust-column (- pindent adjust) subj-column)))
(beginning-of-line)
(setq end (point))
(when (looking-at mew-regex-thread-separator)
Index: mew-virtual.el
===================================================================
RCS file: /cvsmew/mew/mew-virtual.el,v
retrieving revision 1.70
diff -c -r1.70 mew-virtual.el
*** mew-virtual.el 26 May 2005 06:15:49 -0000 1.70
--- mew-virtual.el 27 May 2005 15:48:54 -0000
***************
*** 13,19 ****
;;;
(defvar mew-vinfo-list
! '("func" "lra" "top" "db" "column"
"parent-folder" ;; Thread only
"flds")) ;; Virtual (not Thread) only
--- 13,19 ----
;;;
(defvar mew-vinfo-list
! '("func" "lra" "top" "db" "column" "type-column" "subj-column"
"parent-folder" ;; Thread only
"flds")) ;; Virtual (not Thread) only
Mew-dist メーリングリストの案内