aboutsummaryrefslogtreecommitdiffstats
path: root/io.c
Commit message (Collapse)AuthorAgeFilesLines
* * io.c (rb_f_p): RDoc update. a patch from murphy <murphy AT rubychan.de>.matz2007-12-141-1/+3
| | | | | | [ruby-core:14010] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_synchronized): should check if initialized.matz2007-12-131-0/+1
| | | | | | [ruby-dev:32585] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_getc): use default external encoding if fptr->enc ismatz2007-12-121-2/+4
| | | | | | | | | not set. [ruby-dev:32565] * lib/rubygems/package.rb (Gem::TarReader::Entry::rewind): typo fixed. [ruby-dev:32565] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (read_all): should associate default external encoding.matz2007-12-121-14/+13
| | | | | | * io.c (io_read): should NOT associate default external encoding. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_mode_enc): allow specifying external encoding inmatz2007-12-121-7/+35
| | | | | | open mode, e.g. open(path, "r:utf-8"). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_check_readable): set default external encoding tomatz2007-12-121-24/+25
| | | | | | | | STDIN. * io.c (io_enc_str): associate encoding to output string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_get_path): use the original object if to_path method isnobu2007-12-091-1/+2
| | | | | | | | | | not defined. [ruby-dev:32473] * io.c (rb_f_open): call to_open on non-string objects, instead of to_str. [ruby-dev:32473] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * encoding.c (rb_enc_precise_mbclen): new function for mbclen withakr2007-12-061-12/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | validation. * include/ruby/encoding.h (rb_enc_precise_mbclen): declared. (MBCLEN_CHARFOUND): new macro. (MBCLEN_INVALID): new macro. (MBCLEN_NEEDMORE): new macro. * include/ruby/oniguruma.h (OnigEncodingTypeST): replace mbc_enc_len by precise_mbc_enc_len. (ONIGENC_PRECISE_MBC_ENC_LEN): new macro. (ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND): new macro. (ONIGENC_CONSTRUCT_MBCLEN_INVALID): new macro. (ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE): new macro. (ONIGENC_MBCLEN_CHARFOUND): new macro. (ONIGENC_MBCLEN_INVALID): new macro. (ONIGENC_MBCLEN_NEEDMORE): new macro. (ONIGENC_MBC_ENC_LEN): use ONIGENC_PRECISE_MBC_ENC_LEN. * enc/euc_jp.c: validation implemented. * enc/sjis.c: ditto. * enc/utf8.c: ditto. * string.c (rb_str_inspect): use rb_enc_precise_mbclen for invalid encoding. (rb_str_valid_encoding_p): new method String#valid_encoding?. * io.c (rb_io_getc): use rb_enc_precise_mbclen. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_f_open): use to_open for every non-string object. pathmatz2007-12-011-9/+17
| | | | | | object may use method_missing. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_read_internal, rb_sysopen_internal): remove C99 dependency.nobu2007-11-261-2/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c: add rb_read_internal() as blocking function.ko12007-11-231-11/+29
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.h, vm_core.h: decl of rb_gc_save_machine_context()ko12007-11-201-2/+22
| | | | | | | | | | | | | | should be at vm_core.h. * include/ruby/ruby.h, intern.h: remove type rb_thread_t. * include/ruby/intern.h: change rb_unblock_function_t, rb_unblock_function_t. * file.c, process.c: apply above changes. * thread.c, thread_pthread.ci, thread_win32.ci: ditto. * io.c: support blocking open (2). [ruby-core:13614] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_close_on_exec_p): new method IO#close_on_exec?.akr2007-11-201-0/+96
| | | | | | | (rb_io_set_close_on_exec): new method IO#close_on_exec=. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/win32.h win32/win32.c (rb_w32_pipe_exec): use dual fdusa2007-11-201-2/+2
| | | | | | | | | | | | instead of socketpair when mode is RDWR. * io.c (pipe_open): pass &write_fd to rb_w32_pipe_exec(). * io.c (popen_redirect): define only when HAVE_FORK. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/io.h (rb_io_t): add tied_io_for_writing member.akr2007-11-201-24/+146
| | | | | | | | | | | | | * io.c: use tied_io_for_writing for duplex popen. * gc.c: mark tied_io_for_writing. * common.mk: gc.o depends io.h. [ruby-dev:32205] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_each_byte): should update rbuf_off and rbuf_len formatz2007-11-091-2/+2
| | | | | | each iteration. [ruby-dev:31659][ruby-dev:32192] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13853 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_tell, rb_io_seek): check errno too. [ruby-dev:32093]nobu2007-10-251-2/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (Init_IO): remove obsolete variables: $defout, $deferr.matz2007-10-041-18/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_fdopen): create IO object from fd.nobu2007-09-281-0/+9
| | | | | | | | | * parse.y (yycompile): use encoding of the source as default. * ruby.c (proc_options, load_file): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_getline_fast, rb_io_getline_1): set encoding to thenobu2007-09-281-5/+10
| | | | | | | result string, as well as getc. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (io_ungetc): reallocate internal buffer if pushing datamatz2007-09-251-7/+4
| | | | | | excess capacity. [ruby-dev:31650] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (popen_exec), process.c (rb_spawn): stop other threads beforenobu2007-09-201-0/+1
| | | | | | | exec. [ruby-core:08262] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_s_sysopen): should not use alloca for unknowen sizenobu2007-09-121-2/+2
| | | | | | | | | | | input. [ruby-dev:31775] * parse.y (rb_id2str): ditto. * marshal.c (w_float): use snprintf instead of sprintf. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_getc): forgot to commit rb_enc_mbclen() fix.matz2007-09-061-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_each_byte): caused infinite loop. [ruby-dev:31652]matz2007-08-261-3/+5
| | | | | | | | | | | | | * io.c (rb_io_getc): should return nil at EOF, not EOFError. * lib/delegate.rb (SimpleDelegator::__setobj__): use raise argument to specify backtrace. * test/ruby/test_fnmatch.rb (TestFnmatch::bracket_test): String#include? no longer works for Fixnum. use #chr. [ruby-dev:31652] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (swallow): removed condition using an unset variable.nobu2007-08-251-7/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * encoding.c: provide basic features for M17N.matz2007-08-251-94/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * parse.y: encoding aware parsing. * parse.y (pragma_encoding): encoding specification pragma. * parse.y (rb_intern3): encoding specified symbols. * string.c (rb_str_length): length based on characters. for older behavior, bytesize method added. * string.c (rb_str_index_m): index based on characters. rindex as well. * string.c (succ_char): encoding aware succeeding string. * string.c (rb_str_reverse): reverse based on characters. * string.c (rb_str_inspect): encoding aware string description. * string.c (rb_str_upcase_bang): encoding aware case conversion. downcase, capitalize, swapcase as well. * string.c (rb_str_tr_bang): tr based on characters. delete, squeeze, tr_s, count as well. * string.c (rb_str_split_m): split based on characters. * string.c (rb_str_each_line): encoding aware each_line. * string.c (rb_str_each_char): added. iteration based on characters. * string.c (rb_str_strip_bang): encoding aware whitespace stripping. lstrip, rstrip as well. * string.c (rb_str_justify): encoding aware justifying (ljust, rjust, center). * string.c (str_encoding): get encoding attribute from a string. * re.c (rb_reg_initialize): encoding aware regular expression * sprintf.c (rb_str_format): formatting (i.e. length count) based on characters. * io.c (rb_io_getc): getc to return one-character string. for older behavior, getbyte method added. * ext/stringio/stringio.c (strio_getc): ditto. * io.c (rb_io_ungetc): allow pushing arbitrary string at the current reading point. * ext/stringio/stringio.c (strio_ungetc): ditto. * ext/strscan/strscan.c: encoding support. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_s_try_convert): a new class method to convertmatz2007-08-241-0/+18
| | | | | | | | | | | | | | | object or nil if it's not target-type. this mechanism is used to convert types in the C implemented methods. * hash.c (rb_hash_s_try_convert): ditto. * io.c (rb_io_s_try_convert): ditto. * re.c (rb_reg_s_try_convert): ditto. * string.c (rb_str_s_try_convert): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_s_foreach): argument count check before makingmatz2007-08-201-1/+1
| | | | | | Enumerator. [ruby-dev:31525] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (argf_readpartial): argf_forward needs argc and argv.nobu2007-08-151-4/+13
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (ARGF_FORWARD): wrongly compares with current_file withmatz2007-08-151-5/+5
| | | | | | rb_stdout. should be rb_stdin. [ruby-cvs:20177] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_initialize, argf_each_line, argf_each_byte): suppressnobu2007-08-151-7/+1
| | | | | | | warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (argf_close): always close via method.matz2007-08-141-53/+29
| | | | | | | | | | | | | | | * io.c (Init_IO): remove obsolete Kernel#getc. * io.c (argf_each_line): should use #each_line, not #each. * io.c (argf_each_line): simplified. * io.c (argf_getline): should handle non T_FILE object in ARGV. * io.c (argf_each_byte): each_byte should yield bytes not one-character strings. [ruby-dev:31374] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (pipe_open): fix for win32 platforms.nobu2007-08-071-5/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (pipe_open_v, pipe_open_s): separate array and stringnobu2007-08-041-33/+39
| | | | | | | cases. [ruby-dev:31344] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_f_p): return nil if no argument. [ruby-dev:31285]nobu2007-07-241-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby: moved public headers.nobu2007-06-101-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_f_p): returns arguments to intervene. [ruby-dev:29736]matz2007-06-051-2/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * error.c (rb_notimplement), io.c (pipe_open): removed definitenobu2007-04-041-1/+1
| | | | | | | articles and UNIX manual section from messages. [ruby-dev:30690] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (pipe_open): refined the message of NotImplementedError.nobu2007-04-041-11/+19
| | | | | | | [ruby-dev:30685] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (pipe_open): raise NotImplementedError for command "-" onnobu2007-04-041-7/+9
| | | | | | | platforms where fork(2) is not available. [ruby-dev:30681] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (popen_exec): should not close close-on-exec FDs.nobu2007-04-041-0/+3
| | | | | | | [ruby-dev:30679] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c, gc.c, io.c, ruby.h, rubyio.h, win32/win32.h (rb_io_t):nobu2007-02-241-87/+87
| | | | | | | | | | | renamed from OpenFile. * ext/dl/cptr.c, ext/io/wait/wait.c, ext/openssl/ossl.h, ext/openssl/ossl_bio.c, ext/openssl/ossl_ssl.c, ext/pty/pty.c, ext/readline/readline.c, ext/socket/socket.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_f_syscall): Fix buffer overflow with syscallknu2007-02-131-0/+2
| | | | | | | arguments. [ruby-bugs:PR#8541] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * intern.h: prepare rb_last_status_get() and rb_last_status_set().ko12007-02-051-1/+1
| | | | | | | | | | | | Use these functions instead of rb_last_status ([ruby-dev:30264]). * process.c: define above functions. * ext/pty/pty.c: use above functins. * io.c (pipe_finalize): ditto. * process.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_thread.c, common.mk: remove eval_thread.c.ko12007-02-051-2/+1
| | | | | | | | | | | | | | | | | | | | | | * yarvcore.c: rename cYarvThread to rb_cThread. * gc.c: remove YARV_* prefix. * gc.h: add an include guard and prototype of rb_gc_set_stack_end(). * inits.c: fix to ANSI prototype style and reorder Init_*(). * io.c (pipe_finalize): TODO: comment out last_status. * process.c, yarvcore.h: fix to use yarv_vm_t#last_status instead of rb_last_status and make last_status_get() to access $?. * yarvcore.c (vm_mark): mark yarv_vm_t#last_status. * ruby.h: add declarations of rb_cISeq and rb_cVM. * thread.c: move eval_thread.c codes to thread.c and remove yarv_* function prefix. * thread.c (thread_start_func_2): use yarv_thread_t#first_func if it is not null. * vm.c: fix copyright year. * yarvcore.c (Init_vm): rename to Init_VM(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_getline_fast, rb_io_getline): increase linenonobu2007-01-061-16/+44
| | | | | | | | | | when met the delimiter or EOF. fixed: [ruby-dev:30081] * io.c (prepare_getline_args, rb_io_getline_1): split preparation of arguments and reading. [ruby-dev:30085] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (argf_read): fix wrong replacement. [ruby-dev:30070]matz2007-01-061-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_getline): lineno update condition was wrong.matz2007-01-031-2/+2
| | | | | | | | [ruby-dev:30065] * io.c (rb_io_getline_fast): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (ruby_dup): start GC on ENOMEM as well.matz2007-01-031-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e