Ruby: transcode.c File Reference

Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)

Data Structures | Macros | Typedefs | Functions | Variables
transcode.c File Reference
`#include "ruby/internal/config.h"`
`#include <ctype.h>`
`#include "internal.h"`
`#include "internal/array.h"`
`#include "internal/inits.h"`
`#include "internal/object.h"`
`#include "internal/string.h"`
`#include "internal/transcode.h"`
`#include "ruby/encoding.h"`
`#include "transcode_data.h"`
`#include "id.h"`

Go to the source code of this file.

## Data Structures
struct | rb_transcoding
union | rb_transcoding::rb_transcoding_state_t
struct | rb_econv_elem_t
struct | rb_econv_t
struct | transcoder_entry_t
struct | search_path_queue_tag
struct | search_path_bfs_t
struct | trans_open_t
struct | asciicompat_encoding_t
struct | rb_econv_init_by_convpath_t

## Macros
#define | ENABLE_ECONV_NEWLINE_OPTION 1
#define | TRANSCODING_READBUF(tc)
#define | TRANSCODING_WRITEBUF(tc)
#define | TRANSCODING_WRITEBUF_SIZE(tc)
#define | TRANSCODING_STATE_EMBED_MAX ((int)sizeof(union rb_transcoding_state_t))
#define | TRANSCODING_STATE(tc)
#define | DECORATOR_P(sname, dname) (*(sname) == '\0')
#define | encoding_equal(enc1, enc2) (STRCASECMP((enc1), (enc2)) == 0)
#define | SUSPEND(ret, num)
#define | SUSPEND_OBUF(num)
#define | SUSPEND_AFTER_OUTPUT(num)
#define | next_table (tc->next_table)
#define | next_info (tc->next_info)
#define | next_byte (tc->next_byte)
#define | writebuf_len (tc->writebuf_len)
#define | writebuf_off (tc->writebuf_off)
#define | BYTE_ADDR(index) (tr->byte_array + (index))
#define | WORD_ADDR(index) (tr->word_array + INFO2WORDINDEX(index))
#define | BL_BASE BYTE_ADDR(BYTE_LOOKUP_BASE(WORD_ADDR(next_table)))
#define | BL_INFO WORD_ADDR(BYTE_LOOKUP_INFO(WORD_ADDR(next_table)))
#define | BL_MIN_BYTE (BL_BASE[0])
#define | BL_MAX_BYTE (BL_BASE[1])
#define | BL_OFFSET(byte) (BL_BASE[2+(byte)-BL_MIN_BYTE])
#define | BL_ACTION(byte) (BL_INFO[BL_OFFSET((byte))])
#define | MAX_ECFLAGS_DECORATORS 32
#define | hash_fallback rb_hash_aref

## Typedefs
typedef struct rb_transcoding | rb_transcoding
typedef struct search_path_queue_tag | search_path_queue_t

## Functions
void | rb_register_transcoder (const rb_transcoder *tr)
void | rb_declare_transcoder (const char *enc1, const char *enc2, const char *lib)
rb_econv_t * | rb_econv_open (const char *sname, const char *dname, int ecflags)
rb_econv_result_t | rb_econv_convert (rb_econv_t *ec, const unsigned char **input_ptr, const unsigned char *input_stop, unsigned char **output_ptr, unsigned char *output_stop, int flags)
const char * | rb_econv_encoding_to_insert_output (rb_econv_t *ec)
int | rb_econv_insert_output (rb_econv_t *ec, const unsigned char *str, size_t len, const char *str_encoding)
void | rb_econv_close (rb_econv_t *ec)
size_t | rb_econv_memsize (rb_econv_t *ec)
int | rb_econv_putbackable (rb_econv_t *ec)
void | rb_econv_putback (rb_econv_t *ec, unsigned char *p, int n)
const char * | rb_econv_asciicompat_encoding (const char *ascii_incompat_name)
VALUE | rb_econv_append (rb_econv_t *ec, const char *ss, long len, VALUE dst, int flags)
VALUE | rb_econv_substr_append (rb_econv_t *ec, VALUE src, long off, long len, VALUE dst, int flags)
VALUE | rb_econv_str_append (rb_econv_t *ec, VALUE src, VALUE dst, int flags)
VALUE | rb_econv_substr_convert (rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags)
VALUE | rb_econv_str_convert (rb_econv_t *ec, VALUE src, int flags)
int | rb_econv_decorate_at_first (rb_econv_t *ec, const char *decorator_name)
int | rb_econv_decorate_at_last (rb_econv_t *ec, const char *decorator_name)
void | rb_econv_binmode (rb_econv_t *ec)
VALUE | rb_econv_open_exc (const char *sname, const char *dname, int ecflags)
int | rb_econv_set_replacement (rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname)
int | rb_econv_prepare_options (VALUE opthash, VALUE *opts, int ecflags)
int | rb_econv_prepare_opts (VALUE opthash, VALUE *opts)
rb_econv_t * | rb_econv_open_opts (const char *source_encoding, const char *destination_encoding, int ecflags, VALUE opthash)
VALUE | rb_str_encode (VALUE str, VALUE to, int ecflags, VALUE ecopts)
int | rb_econv_has_convpath_p (const char *from_encoding, const char *to_encoding)
VALUE | rb_econv_make_exception (rb_econv_t *ec)
void | rb_econv_check_error (rb_econv_t *ec)
void | Init_transcode (void)
void | InitVM_transcode (void)

