summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog31
-rw-r--r--class.c5
-rw-r--r--eval.c4
-rw-r--r--numeric.c2
-rw-r--r--time.c8
-rw-r--r--version.h4
6 files changed, 41 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 2982e86d50..c9ce8395b6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,14 @@ Tue Apr 3 09:56:20 2001 WATANABE Hirofumi <eban@ruby-lang.org>
* lib/mkmf.rb: ditto.
+Tue Apr 3 00:05:07 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * time.c (make_time_t): remove HAVE_TM_ZONE code since it
+ sometimes reports wrong time.
+
+ * time.c (make_time_t): remove unnecessary range check for
+ platforms where negative time_t is available.
+
Mon Apr 2 14:25:49 2001 Shugo Maeda <shugo@ruby-lang.org>
* lib/monitor.rb (wait): ensure reentrance.
@@ -21,6 +29,29 @@ Mon Apr 2 01:16:24 2001 WATANABE Hirofumi <eban@ruby-lang.org>
* missing/dir.h, dir.c, Makefile: ditto.
+Sun Apr 1 23:26:14 2001 TOYOFUKU Chikanobu <toyofuku@juice.or.jp>
+
+ * numeric.c (flodivmod): a bug in no fmod case.
+
+Sun Apr 1 18:36:14 2001 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * process.c (pst_wifsignaled): should apply WIFSIGNALED for status
+ (int), not st (VALUE).
+
+Sat Mar 31 03:24:10 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * class.c (rb_include_module): module inclusion should be check
+ taints.
+
+Fri Mar 30 12:51:19 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * class.c (rb_include_module): freeze check at first.
+
+Thu Mar 29 17:05:09 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * eval.c (rb_attr): sprintf() and rb_intern() moved into
+ conditional body.
+
Wed Mar 28 23:43:00 2001 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
* ext/extmk.rb.in, lib/mkmf.rb: add C++ rules in addition to C
diff --git a/class.c b/class.c
index b5a9a21e42..0845fd4030 100644
--- a/class.c
+++ b/class.c
@@ -222,6 +222,10 @@ rb_include_module(klass, module)
VALUE p;
int changed = 0;
+ rb_frozen_class_p(klass);
+ if (!OBJ_TAINTED(klass)) {
+ rb_secure(4);
+ }
if (NIL_P(module)) return;
if (klass == module) return;
@@ -246,7 +250,6 @@ rb_include_module(klass, module)
return;
}
}
- rb_frozen_class_p(klass);
RCLASS(klass)->super = include_class_new(module, RCLASS(klass)->super);
klass = RCLASS(klass)->super;
module = RCLASS(module)->super;
diff --git a/eval.c b/eval.c
index 4c8a638fcc..1350cb41f9 100644
--- a/eval.c
+++ b/eval.c
@@ -502,9 +502,9 @@ rb_attr(klass, id, read, write, ex)
rb_clear_cache_by_id(id);
rb_funcall(klass, added, 1, ID2SYM(id));
}
- sprintf(buf, "%s=", name);
- id = rb_intern(buf);
if (write) {
+ sprintf(buf, "%s=", name);
+ id = rb_intern(buf);
rb_add_method(klass, id, NEW_ATTRSET(attriv), noex);
rb_clear_cache_by_id(id);
rb_funcall(klass, added, 1, ID2SYM(id));
diff --git a/numeric.c b/numeric.c
index 0dd86f0532..b5cd479a57 100644
--- a/numeric.c
+++ b/numeric.c
@@ -332,7 +332,7 @@ flodivmod(x, y, divp, modp)
double z;
modf(x/y, &z);
- mod = x - z * x;
+ mod = x - z * y;
}
#endif
div = (x - mod) / y;
diff --git a/time.c b/time.c
index f4a11cd245..b7c4b94add 100644
--- a/time.c
+++ b/time.c
@@ -324,11 +324,6 @@ make_time_t(tptr, utc_or_local)
if (guess < 0) goto out_of_range;
if (!utc_or_local) { /* localtime zone adjust */
-#if defined(HAVE_TM_ZONE)
- tm = localtime(&guess);
- if (!tm) goto error;
- guess -= tm->tm_gmtoff;
-#else
struct tm gt, lt;
long tzsec;
@@ -357,10 +352,9 @@ make_time_t(tptr, utc_or_local)
}
tm = localtime(&guess);
if (!tm) goto error;
- if (lt.tm_isdst != tm->tm_isdst) {
+ if (tptr->tm_hour != tm->tm_hour) {
guess -= 3600;
}
-#endif
if (guess < 0) {
goto out_of_range;
}
diff --git a/version.h b/version.h
index 39745da29f..a1ac0ba2a4 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
#define RUBY_VERSION "1.6.3"
-#define RUBY_RELEASE_DATE "2001-04-02"
+#define RUBY_RELEASE_DATE "2001-04-03"
#define RUBY_VERSION_CODE 163
-#define RUBY_RELEASE_CODE 20010402
+#define RUBY_RELEASE_CODE 20010403