227 Commits

Author SHA1 Message Date
usa
b367743e92 * win32/win32.c (ioctl): should set errno.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-14 13:09:11 +00:00
usa
1110e7123c * win32/win32.c (do_select, rb_w32_select): brush up.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-01 14:57:06 +00:00
ocean
fb5dd968ec * win32/win32.c (rb_w32_select): documented problem.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-17 21:44:24 +00:00
ocean
f2107f2ec1 * win32/win32.c (rb_w32_select): fixed deadlock bug.
because select(2) modifies its fd_set arguments, it must be
  restored sometimes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-17 12:20:07 +00:00
ocean
f0bcbbef67 * win32/win32.c (rb_w32_select): I hope performance problem was
solved.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-17 05:22:33 +00:00
ocean
aa21055faf * win32/win32.c (rb_w32_select): console support is back.
but still has performance problem because I loosely took 1 second
  for wait time. I'll fix it later. (The reason I drastically changed
  the code is that I wanted to implement the fileset management as
  single function, and I was worried that if pipe or console
  was always available, socket may not be processed any time)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-17 04:53:26 +00:00
ocean
846b1c35e5 * win32/win32.c (rb_w32_select): select for socket didn't work.
this caused deadlock in drb test. this happened because GetFileType
  for socket handle returns FILE_TYPE_PIPE. Of course, it's not a
  pipe. So socket handle didn't reach winsock's select function.

* win32/win32.c (rb_w32_select): read for pipe still kept brocking
  even if writer handle was closed.

    r,w = IO.pipe

    Thread.new {
      sleep 3; puts "------- 1"
      w.puts("foo")
      sleep 3; puts "------- 2"
      w.puts("boo")
      sleep 3; puts "------- 3"
      w.close
    }

    until r.eof? # should break by w.close but didn't.
      puts r.gets
    end

* win32/win32.c (rb_w32_select): temprary reverted console support
  but it'll be back soon.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-17 02:42:59 +00:00
nobu
5a2f770fb1 * dir.c (rb_push_glob): fix delimiter bug. fixed: [ruby-dev:27105]
* dir.c (dir_s_aref, dir_s_glob): allow multiple patterns.
  [ruby-dev:27110]

* win32/win32.c (cmdglob): enable brace expansion.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-16 13:46:05 +00:00
usa
7c5eaf70a3 * win32/win32.c (rb_w32_pipe_exec): remove unnecessary CloseHandle().
* win32/win32.c (extract_console_fd, peek_console): new functions.

* win32/win32.c (rb_w32_select): check consoles by polling them.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-15 02:03:43 +00:00
usa
e2472dafa0 * win32/win32.c (collect_file_fd): rename from extract_file_fd.
* win32/win32.c (extract_pipe_fd, peek_pipe): new functions.

* win32/win32.c (rb_w32_select): check pipes by polling them.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-14 14:30:37 +00:00
nobu
9d2b69a273 * dir.c (ruby_glob): glob function not using ruby exception system.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-14 13:41:02 +00:00
ocean
bf102e8a35 * win32/win32.[hc] (rb_w32_argv_size, ...): reverted my latest change
to avoid incompatible pointer warning. (mingw32)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-12 11:40:40 +00:00
ocean
8955a2d930 * win32/win32.[hc] (rb_w32_utime): constified.
* win32/win32.h (rb_w32_stat): added prototype.

* win32/win32.[hc] (rb_w32_argv_size,rb_w32_join_argv,rb_w32_aspawn):
  changed `char *const *' to `const char *const *'. (constify string)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-07 00:37:53 +00:00
usa
e67d73e0f3 * win32/win32.c (socketpair_internal): need to call open_ifs_socket()
to create sockets instead of winsock's socket().
  fixed: [yarv-dev:581]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-18 02:07:28 +00:00
usa
ce8d9b4a0d * configure.in, {bcc32,win32,wince}/Makefile.sub (HAVE_SNPRINTF,
HAVE_VSNPRINTF): use win32/win32.c's implementation instead of
  missing/vsnprintf.c's.

* win32/win32.[ch] (rb_w32_snprintf, rb_w32_vsnprintf): reverted.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-03 01:21:20 +00:00
usa
528f4c66dd * win32/win32.[ch]: (rb_w32_vsnprintf, rb_w32_snprintf): removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-25 14:50:12 +00:00
nobu
6524f34a26 * sprintf.c (rb_vsprintf, rb_sprintf): new functions return new String,
using missing/vsnprintf.c.  [ruby-dev:26580]

