(defvar gnus-selected-tree-face 'modeline
"*Face used for highlighting selected articles in the thread tree.")
-(defvar gnus-tree-brackets '((?\[ . ?\]) (?\( . ?\)) (?\{ . ?\}))
+(defvar gnus-tree-brackets '((?\[ . ?\]) (?\( . ?\))
+ (?\{ . ?\}) (?< . ?>))
"Brackets used in tree nodes.")
(defvar gnus-tree-parent-child-edges '(?- ?\\ ?|)
;;; Generating the tree.
-(defun gnus-tree-node-insert (header sparse)
+(defun gnus-tree-node-insert (header sparse &optional adopted)
(let* ((dummy (stringp header))
(header (if (vectorp header) header
(progn
(cond ((memq gnus-tmp-number sparse)
(caadr gnus-tree-brackets))
(dummy (caaddr gnus-tree-brackets))
+ (adopted (car (nth 3 gnus-tree-brackets)))
(t (caar gnus-tree-brackets))))
(gnus-tmp-close-bracket
(cond ((memq gnus-tmp-number sparse)
(cdadr gnus-tree-brackets))
+ (adopted (cdr (nth 3 gnus-tree-brackets)))
(dummy
(cdaddr gnus-tree-brackets))
(t (cdar gnus-tree-brackets))))
(gnus-horizontal-recenter)
(select-window selected))))))
-(defun gnus-generate-horizontal-tree (thread level &optional dummyp)
+(defun gnus-generate-horizontal-tree (thread level &optional dummyp adopted)
"Generate a horizontal tree."
(let* ((dummy (stringp (car thread)))
(do (or dummy
(goto-char beg)))
(setq dummyp nil)
;; Insert the article node.
- (gnus-tree-node-insert (pop thread) gnus-tmp-sparse))
+ (gnus-tree-node-insert (pop thread) gnus-tmp-sparse adopted))
(if (null thread)
;; End of the thread, so we go to the next line.
(unless (bolp)
(while thread
(gnus-generate-horizontal-tree
(pop thread) (if do (1+ level) level)
- (or dummyp dummy))))))
+ (or dummyp dummy) dummy)))))
(defsubst gnus-tree-indent-vertical ()
(let ((len (- (* (1+ gnus-tree-node-length) gnus-tmp-indent)
(insert "\n")))
(end-of-line))
-(defun gnus-generate-vertical-tree (thread level &optional dummyp)
+(defun gnus-generate-vertical-tree (thread level &optional dummyp adopted)
"Generate a vertical tree."
(let* ((dummy (stringp (car thread)))
(do (or dummy
(setq dummyp nil)
;; Insert the article node.
(gnus-tree-indent-vertical)
- (gnus-tree-node-insert (pop thread) gnus-tmp-sparse)
+ (gnus-tree-node-insert (pop thread) gnus-tmp-sparse adopted)
(gnus-tree-forward-line 1))
(if (null thread)
;; End of the thread, so we go to the next line.
(while thread
(gnus-generate-vertical-tree
(pop thread) (if do (1+ level) level)
- (or dummyp dummy))))))
+ (or dummyp dummy) dummy)))))
;;; Interface functions.
(set-window-point
(get-buffer-window (current-buffer) t) (cdr region))))))
-
;;; Allow redefinition of functions.
(gnus-ems-redefine)