*** empty log message ***
[gnus] / lisp / gnus-win.el
index 0ab87ae..7cdd165 100644 (file)
@@ -50,7 +50,7 @@
               (if gnus-carpal '(summary-carpal 4))))
     (article
      (cond 
-      (gnus-use-picons
+      ((and gnus-use-picons (not (eq gnus-picons-display-where 'article)))
        '(frame 1.0
               (vertical 1.0
                         (summary 0.25 point)
      (vertical 1.0
               ("*Gnus Help Bug*" 0.5)
               ("*Gnus Bug*" 1.0 point)))
+    (score-trace
+     (vertical 1.0
+              (summary 0.5 point)
+              ("*Score Trace*" 1.0)))
+    (score-trace
+     (vertical 1.0
+              (summary 0.5 point)
+              ("*Score Words*" 1.0)))
     (compose-bounce
      (vertical 1.0
               (article 0.5)
@@ -175,6 +183,11 @@ buffer configuration.")
     (draft . gnus-draft-buffer))
   "Mapping from short symbols to buffer names or buffer variables.")
 
+;;; Internal variables.
+
+(defvar gnus-current-window-configuration nil
+  "The most recently set window configuration.")
+
 (defvar gnus-created-frames nil)
 
 (defun gnus-kill-gnus-frames ()
@@ -188,42 +201,54 @@ buffer configuration.")
        (error nil)))
     (pop gnus-created-frames)))
 
+(defun gnus-window-configuration-element (list)
+  (while (and list
+             (not (assq (car list) gnus-window-configuration)))
+    (pop list))
+  (cadr (assq (car list) gnus-window-configuration)))
+
 (defun gnus-windows-old-to-new (setting)
   ;; First we take care of the really, really old Gnus 3 actions.
   (when (symbolp setting)
     (setq setting
          ;; Take care of ooold GNUS 3.x values.
          (cond ((eq setting 'SelectArticle) 'article)
-               ((memq setting '(SelectSubject ExpandSubject)) 'summary)
-               ((memq setting '(SelectNewsgroup ExitNewsgroup)) 'group)
+               ((memq setting '(SelectNewsgroup SelectSubject ExpandSubject))
+                'summary)
+               ((memq setting '(ExitNewsgroup)) 'group)
                (t setting))))
   (if (or (listp setting)
          (not (and gnus-window-configuration
                    (memq setting '(group summary article)))))
       setting
-    (let* ((setting (if (eq setting 'group)
-                       (if (assq 'newsgroup gnus-window-configuration)
-                           'newsgroup
-                         'newsgroups) setting))
-          (elem (cadr (assq setting gnus-window-configuration)))
+    (let* ((elem
+           (cond 
+            ((eq setting 'group)
+             (gnus-window-configuration-element
+              '(group newsgroups ExitNewsgroup)))
+            ((eq setting 'summary)
+             (gnus-window-configuration-element
+              '(summary SelectNewsgroup SelectSubject ExpandSubject)))
+            ((eq setting 'article)
+             (gnus-window-configuration-element
+              '(article SelectArticle)))))
           (total (apply '+ elem))
           (types '(group summary article))
           (pbuf (if (eq setting 'newsgroups) 'group 'summary))
           (i 0)
-          perc
-          out)
+          perc out)
       (while (< i 3)
        (or (not (numberp (nth i elem)))
            (zerop (nth i elem))
            (progn
              (setq perc (if (= i 2)
                             1.0
-                          (/ (float (nth 0 elem)) total)))
-             (setq out (cons (if (eq pbuf (nth i types))
-                                 (list (nth i types) perc 'point)
-                               (list (nth i types) perc))
-                             out))))
-       (setq i (1+ i)))
+                          (/ (float (nth i elem)) total)))
+             (push (if (eq pbuf (nth i types))
+                       (list (nth i types) perc 'point)
+                     (list (nth i types) perc))
+                   out)))
+       (incf i))
       `(vertical 1.0 ,@(nreverse out)))))
 
 ;;;###autoload
@@ -361,6 +386,7 @@ buffer configuration.")
 (defvar gnus-frame-split-p nil)
 
 (defun gnus-configure-windows (setting &optional force)
+  (setq gnus-current-window-configuration setting)
   (setq setting (gnus-windows-old-to-new setting))
   (let ((split (if (symbolp setting)
                   (cadr (assq setting gnus-buffer-configuration))