akr
f78380f0f1
* include/ruby/io.h (FMODE_TRUNC): value changed because 0x100 is used
...
as FMODE_NOREVLOOKUP in socket.c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-19 21:10:28 +00:00
akr
b929da2a1e
* include/ruby/io.h (FMODE_TRUNC): new constant.
...
* io.c (rb_io_mode_flags): set FMODE_TRUNC for "w".
(rb_io_modenum_flags): set FMODE_TRUNC for O_TRUNC.
(rb_io_flags_modenum): new function.
(rb_io_mode_modenum): just use rb_io_mode_flags and
rb_io_flags_modenum.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-19 18:38:32 +00:00
akr
21ba5836e6
* include/ruby/io.h (rb_fopen): declaration removed.
...
* io.c (rb_fopen): unused function removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-19 12:51:52 +00:00
akr
074ad688b1
* include/ruby/io.h (FMODE_READWRITE): define as
...
FMODE_READABLE|FMODE_WRITABLE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-19 12:14:55 +00:00
akr
b7643cfdcd
* include/ruby/io.h (FMODE_*): sorted and describe the values in
...
hexadecimal.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-19 09:06:38 +00:00
akr
edc9581f16
* io.c (make_writeconv): if enc and enc2 is set, convert
...
string.encoding to enc2.
* include/ruby/io.h: comment changed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-18 13:35:55 +00:00
akr
035d4816c3
* include/ruby/io.h (rb_io_t): new fields: writeconv,
...
writeconv_stateless and writeconv_initialized.
(MakeOpenFile): initialize them.
* include/ruby/encoding.h (rb_econv_stateless_encoding): declared.
(rb_econv_string): declared.
* io.c (make_writeconv): new function.
(io_fwrite): use econv.
(make_readconv): fix error message.
(finish_writeconv): new function.
(fptr_finalize): call finish_writeconv.
(clear_writeconv): new function.
(clear_codeconv): new function to call both clear_readconv and
clear_writeconv.
(rb_io_fptr_finalize): call clear_codeconv instead of
clear_readconv.
(mode_enc): ditto.
(io_set_encoding): ditto.
(argf_next_argv): ditto.
(io_encoding_set): ditto.
* gc.c (gc_mark_children): mark writeconv_stateless in T_FILE.
* transcode.c (stateless_encoding_i): new function.
(rb_econv_stateless_encoding): ditto.
(rb_econv_string): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-18 12:06:42 +00:00
akr
f7bdac01c2
update comment.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-18 08:00:55 +00:00
akr
63daa7c07d
* include/ruby/io.h (rb_io_t): new fields: readconv, crbuf, crbuf_off,
...
crbuf_len, crbuf_capa.
(MakeOpenFile): initialize them.
* io.c (io_shift_crbuf): new function.
(io_getc): use econv.
(rb_io_fptr_finalize): finalize readconv and crbuf.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-16 17:06:35 +00:00
akr
6cdef2dc7e
* $Date$ keyword removed to avoid inclusion of locale dependent
...
string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
davidflanagan
b83cbb0c7c
* io.c, io.h: temporary patch to partially implement transcode-on-read and transcode-on-write
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-22 16:21:09 +00:00
matz
266d186bcf
* include/ruby/io.h (MakeOpenFile): fptr->enc should be
...
intialized to zero. [ruby-dev:32569]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-13 04:10:24 +00:00
akr
0d8ac93f58
* include/ruby/io.h (rb_io_t): add tied_io_for_writing member.
...
* 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
2007-11-20 03:16:53 +00:00
matz
a25fbe3b3e
* encoding.c: provide basic features for M17N.
...
* 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
2007-08-25 03:29:39 +00:00
nobu
2b592580bf
* include/ruby: moved public headers.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00