Commit graph

406 commits

Author SHA1 Message Date
matz
46fa18da5b Revert r11453
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-03 03:14:57 +00:00
matz
4ee717dcae * io.c (ruby_dup): start GC on ENOMEM as well.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-03 02:51:44 +00:00
matz
d9d3a1b2fb * io.c (pipe_open): command name should not contain null bytes.
[ruby-dev:29421]

* process.c (proc_spawn): ditto.

* process.c (proc_spawn_n): ditto.

* process.c (rb_f_system): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-04 07:26:47 +00:00
matz
17c3d539f0 * ruby.h: use ifdef (or defined) for macro constants that may or
may not be defined to shut up gcc's -Wundef warnings.
  [ruby-core:08447]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-31 06:34:10 +00:00
matz
6cd74eae6e * io.c (io_close): always calls "close" method of the receiver.
[ruby-core:6911] [ruby-core:8112]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-28 16:27:42 +00:00
matz
e510c0e71f * io.c (pipe_open): avoid closing uninitialized file descriptors.
a patch from <tommy at tmtm.org> [ruby-dev:28600]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-26 07:23:47 +00:00
akr
c4ab77fb3b avoid useless fcntl in rb_io_set_nonblock.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-05-22 22:12:57 +00:00
akr
13ddc9fdd0 * rubyio.h (rb_io_set_nonblock): declared.
* io.c (rb_io_set_nonblock): new function.
  (io_getpartial): nonblocking read support.
  (io_read_nonblock): new method: IO#read_nonblock.
  (io_write_nonblock): new method: IO#write_nonblock.

* ext/socket/socket.c
  (sock_connect_nonblock): new method: Socket#connect_nonblock.
  (sock_accept_nonblock): new method: Socket#accept_nonblock.
  (sock_recvfrom_nonblock): new method: Socket#recvfrom_nonblock.

  [ruby-core:7917]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-05-22 08:38:37 +00:00
akr
238cc5974b update readpartial doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-05-13 07:43:41 +00:00
akr
4c4dd6ca31 note EAGAIN on readpartial document.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-05-09 02:12:11 +00:00
akr
e732bfca12 doc update. [ruby-talk:186294]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-28 01:49:32 +00:00
matz
a43c264f80 * io.c (argf_forward): should not use frame->argv.
[ruby-core:07358]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-14 02:23:34 +00:00
akr
9a720a6c07 * io.c (READ_DATA_PENDING, READ_DATA_PENDING_COUNT): defined
for DragonFly BSD 1.4.0.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-13 20:41:02 +00:00
akr
91cd9984f7 Tue Jan 11 15:00:00 2006 Ville Mattila <mulperi@iki.fi>
* io.c (READ_PENDING*): Support solaris 64-bit enviroments.
         Solaris defines a opaque FILE struct when compiling 64 bit
         binaries. This means that we dont have access to _ptr etc.
         members anymore. The solution by Steven Lumos is to define
         FILE64 that has needed members available. I've modified
         the origanal patch a bit so that it compiles both with gcc
         and now free sun studio 11 compiler and both amd64 and sparc.
         NOTE! We have to 64 bit solaris FILE structure time to time
         otherwise we'll get breakage.
         [ruby-core:7106]

Fri Jan  6 10:16:20 2006  Steven Lumos <steven@lumos.us>

       * io.c (READ_DATA_PENDING): defined for 64bit Solaris on SPARC.
         [ruby-core:7057]
         (READ_DATA_PENDING_COUNT): ditto.
         (READ_DATA_PENDING_PTR): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-13 16:47:34 +00:00
akr
aa9cab871c * io.c (rb_f_backquote): fix a GC problem on
IA64 with gcc 4.0.3 20051216 (prerelease) -O3.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 17:11:20 +00:00
akr
f7d72f1e65 precedes registering global VALUE variables before initializing it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-12 03:36:49 +00:00
matz
e585523a2b * ext/digest/digest.c (rb_digest_base_s_digest): add volatile to
protect temporary context object.  [ruby-dev:27979]

* ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should
  be called before actual variable initialization.
  [ruby-dev:27986]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-12 00:36:54 +00:00
nobu
972e93de97 * configure.in, io.c: use sys/syscall.h if syscall.h is not available.
[ruby-core:06247]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-24 12:15:26 +00:00
nobu
9401edfe22 * io.c, pack.c, ext/syck/rubyext.c, ext/syck/syck.h, missing/isinf.c:
get rid of warnings.  fixed: [ruby-core:06247]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-13 14:30:54 +00:00
nobu
a9280ca7c9 * io.c (read_buffered_data): check if reached EOF. fixed: [ruby-dev:27334]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-27 23:12:43 +00:00
ocean
2299793709 * io.c: fixed rdoc. [ruby-Bugs:2523]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-27 07:08:58 +00:00
ocean
d07e0ae442 * io.c: PIPE_BUF is not defined on BeOS. use _POSIX_PIPE_BUF instead.
[ruby-dev:27185]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-20 08:14:56 +00:00
matz
4a92946ee2 * io.c (io_close): call rb_io_close() directly if io is a T_FILE
object.  [ruby-dev:27156]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-19 15:43:49 +00:00
akr
5b2eef31aa * file.c (rb_thread_flock): wrap the flock system call by
TRAP_BEG/TRAP_END to enable signals.  [ruby-dev:27122]

* ext/socket/socket.c (bsock_send): wrap the sendto and send system
  call by TRAP_BEG/TRAP_END to enable signals when writing to a socket
  which is full.  [ruby-dev:27132]

