summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-09-22 04:30:11 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-09-22 04:30:11 +0000
commit8aad024e3ac6524f8bc09d839a331f926eab30ec (patch)
tree826107ddf61a637dcb32d60f334bf56c27d72dc1 /win32
parent70a444b0cc703a2fd3e05045cd1e36266221149e (diff)
19990922
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'win32')
-rw-r--r--win32/Makefile6
-rw-r--r--win32/ruby.def5
-rw-r--r--win32/win32.c18
3 files changed, 23 insertions, 6 deletions
diff --git a/win32/Makefile b/win32/Makefile
index d4f143bfca..f84c96bc3f 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -98,13 +98,13 @@ $(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(LIBRUBY_SO)
@rm -f $@
$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) -o $@ $(LIBRUBYARG) -link /STACK:$(STACK)
-$(LIBRUBY_A): $(OBJS)
- lib -nologo /OUT:$@ $(OBJS)
+$(LIBRUBY_A): $(OBJS) dmyext.obj
+ lib -nologo /OUT:$@ $(OBJS) dmyext.obj
rubymw.lib: ruby.def
lib -nologo /OUT:$@ /DEF:ruby.def
-$(LIBRUBY_SO): $(LIBRUBY_A) $(EXTOBJS)
+$(LIBRUBY_SO): $(LIBRUBY_A) $(EXTOBJS) ruby.def
set LIB=.\win32;$(ORGLIBPATH)
@rm -f $@
$(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBY_A) $(LIBS) -o $@ -link /DLL /DEF:ruby.def
diff --git a/win32/ruby.def b/win32/ruby.def
index 7de1e8de59..1c79697fd7 100644
--- a/win32/ruby.def
+++ b/win32/ruby.def
@@ -33,6 +33,7 @@ EXPORTS
rb_mErrno
;eval.c
rb_cProc
+ ruby_frame
rb_cThread
rb_thread_tick
rb_thread_critical
@@ -72,6 +73,8 @@ EXPORTS
rb_cRange
;re.c
rb_cRegexp
+;regex.c
+ re_mbctab
;ruby.c
ruby_debug
ruby_verbose
@@ -370,7 +373,7 @@ EXPORTS
rb_fdopen
rb_file_open
rb_file_sysopen
- rb_io_unbuffered
+ rb_io_synchronized
rb_p
rb_gets
rb_str_setter
diff --git a/win32/win32.c b/win32/win32.c
index beb9545af1..a28006ce86 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -677,7 +677,8 @@ mypclose(FILE *fp)
//
// close the pipe
//
- CloseHandle(MyPopenRecord[i].oshandle);
+ // Closehandle() is done by fclose().
+ //CloseHandle(MyPopenRecord[i].oshandle);
fflush(fp);
fclose(fp);
@@ -1835,7 +1836,20 @@ myselect (int nfds, fd_set *rd, fd_set *wr, fd_set *ex,
errno = EINTR;
break;
case WSAENOTSOCK:
- errno = EBADF;
+ // assume normal files are always readable/writable
+ // fake read/write fd_set and return value
+ r = 0;
+ if (rd) r += rd->fd_count;
+ if (wr) r += wr->fd_count;
+ if (ex && ex->fd_count > 0) {
+ // exceptional condition never happen for normal files
+ if (r > 0)
+ ex->fd_count = 0;
+ else {
+ errno = EBADF;
+ r = SOCKET_ERROR;
+ }
+ }
break;
}
}