;; -*- emacs-lisp -*-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; $Id: gnus_summary.el,v 1.25 2006-11-06 21:02:42 rscholz Exp $
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Einstellungen für den Summary Buffer
;;
;; Die offizielle Quelle dieser Datei ist
;;   <http://www.zonix.de/projects/emacs/config>
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Navigation               (Info-goto-node "(Gnus)Summary Maneuvering")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; beim Markieren nicht automatisch ungelesene Nachrichten anspringen
(setq gnus-summary-goto-unread nil)

;; immer die erste Nachricht selektieren
(setq gnus-auto-select-subject 'first)

;; schnelles Bewegen im Summary Buffer
(define-key gnus-summary-mode-map [(tab)] 'gnus-summary-next-thread)
(define-key gnus-summary-mode-map [(control tab)]
  (lambda () (gnus-summary-next-thread -1)))

;; `=' liegt auf dt. Tastaturen ungünstig, stattdessen `+'
(define-key gnus-summary-mode-map "+" "=")

;; Selektierte Zeile komplett hervorheben
;(add-hook 'gnus-summary-mode-hook 'hl-line-mode)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Threading                          (Info-goto-node "(Gnus)Threading")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; schnellere Rekonstruktion von Threads
(setq gnus-build-sparse-threads 'some)
(setq gnus-fetch-old-headers 'some)

;; Niemals einen Pseudo-Root-Artikel für einen angefangenen Thread
;; erstellen
(setq gnus-summary-make-false-root-always nil)

;; Fuzzy-Algorithmus zur Threadbildung
(setq gnus-summary-gather-subject-limit 'fuzzy)

;; Subjects vereinfachen (für Threading nach Subject, falls eingestellt)
(setq gnus-simplify-subject-functions '(gnus-simplify-subject-re
                                        gnus-simplify-subject-fuzzy
                                        gnus-simplify-whitespace))

(setq gnus-simplify-ignored-prefixes "\\(Re?\\|AW\\): *")

;; bewegte Anzeige beim Erstellen der Summary (ab Gnus 5.10)
;(setq gnus-summary-display-while-building t)

;; Threads werden nach den References generiert
(setq gnus-summary-thread-gathering-function 
      'gnus-gather-threads-by-references)

;; Threads werden nach dem Subject generiert
;(setq gnus-summary-thread-gathering-function 
;      'gnus-gather-threads-by-subject)

;; Baumdarstellung in einem eigenen Buffer
;(setq gnus-use-trees t
;      gnus-generate-tree-function 'gnus-generate-horizontal-tree
;      gnus-tree-line-format "%(%[%6,6n%]%)")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Anzeige des Namens        (Info-goto-node "(Gnus)To From Newsgroups")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defvar zonix-gnus-summary-show-sender
      "^nn.+:\\(INBOX\\.\\)?\\(sent\\.\\(mail\\|news\\)\\)\\|[Dd]rafts$"
      
"Regulärer Ausdruck, der auf Mail-Gruppen zutrifft, in denen statt des
Empfängers der Absender angezeigt werden soll.")

(setq gnus-ignored-from-addresses
      (concat "\\(" (user-login-name)
              "\\|ray-[0-9]+\\|raymond\\.scholz\\|nobody\\|\\(ymond\\|plastikball\\)\.de\\)"))

;;(setq gnus-extra-headers '(To Newsgroups))
;;(setq nnmail-extra-headers gnus-extra-headers)

(defun zonix-gnus-summary-from-name ()
  (make-local-variable 'gnus-ignored-from-addresses)
  (unless (string-match zonix-gnus-summary-show-sender gnus-newsgroup-name)
    (setq gnus-ignored-from-addresses nil)))
  
;; oben definierte Funktion zum Sortieren benutzen
(add-hook 'gnus-summary-mode-hook 'zonix-gnus-summary-from-name)

;; besseres (aber langsameres) Parsen der Absenderadresse
(setq gnus-extract-address-components 'mail-extract-address-components)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Summary Line            (Info-goto-node "(Gnus)Summary Buffer Lines")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Pfeil => für aktiven Artikel (bei Emacs 21 im Fringe)
(setq gnus-summary-display-arrow t)

;; Anzeige mit Datum
;(setq gnus-summary-line-format "%U%R%z%d %I%(%[%4L: %-22,22n%]%) %s\n")

;; Datum und Zeit (Horst Winkler in <97tebb.158.1@horst.earlydream.de>)
;(setq gnus-summary-line-format 
;      (concat "%U%R%["
;             "%~(cut-left 6)~(max-right 2)o.%~(cut-left 4)~(max-right 2)o"
;             ".%~(cut-left 2)~(max-right 2)o %~(cut-left 9)~(max-right 2)o"
;             ":%~(cut-left 11)~(max-right 2)o] (%4i)%I %(%[%3L:%-20,20n%]%)"
;             "%2~(ignore 1)t %s\n"))


;; Hans-Peter Binder in <pb.ae5aitkf.fsf@urkwell.fqdn.th-h.de>
;; The following snippets of .gnus code allow Gnus to report a message's date
;; in any format supported by format-time-string

(defun gnus-user-format-function-y (header)
  "Convert the DATE to DD MM YYYY, HH:MM."
  (format-time-string "%d.%m.%Y, %R"
                      (gnus-date-get-time (mail-header-date header))))

(defun gnus-user-format-function-z (header)
  "Convert the DATE to DD MM YYYY"
  (format-time-string "%d.%m.%Y"
                      (gnus-date-get-time (mail-header-date header))))


(add-to-list 'nnmail-extra-headers 'Content-Type)
(add-to-list 'gnus-extra-headers 'Content-Type)

;; ShengHuo ZHU und ein Helfer, den ich vergessen habe, haben mir hier
;; geholfen.  Die Funktion sorgt dafür, dass bei einem Content-Type !=
;; text/plain ein @ zurückgegeben wird.  So kann man schon im
;; Summary-Buffer anzeigen lassen, dass eine Message ein Attachment
;; o.ä. hat.

;; Content-Type-Header zu den Extra-Headern hinzufügen
(add-to-list 'nnmail-extra-headers 'Content-Type)
(add-to-list 'gnus-extra-headers 'Content-Type)

(defun gnus-user-format-function-parts (header)
  (let ((ctype (cdr (assq 'Content-Type 
                          (mail-header-extra header)))))
    (if (or (not ctype)
            (string-match "^text/plain" ctype)
            (string-match "^multipart/\\(encrypted\\|signed\\)" ctype))
        " "
      "@")))

;; eingeklappte Threads
;(setq gnus-summary-line-format "%U%R%z%I%(%[ %-20,20n%]%) %~(ignore 1)2t: %s\n")


;; Anzeigen mit Datum
;(setq gnus-summary-line-format "%U%R%z %*%-6,6&user-date; [%4L] %I%(%[%2{ %-22,22n %}%]%) %s\n")
;(setq gnus-summary-line-format ":%U%R %B %s %-60= |%4L |%-20,20f|%&user-date; \n")

;; Kurzform der Gruppe in Modeline
(setq gnus-summary-mode-line-format "Gnus: %p [%A / Sc:%4z] %Z")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Anzeige mit andersfarbigem Autor (meine Lieblingseinstellung)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; neue Faces basteln
(copy-face 'default 'face-1)
(set-face-foreground 'face-1 "Darkgreen")
(setq gnus-face-1 'face-1)

(copy-face 'default 'face-2)
(set-face-foreground 'face-2 "MidnightBlue")
(setq gnus-face-2 'face-2)

;; ASCII-Art (default)
(setq gnus-sum-thread-tree-indent "  ")
(setq gnus-sum-thread-tree-root "")
(setq gnus-sum-thread-tree-false-root "o ")
(setq gnus-sum-thread-tree-single-indent "") 
(setq gnus-sum-thread-tree-leaf-with-other "+-> ") 
(setq gnus-sum-thread-tree-vertical "| ") 
(setq gnus-sum-thread-tree-single-leaf "`-> ")

;; Unicode
(when window-system
  (setq gnus-sum-thread-tree-indent "  ")
  (setq gnus-sum-thread-tree-root "● ")
  (setq gnus-sum-thread-tree-false-root "◯ ")
  (setq gnus-sum-thread-tree-single-indent "◎ ")
  (setq gnus-sum-thread-tree-leaf-with-other "├─► ")
  (setq gnus-sum-thread-tree-vertical "│")
  (setq gnus-sum-thread-tree-single-leaf "╰─► ")

  
;;  (setq
;;     gnus-sum-thread-tree-false-root      "┈┬──▷ "
;;     gnus-sum-thread-tree-single-indent   " ●  "
;;     gnus-sum-thread-tree-root            "┌─▶ "
;;     gnus-sum-thread-tree-vertical        "│"
;;     gnus-sum-thread-tree-leaf-with-other "├┬─► "
;;     gnus-sum-thread-tree-single-leaf     "╰┬─► "
;;     gnus-sum-thread-tree-indent          " ")


  
;;   (setq gnus-sum-thread-tree-root "\x4912f ")
;;   (setq gnus-sum-thread-tree-single-indent "\x4912e ")
;;   (setq gnus-sum-thread-tree-leaf-with-other "\x4903c\x49020\x490fa ")
;;   (setq gnus-sum-thread-tree-vertical "\x49022")
;;   (setq gnus-sum-thread-tree-single-leaf "\x490b0\x49020\x490fa ")


  )


; Darstellung von Followups 
;(setq gnus-summary-same-subject ">") 
(setq gnus-summary-same-subject "")

;; einfache Baumdarstellung
;(setq gnus-summary-line-format "%U%R%z %*%d [%4L] %B%(%[%2{ %-22,22n %}%]%) %s\n")

;; einfacher auf der Textconsole
(setq gnus-summary-line-format (concat 
;                               "%«%*%5{%U%R%z%}%»" ;%uc"  
                                "%*%5{%U%R%z%}" ;%uc"  
                                "%4{|%}" 
                                "%2{%-10&user-date;%}" ; Datum
                                "%4{|%}"
                                "%2{%u&parts;%}" ; Parts
                                "%4{|%}"
                                ;"%2{ %}%(%-20,20a%)" 
                                "%2{ %}%(%-24,24f" ;From/To (n)
                                ;"%2{ %}%1{%-20,20a%}" 
                                "%4{|%}" 
                                "%2{%5i%}" 
                                "%4{|%}" 
                                "%2{%6k %}%)" ;3t 6k 
                                "%4{|%}" 
                                "%2{ %}%3{%B%}%1{%us%}\n"))

;; Mit Unicode-Chars unter X
(when window-system
  (setq gnus-summary-line-format (concat 
;                               "%«%*%5{%U%R%z%}%»" ;%uc"  
                                "%*%5{%U%R%z%}" ;%uc"  
                                "%4{│%}" 
                                "%2{%-10&user-date;%}" ; Datum
                                "%4{│%}"
                                "%2{%u&parts;%}" ; Parts
                                "%4{│%}"
                                ;"%2{ %}%(%-20,20a%)" 
                                "%2{ %}%(%-24,24f" ;From/To (n)
                                ;"%2{ %}%1{%-20,20a%}" 
                                "%4{│%}" 
                                "%2{%5i%}" 
                                "%4{│%}" 
                                "%2{%6k %}%)" ;3t 6k 
                                "%4{│%}" 
                                "%2{ %}%3{%B%}%1{%us%}\n")))


;; aktuelle Zeile wird hervorgehoben (sieht auf Textterminals komisch aus)
(when window-system
 (require 'highline)
 (add-hook 'gnus-group-prepare-hook 'highline-on)
 (add-hook 'gnus-summary-prepare-hook 'highline-on)
 (set-face-background 'highline-face "grey70"))

;; (when window-system
;;   (copy-face 'highlight 'hl-line-mode-highlight)
;;   (set-face-background 'hl-line-mode-highlight "grey70")
;;   (setq hl-line-face 'hl-line-mode-highlight)
;;   (add-hook 'gnus-group-prepare-hook 'hl-line-mode)
;;   (add-hook 'gnus-summary-prepare-hook 'hl-line-mode))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Sortierung        (Info-goto-node "(Gnus)Sorting the Summary Buffer")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defvar zonix-gnus-summary-sorted-by-score
  "^\\(nn.*:[Ll]ist\\.\\|nnvirtual:\\)"
  
"Regulärer Ausdruck, der auf Mail-Gruppen zutrifft, die nach Score
 sortiert werden sollen.")

;; Newsgroups und Mailinglisten nach Score sortieren, sonst nach Datum.
(defun zonix-gnus-summary-sorting ()
  (if (or (gnus-news-group-p gnus-newsgroup-name)
          (string-match zonix-gnus-summary-sorted-by-score gnus-newsgroup-name))
      
      ;; nach Score
      (progn
        
        (make-local-variable 'gnus-use-adaptive-scoring)
        (make-local-variable 'gnus-use-scoring)
        (make-local-variable 'gnus-thread-sort-functions)
        (make-local-variable 'gnus-sort-gathered-threads-function)
        
        (setq gnus-use-scoring t)

        ;; Adaptives Scoring
        (setq gnus-use-adaptive-scoring t)

        (setq gnus-thread-sort-functions 'gnus-thread-sort-by-total-score)
        (setq gnus-sort-gathered-threads-function 'gnus-thread-sort-by-total-score))
          
    ;; sonst nach Datum
    (progn

      (make-local-variable 'gnus-use-adaptive-scoring)
      (make-local-variable 'gnus-use-scoring)
      (make-local-variable 'gnus-thread-sort-functions)
      (make-local-variable 'gnus-sort-gathered-threads-function)
            
      (setq gnus-use-scoring nil)

        ;; Kein adaptives Scoring
      (setq gnus-use-adaptive-scoring nil)

      (setq gnus-thread-sort-functions 'gnus-thread-sort-by-date)
      (setq gnus-sort-gathered-threads-function 'gnus-thread-sort-by-date))))

;; oben definierte Funktion zum Sortieren benutzen
(add-hook 'gnus-summary-mode-hook 'zonix-gnus-summary-sorting)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Faces                   (Info-goto-node "(Gnus)Summary Highlighting")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; die Defaulteinstellung ist grausig
(set-face-foreground 'gnus-summary-cancelled-face "Grey")
(set-face-background 'gnus-summary-cancelled-face nil)


;; Sehr hohe Scores, d.h. (Antworten auf) eigene Postings grau hinterlegen
(defvar zonix-score-X 999)

(copy-face 'gnus-summary-high-ticked-face 'gnus-summary-high-ticked-face-X)
(copy-face 'gnus-summary-high-ancient-face 'gnus-summary-high-ancient-face-X)
(copy-face 'gnus-summary-high-unread-face 'gnus-summary-high-unread-face-X)
(copy-face 'gnus-summary-high-read-face 'gnus-summary-high-read-face-X)

(when window-system
  (set-face-background 'gnus-summary-high-unread-face-X "grey")
  (set-face-background 'gnus-summary-high-ticked-face-X "grey")
  (set-face-background 'gnus-summary-high-ancient-face-X "grey")
  (set-face-background 'gnus-summary-high-read-face-X "grey"))

;; Thanks to Bill White for pointing me to the `pushnew' function...

(pushnew '((> score zonix-score-X)
           . gnus-summary-high-read-face-X)
         gnus-summary-highlight)

(pushnew '((and
            (> score zonix-score-X)
            (= mark gnus-ancient-mark))
           . gnus-summary-high-ancient-face-X)
         gnus-summary-highlight)

(pushnew '((and
            (> score zonix-score-X)
            (= mark gnus-unread-mark))
           . gnus-summary-high-unread-face-X)
         gnus-summary-highlight)

(pushnew '((and
            (> score zonix-score-X)
            (or
             (= mark gnus-dormant-mark)
             (= mark gnus-ticked-mark)))
           . gnus-summary-high-ticked-face-X)
         gnus-summary-highlight)

(pushnew '((and
            (> score zonix-score-X)
            (memq mark
                  (list gnus-downloadable-mark gnus-undownloaded-mark)))
           . gnus-summary-high-unread-face-X)
         gnus-summary-highlight)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Balloon Help
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Jesper Harder in <m365w5u5qp.fsf@defun.localdomain>

;; To do it you enclose the part of `gnus-summary-line-format' you want to
;; be mouse sensitive in %« %», e.g. 

;(setq gnus-summary-line-format "%U%R%z %B%«%-23,23n%» %s\n")

;(setq gnus-summary-line-format
;      "%U%R%z %*%d %u&parts; [%4L] %I%(%[%2{ %«%-22,22n%» %}%]%) %s\n")

;; and set `gnus-balloon-help-face-0' to a function which returns the
;; information to be displayed, e.g.

(setq gnus-balloon-face-0 'jh-article-help)

(defun jh-article-help (window object position)
  "Help echo for the summary buffer."
  (with-current-buffer object
    (let* ((article (get-text-property position 'gnus-number))
           (head (gnus-data-header (gnus-data-find article))))
      (format "Date: %s\nSize: %s\nScore: %s\nNumber: %s"
              (mail-header-date head)
              (gnus-summary-line-message-size head)
              (gnus-summary-article-score article)
              (mail-header-number head)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Buffer Layout                  (Info-goto-node "(Gnus)Window Layout")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; alternatives Layout mit drei Buffern
; (setq gnus-build-sparse-threads 'some
;       gnus-use-trees t
;       gnus-generate-tree-function 'gnus-generate-horizontal-tree
;       gnus-tree-minimize-window nil)
;
; (gnus-add-configuration
;  '(article
;    (vertical 1.0
;            (horizontal 0.25
;                        (summary 0.75 point)
;                        (tree 1.0))
;             (article 1.0))))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Nachfragen bei direkten Replies  (ab Gnus 5.10)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Patric Mueller in <7iq1t9.m63.ln@bhaak.xodox.com>
;; von mir erweitert um die Abfrage auf Mailinglisten 
(defun zonix-gnus-confirm-mail-reply-to-news (name)
  (or
   (gnus-news-group-p
    (if (gnus-virtual-group-p name)
        (car (nnvirtual-map-article (cdr gnus-article-current)))
      name))
   (string-match "^nn.+:\\(INBOX\.\\)?list\\." name)))

;; nachfragen, wenn Funktion (s.o.) t zurückgibt
(setq gnus-confirm-mail-reply-to-news 'zonix-gnus-confirm-mail-reply-to-news)

;; nachfragen, wenn aktuelle Gruppe einem best. Pattern entspricht
;(setq gnus-confirm-mail-reply-to-news "list\\.")

;; immer nachfragen
;(setq gnus-confirm-mail-reply-to-news t)

;; auch nachfragen, wenn es sich bei der Nachricht, auf die man
;; antwortet, um Mail handelt (z.B. in Mailinglisten)
(setq gnus-confirm-treat-mail-like-news t)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Nachfragen bei direkten Replies  (vor Gnus 5.10)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Patric Mueller in <7iq1t9.m63.ln@bhaak.xodox.com>
;; von mir erweitert um die Abfrage auf Mailinglisten 

;; (defadvice gnus-summary-reply (around reply-in-news activate)
;;   (when (or
;;       (not (or (gnus-news-group-p 
;;                 (if (gnus-virtual-group-p gnus-newsgroup-name)
;;                     (car (nnvirtual-map-article (cdr gnus-article-current)))
;;                   gnus-newsgroup-name
;;                   ))
;;                (string-match "list\\." gnus-newsgroup-name)))
;;       (y-or-n-p "Really, really reply? "))
;;     ad-do-it))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Nützliche Funktionen
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Threads aus- und einklappen mit Cursortasten <do2ub8.68i.ln@grumbel.subdomain.de>
(defun my-gnus-summary-show-thread ()
  "Show thread without changing cursor positon."
  (interactive)
  (gnus-summary-show-thread)
  (beginning-of-line)
  (forward-char 1))

;(setq gnus-thread-hide-subtree t)
;(define-key gnus-summary-mode-map [(right)] 'my-gnus-summary-show-thread)
;(define-key gnus-summary-mode-map [(left)]  'gnus-summary-hide-thread)

;; Ganzen Thread anzeigen

;; Christoph Conrad in <m3smud2ske.fsf@ID-24456.user.dfncis.de>
(defun cc-fetch-whole-thread()
  "like `A R' `T o' `A T' in the summary buffer."
  (interactive)
  (gnus-summary-refer-references)
  (gnus-summary-top-thread)
  (gnus-summary-refer-thread))

(define-key gnus-summary-mode-map (kbd "AA") 'cc-fetch-whole-thread)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Mailinglisten-Mode              (Info-goto-node "(Gnus)Mailing List")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(add-hook 'gnus-summary-mode-hook 
          (lambda ()
            (if (string-match zonix-gnus-summary-sorted-by-score gnus-newsgroup-name)
                (turn-on-gnus-mailing-list-mode))))


;; Local Variables:
;; coding: utf-8
;; End: