Commit graph

1924 commits

Author SHA1 Message Date
akr
b1166a0469 * io.c (copy_stream_body): call rb_io_check_readable and
rb_io_check_writable.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-21 10:09:33 +00:00
nobu
d92efa3c0b * io.c (copy_stream_func): suppress warnings.
* thread_pthread.c (add_signal_thread_list): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-20 06:14:49 +00:00
akr
ae2921ae67 * io.c (copy_stream_rbuf_to_dst): removed.
(copy_stream_fallback_body): don't bypass write method.
  (copy_stream_body): simplified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-20 06:13:17 +00:00
akr
01c433b58c * io.c (copy_stream_fallback): write directly (bypassing write method)
if possible.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-20 04:59:04 +00:00
akr
f0fbfeda51 avoid warnings in copy_stream_body.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-20 04:12:32 +00:00
akr
a16e0c29db * io.c (copy_stream_fallback): read directly (bypassing readpartial)
if possible.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-20 03:51:57 +00:00
akr
9579647fe1 * io.c (copy_stream_body): use readpartial and write method for
non-IOs such as StringIO and ARGF.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-19 19:47:16 +00:00
mame
0a2053713b * enc/trans/utf_16_32.c (fun_so_to_utf_16be, fun_so_to_utf_16le): add
parentheses to remove warnings of gcc.

* io.c (rb_io_getc): remove unused variables.

* compile.c (NODE_NEXT, NODE_REDO): remove unused labels.

* ext/nkf/nkf.c (rb_nkf_convert): remove unused variables.

* ext/syck/rubyext.c (syck_resolver_initialize,
  syck_resolver_detect_implicit, syck_emitter_emit): remove unused
  variables.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-17 13:22:40 +00:00
matz
5a4c8a1ad7 * io.c: #undef rb_argv moved before #define.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-15 10:21:01 +00:00
usa
b2acbb2c67 * {bcc,win}32/Makefile.sub (config.h): define ssize_t.
* io.c (copy_stream_body): some platform don't have O_NOCTTY.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-31 09:58:41 +00:00
naruse
839dc7f9ab * io.c (io_getc): set coderange while getting characters.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-30 19:16:29 +00:00
yugui
70153a6a73 * io.c (rb_io_lines, rb_io_bytes, rb_io_chars) Fixed their rdocs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-30 15:39:00 +00:00
matz
ef260b085e revert git backfire in r15860; sorry
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-30 15:00:12 +00:00
matz
3730710d79 * proc.c (proc_dup): should copy is_lambda attribute as well.
[ruby-talk:296244]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-30 14:50:55 +00:00
akr
c8ac4a209b forgot to return a value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-30 07:35:09 +00:00
akr
0ef84dcefc * io.c: IO.copy_stream implemented. [ruby-dev:33843]
* thread.c (rb_fd_select): new function.

* configure.in (sys/sendfile.h): check the header file.
  (sendfile): check the function.
  (pread): check the function.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-30 06:38:05 +00:00
yugui
4aa9be0f5c * io.c (rb_io_each_char, rb_io_chars, argf_each_char, io_getc): Added character-wise
iterators; IO#each_char, IO#chars, ARGF#each_char. [ruby-dev:34052]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-28 10:58:31 +00:00
nobu
068ce36454 * io.c (rb_f_gets, rb_f_readline, rb_f_readlines): delegates to ARGF
as well as puts and putc.  [ruby-dev:34100]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-21 12:32:33 +00:00
nobu
2029a832e5 * io.c (argf_getline): use receiver.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-20 12:46:35 +00:00
nobu
890b0352dd * io.c: removed trailing blanks.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 15:29:09 +00:00
nobu
a130e92582 * io.c (argf_initialize_copy): get rid of segfault.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 15:21:15 +00:00
nobu
42522ee2a6 * io.c (argf_tell, argf_seek_m, argf_set_pos, argf_rewind,
argf_fileno, argf_to_io, argf_eofl, argf_getc, argf_getbyte,
  argf_readchar, argf_readbyte, argf_each_line): use receiver.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 15:14:01 +00:00
nobu
bdfe0b8f18 * io.c (rb_io_putc, rb_io_puts): ouput directly if the reciever is
rb_stdout to get rid of infinite recursion.  [ruby-dev:34059]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 14:52:43 +00:00
akr
861219ce4a fix doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-09 01:04:46 +00:00
matz
39787ea14d * numeric.c (fix_to_s): avoid rb_scan_args() when no argument
given. 
* bignum.c (rb_big_to_s): ditto.
* enum.c (enum_first): ditto.
* eval_jump.c (rb_f_catch): ditto.
* io.c (rb_obj_display): ditto.
* class.c (rb_obj_singleton_methods): ditto.
* object.c (rb_class_initialize): ditto.
* random.c (rb_f_srand): ditto.
* range.c (range_step): ditto.
* re.c (rb_reg_s_last_match): ditto.
* string.c (rb_str_to_i): ditto.
* string.c (rb_str_each_line): ditto.
* string.c (rb_str_chomp_bang): ditto.
* string.c (rb_str_sum): ditto.

