summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--transcode.c102
-rw-r--r--transcode_data.h12
3 files changed, 64 insertions, 57 deletions
diff --git a/ChangeLog b/ChangeLog
index 94cd2b8d73..ae37d32a4f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Thu Aug 14 22:44:32 2008 Tanaka Akira <akr@fsij.org>
+
+ * transcode_data.h (rb_econv_result_t): change enumeration
+ constant's prefix: transcode_ to econv_.
+
+ * transcode.c: follow the constant prefix change.
+
Thu Aug 14 21:34:41 2008 Tanaka Akira <akr@fsij.org>
* transcode.c (econv_init): accept Encoding object as source_encoding
diff --git a/transcode.c b/transcode.c
index 268363b418..c81b7e755f 100644
--- a/transcode.c
+++ b/transcode.c
@@ -382,12 +382,12 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
} while (0)
#define SUSPEND_OBUF(num) \
do { \
- while (out_stop - out_p < 1) { SUSPEND(transcode_destination_buffer_full, num); } \
+ while (out_stop - out_p < 1) { SUSPEND(econv_destination_buffer_full, num); } \
} while (0)
#define SUSPEND_OUTPUT_FOLLOWED_BY_INPUT(num) \
if ((opt & OUTPUT_FOLLOWED_BY_INPUT) && *out_pos != out_p) { \
- SUSPEND(transcode_output_followed_by_input, num); \
+ SUSPEND(econv_output_followed_by_input, num); \
}
#define next_table (tc->next_table)
@@ -431,7 +431,7 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
if (in_stop <= in_p) {
if (!(opt & PARTIAL_INPUT))
break;
- SUSPEND(transcode_source_buffer_empty, 7);
+ SUSPEND(econv_source_buffer_empty, 7);
continue;
}
@@ -457,7 +457,7 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
while (in_p >= in_stop) {
if (!(opt & PARTIAL_INPUT))
goto invalid;
- SUSPEND(transcode_source_buffer_empty, 5);
+ SUSPEND(econv_source_buffer_empty, 5);
}
next_byte = (unsigned char)*in_p++;
next_table = (const BYTE_LOOKUP *)next_info;
@@ -532,7 +532,7 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
SUSPEND_OUTPUT_FOLLOWED_BY_INPUT(26);
while ((opt & PARTIAL_INPUT) && tc->recognized_len + (in_stop - inchar_start) < unitlen) {
in_p = in_stop;
- SUSPEND(transcode_source_buffer_empty, 8);
+ SUSPEND(econv_source_buffer_empty, 8);
}
if (tc->recognized_len + (in_stop - inchar_start) <= unitlen) {
in_p = in_stop;
@@ -555,11 +555,11 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
continue;
invalid:
- SUSPEND(transcode_invalid_byte_sequence, 1);
+ SUSPEND(econv_invalid_byte_sequence, 1);
continue;
undef:
- SUSPEND(transcode_undefined_conversion, 2);
+ SUSPEND(econv_undefined_conversion, 2);
continue;
}
@@ -579,7 +579,7 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos,
}
}
while (1)
- SUSPEND(transcode_finished, 6);
+ SUSPEND(econv_finished, 6);
#undef SUSPEND
#undef next_table
#undef next_info
@@ -604,7 +604,7 @@ transcode_restartable(const unsigned char **in_pos, unsigned char **out_pos,
unsigned char, tc->readagain_len);
tc->readagain_len = 0;
res = transcode_restartable0(&readagain_pos, out_pos, readagain_stop, out_stop, tc, opt|PARTIAL_INPUT);
- if (res != transcode_source_buffer_empty) {
+ if (res != econv_source_buffer_empty) {
MEMCPY(TRANSCODING_READBUF(tc) + tc->recognized_len + tc->readagain_len,
readagain_pos, unsigned char, readagain_stop - readagain_pos);
tc->readagain_len += readagain_stop - readagain_pos;
@@ -687,7 +687,7 @@ rb_econv_open_by_transcoder_entries(int n, transcoder_entry_t **entries)
ts->elems[i].out_data_start = NULL;
ts->elems[i].out_data_end = NULL;
ts->elems[i].out_buf_end = NULL;
- ts->elems[i].last_result = transcode_source_buffer_empty;
+ ts->elems[i].last_result = econv_source_buffer_empty;
}
ts->last_tc = ts->elems[ts->num_trans-1].tc;
@@ -820,16 +820,16 @@ trans_sweep(rb_econv_t *ts,
try = 1;
switch (res) {
- case transcode_invalid_byte_sequence:
- case transcode_undefined_conversion:
- case transcode_output_followed_by_input:
+ case econv_invalid_byte_sequence:
+ case econv_undefined_conversion:
+ case econv_output_followed_by_input:
return i;
- case transcode_destination_buffer_full:
- case transcode_source_buffer_empty:
+ case econv_destination_buffer_full:
+ case econv_source_buffer_empty:
break;
- case transcode_finished:
+ case econv_finished:
ts->num_finished = i+1;
break;
}
@@ -861,22 +861,22 @@ rb_trans_conv(rb_econv_t *ts,
output_stop = empty_ptr;
}
- if (ts->elems[0].last_result == transcode_output_followed_by_input)
- ts->elems[0].last_result = transcode_source_buffer_empty;
+ if (ts->elems[0].last_result == econv_output_followed_by_input)
+ ts->elems[0].last_result = econv_source_buffer_empty;
needreport_index = -1;
for (i = ts->num_trans-1; 0 <= i; i--) {
switch (ts->elems[i].last_result) {
- case transcode_invalid_byte_sequence:
- case transcode_undefined_conversion:
- case transcode_output_followed_by_input:
- case transcode_finished:
+ case econv_invalid_byte_sequence:
+ case econv_undefined_conversion:
+ case econv_output_followed_by_input:
+ case econv_finished:
sweep_start = i+1;
needreport_index = i;
goto found_needreport;
- case transcode_destination_buffer_full:
- case transcode_source_buffer_empty:
+ case econv_destination_buffer_full:
+ case econv_source_buffer_empty:
break;
default:
@@ -886,15 +886,15 @@ rb_trans_conv(rb_econv_t *ts,
/* /^[io]+$/ is confirmed. but actually /^i*o*$/. */
- if (ts->elems[ts->num_trans-1].last_result == transcode_destination_buffer_full &&
+ if (ts->elems[ts->num_trans-1].last_result == econv_destination_buffer_full &&
(flags & OUTPUT_FOLLOWED_BY_INPUT)) {
rb_econv_result_t res;
res = rb_trans_conv(ts, NULL, NULL, output_ptr, output_stop,
(flags & ~OUTPUT_FOLLOWED_BY_INPUT)|PARTIAL_INPUT);
- if (res == transcode_source_buffer_empty)
- return transcode_output_followed_by_input;
+ if (res == econv_source_buffer_empty)
+ return econv_output_followed_by_input;
return res;
}
@@ -908,17 +908,17 @@ found_needreport:
} while (needreport_index != -1 && needreport_index != ts->num_trans-1);
for (i = ts->num_trans-1; 0 <= i; i--) {
- if (ts->elems[i].last_result != transcode_source_buffer_empty) {
+ if (ts->elems[i].last_result != econv_source_buffer_empty) {
rb_econv_result_t res = ts->elems[i].last_result;
- if (res == transcode_invalid_byte_sequence ||
- res == transcode_undefined_conversion ||
- res == transcode_output_followed_by_input) {
- ts->elems[i].last_result = transcode_source_buffer_empty;
+ if (res == econv_invalid_byte_sequence ||
+ res == econv_undefined_conversion ||
+ res == econv_output_followed_by_input) {
+ ts->elems[i].last_result = econv_source_buffer_empty;
}
return res;
}
}
- return transcode_source_buffer_empty;
+ return econv_source_buffer_empty;
}
static rb_econv_result_t
@@ -936,7 +936,7 @@ rb_econv_conv(rb_econv_t *ts,
flags |= OUTPUT_FOLLOWED_BY_INPUT;
do {
res = rb_trans_conv(ts, input_ptr, input_stop, output_ptr, output_stop, flags);
- } while (res == transcode_output_followed_by_input);
+ } while (res == econv_output_followed_by_input);
return res;
}
@@ -1050,7 +1050,7 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
resume:
ret = rb_econv_conv(ts, in_pos, in_stop, out_pos, out_stop, opt);
- if (ret == transcode_invalid_byte_sequence) {
+ if (ret == econv_invalid_byte_sequence) {
/* deal with invalid byte sequence */
/* todo: add more alternative behaviors */
if (opt&INVALID_IGNORE) {
@@ -1063,7 +1063,7 @@ resume:
rb_econv_close(ts);
rb_raise(rb_eInvalidByteSequence, "invalid byte sequence");
}
- if (ret == transcode_undefined_conversion) {
+ if (ret == econv_undefined_conversion) {
/* valid character in from encoding
* but no related character(s) in to encoding */
/* todo: add more alternative behaviors */
@@ -1077,7 +1077,7 @@ resume:
rb_econv_close(ts);
rb_raise(rb_eConversionUndefined, "conversion undefined for byte sequence (maybe invalid byte sequence)");
}
- if (ret == transcode_destination_buffer_full) {
+ if (ret == econv_destination_buffer_full) {
more_output_buffer(destination, resize_destination, max_output, &out_start, out_pos, &out_stop);
goto resume;
}
@@ -1110,13 +1110,13 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
last_tc = ts->last_tc;
max_output = ts->elems[ts->num_trans-1].tc->transcoder->max_output;
- ret = transcode_source_buffer_empty;
+ ret = econv_source_buffer_empty;
ptr = *in_pos;
- while (ret != transcode_finished) {
+ while (ret != econv_finished) {
unsigned char input_byte;
const unsigned char *p = &input_byte;
- if (ret == transcode_source_buffer_empty) {
+ if (ret == econv_source_buffer_empty) {
if (ptr < in_stop) {
input_byte = *ptr;
ret = rb_econv_conv(ts, &p, p+1, out_pos, out_stop, PARTIAL_INPUT);
@@ -1131,7 +1131,7 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
if (&input_byte != p)
ptr += p - &input_byte;
switch (ret) {
- case transcode_invalid_byte_sequence:
+ case econv_invalid_byte_sequence:
/* deal with invalid byte sequence */
/* todo: add more alternative behaviors */
if (opt&INVALID_IGNORE) {
@@ -1145,7 +1145,7 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
rb_raise(rb_eInvalidByteSequence, "invalid byte sequence");
break;
- case transcode_undefined_conversion:
+ case econv_undefined_conversion:
/* valid character in from encoding
* but no related character(s) in to encoding */
/* todo: add more alternative behaviors */
@@ -1160,14 +1160,14 @@ transcode_loop(const unsigned char **in_pos, unsigned char **out_pos,
rb_raise(rb_eConversionUndefined, "conversion undefined for byte sequence (maybe invalid byte sequence)");
break;
- case transcode_destination_buffer_full:
+ case econv_destination_buffer_full:
more_output_buffer(destination, resize_destination, max_output, &out_start, out_pos, &out_stop);
break;
- case transcode_source_buffer_empty:
+ case econv_source_buffer_empty:
break;
- case transcode_finished:
+ case econv_finished:
break;
}
}
@@ -1617,12 +1617,12 @@ econv_primitive_convert(int argc, VALUE *argv, VALUE self)
rb_str_drop_bytes(input, ip - (unsigned char *)RSTRING_PTR(input));
switch (res) {
- case transcode_invalid_byte_sequence: return ID2SYM(rb_intern("invalid_byte_sequence"));
- case transcode_undefined_conversion: return ID2SYM(rb_intern("undefined_conversion"));
- case transcode_destination_buffer_full: return ID2SYM(rb_intern("destination_buffer_full"));
- case transcode_source_buffer_empty: return ID2SYM(rb_intern("source_buffer_empty"));
- case transcode_finished: return ID2SYM(rb_intern("finished"));
- case transcode_output_followed_by_input: return ID2SYM(rb_intern("output_followed_by_input"));
+ case econv_invalid_byte_sequence: return ID2SYM(rb_intern("invalid_byte_sequence"));
+ case econv_undefined_conversion: return ID2SYM(rb_intern("undefined_conversion"));
+ case econv_destination_buffer_full: return ID2SYM(rb_intern("destination_buffer_full"));
+ case econv_source_buffer_empty: return ID2SYM(rb_intern("source_buffer_empty"));
+ case econv_finished: return ID2SYM(rb_intern("finished"));
+ case econv_output_followed_by_input: return ID2SYM(rb_intern("output_followed_by_input"));
default: return INT2NUM(res); /* should not be reached */
}
}
diff --git a/transcode_data.h b/transcode_data.h
index e949471928..855984e46f 100644
--- a/transcode_data.h
+++ b/transcode_data.h
@@ -112,12 +112,12 @@ struct rb_transcoder {
};
typedef enum {
- transcode_invalid_byte_sequence,
- transcode_undefined_conversion,
- transcode_destination_buffer_full,
- transcode_source_buffer_empty,
- transcode_finished,
- transcode_output_followed_by_input,
+ econv_invalid_byte_sequence,
+ econv_undefined_conversion,
+ econv_destination_buffer_full,
+ econv_source_buffer_empty,
+ econv_finished,
+ econv_output_followed_by_input,
} rb_econv_result_t;
typedef struct {