summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-26 16:09:29 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-26 16:09:29 +0000
commitdb6ec3105ea5c3b7e30e15ec0a0b4d1a5dbe0ac3 (patch)
tree18544cbe90f7e147a0c7cd4dee7ecc700e2f7a01 /io.c
parent99a26ac1642cbe3f27f939cc53c0bef5a0ac15a1 (diff)
* include/ruby/encoding.h (rb_econv_result_t): enumeration constant:
econv_incomplete_input. * io.c (finish_writeconv): check econv_incomplete_input. * transcode.c (transcode_restartable0): return econv_incomplete_input for unexpected end of source buffer. (trans_sweep): check econv_incomplete_input. (rb_trans_conv): ditto. (rb_econv_convert0): ditto. (rb_econv_convert): ditto. (transcode_loop): ditto. (make_econv_exception): change message for econv_incomplete_input. (econv_result_to_symbol): return :incomplete_input for econv_incomplete_input. (ecerr_incomplete_input): new method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/io.c b/io.c
index 1eba36d7d6..b3ea394c61 100644
--- a/io.c
+++ b/io.c
@@ -2967,7 +2967,7 @@ finish_writeconv(rb_io_t *fptr, int noraise)
de = buf + sizeof(buf);
res = rb_econv_convert(fptr->writeconv, NULL, NULL, &dp, de, 0);
while (dp-ds) {
-retry:
+ retry:
r = rb_write_internal(fptr->fd, ds, dp-ds);
if (r == dp-ds)
break;
@@ -2987,6 +2987,7 @@ retry:
rb_econv_check_error(fptr->writeconv);
}
if (res == econv_invalid_byte_sequence ||
+ res == econv_incomplete_input ||
res == econv_undefined_conversion) {
break;
}
@@ -3009,6 +3010,7 @@ retry:
rb_econv_check_error(fptr->writeconv);
}
if (res == econv_invalid_byte_sequence ||
+ res == econv_incomplete_input ||
res == econv_undefined_conversion) {
break;
}
@@ -3603,7 +3605,7 @@ rb_io_mode_flags(const char *mode)
}
}
-finished:
+ finished:
if ((flags & FMODE_BINMODE) && (flags & FMODE_TEXTMODE))
goto error;
@@ -7051,7 +7053,7 @@ copy_stream_sendfile(struct copy_stream_struct *stp)
}
}
-retry_sendfile:
+ retry_sendfile:
if (use_pread) {
ss = simple_sendfile(stp->dst_fd, stp->src_fd, &src_offset, copy_length);
}
@@ -7095,7 +7097,7 @@ static ssize_t
copy_stream_read(struct copy_stream_struct *stp, char *buf, int len, off_t offset)
{
ssize_t ss;
-retry_read:
+ retry_read:
if (offset == (off_t)-1)
ss = read(stp->src_fd, buf, len);
else {
@@ -7231,7 +7233,7 @@ copy_stream_func(void *arg)
copy_stream_read_write(stp);
#ifdef USE_SENDFILE
-finish:
+ finish:
#endif
return Qnil;
}