## Variables
VALUE | rb_cEncodingConverter

## Macro Definition Documentation

## ◆ BL_ACTION

#define BL_ACTION | ( |  | byte | ) | (BL_INFO[BL_OFFSET((byte))])

## ◆ BL_BASE

#define BL_BASE BYTE_ADDR(BYTE_LOOKUP_BASE(WORD_ADDR(next_table)))

## ◆ BL_INFO

#define BL_INFO WORD_ADDR(BYTE_LOOKUP_INFO(WORD_ADDR(next_table)))

## ◆ BL_MAX_BYTE

#define BL_MAX_BYTE (BL_BASE[1])

## ◆ BL_MIN_BYTE

#define BL_MIN_BYTE (BL_BASE[0])

## ◆ BL_OFFSET

#define BL_OFFSET | ( |  | byte | ) | (BL_BASE[2+(byte)-BL_MIN_BYTE])

## ◆ BYTE_ADDR

#define BYTE_ADDR | ( |  | index | ) | (tr->byte_array + (index))

## ◆ DECORATOR_P

#define DECORATOR_P | ( |  | sname,
|  |  | dname
| ) |  | (*(sname) == '\0')

Definition at line 163 of file transcode.c.

## ◆ ENABLE_ECONV_NEWLINE_OPTION

#define ENABLE_ECONV_NEWLINE_OPTION 1

Definition at line 27 of file transcode.c.

## ◆ encoding_equal

#define encoding_equal | ( |  | enc1,
|  |  | enc2
| ) |  | (STRCASECMP((enc1), (enc2)) == 0)

Definition at line 250 of file transcode.c.

## ◆ hash_fallback

#define hash_fallback rb_hash_aref

Definition at line 2237 of file transcode.c.

## ◆ MAX_ECFLAGS_DECORATORS

#define MAX_ECFLAGS_DECORATORS 32

Definition at line 1020 of file transcode.c.

## ◆ next_byte

#define next_byte (tc->next_byte)

## ◆ next_info

#define next_info (tc->next_info)

## ◆ next_table

#define next_table (tc->next_table)

## ◆ SUSPEND

#define SUSPEND | ( |  | ret,
|  |  | num
| ) |  |

Value:
do { \
tc->resume_position = (num); \
if (0 < in_p - inchar_start) \
MEMMOVE(TRANSCODING_READBUF(tc)+tc->recognized_len, \
inchar_start, unsigned char, in_p - inchar_start); \
*in_pos = in_p; \
*out_pos = out_p; \
tc->recognized_len += in_p - inchar_start; \
if (readagain_len) { \
tc->recognized_len -= readagain_len; \
tc->readagain_len = readagain_len; \
} \
return (ret); \
resume_label ## num:; \
} while (0)
num
big_t * num
Definition: enough.c:232
TRANSCODING_READBUF
#define TRANSCODING_READBUF(tc)
Definition: transcode.c:93

## ◆ SUSPEND_AFTER_OUTPUT

#define SUSPEND_AFTER_OUTPUT | ( |  | num | ) |

