[macruby-changes] [1140] MacRuby/branches/experimental

source_changes at macosforge.org source_changes at macosforge.org
Tue Mar 24 13:40:06 PDT 2009


Revision: 1140
          http://trac.macosforge.org/projects/ruby/changeset/1140
Author:   lsansonetti at apple.com
Date:     2009-03-24 13:40:05 -0700 (Tue, 24 Mar 2009)
Log Message:
-----------
fixed Dir.glob() & co

Modified Paths:
--------------
    MacRuby/branches/experimental/dir.c
    MacRuby/branches/experimental/eval.c

Modified: MacRuby/branches/experimental/dir.c
===================================================================
--- MacRuby/branches/experimental/dir.c	2009-03-24 18:32:00 UTC (rev 1139)
+++ MacRuby/branches/experimental/dir.c	2009-03-24 20:40:05 UTC (rev 1140)
@@ -13,61 +13,18 @@
 
 #include "ruby/ruby.h"
 #include "ruby/node.h"
+#include "ruby/util.h"
 #include "roxor.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>
-
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
-
-#if defined HAVE_DIRENT_H && !defined _WIN32
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#elif defined HAVE_DIRECT_H && !defined _WIN32
-# include <direct.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# if !defined __NeXT__
-#  define NAMLEN(dirent) (dirent)->d_namlen
-# else
-#  /* On some versions of NextStep, d_namlen is always zero, so avoid it. */
-#  define NAMLEN(dirent) strlen((dirent)->d_name)
-# endif
-# if HAVE_SYS_NDIR_H
-#  include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-#  include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-#  include <ndir.h>
-# endif
-# ifdef _WIN32
-#  include "win32/dir.h"
-# endif
-#endif
-
+#include <dirent.h>
 #include <errno.h>
-
-#ifndef HAVE_STDLIB_H
-char *getenv();
-#endif
-
-#ifndef HAVE_STRING_H
-char *strchr(char*,char);
-#endif
-
 #include <ctype.h>
 
-#include "ruby/util.h"
+#define NAMLEN(dirent) strlen((dirent)->d_name)
 
-#if !defined HAVE_LSTAT && !defined lstat
-#define lstat stat
-#endif
-
 #define FNM_NOESCAPE	0x01
 #define FNM_PATHNAME	0x02
 #define FNM_DOTMATCH	0x04
@@ -1285,14 +1242,10 @@
 	    }
 	    if (recursive && strcmp(dp->d_name, ".") != 0 && strcmp(dp->d_name, "..") != 0
 		&& fnmatch("*", dp->d_name, flags) == 0) {
-#ifndef _WIN32
 		if (do_lstat(buf, &st, flags) == 0)
 		    new_isdir = S_ISDIR(st.st_mode) ? DIR_YES : S_ISLNK(st.st_mode) ? DIR_UNKNOWN : DIR_NO;
 		else
 		    new_isdir = DIR_NO;
-#else
-		new_isdir = dp->d_isdir ? (!dp->d_isrep ? DIR_YES : DIR_UNKNOWN) : DIR_NO;
-#endif
 	    }
 
 	    new_beg = new_end = GLOB_ALLOC_N(struct glob_pattern *, (end - beg) * 2);
@@ -1387,9 +1340,6 @@
 
     start = root = path;
     flags |= FNM_SYSCASE;
-#if defined DOSISH
-    root = rb_path_skip_prefix(root);
-#endif
 
     if (root && *root == '/') root++;
 
@@ -1707,10 +1657,12 @@
     VALUE str, rflags, ary;
     int flags;
 
-    if (rb_scan_args(argc, argv, "11", &str, &rflags) == 2)
+    if (rb_scan_args(argc, argv, "11", &str, &rflags) == 2) {
 	flags = NUM2INT(rflags);
-    else
+    }
+    else {
 	flags = 0;
+    }
 
     ary = rb_check_array_type(str);
     if (NIL_P(ary)) {

Modified: MacRuby/branches/experimental/eval.c
===================================================================
--- MacRuby/branches/experimental/eval.c	2009-03-24 18:32:00 UTC (rev 1139)
+++ MacRuby/branches/experimental/eval.c	2009-03-24 20:40:05 UTC (rev 1140)
@@ -483,6 +483,9 @@
 rb_protect(VALUE (* proc) (VALUE), VALUE data, int * state)
 {
     // TODO
+    if (state != NULL) {
+	*state = 0;
+    }
     return (*proc)(data);
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090324/4d3fc570/attachment.html>


More information about the macruby-changes mailing list