X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus-logic.el;h=0b14ce0f08ebce2e088682e2e2c44504c6ec5ea2;hb=3e3cb3d2c9ff3a44447ac2473b4e742017fe41cb;hp=c26faab3b3d2b5e3b4f26e525a971d028d8f75b8;hpb=aa88205ebb3cd4ade3696b2faf1d72a687cffa49;p=gnus diff --git a/lisp/gnus-logic.el b/lisp/gnus-logic.el index c26faab3b..0b14ce0f0 100644 --- a/lisp/gnus-logic.el +++ b/lisp/gnus-logic.el @@ -1,7 +1,7 @@ ;;; gnus-logic.el --- advanced scoring code for Gnus -;; Copyright (C) 1996 Free Software Foundation, Inc. +;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -25,11 +25,13 @@ ;;; Code: -(require 'gnus-load) +(eval-when-compile (require 'cl)) + +(require 'gnus) (require 'gnus-score) (require 'gnus-util) -;;; Internal variables. +;;; Internal variables. (defvar gnus-advanced-headers nil) @@ -53,7 +55,7 @@ (eval-and-compile (autoload 'parse-time-string "parse-time")) - + (defun gnus-score-advanced (rule &optional trace) "Apply advanced scoring RULE to all the articles in the current group." (let ((headers gnus-newsgroup-headers) @@ -79,7 +81,7 @@ (defun gnus-advanced-score-rule (rule) "Apply RULE to `gnus-advanced-headers'." (let ((type (car rule))) - (cond + (cond ;; "And" rule. ((or (eq type '&) (eq type 'and)) (pop rule) @@ -106,7 +108,7 @@ ;; This is a `1-'-type redirection rule. ((and (symbolp type) (string-match "^[0-9]+-$\\|^\\^+$" (symbol-name type))) - (let ((gnus-advanced-headers + (let ((gnus-advanced-headers (gnus-parent-headers gnus-advanced-headers (if (string-match "^\\([0-9]+\\)-$" (symbol-name type)) @@ -162,16 +164,16 @@ (funcall type match (or (aref gnus-advanced-headers index) 0)))) (defun gnus-advanced-date (index match type) - (let ((date (encode-time (parse-time-string - (aref gnus-advanced-headers index)))) - (match (encode-time (parse-time-string match)))) - (cond + (let ((date (apply 'encode-time (parse-time-string + (aref gnus-advanced-headers index)))) + (match (apply 'encode-time (parse-time-string match)))) + (cond ((eq type 'at) (equal date match)) ((eq type 'before) - (gnus-time-less match date)) + (time-less-p match date)) ((eq type 'after) - (gnus-time-less date match)) + (time-less-p date match)) (t (error "No such date score type: %s" type))))) @@ -188,7 +190,7 @@ ofunc article) ;; Not all backends support partial fetching. In that case, ;; we just fetch the entire article. - (unless (gnus-check-backend-function + (unless (gnus-check-backend-function (intern (concat "request-" header)) gnus-newsgroup-name) (setq ofunc request-func) @@ -210,13 +212,13 @@ (point-max)))) (let* ((case-fold-search (not (eq (downcase (symbol-name type)) (symbol-name type)))) - (search-func + (search-func (cond ((memq type '(r R regexp Regexp)) 're-search-forward) ((memq type '(s S string String)) 'search-forward) (t - (error "Illegal match type: %s" type))))) + (error "Invalid match type: %s" type))))) (goto-char (point-min)) (prog1 (funcall search-func match nil t)