From 523c3d29d21d1340504858ac8fc1acd722c9a42c Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 5 Jun 2000 18:48:02 +0000 Subject: ext/md5/extconf.rb added git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 13 +++++++++++++ bignum.c | 7 +++++-- ext/md5/MANIFEST | 1 + 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index f5af2b6773..a826690ab8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Jun 6 03:29:12 2000 Yukihiro Matsumoto + + * bignum.c (bigdivmod): modulo by small numbers was wrong. + Sun Jun 4 03:17:36 2000 Wakou Aoyama * lib/cig.rb: improve: CGI::pretty() @@ -100,6 +104,15 @@ Wed May 17 02:22:03 2000 Yukihiro Matsumoto * parse.y (expr): avoid calling value_expr() twice. +Mon May 15 15:38:09 2000 Yukihiro Matsumoto + + * ruby.h: exported symbols should be for xmalloc etc. are now + prefixed by 'ruby_', e.g. ruby_xmalloc(). + +Sun May 14 18:05:59 2000 WATANABE Hirofumi + + * win32/config.h: undef HAVE_SYS_FILE_H. + Fri May 12 17:33:44 2000 Yukihiro Matsumoto * regex.c (re_compile_pattern): charset_not should not exclude diff --git a/bignum.c b/bignum.c index fb0dafb142..5711dd8df1 100644 --- a/bignum.c +++ b/bignum.c @@ -721,7 +721,7 @@ bigdivmod(x, y, div, mod, modulo) long i, j; VALUE yy, z; USHORT *xds, *yds, *zds, *tds; - unsigned long t2; + long t2; long num; USHORT dd, q; @@ -746,7 +746,10 @@ bigdivmod(x, y, div, mod, modulo) RBIGNUM(z)->sign = RBIGNUM(x)->sign==RBIGNUM(y)->sign; if (div) *div = bignorm(z); if (mod) { - if (!RBIGNUM(y)->sign) t2 = -(long)t2; + if (!RBIGNUM(x)->sign) t2 = -(long)t2; + if (modulo && RBIGNUM(x)->sign != RBIGNUM(y)->sign) { + t2 = t2 + yds[0] * (RBIGNUM(y)->sign ? 1 : -1); + } *mod = INT2NUM(t2); } return; diff --git a/ext/md5/MANIFEST b/ext/md5/MANIFEST index 8057ebb06c..189a482afb 100644 --- a/ext/md5/MANIFEST +++ b/ext/md5/MANIFEST @@ -1,5 +1,6 @@ MANIFEST depend +extconf.rb md5.txt md5.txt.jp md5.h -- cgit v1.2.3