Synch to Gnus 200311190648.
authoryamaoka <yamaoka>
Wed, 19 Nov 2003 06:54:28 +0000 (06:54 +0000)
committeryamaoka <yamaoka>
Wed, 19 Nov 2003 06:54:28 +0000 (06:54 +0000)
lisp/ChangeLog
lisp/gnus-score.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index de7a766..2f5e194 100644 (file)
@@ -1,3 +1,8 @@
+2003-11-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus-score.el (gnus-decay-score): Return a surely smaller value
+       than the argument in XEmacs.
+
 2003-11-18  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * message.el (message-insert-to): Don't use `gnus-message'.
index bf5de64..1e59514 100644 (file)
@@ -2953,15 +2953,19 @@ If ADAPT, return the home adaptive file instead."
 
 (defun gnus-decay-score (score)
   "Decay SCORE according to `gnus-score-decay-constant' and `gnus-score-decay-scale'."
-  (condition-case nil
-      (floor
-       (- score
-         (* (if (< score 0) -1 1)
-            (min (abs score)
-                 (max gnus-score-decay-constant
-                      (* (abs score)
-                         gnus-score-decay-scale))))))
-    (arith-error (lsh -1 -1))))
+  (let ((n (- score
+             (* (if (< score 0) -1 1)
+                (min (abs score)
+                     (max gnus-score-decay-constant
+                          (* (abs score)
+                             gnus-score-decay-scale)))))))
+    (if (and (featurep 'xemacs)
+            ;; XEmacs' floor can handle only the floating point
+            ;; number below the half of the maximum integer.
+            (> (abs n) (lsh -1 -2)))
+       (string-to-number
+        (car (split-string (number-to-string n) "\\.")))
+      (floor n))))
 
 (defun gnus-decay-scores (alist day)
   "Decay non-permanent scores in ALIST."
index ec425f0..ebb576a 100644 (file)
@@ -1,3 +1,7 @@
+2003-11-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus.texi (Score Decays): Update the gnus-decay-score function.
+
 2003-11-17  Jesper Harder  <harder@ifa.au.dk>
 
        * gnus.texi (Troubleshooting): Update.
index fb48249..5163908 100644 (file)
@@ -19529,16 +19529,21 @@ Gnus \e$B$O$3$NLdBj$N2r7h$r=u$1$k$?$a$K%9%3%"$rIe$i$;$k5!9=$rDs6!$7$^$9!#%9\e(B
 
 @lisp
 (defun gnus-decay-score (score)
-  "Decay SCORE.
-This is done according to `gnus-score-decay-constant'
+  "Decay SCORE according to `gnus-score-decay-constant'
 and `gnus-score-decay-scale'."
-  (floor
-   (- score
-      (* (if (< score 0) 1 -1)
-         (min (abs score)
-              (max gnus-score-decay-constant
-                   (* (abs score)
-                      gnus-score-decay-scale)))))))
+  (let ((n (- score
+              (* (if (< score 0) -1 1)
+                 (min (abs score)
+                      (max gnus-score-decay-constant
+                           (* (abs score)
+                              gnus-score-decay-scale)))))))
+    (if (and (featurep 'xemacs)
+             ;; XEmacs' floor can handle only the floating point
+             ;; number below the half of the maximum integer.
+             (> (abs n) (lsh -1 -2)))
+        (string-to-number
+         (car (split-string (number-to-string n) "\\.")))
+      (floor n))))
 @end lisp
 
 @vindex gnus-score-decay-scale
index 82bee1a..a4190f7 100644 (file)
@@ -20304,16 +20304,21 @@ definition of that function:
 
 @lisp
 (defun gnus-decay-score (score)
-  "Decay SCORE.
-This is done according to `gnus-score-decay-constant'
+  "Decay SCORE according to `gnus-score-decay-constant'
 and `gnus-score-decay-scale'."
-  (floor
-   (- score
-      (* (if (< score 0) 1 -1)
-         (min (abs score)
-              (max gnus-score-decay-constant
-                   (* (abs score)
-                      gnus-score-decay-scale)))))))
+  (let ((n (- score
+              (* (if (< score 0) -1 1)
+                 (min (abs score)
+                      (max gnus-score-decay-constant
+                           (* (abs score)
+                              gnus-score-decay-scale)))))))
+    (if (and (featurep 'xemacs)
+             ;; XEmacs' floor can handle only the floating point
+             ;; number below the half of the maximum integer.
+             (> (abs n) (lsh -1 -2)))
+        (string-to-number
+         (car (split-string (number-to-string n) "\\.")))
+      (floor n))))
 @end lisp
 
 @vindex gnus-score-decay-scale