1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

merge -r 12143:12147

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shyouhei 2007-05-22 16:28:10 +00:00
parent b77c7dc903
commit 73f2c5c3b4
4 changed files with 29 additions and 13 deletions

View file

@ -1,3 +1,11 @@
Wed May 23 01:28:14 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* error.c (rb_notimplement), io.c (pipe_open): removed definite
articles and UNIX manual section from messages. [ruby-dev:30690]
* io.c (pipe_open): raise NotImplementedError for command "-" on
platforms where fork(2) is not available. [ruby-dev:30681]
Wed May 23 00:03:42 2007 NAKAMURA Usaku <usa@ruby-lang.org>
* ext/socket/socket.c (s_recv, s_recvfrom): some systems (such as

View file

@ -1083,7 +1083,7 @@ void
rb_notimplement()
{
rb_raise(rb_eNotImpError,
"the %s() function is unimplemented on this machine",
"%s() function is unimplemented on this machine",
rb_id2name(ruby_frame->last_func));
}

30
io.c
View file

@ -3026,11 +3026,29 @@ pipe_open(pstr, pname, mode)
{
int modef = rb_io_mode_flags(mode);
OpenFile *fptr;
#if defined(DJGPP) || defined(__human68k__) || defined(__VMS)
FILE *f;
#else
int pid;
#ifdef _WIN32
FILE *fpr, *fpw;
#else
int pr[2], pw[2];
#endif
#endif
volatile int doexec;
if (!pname) pname = StringValueCStr(pstr);
doexec = (strcmp("-", pname) != 0);
#if defined(DJGPP) || defined(__human68k__) || defined(__VMS) || defined(_WIN32)
if (!doexec) {
rb_raise(rb_eNotImpError,
"fork() function is unimplemented on this machine");
}
#endif
#if defined(DJGPP) || defined(__human68k__) || defined(__VMS)
f = popen(pname, mode);
if (!f) rb_sys_fail(pname);
@ -3052,10 +3070,6 @@ pipe_open(pstr, pname, mode)
}
#else
#ifdef _WIN32
int pid;
FILE *fpr, *fpw;
if (!pname) pname = StringValueCStr(pstr);
retry:
pid = pipe_exec(pname, rb_io_mode_modenum(mode), &fpr, &fpw);
if (pid == -1) { /* exec failed */
@ -3085,16 +3099,10 @@ retry:
return (VALUE)port;
}
#else
int pid, pr[2], pw[2];
volatile int doexec;
if (!pname) pname = StringValueCStr(pstr);
if (((modef & FMODE_READABLE) && pipe(pr) == -1) ||
((modef & FMODE_WRITABLE) && pipe(pw) == -1))
rb_sys_fail(pname);
doexec = (strcmp("-", pname) != 0);
if (!doexec) {
fflush(stdin); /* is it really needed? */
fflush(stdout);

View file

@ -2,7 +2,7 @@
#define RUBY_RELEASE_DATE "2007-05-23"
#define RUBY_VERSION_CODE 186
#define RUBY_RELEASE_CODE 20070523
#define RUBY_PATCHLEVEL 9
#define RUBY_PATCHLEVEL 10
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8