*  missing/vsnprintf.c: made the output changeable.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-23 01:02:18 +00:00
ocean
c6a782c14e * win32/win32.[hc]: constified socket functions. [ruby-dev:26553]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-16 06:59:05 +00:00
ocean
3345d742e7 reordered just for diffing.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-14 09:58:13 +00:00
ocean
59970fde60 * win32/win32.c (rb_w32_strerror): should return correct message
for ENAMETOOLONG and ENOTEMPTY. (bcc32) [ruby-dev:26533]

* win32/win32.c (rb_w32_strerror): stripped CR LF on the tail.
  (bcc32) [ruby-dev:26533]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-14 09:33:52 +00:00
ocean
80b0773d33 * win32/win32.c (rb_w32_mkdir): should set EEXIST (not EACCES)
if file or directory already exists. (bcc32)

* win32/win32.c (rb_w32_rmdir): should set ENOTDIR (not EINVAL)
  if it is not directory. (bcc32, win32)

* win32/win32.c (rb_w32_rmdir, rb_w32_unlink): restore
  FILE_ATTRIBUTE_READONLY flag on function failure.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-13 10:40:06 +00:00
nobu
682d1bb068 * win32/win32.c (StartSockets): iSockOpt is no longer used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-08 10:55:29 +00:00
usa
2e0680f221 * win32/win32.c (open_ifs_socket): new function.
* win32/win32.c (StartSockets, rb_w32_socket): use open_ifs_socket()
  instead of socket().
  all changes are derived from [ruby-core:5388].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-06 02:20:58 +00:00
usa
b03649bc2a * ext/dbm/dbm.c (fdbm_closed): new method DBM#closed?
* ext/gdbm/gdbm.c (fgdbm_closed): new method GDBM#closed?

* ext/sdbm/init.c (fsdbm_closed): new method SDBM#closed?

* test/dbm/test_dbm.rb, test/gdbm/test_gdbm.rb, test/sdbm/test_sdbm.rb
  (teardown): close all db objects before deleting data files.

* win32/win32.{ch} (unlink): hook runtime function to change
  file attribute before unlinking.
  merge from 1.8, see [ruby-dev:26360]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-20 08:17:53 +00:00
usa
a70902a5c9 * win32/win32.c (NtInitialize): fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-18 05:10:09 +00:00
nobu
b272844547 * dir.c (glob_helper): get rid of using String. [ruby-dev:26180]
* eval.c (ruby_options), win32/win32.c (NtInitialize): move argument
  intialization back.  [ruby-dev:26180]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-18 02:08:00 +00:00
usa
0a6a371abf * win32/win32.c (unixtime_to_filetime): use localtime() instaed of
gmtime() when using FileLocalTimeToFileTime().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-17 02:52:43 +00:00
ocean
208f2f27ca * win32/win32.{h,c}: define rb_{p,g,u}id_t.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-15 18:36:56 +00:00
nobu
c23d3e4640 * win32/win32.c (unixtime_to_filetime): deal with DST.
[ruby-talk:141817]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-15 00:57:49 +00:00
nobu
642ddf7201 * configure.in: Check for the availability of pid_t, gid_t and uid_t and
remove AC_TYPE_UID_T.  fixed: [ruby-core:04745]

* defines.h: Remove pid_t typedef.

* ruby.h: Define rb_pid_t, rb_gid_t and rb_uid_t in accordance with
 the available system types.

* process.c: Change instances of pid_t and gid_t to their rb_*
 counterparts.

* ext/pty/pty.c: Change pid_t to rb_pid_t.

* vms/config.h: Define HAVE_{P,G,U}ID_T to 1.

* win32/Makefile.sub: Remove #define for {g,u}id_t.

* win32/win32.c: Change pid_t to rb_pid_t.

* wince/Makefile.sub: Remove #define for {g,u}id_t.

* wince/sys/types.h: Remove definitions of {p,g,u}id_t.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-14 14:57:53 +00:00
ocean
4b0f7cecc4 * dir.c (rb_glob): fixed mismatch of argument.
* dir.c (fnmatch): removed unnecessary code. (by string.c 1.219)