Value:
if ((opt & ECONV_AFTER_OUTPUT) && *out_pos != out_p) { \
SUSPEND(econv_after_output, num); \
}
ECONV_AFTER_OUTPUT
#define ECONV_AFTER_OUTPUT
Definition: encoding.h:407
econv_after_output
@ econv_after_output
Definition: encoding.h:294

## ◆ SUSPEND_OBUF

#define SUSPEND_OBUF | ( |  | num | ) |

Value:
do { \
while (out_stop - out_p < 1) { SUSPEND(econv_destination_buffer_full, num); } \
} while (0)
econv_destination_buffer_full
@ econv_destination_buffer_full
Definition: encoding.h:291
SUSPEND
#define SUSPEND(ret, num)

## ◆ TRANSCODING_READBUF

#define TRANSCODING_READBUF | ( |  | tc | ) |

Value:
((tc)->transcoder->max_input <= (int)sizeof((tc)->readbuf.ary) ? \
(tc)->readbuf.ary : \
(tc)->readbuf.ptr)

Definition at line 93 of file transcode.c.

## ◆ TRANSCODING_STATE

#define TRANSCODING_STATE | ( |  | tc | ) |

Value:
((tc)->transcoder->state_size <= (int)sizeof((tc)->state) ? \
(tc)->state.ary : \
(tc)->state.ptr)
state
Definition: blast.c:41

Definition at line 106 of file transcode.c.

## ◆ TRANSCODING_STATE_EMBED_MAX

#define TRANSCODING_STATE_EMBED_MAX ((int)sizeof(union rb_transcoding_state_t))

Definition at line 105 of file transcode.c.

## ◆ TRANSCODING_WRITEBUF

#define TRANSCODING_WRITEBUF | ( |  | tc | ) |

Value:
((tc)->transcoder->max_output <= (int)sizeof((tc)->writebuf.ary) ? \
(tc)->writebuf.ary : \
(tc)->writebuf.ptr)

Definition at line 97 of file transcode.c.

## ◆ TRANSCODING_WRITEBUF_SIZE

#define TRANSCODING_WRITEBUF_SIZE | ( |  | tc | ) |

Value:
((tc)->transcoder->max_output <= (int)sizeof((tc)->writebuf.ary) ? \
sizeof((tc)->writebuf.ary) : \
(size_t)(tc)->transcoder->max_output)

Definition at line 101 of file transcode.c.

## ◆ WORD_ADDR

#define WORD_ADDR | ( |  | index | ) | (tr->word_array + INFO2WORDINDEX(index))

## ◆ writebuf_len

#define writebuf_len (tc->writebuf_len)

## ◆ writebuf_off

#define writebuf_off (tc->writebuf_off)

## Typedef Documentation

## ◆ rb_transcoding

typedef struct rb_transcoding rb_transcoding

## ◆ search_path_queue_t

typedef struct search_path_queue_tag search_path_queue_t

## Function Documentation

## ◆ Init_transcode()

void Init_transcode | ( | void |  | ) |

Definition at line 4426 of file transcode.c.

References ID2SYM, InitVM, rb_intern(), and st_init_strcasetable.

## ◆ InitVM_transcode()

void InitVM_transcode | ( | void |  | ) |

Definition at line 4462 of file transcode.c.

References ECONV_AFTER_OUTPUT, ECONV_CR_NEWLINE_DECORATOR, ECONV_CRLF_NEWLINE_DECORATOR, ECONV_INVALID_MASK, ECONV_INVALID_REPLACE, ECONV_PARTIAL_INPUT, ECONV_UNDEF_HEX_CHARREF, ECONV_UNDEF_MASK, ECONV_UNDEF_REPLACE, ECONV_UNIVERSAL_NEWLINE_DECORATOR, ECONV_XML_ATTR_CONTENT_DECORATOR, ECONV_XML_ATTR_QUOTE_DECORATOR, ECONV_XML_TEXT_DECORATOR, Init_newline(), INT2FIX, rb_cEncoding, rb_cEncodingConverter, rb_cObject, rb_cString, rb_define_alloc_func(), rb_define_class_under(), rb_define_const(), rb_define_method, rb_define_singleton_method, and rb_eEncodingError.

## ◆ rb_declare_transcoder()

void rb_declare_transcoder | ( | const char * | enc1,
|  | const char * | enc2,
|  | const char * | lib
| ) |  |

Definition at line 242 of file transcode.c.

