Modified: MacRuby/trunk/TODO (2710 => 2711)
--- MacRuby/trunk/TODO 2009-10-04 19:42:49 UTC (rev 2710)
+++ MacRuby/trunk/TODO 2009-10-04 20:22:02 UTC (rev 2711)
@@ -12,7 +12,7 @@
[X] `gem uninstall bacon' doesn't work (Unknown gem bacon >= 0)
[X] `macgem install rails --version 2.3.2' crashes (MAX_DISPATCH_ARGS assertion)
[X] `macgem help commands' crashes
- [ ] gem installed executables are not executables
+ [X] gem installed executables are not executables
[X] rewrite load.c (needed for RubyGems' #require hack)
For 0.5 (must do):
Modified: MacRuby/trunk/io.c (2710 => 2711)
--- MacRuby/trunk/io.c 2009-10-04 19:42:49 UTC (rev 2710)
+++ MacRuby/trunk/io.c 2009-10-04 20:22:02 UTC (rev 2711)
@@ -2246,7 +2246,6 @@
static VALUE
rb_file_open(VALUE io, int argc, VALUE *argv)
{
- // TODO: Take into account the provided file permissions.
VALUE path, modes, permissions;
rb_scan_args(argc, argv, "12", &path, &modes, &permissions);
if (NIL_P(modes)) {
@@ -2255,9 +2254,10 @@
StringValue(path);
const char *filepath = RSTRING_PTR(path);
const int flags = convert_mode_string_to_oflags(modes);
+ const mode_t perm = NIL_P(permissions) ? 0666 : NUM2UINT(permissions);
int fd, retry = 0;
while (true) {
- fd = open(filepath, flags, 0644);
+ fd = open(filepath, flags, perm);
if (fd == -1) {
if (retry < 5 && errno == EMFILE) {
// Too many open files. Let's schedule a GC collection.