summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--enc/trans/escape.trans4
-rw-r--r--enc/trans/iso2022.trans10
-rw-r--r--enc/trans/japanese.trans4
-rw-r--r--enc/trans/newline.trans4
-rw-r--r--enc/trans/utf_16_32.trans16
-rw-r--r--transcode.c11
-rw-r--r--transcode_data.h6
8 files changed, 44 insertions, 28 deletions
diff --git a/ChangeLog b/ChangeLog
index 8c9c58b723..1a9242c588 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+Mon Sep 15 03:33:10 2008 Tanaka Akira <akr@fsij.org>
+
+ * transcode_data.h: return output functions ssize_t.
+
+ * transcode.c (transcode_restartable0): don't need to cast the result
+ of output functions.
+
+ * enc/trans/newline.trans: follow the type change.
+
+ * enc/trans/escape.trans: ditto.
+
+ * enc/trans/utf_16_32.trans: ditto.
+
+ * enc/trans/iso2022.trans: ditto.
+
+ * enc/trans/japanese.trans: ditto.
+
Mon Sep 15 03:04:29 2008 Tanaka Akira <akr@fsij.org>
* transcode_data.h: output function takes output buffer size.
diff --git a/enc/trans/escape.trans b/enc/trans/escape.trans
index d390942c51..f45f27bc41 100644
--- a/enc/trans/escape.trans
+++ b/enc/trans/escape.trans
@@ -43,7 +43,7 @@ escape_xml_attr_quote_init(void *statep)
return 0;
}
-static int
+static ssize_t
fun_so_escape_xml_attr_quote(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
unsigned char *sp = statep;
@@ -56,7 +56,7 @@ fun_so_escape_xml_attr_quote(void *statep, const unsigned char *s, size_t l, uns
return n;
}
-static int
+static ssize_t
escape_xml_attr_quote_finish(void *statep, unsigned char *o, size_t osize)
{
unsigned char *sp = statep;
diff --git a/enc/trans/iso2022.trans b/enc/trans/iso2022.trans
index 97a90da810..fe9a9b820e 100644
--- a/enc/trans/iso2022.trans
+++ b/enc/trans/iso2022.trans
@@ -70,7 +70,7 @@ fun_si_iso2022jp_decoder(void *statep, const unsigned char *s, size_t l)
return (VALUE)INVALID;
}
-static int
+static ssize_t
fun_so_iso2022jp_decoder(void *statep, const unsigned char *s, size_t l, unsigned char* o, size_t osize)
{
unsigned char *sp = statep;
@@ -119,7 +119,7 @@ rb_iso2022jp_decoder = {
NULL, fun_si_iso2022jp_decoder, NULL, fun_so_iso2022jp_decoder
};
-static int
+static ssize_t
fun_so_iso2022jp_encoder(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
unsigned char *sp = statep;
@@ -172,7 +172,7 @@ iso2022jp_encoder_reset_sequence_size(void *statep)
return 0;
}
-static int
+static ssize_t
finish_iso2022jp_encoder(void *statep, unsigned char *o, size_t osize)
{
unsigned char *sp = statep;
@@ -203,7 +203,7 @@ rb_iso2022jp_encoder = {
iso2022jp_encoder_reset_sequence_size, finish_iso2022jp_encoder
};
-static int
+static ssize_t
fun_so_stateless_iso2022jp_to_eucjp(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
o[0] = s[1];
@@ -223,7 +223,7 @@ rb_stateless_iso2022jp_to_eucjp = {
NULL, NULL, NULL, fun_so_stateless_iso2022jp_to_eucjp,
};
-static int
+static ssize_t
fun_so_eucjp_to_stateless_iso2022jp(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
o[0] = EMACS_MULE_LEADING_CODE_JISX0208_1983;
diff --git a/enc/trans/japanese.trans b/enc/trans/japanese.trans
index 4af9b5387c..ce5d0bb70f 100644
--- a/enc/trans/japanese.trans
+++ b/enc/trans/japanese.trans
@@ -19,7 +19,7 @@
<%= transcode_generated_code %>
-static int
+static ssize_t
fun_so_eucjp2sjis(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
if (s[0] == 0x8e) {
@@ -40,7 +40,7 @@ fun_so_eucjp2sjis(void *statep, const unsigned char *s, size_t l, unsigned char
}
}
-static int
+static ssize_t
fun_so_sjis2eucjp(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
if (l == 1) {
diff --git a/enc/trans/newline.trans b/enc/trans/newline.trans
index 9020b62191..d62034aa49 100644
--- a/enc/trans/newline.trans
+++ b/enc/trans/newline.trans
@@ -40,7 +40,7 @@ universal_newline_init(void *statep)
return 0;
}
-static int
+static ssize_t
fun_so_universal_newline(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
unsigned char *sp = statep;
@@ -75,7 +75,7 @@ fun_so_universal_newline(void *statep, const unsigned char *s, size_t l, unsigne
return len;
}
-static int
+static ssize_t
universal_newline_finish(void *statep, unsigned char *o, size_t osize)
{
unsigned char *sp = statep;
diff --git a/enc/trans/utf_16_32.trans b/enc/trans/utf_16_32.trans
index 0e0992b6f6..1bf6ed0975 100644
--- a/enc/trans/utf_16_32.trans
+++ b/enc/trans/utf_16_32.trans
@@ -37,7 +37,7 @@
<%= transcode_generated_code %>
-static int
+static ssize_t
fun_so_from_utf_16be(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
if (!s[0] && s[1]<0x80) {
@@ -65,7 +65,7 @@ fun_so_from_utf_16be(void *statep, const unsigned char *s, size_t l, unsigned ch
}
}
-static int
+static ssize_t
fun_so_to_utf_16be(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
if (!(s[0]&0x80)) {
@@ -93,7 +93,7 @@ fun_so_to_utf_16be(void *statep, const unsigned char *s, size_t l, unsigned char
}
}
-static int
+static ssize_t
fun_so_from_utf_16le(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
if (!s[1] && s[0]<0x80) {
@@ -121,7 +121,7 @@ fun_so_from_utf_16le(void *statep, const unsigned char *s, size_t l, unsigned ch
}
}
-static int
+static ssize_t
fun_so_to_utf_16le(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
if (!(s[0]&0x80)) {
@@ -149,7 +149,7 @@ fun_so_to_utf_16le(void *statep, const unsigned char *s, size_t l, unsigned char
}
}
-static int
+static ssize_t
fun_so_from_utf_32be(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
if (!s[1]) {
@@ -178,7 +178,7 @@ fun_so_from_utf_32be(void *statep, const unsigned char *s, size_t l, unsigned ch
}
}
-static int
+static ssize_t
fun_so_to_utf_32be(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
o[0] = 0;
@@ -204,7 +204,7 @@ fun_so_to_utf_32be(void *statep, const unsigned char *s, size_t l, unsigned char
return 4;
}
-static int
+static ssize_t
fun_so_from_utf_32le(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
if (!s[2]) {
@@ -233,7 +233,7 @@ fun_so_from_utf_32le(void *statep, const unsigned char *s, size_t l, unsigned ch
}
}
-static int
+static ssize_t
fun_so_to_utf_32le(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
{
o[3] = 0;
diff --git a/transcode.c b/transcode.c
index 5f21614c08..dd75a5e303 100644
--- a/transcode.c
+++ b/transcode.c
@@ -604,11 +604,10 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
case FUNio:
SUSPEND_OBUF(13);
if (tr->max_output <= out_stop - out_p)
- out_p += (VALUE)(*tr->func_io)(TRANSCODING_STATE(tc),
- next_info,
- out_p, out_stop - out_p);
+ out_p += tr->func_io(TRANSCODING_STATE(tc),
+ next_info, out_p, out_stop - out_p);
else {
- writebuf_len = (VALUE)(*tr->func_io)(TRANSCODING_STATE(tc),
+ writebuf_len = tr->func_io(TRANSCODING_STATE(tc),
next_info,
TRANSCODING_WRITEBUF(tc), TRANSCODING_WRITEBUF_SIZE(tc));
writebuf_off = 0;
@@ -625,13 +624,13 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
SUSPEND_OBUF(14);
if (tr->max_output <= out_stop - out_p) {
char_start = transcode_char_start(tc, *in_pos, inchar_start, in_p, &char_len);
- out_p += (VALUE)(*tr->func_so)(TRANSCODING_STATE(tc),
+ out_p += tr->func_so(TRANSCODING_STATE(tc),
char_start, (size_t)char_len,
out_p, out_stop - out_p);
}
else {
char_start = transcode_char_start(tc, *in_pos, inchar_start, in_p, &char_len);
- writebuf_len = (VALUE)(*tr->func_so)(TRANSCODING_STATE(tc),
+ writebuf_len = tr->func_so(TRANSCODING_STATE(tc),
char_start, (size_t)char_len,
TRANSCODING_WRITEBUF(tc), TRANSCODING_WRITEBUF_SIZE(tc));
writebuf_off = 0;
diff --git a/transcode_data.h b/transcode_data.h
index a460c12e3c..ab9a1019b5 100644
--- a/transcode_data.h
+++ b/transcode_data.h
@@ -84,9 +84,9 @@ struct rb_transcoder {
int (*state_fini_func)(void*); /* ret==0:success ret!=0:failure(errno) */
VALUE (*func_ii)(void*, VALUE); /* info -> info */
VALUE (*func_si)(void*, const unsigned char*, size_t); /* start -> info */
- int (*func_io)(void*, VALUE, const unsigned char*, size_t); /* info -> output */
- int (*func_so)(void*, const unsigned char*, size_t, unsigned char*, size_t); /* start -> output */
- int (*finish_func)(void*, unsigned char*, size_t); /* -> output */
+ ssize_t (*func_io)(void*, VALUE, const unsigned char*, size_t); /* info -> output */
+ ssize_t (*func_so)(void*, const unsigned char*, size_t, unsigned char*, size_t); /* start -> output */
+ ssize_t (*finish_func)(void*, unsigned char*, size_t); /* -> output */
int (*resetsize_func)(void*); /* -> len */
int (*resetstate_func)(void*, unsigned char*, size_t); /* -> output */
};