summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--enum.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 373e601709..54d8870b65 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jun 9 23:35:22 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * enum.c (enum_inject): default the result value to Qundef to use
+ first element as initial value if not given.
+
Thu Jun 9 19:55:41 2005 Tanaka Akira <akr@m17n.org>
* eval.c (ruby_longjmp): new macro to call longjmp, setcontext, etc.
diff --git a/enum.c b/enum.c
index 00d7a58a7e..25432dc99a 100644
--- a/enum.c
+++ b/enum.c
@@ -305,8 +305,10 @@ enum_inject(argc, argv, obj)
{
VALUE memo = Qundef;
- rb_scan_args(argc, argv, "01", &memo);
+ if (rb_scan_args(argc, argv, "01", &memo) == 0)
+ memo = Qundef;
rb_iterate(rb_each, obj, inject_i, (VALUE)&memo);
+ if (memo == Qundef) return Qnil;
return memo;
}