References rb_eArgError, and rb_raise().

## ◆ rb_econv_append()

VALUE rb_econv_append | ( | rb_econv_t * | ec,
|  | const char * | ss,
|  | long | len,
|  | VALUE | dst,
|  | int | flags
| ) |  |

Definition at line 1805 of file transcode.c.

References rb_econv_t::destination_encoding, dp, econv_destination_buffer_full, rb_econv_t::last_tc, len, long(), LONG_MAX, rb_transcoder::max_output, NIL_P, rb_eArgError, rb_econv_check_error(), rb_econv_convert(), rb_enc_associate(), rb_raise(), rb_str_buf_new(), rb_str_capacity(), rb_str_resize(), rb_str_set_len(), RSTRING_LEN, RSTRING_PTR, and rb_transcoding::transcoder.

Referenced by rb_econv_substr_append().

## ◆ rb_econv_asciicompat_encoding()

const char * rb_econv_asciicompat_encoding | ( | const char * | ascii_incompat_name | ) |

Definition at line 1778 of file transcode.c.

References asciicompat_encoding_t::ascii_compat_name, asciicompat_encoding_t::ascii_incompat_name, NULL, st_table::num_entries, st_foreach, and st_lookup.

## ◆ rb_econv_binmode()

void rb_econv_binmode | ( | rb_econv_t * | ec | ) |

Definition at line 1934 of file transcode.c.

References ECONV_CR_NEWLINE_DECORATOR, ECONV_CRLF_NEWLINE_DECORATOR, ECONV_NEWLINE_DECORATOR_MASK, ECONV_UNIVERSAL_NEWLINE_DECORATOR, rb_econv_t::elems, rb_econv_t::flags, rb_econv_t::num_trans, rb_econv_elem_t::out_buf_start, rb_econv_elem_t::tc, rb_transcoding::transcoder, transcoder_entry_t::transcoder, and xfree.

Referenced by rb_io_binmode().

## ◆ rb_econv_check_error()

void rb_econv_check_error | ( | rb_econv_t * | ec | ) |

Definition at line 4246 of file transcode.c.

References rb_econv_init_by_convpath_t::ec, NIL_P, and rb_exc_raise().

Referenced by rb_econv_append().

## ◆ rb_econv_close()

void rb_econv_close | ( | rb_econv_t * | ec | ) |

Definition at line 1694 of file transcode.c.

References rb_econv_t::elems, rb_econv_t::in_buf_start, rb_econv_t::num_trans, rb_econv_elem_t::out_buf_start, rb_econv_t::replacement_allocated, rb_econv_t::replacement_str, rb_econv_elem_t::tc, and xfree.

Referenced by rb_econv_open(), and rb_econv_open_opts().

## ◆ rb_econv_convert()

rb_econv_result_t rb_econv_convert | ( | rb_econv_t * | ec,
|  | const unsigned char ** | input_ptr,
|  | const unsigned char * | input_stop,
|  | unsigned char ** | output_ptr,
|  | unsigned char * | output_stop,
|  | int | flags
| ) |  |

Definition at line 1438 of file transcode.c.

References econv_incomplete_input, econv_invalid_byte_sequence, ECONV_INVALID_MASK, ECONV_INVALID_REPLACE, ECONV_UNDEF_HEX_CHARREF, ECONV_UNDEF_MASK, ECONV_UNDEF_REPLACE, econv_undefined_conversion, rb_econv_t::flags, and rb_econv_t::started.

Referenced by rb_econv_append().

## ◆ rb_econv_decorate_at_first()

int rb_econv_decorate_at_first | ( | rb_econv_t * | ec,
|  | const char * | decorator_name
| ) |  |

Definition at line 1900 of file transcode.c.

References asciicompat_decoder, DECORATOR_P, rb_econv_t::elems, rb_econv_t::num_trans, rb_econv_elem_t::tc, and rb_transcoding::transcoder.

## ◆ rb_econv_decorate_at_last()

int rb_econv_decorate_at_last | ( | rb_econv_t * | ec,
|  | const char * | decorator_name
| ) |  |

Definition at line 1917 of file transcode.c.

References asciicompat_encoder, DECORATOR_P, rb_econv_t::elems, rb_econv_t::num_trans, rb_econv_elem_t::tc, and rb_transcoding::transcoder.

