From 03581d5826a7f2ed7b7f9c0691220c1a5ac00988 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 5 Dec 2000 09:36:54 +0000 Subject: matz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- hash.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'hash.c') diff --git a/hash.c b/hash.c index 62d6145148..cc58f608cc 100644 --- a/hash.c +++ b/hash.c @@ -1256,6 +1256,35 @@ env_to_s() return rb_str_new2("ENV"); } +static VALUE +env_inspect() +{ + char **env; + VALUE str = rb_str_new2("{"); + VALUE i; + + env = environ; + while (*env) { + char *s = strchr(*env, '='); + + if (env != environ) { + rb_str_cat2(str, ", "); + } + if (s) { + rb_str_cat2(str, "\""); + rb_str_cat(str, *env, s-*env); + rb_str_cat2(str, "\"=>"); + i = rb_inspect(rb_str_new2(s+1)); + rb_str_append(str, i); + } + env++; + } + rb_str_cat2(str, "}"); + OBJ_TAINT(str); + + return str; +} + static VALUE env_to_a() { @@ -1473,6 +1502,7 @@ Init_Hash() rb_define_singleton_method(envtbl,"reject", env_reject, 0); rb_define_singleton_method(envtbl,"reject!", env_reject_bang, 0); rb_define_singleton_method(envtbl,"to_s", env_to_s, 0); + rb_define_singleton_method(envtbl,"inspect", env_inspect, 0); rb_define_singleton_method(envtbl,"rehash", env_none, 0); rb_define_singleton_method(envtbl,"to_a", env_to_a, 0); rb_define_singleton_method(envtbl,"index", env_index, 1); -- cgit v1.2.3