summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-07-31 09:20:59 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-07-31 09:20:59 +0000
commit3597f08030aada2a0d9a3cd8855bd1878acb5db6 (patch)
tree5d7aba389d999523c87bf86ab81f9a03de56beed
parent6759827504247fac86651c8a18a9f3bb565caf66 (diff)
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--configure.in5
-rw-r--r--defines.h2
-rw-r--r--dir.c1
-rw-r--r--lib/weakref.rb8
-rw-r--r--regex.h4
6 files changed, 19 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 28c18a454a..1f58347d53 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Jul 29 23:42:04 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * dir.c (dir_each): should check whether dir is closed during the
+ block execution. (ruby-bugs:#PR47)
+
Sat Jul 29 21:57:30 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
* ruby.c (rubylib_mangle): provide another buffer for the result.
diff --git a/configure.in b/configure.in
index b88e7b8b7c..7f6f8fb6ac 100644
--- a/configure.in
+++ b/configure.in
@@ -764,9 +764,12 @@ case "$host_os" in
openstep*)
CFLAGS="$CFLAGS -pipe"
;;
- rhasody*)
+ rhapsody*)
CFLAGS="$CFLAGS -pipe -no-precomp"
;;
+ os2_emx)
+ CFLAGS="$CFLAGS -DOS2"
+ ;;
*)
;;
esac
diff --git a/defines.h b/defines.h
index a1865e4f2d..e3a0abef64 100644
--- a/defines.h
+++ b/defines.h
@@ -28,6 +28,8 @@
#endif
#define S_IXGRP 0000010 /* execute/search permission, group */
#define S_IXOTH 0000001 /* execute/search permission, other */
+
+#define HAVE_SYS_WAIT_H /* configure fails to find this */
#endif /* NeXT */
#ifdef NT
diff --git a/dir.c b/dir.c
index 8b7f95785b..440a67c35c 100644
--- a/dir.c
+++ b/dir.c
@@ -305,6 +305,7 @@ dir_each(dir)
for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
file = rb_tainted_str_new(dp->d_name, NAMLEN(dp));
rb_yield(file);
+ if (DATA_PTR(dir) == NULL) dir_closed();
}
return dir;
}
diff --git a/lib/weakref.rb b/lib/weakref.rb
index a6519e64c0..3dff9038eb 100644
--- a/lib/weakref.rb
+++ b/lib/weakref.rb
@@ -45,7 +45,13 @@ class WeakRef<Delegator
@__id = orig.__id__
ObjectSpace.call_finalizer orig
ObjectSpace.call_finalizer self
- ID_MAP[@__id] = [] unless ID_MAP[@__id]
+ begin
+ __old_status = Thread.critical
+ Thread.critical = true
+ ID_MAP[@__id] = [] unless ID_MAP[@__id]
+ ensure
+ Thread.critical = __old_status
+ end
ID_MAP[@__id].push self.__id__
ID_REV_MAP[self.id] = @__id
end
diff --git a/regex.h b/regex.h
index dadb548fb1..e000a2bbc6 100644
--- a/regex.h
+++ b/regex.h
@@ -183,10 +183,6 @@ typedef struct
} regmatch_t;
-#ifdef NeXT
-#define re_match rre_match
-#endif
-
#ifdef __STDC__
extern char *re_compile_pattern (const char *, int, struct re_pattern_buffer *);