Referenced by rb_econv_open().

## ◆ rb_econv_encoding_to_insert_output()

const char * rb_econv_encoding_to_insert_output | ( | rb_econv_t * | ec | ) |

Definition at line 1495 of file transcode.c.

References asciicompat_encoder, rb_econv_t::last_tc, NULL, and rb_transcoding::transcoder.

Referenced by rb_econv_insert_output(), and rb_econv_set_replacement().

## ◆ rb_econv_has_convpath_p()

int rb_econv_has_convpath_p | ( | const char * | from_encoding,
|  | const char * | to_encoding
| ) |  |

Definition at line 3189 of file transcode.c.

References Qnil, and RTEST.

Referenced by rb_w32_write_console().

## ◆ rb_econv_insert_output()

int rb_econv_insert_output | ( | rb_econv_t * | ec,
|  | const unsigned char * | str,
|  | size_t | len,
|  | const char * | str_encoding
| ) |  |

Definition at line 1579 of file transcode.c.

References asciicompat_encoder, rb_transcoder::asciicompat_type, rb_econv_t::elems, encoding_equal, fail, rb_econv_t::in_buf_end, rb_econv_t::in_buf_start, rb_econv_t::in_data_end, rb_econv_t::in_data_start, len, memcpy, MEMMOVE, NULL, rb_econv_t::num_trans, rb_econv_elem_t::out_buf_end, rb_econv_elem_t::out_buf_start, rb_econv_elem_t::out_data_end, rb_econv_elem_t::out_data_start, rb_econv_encoding_to_insert_output(), rb_transcoding::readagain_len, rb_transcoding::recognized_len, rb_econv_t::started, str, rb_econv_elem_t::tc, rb_transcoding::transcoder, TRANSCODING_READBUF, xfree, xmalloc, and xrealloc.

## ◆ rb_econv_make_exception()

VALUE rb_econv_make_exception | ( | rb_econv_t * | ec | ) |

Definition at line 4240 of file transcode.c.

References rb_econv_init_by_convpath_t::ec.

## ◆ rb_econv_memsize()

size_t rb_econv_memsize | ( | rb_econv_t * | ec | ) |

Definition at line 1712 of file transcode.c.

References rb_econv_t::elems, rb_econv_t::in_buf_end, rb_econv_t::in_buf_start, rb_econv_t::num_allocated, rb_econv_t::num_trans, rb_econv_elem_t::out_buf_end, rb_econv_elem_t::out_buf_start, rb_econv_t::replacement_allocated, rb_econv_t::replacement_len, and rb_econv_elem_t::tc.

Referenced by rb_io_memsize().

## ◆ rb_econv_open()

rb_econv_t * rb_econv_open | ( | const char * | sname,
|  | const char * | dname,
|  | int | ecflags
| ) |  |

Definition at line 1061 of file transcode.c.

References ECONV_ERROR_HANDLER_MASK, rb_econv_t::flags, MAX_ECFLAGS_DECORATORS, NULL, rb_econv_close(), and rb_econv_decorate_at_last().

Referenced by rb_econv_open_opts().

## ◆ rb_econv_open_exc()

VALUE rb_econv_open_exc | ( | const char * | sname,
|  | const char * | dname,
|  | int | ecflags
| ) |  |

Definition at line 2028 of file transcode.c.

References rb_exc_new3, rb_str_cat2, and rb_str_new_cstr.

## ◆ rb_econv_open_opts()

rb_econv_t * rb_econv_open_opts | ( | const char * | source_encoding,
|  | const char * | destination_encoding,
|  | int | ecflags,
|  | VALUE | opthash
| ) |  |

Definition at line 2577 of file transcode.c.

References NIL_P, NULL, OBJ_FROZEN, Qnil, rb_bug(), rb_econv_close(), rb_econv_open(), rb_econv_set_replacement(), rb_enc_get(), rb_enc_name, rb_hash_aref(), RSTRING_LEN, RSTRING_PTR, and T_HASH.

## ◆ rb_econv_prepare_options()

int rb_econv_prepare_options | ( | VALUE | opthash,
|  | VALUE * | opts,
|  | int | ecflags
| ) |  |

Definition at line 2526 of file transcode.c.