* string.c (str_modifiable): declare inline.
* string.c (str_independent): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-05 05:22:17 +00:00
naruse
70b55c5dcf * io.c (open_key_args): use rb_io_open_with_args instead of rb_f_open.
[ruby-core:15763]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-04 05:36:08 +00:00
naruse
8ac9b7c2ed * io.c (open_key_args): use rb_io_open instead of rb_f_open.
[ruby-core:15746]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-03 20:34:58 +00:00
nobu
3b5d60c0b1 * io.c (rb_io_ungetc): reduce redundant call.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-02 14:04:02 +00:00
nobu
b8a733d0b8 * io.c (struct argf): packed ARGF stuffs.
* ruby.c (proc_options): use ruby_set_inplace_mode().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-01 08:59:04 +00:00
naruse
4c7d380a81 * io.c (read_all, rb_io_getline_fast): encoding is rb_input_encoding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-01 01:33:17 +00:00
naruse
198e1d074c * io.c (rb_io_getline_fast): scan coderange.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-28 06:30:38 +00:00
nobu
586f727b8c * io.c (rb_io_getline_1): get rid of segfault. [ruby-dev:33938]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-28 02:25:14 +00:00
naruse
343a1504e3 * io.c (read_all): fix if.
* io.c (rb_io_getline_1): move needless set encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-27 20:56:03 +00:00
naruse
4dd9fd71b3 * string.c (rb_str_coderange_scan_restartable): coderange scaning
for partial read.

* io.c (read_all): set coderange when not convert encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-27 15:19:22 +00:00
matz
ca22f3e168 * io.c (rb_f_putc): invoke stdout method so that redefining putc
may take effect.   [ruby-talk:291844]

* io.c (rb_f_puts): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-21 07:47:12 +00:00
nobu
ce0264b6f5 * io.c (argf_set_encoding): uses current_file after check if next
input is available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-21 05:49:42 +00:00
nobu
7f2ca5ba7a * io.c (argf_set_encoding): uses current_file after check for next
input.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-21 05:47:12 +00:00
usa
f761aacdd8 * io.c (open_key_args): set arg->io even if no options passed.
[ruby-dev:33072]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-20 01:09:21 +00:00
matz
878bbd1199 * io.c (open_key_args): allow specifying both :mode and :encoding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-15 07:35:11 +00:00
akr
433fbebfbc * io.c (io_reopen): check STDIN, STDOUT and STDERR mode according to
stdio streams.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-14 12:01:50 +00:00
akr
82b088aa0c * io.c (io_reopen): don't change access mode for stdin, stdout and
stderr.  [ruby-core:15360]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-07 07:40:25 +00:00
nobu
6f4d6b1650 * io.c (rb_io_close_read): replaces fptr with the tied writer if
duplex.

* io.c (rb_io_close_write): unties the tied IO for writing if duplex.
  [ruby-dev:33532]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-30 21:24:24 +00:00
matz
d7f5b291be * io.c (open_key_args): allow encoding key to take two encoding
names.  a patch from <rubikitch AT ruby-lang.org>.  [ruby-dev:33540]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-30 17:23:27 +00:00
akr
dc36ca0ba5 * io.c (select_internal): fix SEGV by `select [STDIN],nil,[STDIN]'.
fixed by Petr Chromec.
  http://rubyforge.org/tracker/index.php?func=detail&aid=17275&group_id=426&atid=1698


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-30 15:21:40 +00:00
matz
06cd63ce93 * io.c (rb_open_file): should check NUL in path.
<http://www.rubyist.net/~matz/20080125.html#c01>.

* io.c (rb_io_s_popen): ditto.

* io.c (rb_io_reopen): ditto.

* io.c (next_argv): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-28 03:32:27 +00:00
akr
fc208c1bd5 * include/ruby/oniguruma.h: precise mbclen API redesigned to avoid
inline functions.
  (onigenc_mbclen_charfound): removed.
  (onigenc_mbclen_needmore): removed.
  (onigenc_mbclen_recover): removed.
  (ONIGENC_MBCLEN_CHARFOUND): removed.
  (ONIGENC_MBCLEN_CHARFOUND_P): defined.
  (ONIGENC_MBCLEN_CHARFOUND_LEN): defined.
  (ONIGENC_MBCLEN_INVALID): removed.
  (ONIGENC_MBCLEN_INVALID_P): defined.
  (ONIGENC_MBCLEN_NEEDMORE): removed.
  (ONIGENC_MBCLEN_NEEDMORE_P): defined.
  (ONIGENC_MBCLEN_NEEDMORE_LEN): defined.
  (ONIGENC_MBC_ENC_LEN): use onigenc_mbclen_approximate.

* regenc.c (onigenc_mbclen_approximate): defined.

* include/ruby/encoding.h (MBCLEN_CHARFOUND): removed.
  (MBCLEN_INVALID): removed.
  (MBCLEN_NEEDMORE): removed.
  (MBCLEN_CHARFOUND_P): defined.
  (MBCLEN_INVALID_P): defined.
  (MBCLEN_NEEDMORE_P): defined.
  (MBCLEN_CHARFOUND_LEN): defined.
  (MBCLEN_NEEDMORE_LEN): defined.

* encoding.c: use new API.

* re.c: ditto.

* string.c: ditto.

* parse.y: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-27 14:27:07 +00:00
akr
f4d73e05d4 * io.c (rb_io_getline_fast): don't care ASCII incompatible encoding.
(prepare_getline_args): generate a newline according to IO encoding
  when necessary.
  (rb_io_getline_1): call rb_io_getline_fast only for ASCII
  compatible encoding.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-25 15:57:32 +00:00
matz
4bcfd50ee7 * io.c (rb_io_getline_fast): the end point of left_char_head()
must be the last character.  [ruby-cvs:22445]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-24 07:34:07 +00:00
matz
9580a9ca91 * string.c (rb_str_each_line): use memchr(3) for faster newline
search.

* io.c (appendline): remove unused arguments

* io.c (rb_io_getline_fast): make much simpler (and faster).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-23 18:43:51 +00:00
matz
f7929ed206 * io.c (Init_IO): stdin/stdout may not be duplex.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-17 22:21:40 +00:00