[#16611] lambda, ->, haskell, and so on — Dave Thomas <dave@...>

This is one of those e-mails that I know from the start to be futile, =20=

148 messages 2008/05/01
[#16661] Re: lambda, ->, haskell, and so on — Paul Brannan <pbrannan@...> 2008/05/05

On Thu, May 01, 2008 at 12:26:47PM +0900, Dave Thomas wrote:

[#16662] Re: lambda, ->, haskell, and so on — "David A. Black" <dblack@...> 2008/05/05

Hi --

[#16663] Re: lambda, ->, haskell, and so on — ts <decoux@...> 2008/05/05

David A. Black wrote:

[#16664] Re: lambda, ->, haskell, and so on — "David A. Black" <dblack@...> 2008/05/05

Hi --

[#16682] Re: lambda, ->, haskell, and so on — ara howard <ara.t.howard@...> 2008/05/08

[#16684] Re: lambda, ->, haskell, and so on — Michael Neumann <mneumann@...> 2008/05/08

ara howard wrote:

[#16687] Re: lambda, ->, haskell, and so on — "David A. Black" <dblack@...> 2008/05/08

Hi --

[#16691] Re: lambda, ->, haskell, and so on — "ara.t.howard" <ara.t.howard@...> 2008/05/08

[#16692] Re: lambda, ->, haskell, and so on — "David A. Black" <dblack@...> 2008/05/08

Hi --

[#16695] Re: lambda, ->, haskell, and so on — "ara.t.howard" <ara.t.howard@...> 2008/05/08

[#16705] Re: lambda, ->, haskell, and so on — Evan Phoenix <evan@...> 2008/05/11

Not to throw the whole thread into a tizzy again, but why again is:

[#16708] Re: lambda, ->, haskell, and so on — Nobuyoshi Nakada <nobu@...> 2008/05/11

Hi,

[#16720] Re: lambda, ->, haskell, and so on — Yukihiro Matsumoto <matz@...> 2008/05/11

Hi,

[#16721] Re: lambda, ->, haskell, and so on — "David A. Black" <dblack@...> 2008/05/12

Hi --

[#16722] Re: lambda, ->, haskell, and so on — Yukihiro Matsumoto <matz@...> 2008/05/12

Hi,

[#16723] Re: lambda, ->, haskell, and so on — Evan Phoenix <evan@...> 2008/05/12

[#16724] Re: lambda, ->, haskell, and so on — Yukihiro Matsumoto <matz@...> 2008/05/12

Hi,

[#16726] Re: lambda, ->, haskell, and so on — Nathan Weizenbaum <nex342@...> 2008/05/12

What about "fn" or "fun", for "function"?

[#16728] Re: lambda, ->, haskell, and so on — Yukihiro Matsumoto <matz@...> 2008/05/12

Hi,

[#16731] Re: lambda, ->, haskell, and so on — Evan Phoenix <evan@...> 2008/05/12

[#16732] Re: lambda, ->, haskell, and so on — Yukihiro Matsumoto <matz@...> 2008/05/12

Hi,

[#16759] Re: lambda, ->, haskell, and so on — "David A. Black" <dblack@...> 2008/05/13

Hi --

[#16766] Re: lambda, ->, haskell, and so on — Yukihiro Matsumoto <matz@...> 2008/05/14

Hi,

[#16784] Re: lambda, ->, haskell, and so on — "David A. Black" <dblack@...> 2008/05/18

Hi --

[#16795] Re: lambda, ->, haskell, and so on — Nate_Wiger@... 2008/05/19

On Wed, 14 May 2008, David A. Black wrote:

[#16797] Re: lambda, ->, haskell, and so on — Yukihiro Matsumoto <matz@...> 2008/05/19

Hi,

[#16798] Re: lambda, ->, haskell, and so on — "Christopher Gill" <gilltots@...> 2008/05/19

how about an uppercase lambda (instead of the usual lowercase one)

[#16802] Re: lambda, ->, haskell, and so on — "Suraj N. Kurapati" <sunaku@...> 2008/05/20

Christopher Gill wrote:

[#16843] Re: lambda, ->, haskell, and so on — "Suraj N. Kurapati" <sunaku@...> 2008/05/22

Suraj N. Kurapati wrote:

[#16846] Re: lambda, ->, haskell, and so on — "Berger, Daniel" <Daniel.Berger@...> 2008/05/22

=20

[#16854] Re: lambda, ->, haskell, and so on — "=?ISO-8859-2?Q?Rados=B3aw_Bu=B3at?=" <radek.bulat@...> 2008/05/22

T24gVGh1LCBNYXkgMjIsIDIwMDggYXQgNTozNyBQTSwgQmVyZ2VyLCBEYW5pZWwgPERhbmllbC5C

[#16857] Re: lambda, ->, haskell, and so on — "Jeremy McAnally" <jeremymcanally@...> 2008/05/23

RXZlbiB0aG91Z2ggSSBzZWUgdGhlIHVzZWZ1bG5lc3MsIHRoYXQncyBqdXN0IHVnbHkuCgotLUpl

[#16874] Re: lambda, ->, haskell, and so on — Nate_Wiger@... 2008/05/23

"Jeremy McAnally" <jeremymcanally@gmail.com> wrote on 05/22/2008 05:35:01=20

[#16875] Re: lambda, ->, haskell, and so on — "Nikolai Weibull" <now@...> 2008/05/23

2008/5/23 <Nate_Wiger@playstation.sony.com>:

[#16886] lambda with normal block syntax — "Eric Mahurin" <eric.mahurin@...>

This patch is an independent but related one to my previous one. It can be

64 messages 2008/05/25
[#16895] Re: [PATCH] lambda with normal block syntax — Nobuyoshi Nakada <nobu@...> 2008/05/26

Hi,

[#16900] Re: [PATCH] lambda with normal block syntax — "Eric Mahurin" <eric.mahurin@...> 2008/05/26

On Sun, May 25, 2008 at 8:19 PM, Nobuyoshi Nakada <nobu@ruby-lang.org>

[#16901] Re: [PATCH] lambda with normal block syntax — Yukihiro Matsumoto <matz@...> 2008/05/26

Hi,

[#16902] Re: [PATCH] lambda with normal block syntax — "Suraj N. Kurapati" <sunaku@...> 2008/05/26

Hi,

[#16903] Re: [PATCH] lambda with normal block syntax — Yukihiro Matsumoto <matz@...> 2008/05/26

Hi,

[#16904] Re: [PATCH] lambda with normal block syntax — Dave Thomas <dave@...> 2008/05/26

[#16905] Re: [PATCH] lambda with normal block syntax — Yukihiro Matsumoto <matz@...> 2008/05/26

Hi,

[#16907] Re: [PATCH] lambda with normal block syntax — Dave Thomas <dave@...> 2008/05/26

[#16912] Re: [PATCH] lambda with normal block syntax — Yukihiro Matsumoto <matz@...> 2008/05/26

Hi,

[#16920] Re: [PATCH] lambda with normal block syntax — David Flanagan <david@...> 2008/05/26

If I may, here are two entries from the ChangeLog file:

[#16922] Re: [PATCH] lambda with normal block syntax — Dave Thomas <dave@...> 2008/05/26

[#16927] Re: [PATCH] lambda with normal block syntax — David Flanagan <david@...> 2008/05/26

Dave Thomas wrote:

[#16928] Re: [PATCH] lambda with normal block syntax — Dave Thomas <dave@...> 2008/05/26

[#16929] Re: [PATCH] lambda with normal block syntax — David Flanagan <david@...> 2008/05/26

Dave Thomas wrote:

[#16931] Re: [PATCH] lambda with normal block syntax — Dave Thomas <dave@...> 2008/05/27

[#16946] Re: [PATCH] lambda with normal block syntax — David Flanagan <david@...> 2008/05/27

Dave Thomas wrote:

[#16947] Re: [PATCH] lambda with normal block syntax — James Gray <james@...> 2008/05/27

On May 27, 2008, at 12:33 PM, David Flanagan wrote:

[#16949] Re: [PATCH] lambda with normal block syntax — David Flanagan <david@...> 2008/05/27

James Gray wrote:

[PATCH] Hash#delete wrong documentation

From: Gaston Ramos <ramos.gaston@...>
Date: 2008-05-21 02:41:13 UTC
List: ruby-core #16825
Hi Core,

I found a bug on ruby documentation http://www.ruby-doc.org/core/ in
Hash#delete

 *  Deletes and returns a key-value pair from <i>hsh</i> whose key is
 *  equal to <i>key</i>. If the key is not found, returns the
 *  <em>default value</em>. If the optional code block is given and
 the
 *  key is not found, pass in the key and return the result of
 *  <i>block</i>

I tested this featrure:

>> h =3D { "a" =3D> 100, "b" =3D> 200 }
=3D> {"a"=3D>100, "b"=3D>200}
>> h.default =3D "Go Fishing"
=3D> "Go Fishing"
>> h.delete("z")
=3D> nil

and the documentation says that "If the key is not found, returns the
default value" but really return nil. Attach the path.

I tried this on:

Linux Debian ETCH 2.6.22-1-k7 #1 SMP Mon Jul 23 14:02:09 UTC 2007 i686
GNU/Linux
ruby 1.8.6 (2008-03-03 patchlevel 114) [i486-linux]

Looking forward for this being applied.

Regards.

Gast=F3n Ramos
http://gastonramos.wordpress.com/
GNU/Linux Counter user #450312

Attachments (1)

hash-doc.patch (32.9 KB, text/x-diff)
Index: hash.c
===================================================================
--- hash.c	(revision 16501)
+++ hash.c	(working copy)
@@ -31,7 +31,7 @@
     if (!RHASH(hash)->tbl) rb_raise(rb_eTypeError, "uninitialized Hash");
     if (OBJ_FROZEN(hash)) rb_error_frozen("hash");
     if (!OBJ_TAINTED(hash) && rb_safe_level() >= 4)
-	rb_raise(rb_eSecurityError, "Insecure: can't modify hash");
+        rb_raise(rb_eSecurityError, "Insecure: can't modify hash");
 }
 
 VALUE
@@ -61,15 +61,15 @@
 
     if (a == b) return 0;
     if (FIXNUM_P(a) && FIXNUM_P(b)) {
-	return a != b;
+        return a != b;
     }
     if (TYPE(a) == T_STRING && RBASIC(a)->klass == rb_cString &&
-	TYPE(b) == T_STRING && RBASIC(b)->klass == rb_cString) {
-	return rb_str_cmp(a, b);
+        TYPE(b) == T_STRING && RBASIC(b)->klass == rb_cString) {
+        return rb_str_cmp(a, b);
     }
     if (a == Qundef || b == Qundef) return -1;
     if (SYMBOL_P(a) && SYMBOL_P(b)) {
-	return a != b;
+        return a != b;
     }
 
     args[0] = a;
@@ -94,19 +94,19 @@
     switch (TYPE(a)) {
       case T_FIXNUM:
       case T_SYMBOL:
-	hnum = (int)a;
-	break;
+        hnum = (int)a;
+        break;
 
       case T_STRING:
-	hnum = rb_str_hash(a);
-	break;
+        hnum = rb_str_hash(a);
+        break;
 
       default:
-	hval = rb_funcall(a, id_hash, 0);
-	if (!FIXNUM_P(hval)) {
-	    hval = rb_funcall(hval, '%', 1, INT2FIX(536870923));
-	}
-	hnum = (int)FIX2LONG(hval);
+        hval = rb_funcall(a, id_hash, 0);
+        if (!FIXNUM_P(hval)) {
+            hval = rb_funcall(hval, '%', 1, INT2FIX(536870923));
+        }
+        hnum = (int)FIX2LONG(hval);
     }
     hnum <<= 1;
     return RSHIFT(hnum, 1);
@@ -135,7 +135,7 @@
     if (key == Qundef) return ST_CONTINUE;
     status = (*arg->func)(key, value, arg->arg);
     if (status == ST_CONTINUE) {
-	return ST_CHECK;
+        return ST_CHECK;
     }
     return status;
 }
@@ -152,7 +152,7 @@
     arg.func = (st_foreach_func *)func;
     arg.arg = a;
     if (st_foreach(table, foreach_safe_i, (st_data_t)&arg)) {
-	rb_raise(rb_eRuntimeError, "hash modified during iteration");
+        rb_raise(rb_eRuntimeError, "hash modified during iteration");
     }
 }
 
@@ -176,16 +176,16 @@
     if (key == Qundef) return ST_CONTINUE;
     status = (*arg->func)(key, value, arg->arg);
     if (RHASH(arg->hash)->tbl != tbl) {
-	rb_raise(rb_eRuntimeError, "rehash occurred during iteration");
+        rb_raise(rb_eRuntimeError, "rehash occurred during iteration");
     }
     switch (status) {
       case ST_DELETE:
- 	st_delete_safe(tbl, (st_data_t*)&key, 0, Qundef);
-	FL_SET(arg->hash, HASH_DELETED);
+        st_delete_safe(tbl, (st_data_t*)&key, 0, Qundef);
+        FL_SET(arg->hash, HASH_DELETED);
       case ST_CONTINUE:
- 	break;
+        break;
       case ST_STOP:
- 	return ST_STOP;
+        return ST_STOP;
     }
     return ST_CHECK;
 }
@@ -197,10 +197,10 @@
     RHASH(hash)->iter_lev--;
 
     if (RHASH(hash)->iter_lev == 0) {
-	if (FL_TEST(hash, HASH_DELETED)) {
-	    st_cleanup_safe(RHASH(hash)->tbl, Qundef);
-	    FL_UNSET(hash, HASH_DELETED);
-	}
+        if (FL_TEST(hash, HASH_DELETED)) {
+            st_cleanup_safe(RHASH(hash)->tbl, Qundef);
+            FL_UNSET(hash, HASH_DELETED);
+        }
     }
     return 0;
 }
@@ -210,7 +210,7 @@
     struct hash_foreach_arg *arg;
 {
     if (st_foreach(RHASH(arg->hash)->tbl, hash_foreach_iter, (st_data_t)arg)) {
- 	rb_raise(rb_eRuntimeError, "hash modified during iteration");
+        rb_raise(rb_eRuntimeError, "hash modified during iteration");
     }
     return Qnil;
 }
@@ -306,15 +306,15 @@
 
     rb_hash_modify(hash);
     if (rb_block_given_p()) {
-	if (argc > 0) {
-	    rb_raise(rb_eArgError, "wrong number of arguments");
-	}
-	RHASH(hash)->ifnone = rb_block_proc();
-	FL_SET(hash, HASH_PROC_DEFAULT);
+        if (argc > 0) {
+            rb_raise(rb_eArgError, "wrong number of arguments");
+        }
+        RHASH(hash)->ifnone = rb_block_proc();
+        FL_SET(hash, HASH_PROC_DEFAULT);
     }
     else {
-	rb_scan_args(argc, argv, "01", &ifnone);
-	RHASH(hash)->ifnone = ifnone;
+        rb_scan_args(argc, argv, "01", &ifnone);
+        RHASH(hash)->ifnone = ifnone;
     }
 
     return hash;
@@ -343,30 +343,30 @@
     int i;
 
     if (argc == 1) {
-	tmp = rb_check_convert_type(argv[0], T_HASH, "Hash", "to_hash");
-	if (!NIL_P(tmp)) {
-	    hash = hash_alloc0(klass);
-	    RHASH(hash)->tbl = st_copy(RHASH(tmp)->tbl);
-	    return hash;
-	}
+        tmp = rb_check_convert_type(argv[0], T_HASH, "Hash", "to_hash");
+        if (!NIL_P(tmp)) {
+            hash = hash_alloc0(klass);
+            RHASH(hash)->tbl = st_copy(RHASH(tmp)->tbl);
+            return hash;
+        }
 
-	tmp = rb_check_array_type(argv[0]);
-	if (!NIL_P(tmp)) {
-	    long i;
+        tmp = rb_check_array_type(argv[0]);
+        if (!NIL_P(tmp)) {
+            long i;
 
-	    hash = hash_alloc(klass);
-	    for (i = 0; i < RARRAY_LEN(tmp); ++i) {
-		VALUE v = rb_check_array_type(RARRAY_PTR(tmp)[i]);
-		
-		if (NIL_P(v)) continue;
-		if (RARRAY_LEN(v) < 1 || 2 < RARRAY_LEN(v)) continue;
-		rb_hash_aset(hash, RARRAY_PTR(v)[0], RARRAY_PTR(v)[1]);
-	    }
-	    return hash;
-	}
+            hash = hash_alloc(klass);
+            for (i = 0; i < RARRAY_LEN(tmp); ++i) {
+                VALUE v = rb_check_array_type(RARRAY_PTR(tmp)[i]);
+
+                if (NIL_P(v)) continue;
+                if (RARRAY_LEN(v) < 1 || 2 < RARRAY_LEN(v)) continue;
+                rb_hash_aset(hash, RARRAY_PTR(v)[0], RARRAY_PTR(v)[1]);
+            }
+            return hash;
+        }
     }
     if (argc % 2 != 0) {
-	rb_raise(rb_eArgError, "odd number of arguments for Hash");
+        rb_raise(rb_eArgError, "odd number of arguments for Hash");
     }
 
     hash = hash_alloc(klass);
@@ -449,7 +449,7 @@
     VALUE val;
 
     if (!st_lookup(RHASH(hash)->tbl, key, &val)) {
-	return rb_funcall(hash, id_default, 1, key);
+        return rb_funcall(hash, id_default, 1, key);
     }
     return val;
 }
@@ -461,7 +461,7 @@
     VALUE val;
 
     if (!st_lookup(RHASH(hash)->tbl, key, &val)) {
-	return Qnil; /* without Hash#default */
+        return Qnil; /* without Hash#default */
     }
     return val;
 }
@@ -509,14 +509,14 @@
 
     block_given = rb_block_given_p();
     if (block_given && argc == 2) {
-	rb_warn("block supersedes default value argument");
+        rb_warn("block supersedes default value argument");
     }
     if (!st_lookup(RHASH(hash)->tbl, key, &val)) {
-	if (block_given) return rb_yield(key);
-	if (argc == 1) {
-	    rb_raise(rb_eIndexError, "key not found");
-	}
-	return if_none;
+        if (block_given) return rb_yield(key);
+        if (argc == 1) {
+            rb_raise(rb_eIndexError, "key not found");
+        }
+        return if_none;
     }
     return val;
 }
@@ -552,8 +552,8 @@
 
     rb_scan_args(argc, argv, "01", &key);
     if (FL_TEST(hash, HASH_PROC_DEFAULT)) {
-	if (argc == 0) return Qnil;
-	return rb_funcall(RHASH(hash)->ifnone, id_call, 2, hash, key);
+        if (argc == 0) return Qnil;
+        return rb_funcall(RHASH(hash)->ifnone, id_call, 2, hash, key);
     }
     return RHASH(hash)->ifnone;
 }
@@ -608,7 +608,7 @@
     VALUE hash;
 {
     if (FL_TEST(hash, HASH_PROC_DEFAULT)) {
-	return RHASH(hash)->ifnone;
+        return RHASH(hash)->ifnone;
     }
     return Qnil;
 }
@@ -619,8 +619,8 @@
     VALUE *args;
 {
     if (rb_equal(value, args[0])) {
-	args[1] = key;
-	return ST_STOP;
+        args[1] = key;
+        return ST_STOP;
     }
     return ST_CONTINUE;
 }
@@ -632,13 +632,13 @@
     st_data_t ktmp = (st_data_t)key, val;
 
     if (RHASH(hash)->iter_lev > 0) {
-	if (st_delete_safe(RHASH(hash)->tbl, &ktmp, &val, Qundef)) {
-	    FL_SET(hash, HASH_DELETED);
-	    return (VALUE)val;
-	}
+        if (st_delete_safe(RHASH(hash)->tbl, &ktmp, &val, Qundef)) {
+            FL_SET(hash, HASH_DELETED);
+            return (VALUE)val;
+        }
     }
     else if (st_delete(RHASH(hash)->tbl, &ktmp, &val))
-	return (VALUE)val;
+        return (VALUE)val;
     return Qundef;
 }
 
@@ -687,11 +687,11 @@
     int i;
 
     rb_warn("Hash#%s is deprecated; use Hash#values_at",
-	    rb_id2name(rb_frame_last_func()));
+            rb_id2name(rb_frame_last_func()));
     indexes = rb_ary_new2(argc);
     for (i=0; i<argc; i++) {
-	RARRAY(indexes)->ptr[i] = rb_hash_aref(hash, argv[i]);
-	RARRAY(indexes)->len++;
+        RARRAY(indexes)->ptr[i] = rb_hash_aref(hash, argv[i]);
+        RARRAY(indexes)->len++;
     }
     return indexes;
 }
@@ -702,10 +702,9 @@
  *     hsh.delete(key) {| key | block }  => value
  *
  *  Deletes and returns a key-value pair from <i>hsh</i> whose key is
- *  equal to <i>key</i>. If the key is not found, returns the
- *  <em>default value</em>. If the optional code block is given and the
- *  key is not found, pass in the key and return the result of
- *  <i>block</i>.
+ *  equal to <i>key</i>. If the key is not found, returns <code>nil</code>.
+ *  If the optional code block is given and the key is not found,
+ *  pass in the key and return the result of <i>block</i>.
  *
  *     h = { "a" => 100, "b" => 200 }
  *     h.delete("a")                              #=> 100
@@ -724,7 +723,7 @@
     val = rb_hash_delete_key(hash, key);
     if (val != Qundef) return val;
     if (rb_block_given_p()) {
-	return rb_yield(key);
+        return rb_yield(key);
     }
     return Qnil;
 }
@@ -779,26 +778,26 @@
     rb_hash_modify(hash);
     var.key = Qundef;
     if (RHASH(hash)->iter_lev > 0) {
-	rb_hash_foreach(hash, shift_i_safe, (st_data_t)&var);
-	if (var.key != Qundef) {
-	    st_data_t key = var.key;
-	    if (st_delete_safe(RHASH(hash)->tbl, &key, 0, Qundef)) {
-		FL_SET(hash, HASH_DELETED);
-	    }
-	}
+        rb_hash_foreach(hash, shift_i_safe, (st_data_t)&var);
+        if (var.key != Qundef) {
+            st_data_t key = var.key;
+            if (st_delete_safe(RHASH(hash)->tbl, &key, 0, Qundef)) {
+                FL_SET(hash, HASH_DELETED);
+            }
+        }
     }
     else {
-	rb_hash_foreach(hash, shift_i, (st_data_t)&var);
+        rb_hash_foreach(hash, shift_i, (st_data_t)&var);
     }
 
     if (var.key != Qundef) {
-	return rb_assoc_new(var.key, var.val);
+        return rb_assoc_new(var.key, var.val);
     }
     else if (FL_TEST(hash, HASH_PROC_DEFAULT)) {
-	return rb_funcall(RHASH(hash)->ifnone, id_call, 2, hash, Qnil);
+        return rb_funcall(RHASH(hash)->ifnone, id_call, 2, hash, Qnil);
     }
     else {
-	return RHASH(hash)->ifnone;
+        return RHASH(hash)->ifnone;
     }
 }
 
@@ -808,7 +807,7 @@
 {
     if (key == Qundef) return ST_CONTINUE;
     if (RTEST(rb_yield_values(2, key, value))) {
-	rb_hash_delete_key(hash, key);
+        rb_hash_delete_key(hash, key);
     }
     return ST_CONTINUE;
 }
@@ -879,7 +878,7 @@
 {
     if (key == Qundef) return ST_CONTINUE;
     if (RTEST(rb_yield_values(2, key, value)))
-	rb_ary_push(result, rb_assoc_new(key, value));
+        rb_ary_push(result, rb_assoc_new(key, value));
     return ST_CONTINUE;
 }
 
@@ -904,7 +903,7 @@
     long i;
 
     for (i=0; i<argc; i++) {
-	rb_ary_push(result, rb_hash_aref(hash, argv[i]));
+        rb_ary_push(result, rb_hash_aref(hash, argv[i]));
     }
     return result;
 }
@@ -958,7 +957,7 @@
 {
     rb_hash_modify(hash);
     if (RHASH(hash)->tbl->num_entries > 0) {
-	rb_hash_foreach(hash, clear_i, 0);
+        rb_hash_foreach(hash, clear_i, 0);
     }
 
     return hash;
@@ -988,10 +987,10 @@
 {
     rb_hash_modify(hash);
     if (TYPE(key) != T_STRING || st_lookup(RHASH(hash)->tbl, key, 0)) {
-	st_insert(RHASH(hash)->tbl, key, val);
+        st_insert(RHASH(hash)->tbl, key, val);
     }
     else {
-	st_add_direct(RHASH(hash)->tbl, rb_str_new4(key), val);
+        st_add_direct(RHASH(hash)->tbl, rb_str_new4(key), val);
     }
     return val;
 }
@@ -1001,7 +1000,7 @@
     VALUE key, val, hash;
 {
     if (key != Qundef) {
-	rb_hash_aset(hash, key, val);
+        rb_hash_aset(hash, key, val);
     }
 
     return ST_CONTINUE;
@@ -1029,10 +1028,10 @@
     rb_hash_foreach(hash2, replace_i, hash);
     RHASH(hash)->ifnone = RHASH(hash2)->ifnone;
     if (FL_TEST(hash2, HASH_PROC_DEFAULT)) {
-	FL_SET(hash, HASH_PROC_DEFAULT);
+        FL_SET(hash, HASH_PROC_DEFAULT);
     }
     else {
-	FL_UNSET(hash, HASH_PROC_DEFAULT);
+        FL_UNSET(hash, HASH_PROC_DEFAULT);
     }
 
     return hash;
@@ -1074,7 +1073,7 @@
     VALUE hash;
 {
     if (RHASH(hash)->tbl->num_entries == 0)
-	return Qtrue;
+        return Qtrue;
     return Qfalse;
 }
 
@@ -1282,7 +1281,7 @@
 
     if (key == Qundef) return ST_CONTINUE;
     if (RSTRING(str)->len > 1) {
-	rb_str_cat2(str, ", ");
+        rb_str_cat2(str, ", ");
     }
     str2 = rb_inspect(key);
     rb_str_buf_append(str, str2);
@@ -1321,7 +1320,7 @@
     VALUE hash;
 {
     if (RHASH(hash)->tbl == 0 || RHASH(hash)->tbl->num_entries == 0)
-	return rb_str_new2("{}");
+        return rb_str_new2("{}");
     if (rb_inspecting_p(hash)) return rb_str_new2("{...}");
     return rb_protect_inspect(inspect_hash, hash, 0);
 }
@@ -1455,7 +1454,7 @@
     VALUE key;
 {
     if (st_lookup(RHASH(hash)->tbl, key, 0)) {
-	return Qtrue;
+        return Qtrue;
     }
     return Qfalse;
 }
@@ -1466,8 +1465,8 @@
 {
     if (key == Qundef) return ST_CONTINUE;
     if (rb_equal(value, data[1])) {
-	data[0] = Qtrue;
-	return ST_STOP;
+        data[0] = Qtrue;
+        return ST_STOP;
     }
     return ST_CONTINUE;
 }
@@ -1514,12 +1513,12 @@
 
     if (key == Qundef) return ST_CONTINUE;
     if (!st_lookup(data->tbl, key, &val2)) {
-	data->result = Qfalse;
-	return ST_STOP;
+        data->result = Qfalse;
+        return ST_STOP;
     }
     if (!(data->eql ? rb_eql(val1, val2) : rb_equal(val1, val2))) {
-	data->result = Qfalse;
-	return ST_STOP;
+        data->result = Qfalse;
+        return ST_STOP;
     }
     return ST_CONTINUE;
 }
@@ -1544,23 +1543,23 @@
 static VALUE
 hash_equal(hash1, hash2, eql)
     VALUE hash1, hash2;
-    int eql;			/* compare default value if true */
+    int eql;                    /* compare default value if true */
 {
     struct equal_data data;
 
     if (hash1 == hash2) return Qtrue;
     if (TYPE(hash2) != T_HASH) {
-	if (!rb_respond_to(hash2, rb_intern("to_hash"))) {
-	    return Qfalse;
-	}
-	return rb_equal(hash2, hash1);
+        if (!rb_respond_to(hash2, rb_intern("to_hash"))) {
+            return Qfalse;
+        }
+        return rb_equal(hash2, hash1);
     }
     if (RHASH(hash1)->tbl->num_entries != RHASH(hash2)->tbl->num_entries)
-	return Qfalse;
+        return Qfalse;
     if (eql) {
-	if (!(rb_equal(RHASH(hash1)->ifnone, RHASH(hash2)->ifnone) &&
-	      FL_TEST(hash1, HASH_PROC_DEFAULT) == FL_TEST(hash2, HASH_PROC_DEFAULT)))
-	    return Qfalse;
+        if (!(rb_equal(RHASH(hash1)->ifnone, RHASH(hash2)->ifnone) &&
+              FL_TEST(hash1, HASH_PROC_DEFAULT) == FL_TEST(hash2, HASH_PROC_DEFAULT)))
+            return Qfalse;
     }
 
     data.tbl = RHASH(hash2)->tbl;
@@ -1617,7 +1616,7 @@
     int hval;
 
     if (recur) {
-	return LONG2FIX(0);
+        return LONG2FIX(0);
     }
     hval = RHASH(hash)->tbl->num_entries;
     rb_hash_foreach(hash, hash_i, (st_data_t)&hval);
@@ -1704,7 +1703,7 @@
 {
     if (key == Qundef) return ST_CONTINUE;
     if (rb_hash_has_key(hash, key)) {
-	value = rb_yield_values(3, key, rb_hash_aref(hash, key), value);
+        value = rb_yield_values(3, key, rb_hash_aref(hash, key), value);
     }
     rb_hash_aset(hash, key, value);
     return ST_CONTINUE;
@@ -1731,10 +1730,10 @@
 {
     hash2 = to_hash(hash2);
     if (rb_block_given_p()) {
-	rb_hash_foreach(hash2, rb_hash_update_block_i, hash1);
+        rb_hash_foreach(hash2, rb_hash_update_block_i, hash1);
     }
     else {
-	rb_hash_foreach(hash2, rb_hash_update_i, hash1);
+        rb_hash_foreach(hash2, rb_hash_update_i, hash1);
     }
     return hash1;
 }
@@ -1811,22 +1810,22 @@
     SafeStringValue(name);
     nam = RSTRING(name)->ptr;
     if (strlen(nam) != RSTRING(name)->len) {
-	rb_raise(rb_eArgError, "bad environment variable name");
+        rb_raise(rb_eArgError, "bad environment variable name");
     }
     val = getenv(nam);
     if (val) {
-	VALUE value = env_str_new2(val);
+        VALUE value = env_str_new2(val);
 
-	ruby_setenv(nam, 0);
+        ruby_setenv(nam, 0);
 #ifdef ENV_IGNORECASE
-	if (strcasecmp(nam, PATH_ENV) == 0)
+        if (strcasecmp(nam, PATH_ENV) == 0)
 #else
-	if (strcmp(nam, PATH_ENV) == 0)
+        if (strcmp(nam, PATH_ENV) == 0)
 #endif
-	{
-	    path_tainted = 0;
-	}
-	return value;
+        {
+            path_tainted = 0;
+        }
+        return value;
     }
     return Qnil;
 }
@@ -1851,22 +1850,22 @@
     StringValue(name);
     nam = RSTRING(name)->ptr;
     if (strlen(nam) != RSTRING(name)->len) {
-	rb_raise(rb_eArgError, "bad environment variable name");
+        rb_raise(rb_eArgError, "bad environment variable name");
     }
     env = getenv(nam);
     if (env) {
 #ifdef ENV_IGNORECASE
-	if (strcasecmp(nam, PATH_ENV) == 0 && !rb_env_path_tainted())
+        if (strcasecmp(nam, PATH_ENV) == 0 && !rb_env_path_tainted())
 #else
-	if (strcmp(nam, PATH_ENV) == 0 && !rb_env_path_tainted())
+        if (strcmp(nam, PATH_ENV) == 0 && !rb_env_path_tainted())
 #endif
-	{
-	    VALUE str = rb_str_new2(env);
+        {
+            VALUE str = rb_str_new2(env);
 
-	    rb_obj_freeze(str);
-	    return str;
-	}
-	return env_str_new2(env);
+            rb_obj_freeze(str);
+            return str;
+        }
+        return env_str_new2(env);
     }
     return Qnil;
 }
@@ -1883,27 +1882,27 @@
     rb_scan_args(argc, argv, "11", &key, &if_none);
     block_given = rb_block_given_p();
     if (block_given && argc == 2) {
-	rb_warn("block supersedes default value argument");
+        rb_warn("block supersedes default value argument");
     }
     StringValue(key);
     nam = RSTRING(key)->ptr;
     if (strlen(nam) != RSTRING(key)->len) {
-	rb_raise(rb_eArgError, "bad environment variable name");
+        rb_raise(rb_eArgError, "bad environment variable name");
     }
     env = getenv(nam);
     if (!env) {
-	if (block_given) return rb_yield(key);
-	if (argc == 1) {
-	    rb_raise(rb_eIndexError, "key not found");
-	}
-	return if_none;
+        if (block_given) return rb_yield(key);
+        if (argc == 1) {
+            rb_raise(rb_eIndexError, "key not found");
+        }
+        return if_none;
     }
 #ifdef ENV_IGNORECASE
     if (strcasecmp(nam, PATH_ENV) == 0 && !rb_env_path_tainted())
 #else
     if (strcmp(nam, PATH_ENV) == 0 && !rb_env_path_tainted())
 #endif
-	return rb_str_new2(env);
+        return rb_str_new2(env);
     return env_str_new2(env);
 }
 
@@ -1918,7 +1917,7 @@
 rb_env_path_tainted()
 {
     if (path_tainted < 0) {
-	path_tainted_p(getenv(PATH_ENV));
+        path_tainted_p(getenv(PATH_ENV));
     }
     return path_tainted;
 }
@@ -1932,15 +1931,15 @@
 
     env = GET_ENVIRON(environ);
     for (i = 0; env[i]; i++) {
-	if (
+        if (
 #ifdef ENV_IGNORECASE
-	    strncasecmp(env[i],nam,len) == 0
+            strncasecmp(env[i],nam,len) == 0
 #else
-	    memcmp(env[i],nam,len) == 0
+            memcmp(env[i],nam,len) == 0
 #endif
-	    && env[i][len] == '=')
-	    break;			/* memcmp must come first to avoid */
-    }					/* potential SEGV's */
+            && env[i][len] == '=')
+            break;                      /* memcmp must come first to avoid */
+    }                                   /* potential SEGV's */
     FREE_ENVIRON(environ);
     return i;
 }
@@ -1973,42 +1972,42 @@
 #undef setenv
 #undef unsetenv
     if (value)
-	setenv(name,value,1);
+        setenv(name,value,1);
     else
-	unsetenv(name);
+        unsetenv(name);
 #else  /* WIN32 */
     size_t len;
-    int i=envix(name);		        /* where does it go? */
+    int i=envix(name);                  /* where does it go? */
 
-    if (environ == origenviron) {	/* need we copy environment? */
-	int j;
-	int max;
-	char **tmpenv;
+    if (environ == origenviron) {       /* need we copy environment? */
+        int j;
+        int max;
+        char **tmpenv;
 
-	for (max = i; environ[max]; max++) ;
-	tmpenv = ALLOC_N(char*, max+2);
-	for (j=0; j<max; j++)		/* copy environment */
-	    tmpenv[j] = strdup(environ[j]);
-	tmpenv[max] = 0;
-	environ = tmpenv;		/* tell exec where it is now */
+        for (max = i; environ[max]; max++) ;
+        tmpenv = ALLOC_N(char*, max+2);
+        for (j=0; j<max; j++)           /* copy environment */
+            tmpenv[j] = strdup(environ[j]);
+        tmpenv[max] = 0;
+        environ = tmpenv;               /* tell exec where it is now */
     }
     if (environ[i]) {
-	char **envp = origenviron;
-	while (*envp && *envp != environ[i]) envp++;
-	if (!*envp)
-	    free(environ[i]);
-	if (!value) {
-	    while (environ[i]) {
-		environ[i] = environ[i+1];
-		i++;
-	    }
-	    return;
-	}
+        char **envp = origenviron;
+        while (*envp && *envp != environ[i]) envp++;
+        if (!*envp)
+            free(environ[i]);
+        if (!value) {
+            while (environ[i]) {
+                environ[i] = environ[i+1];
+                i++;
+            }
+            return;
+        }
     }
-    else {			/* does not exist yet */
-	if (!value) return;
-	REALLOC_N(environ, char*, i+2);	/* just expand it a bit */
-	environ[i+1] = 0;	/* make sure it's null terminated */
+    else {                      /* does not exist yet */
+        if (!value) return;
+        REALLOC_N(environ, char*, i+2); /* just expand it a bit */
+        environ[i+1] = 0;       /* make sure it's null terminated */
     }
     len = strlen(name) + strlen(value) + 2;
     environ[i] = ALLOC_N(char, len);
@@ -2041,12 +2040,12 @@
     char *name, *value;
 
     if (rb_safe_level() >= 4) {
-	rb_raise(rb_eSecurityError, "can't change environment variable");
+        rb_raise(rb_eSecurityError, "can't change environment variable");
     }
 
     if (NIL_P(val)) {
-	env_delete(obj, nm);
-	return Qnil;
+        env_delete(obj, nm);
+        return Qnil;
     }
 
     StringValue(nm);
@@ -2054,9 +2053,9 @@
     name = RSTRING(nm)->ptr;
     value = RSTRING(val)->ptr;
     if (strlen(name) != RSTRING(nm)->len)
-	rb_raise(rb_eArgError, "bad environment variable name");
+        rb_raise(rb_eArgError, "bad environment variable name");
     if (strlen(value) != RSTRING(val)->len)
-	rb_raise(rb_eArgError, "bad environment variable value");
+        rb_raise(rb_eArgError, "bad environment variable value");
 
     ruby_setenv(name, value);
 #ifdef ENV_IGNORECASE
@@ -2064,14 +2063,14 @@
 #else
     if (strcmp(name, PATH_ENV) == 0) {
 #endif
-	if (OBJ_TAINTED(val)) {
-	    /* already tainted, no check */
-	    path_tainted = 1;
-	    return val;
-	}
-	else {
-	    path_tainted_p(value);
-	}
+        if (OBJ_TAINTED(val)) {
+            /* already tainted, no check */
+            path_tainted = 1;
+            return val;
+        }
+        else {
+            path_tainted_p(value);
+        }
     }
     return val;
 }
@@ -2084,11 +2083,11 @@
 
     env = GET_ENVIRON(environ);
     while (*env) {
-	char *s = strchr(*env, '=');
-	if (s) {
-	    rb_ary_push(ary, env_str_new(*env, s-*env));
-	}
-	env++;
+        char *s = strchr(*env, '=');
+        if (s) {
+            rb_ary_push(ary, env_str_new(*env, s-*env));
+        }
+        env++;
     }
     FREE_ENVIRON(environ);
     return ary;
@@ -2103,7 +2102,7 @@
 
     RETURN_ENUMERATOR(ehash, 0, 0);
     for (i=0; i<RARRAY(keys)->len; i++) {
-	rb_yield(RARRAY(keys)->ptr[i]);
+        rb_yield(RARRAY(keys)->ptr[i]);
     }
     return ehash;
 }
@@ -2116,11 +2115,11 @@
 
     env = GET_ENVIRON(environ);
     while (*env) {
-	char *s = strchr(*env, '=');
-	if (s) {
-	    rb_ary_push(ary, env_str_new2(s+1));
-	}
-	env++;
+        char *s = strchr(*env, '=');
+        if (s) {
+            rb_ary_push(ary, env_str_new2(s+1));
+        }
+        env++;
     }
     FREE_ENVIRON(environ);
     return ary;
@@ -2135,7 +2134,7 @@
 
     RETURN_ENUMERATOR(ehash, 0, 0);
     for (i=0; i<RARRAY(values)->len; i++) {
-	rb_yield(RARRAY(values)->ptr[i]);
+        rb_yield(RARRAY(values)->ptr[i]);
     }
     return ehash;
 }
@@ -2151,22 +2150,22 @@
 
     env = GET_ENVIRON(environ);
     while (*env) {
-	char *s = strchr(*env, '=');
-	if (s) {
-	    rb_ary_push(ary, env_str_new(*env, s-*env));
-	    rb_ary_push(ary, env_str_new2(s+1));
-	}
-	env++;
+        char *s = strchr(*env, '=');
+        if (s) {
+            rb_ary_push(ary, env_str_new(*env, s-*env));
+            rb_ary_push(ary, env_str_new2(s+1));
+        }
+        env++;
     }
     FREE_ENVIRON(environ);
 
     for (i=0; i<RARRAY(ary)->len; i+=2) {
-	if (values) {
-	    rb_yield_values(2, RARRAY(ary)->ptr[i], RARRAY(ary)->ptr[i+1]);
-	}
-	else {
-	    rb_yield(rb_assoc_new(RARRAY(ary)->ptr[i], RARRAY(ary)->ptr[i+1]));
-	}
+        if (values) {
+            rb_yield_values(2, RARRAY(ary)->ptr[i], RARRAY(ary)->ptr[i+1]);
+        }
+        else {
+            rb_yield(rb_assoc_new(RARRAY(ary)->ptr[i], RARRAY(ary)->ptr[i+1]));
+        }
     }
     return ehash;
 }
@@ -2199,14 +2198,14 @@
     keys = env_keys();
 
     for (i=0; i<RARRAY(keys)->len; i++) {
-	VALUE val = rb_f_getenv(Qnil, RARRAY(keys)->ptr[i]);
-	if (!NIL_P(val)) {
-	    if (RTEST(rb_yield_values(2, RARRAY(keys)->ptr[i], val))) {
-		FL_UNSET(RARRAY(keys)->ptr[i], FL_TAINT);
-		env_delete(Qnil, RARRAY(keys)->ptr[i]);
-		del++;
-	    }
-	}
+        VALUE val = rb_f_getenv(Qnil, RARRAY(keys)->ptr[i]);
+        if (!NIL_P(val)) {
+            if (RTEST(rb_yield_values(2, RARRAY(keys)->ptr[i], val))) {
+                FL_UNSET(RARRAY(keys)->ptr[i], FL_TAINT);
+                env_delete(Qnil, RARRAY(keys)->ptr[i]);
+                del++;
+            }
+        }
     }
     if (del == 0) return Qnil;
     return envtbl;
@@ -2229,7 +2228,7 @@
     long i;
 
     for (i=0; i<argc; i++) {
-	rb_ary_push(result, rb_f_getenv(Qnil, argv[i]));
+        rb_ary_push(result, rb_f_getenv(Qnil, argv[i]));
     }
     return result;
 }
@@ -2245,15 +2244,15 @@
     result = rb_ary_new();
     env = GET_ENVIRON(environ);
     while (*env) {
-	char *s = strchr(*env, '=');
-	if (s) {
-	    VALUE k = env_str_new(*env, s-*env);
-	    VALUE v = env_str_new2(s+1);
-	    if (RTEST(rb_yield_values(2, k, v))) {
-		rb_ary_push(result, rb_assoc_new(k, v));
-	    }
-	}
-	env++;
+        char *s = strchr(*env, '=');
+        if (s) {
+            VALUE k = env_str_new(*env, s-*env);
+            VALUE v = env_str_new2(s+1);
+            if (RTEST(rb_yield_values(2, k, v))) {
+                rb_ary_push(result, rb_assoc_new(k, v));
+            }
+        }
+        env++;
     }
     FREE_ENVIRON(environ);
 
@@ -2270,10 +2269,10 @@
     keys = env_keys();
 
     for (i=0; i<RARRAY(keys)->len; i++) {
-	VALUE val = rb_f_getenv(Qnil, RARRAY(keys)->ptr[i]);
-	if (!NIL_P(val)) {
-	    env_delete(Qnil, RARRAY(keys)->ptr[i]);
-	}
+        VALUE val = rb_f_getenv(Qnil, RARRAY(keys)->ptr[i]);
+        if (!NIL_P(val)) {
+            env_delete(Qnil, RARRAY(keys)->ptr[i]);
+        }
     }
     return envtbl;
 }
@@ -2293,19 +2292,19 @@
 
     env = GET_ENVIRON(environ);
     while (*env) {
-	char *s = strchr(*env, '=');
+        char *s = strchr(*env, '=');
 
-	if (env != environ) {
-	    rb_str_buf_cat2(str, ", ");
-	}
-	if (s) {
-	    rb_str_buf_cat2(str, "\"");
-	    rb_str_buf_cat(str, *env, s-*env);
-	    rb_str_buf_cat2(str, "\"=>");
-	    i = rb_inspect(rb_str_new2(s+1));
-	    rb_str_buf_append(str, i);
-	}
-	env++;
+        if (env != environ) {
+            rb_str_buf_cat2(str, ", ");
+        }
+        if (s) {
+            rb_str_buf_cat2(str, "\"");
+            rb_str_buf_cat(str, *env, s-*env);
+            rb_str_buf_cat2(str, "\"=>");
+            i = rb_inspect(rb_str_new2(s+1));
+            rb_str_buf_append(str, i);
+        }
+        env++;
     }
     FREE_ENVIRON(environ);
     rb_str_buf_cat2(str, "}");
@@ -2322,12 +2321,12 @@
 
     env = GET_ENVIRON(environ);
     while (*env) {
-	char *s = strchr(*env, '=');
-	if (s) {
-	    rb_ary_push(ary, rb_assoc_new(env_str_new(*env, s-*env),
-					  env_str_new2(s+1)));
-	}
-	env++;
+        char *s = strchr(*env, '=');
+        if (s) {
+            rb_ary_push(ary, rb_assoc_new(env_str_new(*env, s-*env),
+                                          env_str_new2(s+1)));
+        }
+        env++;
     }
     FREE_ENVIRON(environ);
     return ary;
@@ -2347,7 +2346,7 @@
 
     env = GET_ENVIRON(environ);
     for(i=0; env[i]; i++)
-	;
+        ;
     FREE_ENVIRON(environ);
     return INT2FIX(i);
 }
@@ -2359,8 +2358,8 @@
 
     env = GET_ENVIRON(environ);
     if (env[0] == 0) {
-	FREE_ENVIRON(environ);
-	return Qtrue;
+        FREE_ENVIRON(environ);
+        return Qtrue;
     }
     FREE_ENVIRON(environ);
     return Qfalse;
@@ -2374,7 +2373,7 @@
 
     s = StringValuePtr(key);
     if (strlen(s) != RSTRING(key)->len)
-	rb_raise(rb_eArgError, "bad environment variable name");
+        rb_raise(rb_eArgError, "bad environment variable name");
     if (getenv(s)) return Qtrue;
     return Qfalse;
 }
@@ -2388,15 +2387,15 @@
     if (TYPE(value) != T_STRING) return Qfalse;
     env = GET_ENVIRON(environ);
     while (*env) {
-	char *s = strchr(*env, '=');
-	if (s++) {
-	    long len = strlen(s);
-	    if (RSTRING(value)->len == len && strncmp(s, RSTRING(value)->ptr, len) == 0) {
-		FREE_ENVIRON(environ);
-		return Qtrue;
-	    }
-	}
-	env++;
+        char *s = strchr(*env, '=');
+        if (s++) {
+            long len = strlen(s);
+            if (RSTRING(value)->len == len && strncmp(s, RSTRING(value)->ptr, len) == 0) {
+                FREE_ENVIRON(environ);
+                return Qtrue;
+            }
+        }
+        env++;
     }
     FREE_ENVIRON(environ);
     return Qfalse;
@@ -2412,16 +2411,16 @@
     StringValue(value);
     env = GET_ENVIRON(environ);
     while (*env) {
-	char *s = strchr(*env, '=');
-	if (s++) {
-	    long len = strlen(s);
-	    if (RSTRING(value)->len == len && strncmp(s, RSTRING(value)->ptr, len) == 0) {
-		str = env_str_new(*env, s-*env-1);
-		FREE_ENVIRON(environ);
-		return str;
-	    }
-	}
-	env++;
+        char *s = strchr(*env, '=');
+        if (s++) {
+            long len = strlen(s);
+            if (RSTRING(value)->len == len && strncmp(s, RSTRING(value)->ptr, len) == 0) {
+                str = env_str_new(*env, s-*env-1);
+                FREE_ENVIRON(environ);
+                return str;
+            }
+        }
+        env++;
     }
     FREE_ENVIRON(environ);
     return Qnil;
@@ -2436,16 +2435,16 @@
     VALUE indexes = rb_ary_new2(argc);
 
     rb_warn("ENV.%s is deprecated; use ENV.values_at",
-	    rb_id2name(rb_frame_last_func()));
+            rb_id2name(rb_frame_last_func()));
     for (i=0;i<argc;i++) {
-	VALUE tmp = rb_check_string_type(argv[i]);
-	if (NIL_P(tmp)) {
-	    RARRAY(indexes)->ptr[i] = Qnil;
-	}
-	else {
-	    RARRAY(indexes)->ptr[i] = env_str_new2(getenv(RSTRING(tmp)->ptr));
-	}
-	RARRAY(indexes)->len = i+1;
+        VALUE tmp = rb_check_string_type(argv[i]);
+        if (NIL_P(tmp)) {
+            RARRAY(indexes)->ptr[i] = Qnil;
+        }
+        else {
+            RARRAY(indexes)->ptr[i] = env_str_new2(getenv(RSTRING(tmp)->ptr));
+        }
+        RARRAY(indexes)->len = i+1;
     }
 
     return indexes;
@@ -2459,12 +2458,12 @@
 
     env = GET_ENVIRON(environ);
     while (*env) {
-	char *s = strchr(*env, '=');
-	if (s) {
-	    rb_hash_aset(hash, env_str_new(*env, s-*env),
-			       env_str_new2(s+1));
-	}
-	env++;
+        char *s = strchr(*env, '=');
+        if (s) {
+            rb_hash_aset(hash, env_str_new(*env, s-*env),
+                               env_str_new2(s+1));
+        }
+        env++;
     }
     FREE_ENVIRON(environ);
     return hash;
@@ -2483,13 +2482,13 @@
 
     env = GET_ENVIRON(environ);
     if (*env) {
-	char *s = strchr(*env, '=');
-	if (s) {
-	    VALUE key = env_str_new(*env, s-*env);
-	    VALUE val = env_str_new2(getenv(RSTRING(key)->ptr));
-	    env_delete(Qnil, key);
-	    return rb_assoc_new(key, val);
-	}
+        char *s = strchr(*env, '=');
+        if (s) {
+            VALUE key = env_str_new(*env, s-*env);
+            VALUE val = env_str_new2(getenv(RSTRING(key)->ptr));
+            env_delete(Qnil, key);
+            return rb_assoc_new(key, val);
+        }
     }
     FREE_ENVIRON(environ);
     return Qnil;
@@ -2506,10 +2505,10 @@
     VALUE key, val, keys;
 {
     if (key != Qundef) {
-	env_aset(Qnil, key, val);
-	if (rb_ary_includes(keys, key)) {
-	    rb_ary_delete(keys, key);
-	}
+        env_aset(Qnil, key, val);
+        if (rb_ary_includes(keys, key)) {
+            rb_ary_delete(keys, key);
+        }
     }
     return ST_CONTINUE;
 }
@@ -2526,7 +2525,7 @@
     rb_hash_foreach(hash, env_replace_i, keys);
 
     for (i=0; i<RARRAY(keys)->len; i++) {
-	env_delete(env, RARRAY(keys)->ptr[i]);
+        env_delete(env, RARRAY(keys)->ptr[i]);
     }
     return env;
 }
@@ -2536,10 +2535,10 @@
     VALUE key, val;
 {
     if (key != Qundef) {
-	if (rb_block_given_p()) {
-	    val = rb_yield_values(3, key, rb_f_getenv(Qnil, key), val);
-	}
-	env_aset(Qnil, key, val);
+        if (rb_block_given_p()) {
+            val = rb_yield_values(3, key, rb_f_getenv(Qnil, key), val);
+        }
+        env_aset(Qnil, key, val);
     }
     return ST_CONTINUE;
 }
@@ -2714,7 +2713,7 @@
 
     rb_define_global_const("ENV", envtbl);
 #else /* __MACOS__ */
-	envtbl = rb_hash_s_new(0, NULL, rb_cHash);
+        envtbl = rb_hash_s_new(0, NULL, rb_cHash);
     rb_define_global_const("ENV", envtbl);
 #endif  /* ifndef __MACOS__  environment variables nothing on MacOS. */
 }

In This Thread

Prev Next