* io.c (rb_io_syswrite): wrap the write system call by
  TRAP_BEG/TRAP_END to enable signals when writing to a pipe which is
  full.  [ruby-dev:27134]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-18 18:22:44 +00:00
akr
94636e83dc * io.c (io_fwrite): wrap the write system call by TRAP_BEG/TRAP_END to
enable signals when writing to a pipe which is full.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-18 18:06:51 +00:00
matz
cc24eb8518 * lib/cgi.rb (CGI::Cookie): should handle multiple values for a
cookie name.  [ruby-talk:156140]

* string.c (rb_str_substr): should propagate taintness even for
  empty strings.  [ruby-dev:27121]

* string.c (rb_str_aref): should infect result if range argument
  is tainted.  [ruby-dev:27121]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-17 14:55:06 +00:00
akr
d97f060c6a document a blocking behavior of IO#eof?.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-05 15:02:10 +00:00
matz
6112d65af2 * io.c: check HAVE_SYS_IOCTL_H before including the header.
[ruby-dev:26610]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-25 07:29:39 +00:00
usa
149dca2560 * io.c (S_ISREG): need to define S_ISREG before it is used first.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-20 10:21:16 +00:00
akr
879fd5d904 don't use S_ISDIR.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-20 10:08:49 +00:00
ocean
7f50895e04 * io.c (wsplit_p): patch for the environment where
fcntl(F_GETFL, O_NONBLOCK) is not supported. in that case,
  set FMODE_WSPLIT without fcntl check. [ruby-dev:26566]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-20 09:46:57 +00:00
akr
7adccbb285 * io.c (rb_io_ctl): update FMODE_WSPLIT_INITIALIZED and FMODE_WSPLIT
by F_SETFL.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-20 09:14:30 +00:00
matz
5b7e24d744 * io.c (rb_io_inspect): replace sprintf() with "%s" format all
over the place by snprintf() to avoid integer overflow.

* sample/svr.rb: service can be stopped by ill-behaved client; use
  tsvr.rb instead.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-19 08:25:39 +00:00
akr
2b2b77d7a7 * rubyio.h (FMODE_WSPLIT, FMODE_WSPLIT_INITIALIZED): new constant.
* io.c (wsplit_p): new function.
  (io_fflush): split writing data by PIPE_BUF if wsplit_p is true in
  multi-threaded mode.
  (io_fwrite): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-18 01:00:23 +00:00
akr
d9aec0cbe3 * io.c (rb_io_eof, remain_size, read_all, io_read, appendline)
(swallow, rb_io_each_byte, rb_io_getc): revert previous change.

* io.c (rb_io_eof, io_fread, appendline, swallow, rb_io_each_byte)
  (rb_io_getc, rb_getc): call clearerr before getc to avoid
  stdio incompatibility.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-12 08:12:42 +00:00
akr
84eca25a32 * io.c (rb_io_eof, remain_size, read_all, io_read, appendline)
(swallow, rb_io_each_byte, rb_io_getc): don't rely EOF flag.
  [ruby-talk:141527]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-12 07:28:16 +00:00
matz
88d5dcc8de * exception error messages updated. [ruby-core:04497]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-28 02:45:23 +00:00
akr
131824065d fix some documents.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-25 04:03:02 +00:00
akr
9ceeedb874 fix IO#read docment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-24 11:43:12 +00:00
akr
8ef1efc90c * io.c (io_fread): don't warn nonblocking behavior by default.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-12 19:50:29 +00:00
akr
e80636f6f2 * io.c (io_fread): warn nonblocking behavior.
(io_readpartial): new method IO#readpartial.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-08 18:17:13 +00:00
matz
918bb50674 * stable version 1.8.2 released.
* lib/fileutils.rb (mkdir, mkdir_p): should ensure directory
  permission. (backportted from HEAD, 1.47)

* lib/fileutils.rb (traverse, remove_dir): untaint trasted
  objects. (backportted from HEAD, 1.46)

* io.c: cancel io_reopen() change on Dec. 24th.

* dln.c: use <dlfcn.h> for NetBSD.  [ruby-dev:25313]

* io.c (rb_f_select): [ruby-dev:25312]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-25 10:56:41 +00:00
nobu
2907bc0f81 * io.c (io_reopen, rb_io_reopen): prohibit to change access mode for
special IO ports.  [ruby-dev:25225]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-23 17:53:58 +00:00
nobu
b258364f30 * io.c (io_reopen): restore exact mode. fixed: [ruby-core:04003]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-23 00:38:39 +00:00
nobu
44a49bc2e0 * io.c (io_reopen): readable flag was left unset for read-only IO.
fixed: [ruby-core:04003]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-23 00:19:03 +00:00
nobu
46213a37bb * io.c (rb_io_mode_modenum): replace O_ACCMODE with O_RDWR.
fixed: [ruby-dev:25273]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-22 02:15:35 +00:00
nobu
63699fc66a * io.c (io_reopen): keep duplex pipe in correct mode for exception
safeness.  fixed: [ruby-dev:25152]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-21 03:22:48 +00:00
usa
870e8c03e4 * io.c (io_fwrite): workaround for MSVCRT's bug.
fixed: [ruby-core:03982]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-20 03:43:14 +00:00
nobu
78a75f90c0 * io.c (rb_io_eof): check if closed before clearerr().
fixed: [ruby-dev:25251]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-20 02:21:14 +00:00
matz
0ed07fb125 * io.c (io_reopen): [ruby-dev:25150]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-10 15:13:07 +00:00