* win32/win32.c (NtInitialize): ditto. (by numeric.c 1.117)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-05 09:30:24 +00:00
usa
302b8ff055 * file.c (eaccess): workaround for VC++8 runtime.
* win32/win32.c (ioinfo): VC++8 support.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-04 17:42:55 +00:00
nobu
6ef3fe6349 * win32/win32.c (rb_w32_fdopen): suppress warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-10 12:18:16 +00:00
usa
a32bc08d36 * configure.in, win32/Makefile.sub (LIBS, COMMON_HEADERS): use
winsock2 on mswin32/mingw.

* ext/socket/extconf.rb: ditto.

* win32/win32.c (StartSockets): ditto.

* win32/win32.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-10 04:55:34 +00:00
nobu
80f4330973 * bcc32/Makefile.sub (COMMON_LIBS): add libraries included in
import32.lib.

* lib/mkmf.rb (create_makefile): restrict prefixing with srcdir to
  rule lines, add search path to implicit rules, and set Borland make
  special macros for search path.

* win32/win32.c, win32/win32.h (read): aboid a BCC runtime bug.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-10 03:07:24 +00:00
nobu
6400a671b8 * win32/win32.c (init_stdhandle): assign standard file handles.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-10 03:06:43 +00:00
usa
66d39f93b4 * win32/win32.c (flock_winnt, flock_win95): unlock file even if
LOCK_NB is specified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-26 01:51:06 +00:00
ocean
160bfa5bef * win32/win32.c (rb_w32_close): didn't close socket handle.
* win32/win32.c (rb_w32_open_osfhandle): bcc32's _open_osfhandle
  never set EMFILE.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-06 11:05:31 +00:00
ocean
09736c1621 * parse.y (BITSTACK_POP): workaround for bcc32 compiler's bug.
shift assignment operator '>>=' for __int64 in struct may
  generate collapsed code. [ruby-dev:25342]

* win32/win32.[ch]: failed to compile on bcc32 (and probably wince)
  [ruby-dev:25306]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-05 08:00:50 +00:00
usa
f598caf621 * win32/win32.c (rb_w32_fdisset): check whether the handle is valid.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-15 05:32:53 +00:00
usa
2f35e1e146 * win32/win32.c (rb_w32_close): need to reset osfhnd().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-14 08:10:32 +00:00
usa
3f56463129 * win32/win32.c (rb_w32_pipe_exec): need to close original socket
handle.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-08 08:38:59 +00:00
usa
87a77c7174 * win32/win32.c (rb_w32_pipe_exec): must close original handle
before exec. fixed: [ruby-dev:25112]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-08 04:56:07 +00:00
usa
bc4088d768 * win32/win32.c (rb_w32_fclose, rb_w32_close): shutdown socket
before closesocket(). fixed: [ruby-dev:25112]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-08 02:54:24 +00:00
usa
d5b434088a * win32/win32.c (is_socket): reorder of function definitions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-07 16:36:29 +00:00
usa
c3ce319d7d * io.c (pipe_open): win32 bidirectional pipe support.
* win32/win32.[ch] (rb_w32_pipe_exec): ditto.

* win32/win32.[ch] (socketpair): new function. POSIX socketpair
  emulation.

* win32/win32.c (socketpair_internal): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-07 15:47:59 +00:00
usa
571e1361b6 * io.c (dir_s_mkdir): win32 special processing doesn't need any longer.
* win32/win32.[ch] (rb_w32_mkdir): new function. POSIX.1 compatible
  interface.

* win32/win32.[ch] (rb_w32_rmdir): new function.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-07 04:45:46 +00:00
usa
1acf7e6b01 * io.c (is_socket): new function.
* io.c (rb_io_close_read, rb_io_close_write): use is_socket().

* io.c (rb_io_fptr_finalize): need to check fptr->f before calling
  rb_io_fptr_cleanup().

* io.c (pipe_open): win32 pipe support (experimental).

* win32/win32.[ch] (rb_w32_pipe_exec): return file descripters
  instead of FILE structure.

* win32/win32.[ch] (rb_w32_is_socket): new function.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-06 11:19:27 +00:00
usa
0412ddfd24 * win32/win32.c (CreateChild): push back the last space before next
loop because CharNext() eats it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-29 04:17:05 +00:00
usa
fce2bb5ea8 * win32/win32.[ch] (rb_w32_isatty): new function to replace MSVCRT's
isatty because it never sets errno.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-18 11:52:46 +00:00