[gnus git] branch master updated: m0-13-34-g2eb3613 =1= Don't overflow if computing approximate percentage
Katsumi Yamaoka <[email protected]> Sun, 02 Aug 2015 00:44:17 +0200
| Newsgroups | gmane.emacs.gnus.cvs |
|---|---|
| Message-ID | <[email protected]> |
via 2eb3613948759b7b264ebd7f7d81b3b592bc381d (commit)
from d33ef478be22b74e27696dc88409a6ec6b7c46c3 (commit)
- Log -----------------------------------------------------------------
commit 2eb3613948759b7b264ebd7f7d81b3b592bc381d
Author: Paul Eggert <[email protected]>
Date: Sat Aug 1 22:43:52 2015 +0000
Don't overflow if computing approximate percentage
* nnbabyl.el (nnbabyl-retrieve-headers):
* nndiary.el (nndiary-retrieve-headers):
* nneething.el (nneething-retrieve-headers):
* nnmbox.el (nnmbox-retrieve-headers):
* nnmh.el (nnmh-retrieve-headers):
* nnml.el (nnml-retrieve-headers):
* nnspool.el (nnspool-retrieve-headers):
* nntp.el (nntp-retrieve-headers, nntp-retrieve-articles):
Prefer (floor (* 100.0 NUMERATOR) DENOMINATOR) when calculating
progress-report percentages and the like. This avoids problems
if (* 100 NUMERATOR) would overflow.
* gnus-registry.el (gnus-registry-import-eld):
* registry.el (registry-reindex):
Use (* 100.0 ...) rather than (* 100 ...) to avoid int overflow issues.
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 46b5310..73fba70 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,21 @@
+2015-07-31 Paul Eggert <[email protected]>
+
+ * nnbabyl.el (nnbabyl-retrieve-headers):
+ * nndiary.el (nndiary-retrieve-headers):
+ * nneething.el (nneething-retrieve-headers):
+ * nnmbox.el (nnmbox-retrieve-headers):
+ * nnmh.el (nnmh-retrieve-headers):
+ * nnml.el (nnml-retrieve-headers):
+ * nnspool.el (nnspool-retrieve-headers):
+ * nntp.el (nntp-retrieve-headers, nntp-retrieve-articles):
+ Prefer (floor (* 100.0 NUMERATOR) DENOMINATOR) when calculating
+ progress-report percentages and the like. This avoids problems
+ if (* 100 NUMERATOR) would overflow.
+
+ * gnus-registry.el (gnus-registry-import-eld):
+ * registry.el (registry-reindex):
+ Use (* 100.0 ...) rather than (* 100 ...) to avoid int overflow issues.
+
2015-07-17 Julien Danjou <jd@abydos>
* sieve-mode.el (sieve-font-lock-keywords): Add missing "body" test
diff --git a/lisp/gnus-registry.el b/lisp/gnus-registry.el
index 0cb5960..5044397 100644
--- a/lisp/gnus-registry.el
+++ b/lisp/gnus-registry.el
@@ -1100,7 +1100,7 @@ only the last one's marks are returned."
(when (and (< 0 expected)
(= 0 (mod count 100)))
(message "importing: %d of %d (%.2f%%)"
- count expected (/ (* 100 count) expected)))
+ count expected (/ (* 100.0 count) expected)))
(setq entry (car-safe old)
old (cdr-safe old))
(let* ((id (car-safe entry))
diff --git a/lisp/nnbabyl.el b/lisp/nnbabyl.el
index d060c2a..ae417a0 100644
--- a/lisp/nnbabyl.el
+++ b/lisp/nnbabyl.el
@@ -105,7 +105,7 @@
(> number nnmail-large-newsgroup)
(zerop (% (incf count) 20))
(nnheader-message 5 "nnbabyl: Receiving headers... %d%%"
- (/ (* count 100) number))))
+ (floor (* count 100.0) number))))
(and (numberp nnmail-large-newsgroup)
(> number nnmail-large-newsgroup)
diff --git a/lisp/nndiary.el b/lisp/nndiary.el
index 027d888..3134438 100644
--- a/lisp/nndiary.el
+++ b/lisp/nndiary.el
@@ -423,7 +423,7 @@ all. This may very well take some time.")
(> number nnmail-large-newsgroup)
(zerop (% count 20))
(nnheader-message 6 "nndiary: Receiving headers... %d%%"
- (/ (* count 100) number))))
+ (floor (* count 100.0) number))))
(and (numberp nnmail-large-newsgroup)
(> number nnmail-large-newsgroup)
diff --git a/lisp/nneething.el b/lisp/nneething.el
index 183e396..0d9044f 100644
--- a/lisp/nneething.el
+++ b/lisp/nneething.el
@@ -106,7 +106,7 @@ included.")
(and large
(zerop (% count 20))
(nnheader-message 5 "nneething: Receiving headers... %d%%"
- (/ (* count 100) number))))
+ (floor (* count 100.0) number))))
(when large
(nnheader-message 5 "nneething: Receiving headers...done"))
diff --git a/lisp/nnmbox.el b/lisp/nnmbox.el
index 78983a5..a70a039 100644
--- a/lisp/nnmbox.el
+++ b/lisp/nnmbox.el
@@ -106,7 +106,7 @@
(> number nnmail-large-newsgroup)
(zerop (% count 20))
(nnheader-message 5 "nnmbox: Receiving headers... %d%%"
- (/ (* count 100) number))))
+ (floor (* count 100.0) number))))
(and (numberp nnmail-large-newsgroup)
(> number nnmail-large-newsgroup)
diff --git a/lisp/nnmh.el b/lisp/nnmh.el
index 04270a5..cdbf38a 100644
--- a/lisp/nnmh.el
+++ b/lisp/nnmh.el
@@ -109,7 +109,7 @@ as unread by Gnus.")
(and large
(zerop (% count 20))
(nnheader-message 5 "nnmh: Receiving headers... %d%%"
- (/ (* count 100) number))))
+ (floor (* count 100.0) number))))
(when large
(nnheader-message 5 "nnmh: Receiving headers...done"))
diff --git a/lisp/nnml.el b/lisp/nnml.el
index 8275e19..c825e09 100644
--- a/lisp/nnml.el
+++ b/lisp/nnml.el
@@ -178,7 +178,7 @@ non-nil.")
(> number nnmail-large-newsgroup)
(zerop (% count 20))
(nnheader-message 6 "nnml: Receiving headers... %d%%"
- (/ (* count 100) number))))
+ (floor (* count 100.0) number))))
(and (numberp nnmail-large-newsgroup)
(> number nnmail-large-newsgroup)
diff --git a/lisp/nnspool.el b/lisp/nnspool.el
index 9e9537a..f10b1ad 100644
--- a/lisp/nnspool.el
+++ b/lisp/nnspool.el
@@ -174,7 +174,7 @@ there.")
(and do-message
(zerop (% (incf count) 20))
(nnheader-message 5 "nnspool: Receiving headers... %d%%"
- (/ (* count 100) number))))
+ (floor (* count 100.0) number))))
(when do-message
(nnheader-message 5 "nnspool: Receiving headers...done"))
diff --git a/lisp/nntp.el b/lisp/nntp.el
index 0891dba..b617a1b 100644
--- a/lisp/nntp.el
+++ b/lisp/nntp.el
@@ -728,7 +728,7 @@ command whose response triggered the error."
(> number nntp-large-newsgroup)
(zerop (% received 20))
(nnheader-message 6 "NNTP: Receiving headers... %d%%"
- (/ (* received 100) number)))
+ (floor (* received 100.0) number)))
(nntp-accept-response))))
(and (numberp nntp-large-newsgroup)
(> number nntp-large-newsgroup)
@@ -965,7 +965,7 @@ command whose response triggered the error."
(> number nntp-large-newsgroup)
(zerop (% received 20))
(nnheader-message 6 "NNTP: Receiving articles... %d%%"
- (/ (* received 100) number)))
+ (floor (* received 100.0) number)))
(nntp-accept-response))))
(and (numberp nntp-large-newsgroup)
(> number nntp-large-newsgroup)
diff --git a/lisp/registry.el b/lisp/registry.el
index 44c3358..13c1671 100644
--- a/lisp/registry.el
+++ b/lisp/registry.el
@@ -340,7 +340,7 @@ Errors out if the key exists already."
(when (and (< 0 expected)
(= 0 (mod count 1000)))
(message "reindexing: %d of %d (%.2f%%)"
- count expected (/ (* 100 count) expected)))
+ count expected (/ (* 100.0 count) expected)))
(dolist (val (cdr-safe (assq tr v)))
(let* ((value-keys (registry-lookup-secondary-value db tr val)))
(push key value-keys)
-----------------------------------------------------------------------
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we listed those
revisions in full, above.
Summary of changes:
lisp/ChangeLog | 18 ++++++++++++++++++
lisp/gnus-registry.el | 2 +-
lisp/nnbabyl.el | 2 +-
lisp/nndiary.el | 2 +-
lisp/nneething.el | 2 +-
lisp/nnmbox.el | 2 +-
lisp/nnmh.el | 2 +-
lisp/nnml.el | 2 +-
lisp/nnspool.el | 2 +-
lisp/nntp.el | 4 ++--
lisp/registry.el | 2 +-
11 files changed, 29 insertions(+), 11 deletions(-)
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnus Project".
The branch, master has been updated
hooks/post-receive
--
Gnus Project