References ENC_CODERANGE_BROKEN, idAREF, NIL_P, Qnil, rb_check_hash_type(), rb_eArgError, rb_enc_get(), rb_enc_name, rb_enc_str_coderange(), rb_hash_aref(), rb_hash_aset(), rb_hash_freeze(), rb_hash_new(), rb_obj_is_method(), rb_obj_is_proc(), rb_raise(), rb_respond_to(), rb_str_dump(), rb_str_new_frozen(), StringValue, and StringValueCStr.

Referenced by rb_econv_prepare_opts(), and rb_io_extract_modeenc().

## ◆ rb_econv_prepare_opts()

int rb_econv_prepare_opts | ( | VALUE | opthash,
|  | VALUE * | opts
| ) |  |

Definition at line 2571 of file transcode.c.

References rb_econv_prepare_options().

## ◆ rb_econv_putback()

void rb_econv_putback | ( | rb_econv_t * | ec,
|  | unsigned char * | p,
|  | int | n
| ) |  |

Definition at line 1745 of file transcode.c.

References rb_econv_t::elems, memcpy, rb_econv_t::num_trans, rb_transcoding::readagain_len, rb_transcoding::recognized_len, rb_econv_elem_t::tc, and TRANSCODING_READBUF.

## ◆ rb_econv_putbackable()

int rb_econv_putbackable | ( | rb_econv_t * | ec | ) |

Definition at line 1734 of file transcode.c.

References rb_econv_t::elems, rb_econv_t::num_trans, rb_transcoding::readagain_len, and rb_econv_elem_t::tc.

## ◆ rb_econv_set_replacement()

int rb_econv_set_replacement | ( | rb_econv_t * | ec,
|  | const unsigned char * | str,
|  | size_t | len,
|  | const char * | encname
| ) |  |

Definition at line 2190 of file transcode.c.

References encoding_equal, len, MEMCPY, NULL, rb_econv_encoding_to_insert_output(), rb_econv_t::replacement_allocated, rb_econv_t::replacement_enc, rb_econv_t::replacement_len, rb_econv_t::replacement_str, str, xfree, and xmalloc.

Referenced by rb_econv_open_opts().

## ◆ rb_econv_str_append()

VALUE rb_econv_str_append | ( | rb_econv_t * | ec,
|  | VALUE | src,
|  | VALUE | dst,
|  | int | flags
| ) |  |

Definition at line 1857 of file transcode.c.

References rb_econv_substr_append(), and RSTRING_LEN.

## ◆ rb_econv_str_convert()

VALUE rb_econv_str_convert | ( | rb_econv_t * | ec,
|  | VALUE | src,
|  | int | flags
| ) |  |

Definition at line 1869 of file transcode.c.

References Qnil, rb_econv_substr_append(), and RSTRING_LEN.

## ◆ rb_econv_substr_append()

VALUE rb_econv_substr_append | ( | rb_econv_t * | ec,
|  | VALUE | src,
|  | long | off,
|  | long | len,
|  | VALUE | dst,
|  | int | flags
| ) |  |

Definition at line 1848 of file transcode.c.

References len, rb_econv_append(), RB_GC_GUARD, rb_str_new_frozen(), and RSTRING_PTR.

Referenced by rb_econv_str_append(), rb_econv_str_convert(), and rb_econv_substr_convert().

## ◆ rb_econv_substr_convert()

VALUE rb_econv_substr_convert | ( | rb_econv_t * | ec,
|  | VALUE | src,
|  | long | byteoff,
|  | long | bytesize,
|  | int | flags
| ) |  |

Definition at line 1863 of file transcode.c.

References Qnil, and rb_econv_substr_append().

## ◆ rb_register_transcoder()

void rb_register_transcoder | ( | const rb_transcoder * | tr | ) |

Definition at line 214 of file transcode.c.

References rb_eArgError, rb_raise(), and transcoder_entry_t::transcoder.

## ◆ rb_str_encode()

VALUE rb_str_encode | ( | VALUE | str,
|  | VALUE | to,
|  | int | ecflags,
|  | VALUE | ecopts
| ) |  |

Definition at line 2892 of file transcode.c.

References argc, argv, and str.

Referenced by rb_str_ellipsize().

## Variable Documentation

## ◆ rb_cEncodingConverter

VALUE rb_cEncodingConverter

Definition at line 34 of file transcode.c.

Referenced by InitVM_transcode().