From 29dbb8f772081d2f325b894257f3062d6ea404c8 Mon Sep 17 00:00:00 2001 From: Sam Steingold Date: Fri, 12 Aug 2011 14:52:40 -0400 Subject: [PATCH] * lisp/gnus/gnus-score.el (gnus-score-find-alist): Keep the score files already in the reverse order to avoid modifying the cache with `nreverse'. (gnus-all-score-files): Do not modify the value returned by `gnus-score-find-alist' because it lives in a cache variable. (gnus-current-home-score-file): No need to `nreverse' the return value of `gnus-score-find-alist', it is already in the correct order. --- lisp/gnus/ChangeLog | 9 +++++++++ lisp/gnus/gnus-score.el | 10 ++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 7f4116d6636..8fc250d1dcb 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,12 @@ +2011-08-12 Sam Steingold + + * gnus-score.el (gnus-score-find-alist): Keep the score files already + in the reverse order to avoid modifying the cache with `nreverse'. + (gnus-all-score-files): Do not modify the value returned by + `gnus-score-find-alist' because it lives in a cache variable. + (gnus-current-home-score-file): No need to `nreverse' the return value + of `gnus-score-find-alist', it is already in the correct order. + 2011-08-11 Andrew Cohen * nnimap.el (nnimap-transform-headers): BODYSTRUCTURE for messages of diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el index 9bbfbfb057e..099d06d6439 100644 --- a/lisp/gnus/gnus-score.el +++ b/lisp/gnus/gnus-score.el @@ -2834,8 +2834,7 @@ The list is determined from the variable `gnus-score-file-alist'." ;; handle the multiple match alist (while alist (when (string-match (caar alist) group) - (setq score-files - (nconc score-files (copy-sequence (cdar alist))))) + (setq score-files (append (cdar alist) score-files))) (setq alist (cdr alist))) (setq alist gnus-score-file-single-match-alist) ;; handle the single match alist @@ -2845,8 +2844,7 @@ The list is determined from the variable `gnus-score-file-alist'." ;; and score-files is still nil. -sj ;; this can be construed as a "stop searching here" feature :> ;; and used to simplify regexps in the single-alist - (setq score-files - (nconc score-files (copy-sequence (cdar alist)))) + (setq score-files (append (cdar alist) score-files)) (setq alist nil)) (setq alist (cdr alist))) ;; cache the score files @@ -2866,7 +2864,7 @@ The list is determined from the variable `gnus-score-file-alist'." (when gnus-score-use-all-scores ;; Get the initial score files for this group. (when funcs - (setq score-files (nreverse (gnus-score-find-alist group)))) + (setq score-files (copy-list (gnus-score-find-alist group)))) ;; Add any home adapt files. (let ((home (gnus-home-score-file group t))) (when home @@ -3013,7 +3011,7 @@ If ADAPT, return the home adaptive file instead." (defun gnus-current-home-score-file (group) "Return the \"current\" regular score file." - (car (nreverse (gnus-score-find-alist group)))) + (car (gnus-score-find-alist group))) ;;; ;;; Score decays -- 2.39.2