summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--Makefile.in2
-rw-r--r--class.c4
-rw-r--r--ext/extmk.rb.in6
-rw-r--r--lib/cgi/session.rb1
-rw-r--r--lib/mkmf.rb6
-rw-r--r--numeric.c2
-rw-r--r--variable.c32
-rw-r--r--version.h4
9 files changed, 50 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 8ea5217051..dc8f15be1b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,30 @@
+<<<<<<< ChangeLog
+Wed Apr 10 17:30:19 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * variable.c (rb_obj_remove_instance_variable): raise NameError if
+ specified instance variable is not defined.
+
+ * variable.c (generic_ivar_remove): modified to check ivar
+ existence.
+
Wed Apr 10 14:16:45 2002 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
* misc/ruby-mode.el (ruby-font-lock-keywords): fontify symbols for
unary operators and aset.
+Sat Apr 6 02:04:49 2002 Guy Decoux <ts@moulon.inra.fr>
+
+ * class.c (rb_singleton_class): wrong condition; was creating
+ unnecessary singleton class.
+
Thu Apr 4 15:45:12 2002 WATANABE Hirofumi <eban@ruby-lang.org>
* parse.y: avoid bison 1.34 warnings. add `;' at the end of a rule.
+Thu Apr 4 01:08:23 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * numeric.c (int_step): step may be a float less than 1.
+
Wed Apr 3 01:54:10 2002 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
* ext/extmk.rb.in (enable_config): follow lib/mkmf.rb.
diff --git a/Makefile.in b/Makefile.in
index efc7355d51..97ef97b2b8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -13,7 +13,7 @@ AUTOCONF = autoconf
prefix = @prefix@
CFLAGS = @CFLAGS@
-CPPFLAGS = -I. -I$(srcdir) -I@includedir@
+CPPFLAGS = -I. -I$(srcdir)
LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
XLDFLAGS = @XLDFLAGS@
EXTLIBS =
diff --git a/class.c b/class.c
index 0a06c2d3e3..a7d2fed562 100644
--- a/class.c
+++ b/class.c
@@ -626,7 +626,9 @@ rb_singleton_class(obj)
}
DEFER_INTS;
- if (FL_TEST(RBASIC(obj)->klass, FL_SINGLETON)) {
+ if (FL_TEST(RBASIC(obj)->klass, FL_SINGLETON) &&
+ ((BUILTIN_TYPE(obj) != T_CLASS && BUILTIN_TYPE(obj) != T_MODULE) ||
+ rb_iv_get(RBASIC(obj)->klass, "__attached__") == obj)) {
klass = RBASIC(obj)->klass;
}
else {
diff --git a/ext/extmk.rb.in b/ext/extmk.rb.in
index 114d504097..27cd2760b0 100644
--- a/ext/extmk.rb.in
+++ b/ext/extmk.rb.in
@@ -75,8 +75,8 @@ if /mswin32/ =~ RUBY_PLATFORM
else
OUTFLAG = '-o '
end
-LINK = "@CC@ #{OUTFLAG}conftest -I#$topdir -I#$top_srcdir #{CFLAGS} -I#$includedir @LDFLAGS@ %s %s %s conftest.c %s %s @LIBS@"
-CPP = "@CPP@ @CPPFLAGS@ -I#$topdir -I#$top_srcdir #{CFLAGS} -I#$includedir %s %s %s conftest.c"
+LINK = "@CC@ #{OUTFLAG}conftest -I#$topdir -I#$top_srcdir #{CFLAGS} @LDFLAGS@ %s %s %s conftest.c %s %s @LIBS@"
+CPP = "@CPP@ @CPPFLAGS@ -I#$topdir -I#$top_srcdir #{CFLAGS} %s %s %s conftest.c"
$log = open('extmk.log', 'w')
@@ -416,7 +416,7 @@ hdrdir = #{$top_srcdir}
CC = @CC@
CFLAGS = %s #{CFLAGS} #$CFLAGS
-CPPFLAGS = -I$(topdir) -I$(hdrdir) -I@includedir@ %s #$CPPFLAGS
+CPPFLAGS = -I$(topdir) -I$(hdrdir) %s #$CPPFLAGS
DLDFLAGS = #$DLDFLAGS #$LDFLAGS
LDSHARED = @LDSHARED@ #{defflag}
", if $static then "" else "@CCDLFLAGS@" end, $defs.join(" ")
diff --git a/lib/cgi/session.rb b/lib/cgi/session.rb
index 6173d51558..b5579bc340 100644
--- a/lib/cgi/session.rb
+++ b/lib/cgi/session.rb
@@ -134,6 +134,7 @@ class CGI
end
def update
+ return unless @hash
@f.rewind
for k,v in @hash
@f.printf "%s=%s\n", CGI::escape(k), CGI::escape(v)
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 2d87ee1a48..52b3e128fa 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -64,8 +64,8 @@ if /mswin32/ =~ RUBY_PLATFORM
else
OUTFLAG = '-o '
end
-LINK = "#{CONFIG['CC']} #{OUTFLAG}conftest -I#{$hdrdir} #{CFLAGS} -I#{CONFIG['includedir']} %s %s #{CONFIG['LDFLAGS']} %s conftest.c %s %s #{CONFIG['LIBS']}"
-CPP = "#{CONFIG['CPP']} -E %s -I#{$hdrdir} #{CFLAGS} -I#{CONFIG['includedir']} %s %s conftest.c"
+LINK = "#{CONFIG['CC']} #{OUTFLAG}conftest -I#{$hdrdir} #{CFLAGS} %s %s #{CONFIG['LDFLAGS']} %s conftest.c %s %s #{CONFIG['LIBS']}"
+CPP = "#{CONFIG['CPP']} -E %s -I#{$hdrdir} #{CFLAGS} %s %s conftest.c"
def rm_f(*files)
targets = []
@@ -454,7 +454,7 @@ VPATH = $(srcdir)
CC = #{CONFIG["CC"]}
CFLAGS = #{CONFIG["CCDLFLAGS"]} #{CFLAGS} #{$CFLAGS}
-CPPFLAGS = -I. -I$(hdrdir) -I$(srcdir) -I#{CONFIG["includedir"]} #{$defs.join(" ")} #{CONFIG["CPPFLAGS"]} #{$CPPFLAGS}
+CPPFLAGS = -I. -I$(hdrdir) -I$(srcdir) #{$defs.join(" ")} #{CONFIG["CPPFLAGS"]} #{$CPPFLAGS}
CXXFLAGS = $(CFLAGS)
DLDFLAGS = #{$DLDFLAGS} #{$LDFLAGS}
LDSHARED = #{CONFIG["LDSHARED"]} #{defflag}
diff --git a/numeric.c b/numeric.c
index d5896fe2d3..36292114f3 100644
--- a/numeric.c
+++ b/numeric.c
@@ -1411,7 +1411,7 @@ int_step(from, to, step)
VALUE i = from;
ID cmp;
- if (NUM2INT(step) == 0) {
+ if (rb_equal(step, INT2FIX(0))) {
rb_raise(rb_eArgError, "step cannot be 0");
}
diff --git a/variable.c b/variable.c
index a1335eb443..087f5e6cdd 100644
--- a/variable.c
+++ b/variable.c
@@ -254,8 +254,7 @@ rb_autoload_id(id, filename)
{
rb_secure(4);
if (!rb_is_const_id(id)) {
- rb_raise(rb_eNameError, "autoload must be constant name",
- rb_id2name(id));
+ rb_raise(rb_eNameError, "autoload must be constant name");
}
if (!autoload_tbl) {
@@ -812,22 +811,23 @@ generic_ivar_defined(obj, id)
return Qfalse;
}
-static VALUE
-generic_ivar_remove(obj, id)
+static int
+generic_ivar_remove(obj, id, valp)
VALUE obj;
ID id;
+ VALUE *valp;
{
st_table *tbl;
- VALUE val;
+ int status;
- if (!generic_iv_tbl) return Qnil;
- if (!st_lookup(generic_iv_tbl, obj, &tbl)) return Qnil;
- st_delete(tbl, &id, &val);
+ if (!generic_iv_tbl) return 0;
+ if (!st_lookup(generic_iv_tbl, obj, &tbl)) return 0;
+ status = st_delete(tbl, &id, valp);
if (tbl->num_entries == 0) {
st_delete(generic_iv_tbl, &obj, &tbl);
st_free_table(tbl);
}
- return val;
+ return status;
}
void
@@ -1020,16 +1020,20 @@ rb_obj_remove_instance_variable(obj, name)
case T_OBJECT:
case T_CLASS:
case T_MODULE:
- if (ROBJECT(obj)->iv_tbl) {
- st_delete(ROBJECT(obj)->iv_tbl, &id, &val);
+ if (ROBJECT(obj)->iv_tbl && st_delete(ROBJECT(obj)->iv_tbl, &id, &val)) {
+ return val;
}
break;
default:
- if (FL_TEST(obj, FL_EXIVAR) || rb_special_const_p(obj))
- return generic_ivar_remove(obj, id);
+ if (FL_TEST(obj, FL_EXIVAR) || rb_special_const_p(obj)) {
+ if (generic_ivar_remove(obj, id, &val)) {
+ return val;
+ }
+ }
break;
}
- return val;
+ rb_raise(rb_eNameError, "instance variable %s not defined", rb_id2name(id));
+ return Qnil; /* not reached */
}
static int
diff --git a/version.h b/version.h
index ee414c8658..cb05cfb6fe 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
#define RUBY_VERSION "1.6.7"
-#define RUBY_RELEASE_DATE "2002-04-04"
+#define RUBY_RELEASE_DATE "2002-04-10"
#define RUBY_VERSION_CODE 167
-#define RUBY_RELEASE_CODE 20020404
+#define RUBY_RELEASE_CODE 20020410