From 320e99d8dda5eb5fc327fcbe20126cdd7fcd059d Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 8 Feb 2000 08:54:01 +0000 Subject: 2000-02-08 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- hash.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'hash.c') diff --git a/hash.c b/hash.c index 77f7e3e6e2..4e3cf9974a 100644 --- a/hash.c +++ b/hash.c @@ -476,6 +476,13 @@ rb_hash_delete_if(hash) return hash; } +static VALUE +rb_hash_reject(hash) + VALUE hash; +{ + return rb_hash_delete_if(rb_hash_dup(hash)); +} + static int clear_i(key, value, dummy) VALUE key, value, dummy; @@ -1210,6 +1217,12 @@ env_delete_if() return envtbl; } +static VALUE +env_reject() +{ + return rb_hash_delete_if(env_to_hash()); +} + static VALUE env_to_s() { @@ -1331,8 +1344,7 @@ env_indexes(argc, argv) } static VALUE -env_to_hash(obj) - VALUE obj; +env_to_hash() { char **env; VALUE hash = rb_hash_new(); @@ -1397,6 +1409,7 @@ Init_Hash() rb_define_method(rb_cHash,"delete", rb_hash_delete, 1); rb_define_method(rb_cHash,"delete_if", rb_hash_delete_if, 0); rb_define_method(rb_cHash,"reject!", rb_hash_delete_if, 0); + rb_define_method(rb_cHash,"reject", rb_hash_reject, 0); rb_define_method(rb_cHash,"clear", rb_hash_clear, 0); rb_define_method(rb_cHash,"invert", rb_hash_invert, 0); rb_define_method(rb_cHash,"update", rb_hash_update, 1); @@ -1423,6 +1436,7 @@ Init_Hash() rb_define_singleton_method(envtbl,"delete", env_delete_m, 1); rb_define_singleton_method(envtbl,"delete_if", env_delete_if, 0); rb_define_singleton_method(envtbl,"reject!", env_delete_if, 0); + rb_define_singleton_method(envtbl,"reject", env_reject, 0); rb_define_singleton_method(envtbl,"to_s", env_to_s, 0); rb_define_singleton_method(envtbl,"rehash", env_none, 0); rb_define_singleton_method(envtbl,"to_a", env_to_a, 0); -- cgit v1.2.3