Ruby 2.0.0p247(2013-06-27revision41674)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Typedefs | Functions | Variables
stringio.c File Reference
`#include "ruby.h"`
`#include "ruby/io.h"`
`#include "ruby/encoding.h"`
Include dependency graph for stringio.c:

Go to the source code of this file.

## Data Structures
struct | StringIO

## Macros
#define | IS_STRIO(obj) (rb_typeddata_is_kind_of((obj), &strio_data_type))
#define | error_inval(msg) (errno = EINVAL, rb_sys_fail(msg))
#define | check_strio(self) ((struct StringIO*)rb_check_typeddata((self), &strio_data_type))
#define | StringIO(obj) get_strio(obj)
#define | STRIO_READABLE FL_USER4
#define | STRIO_WRITABLE FL_USER5
#define | STRIO_READWRITE (STRIO_READABLE|STRIO_WRITABLE)
#define | STRIO_MODE_SET_P(strio, mode)
#define | CLOSED(strio) (!STRIO_MODE_SET_P(strio, READWRITE))
#define | READABLE(strio) STRIO_MODE_SET_P(strio, READABLE)
#define | WRITABLE(strio) STRIO_MODE_SET_P(strio, WRITABLE)
#define | strio_binmode strio_self
#define | strio_fcntl strio_unimpl
#define | strio_flush strio_self
#define | strio_fsync strio_0
#define | strio_set_sync strio_first
#define | strio_tell strio_get_pos
#define | strio_addstr rb_io_addstr
#define | strio_print rb_io_print
#define | strio_printf rb_io_printf
#define | strio_puts rb_io_puts
#define | strio_syswrite rb_io_write
#define | strio_isatty strio_false
#define | strio_pid strio_nil
#define | strio_fileno strio_nil

## Typedefs
typedef char | strio_flags_check [(STRIO_READABLE/FMODE_READABLE==STRIO_WRITABLE/FMODE_WRITABLE)*2-1]

## Functions
static void | strio_init (int, VALUE *, struct StringIO *, VALUE)
static struct StringIO * | strio_alloc (void)
static void | strio_mark (void *p)
static void | strio_free (void *p)
static size_t | strio_memsize (const void *p)
static struct StringIO * | get_strio (VALUE self)
static VALUE | strio_substr (struct StringIO *ptr, long pos, long len)
static struct StringIO * | readable (VALUE strio)
static struct StringIO * | writable (VALUE strio)
static void | check_modifiable (struct StringIO *ptr)
static VALUE | strio_s_allocate (VALUE klass)
static VALUE | strio_initialize (int argc, VALUE *argv, VALUE self)
static VALUE | strio_finalize (VALUE self)
static VALUE | strio_s_open (int argc, VALUE *argv, VALUE klass)
static VALUE | strio_false (VALUE self)
static VALUE | strio_nil (VALUE self)
static VALUE | strio_self (VALUE self)
static VALUE | strio_0 (VALUE self)
static VALUE | strio_first (VALUE self, VALUE arg)
static VALUE | strio_unimpl (int argc, VALUE *argv, VALUE self)
static VALUE | strio_get_string (VALUE self)
static VALUE | strio_set_string (VALUE self, VALUE string)
static VALUE | strio_close (VALUE self)
static VALUE | strio_close_read (VALUE self)
static VALUE | strio_close_write (VALUE self)
static VALUE | strio_closed (VALUE self)
static VALUE | strio_closed_read (VALUE self)
static VALUE | strio_closed_write (VALUE self)
static VALUE | strio_eof (VALUE self)
static VALUE | strio_copy (VALUE copy, VALUE orig)
static VALUE | strio_get_lineno (VALUE self)
static VALUE | strio_set_lineno (VALUE self, VALUE lineno)
static VALUE | strio_reopen (int argc, VALUE *argv, VALUE self)
static VALUE | strio_get_pos (VALUE self)
static VALUE | strio_set_pos (VALUE self, VALUE pos)
static VALUE | strio_rewind (VALUE self)
static VALUE | strio_seek (int argc, VALUE *argv, VALUE self)
static VALUE | strio_get_sync (VALUE self)
static VALUE | strio_each_byte (VALUE self)
static VALUE | strio_bytes (VALUE self)
static VALUE | strio_getc (VALUE self)
static VALUE | strio_getbyte (VALUE self)
static void | strio_extend (struct StringIO *ptr, long pos, long len)
static VALUE | strio_ungetc (VALUE self, VALUE c)
static VALUE | strio_ungetbyte (VALUE self, VALUE c)
static VALUE | strio_readchar (VALUE self)
static VALUE | strio_readbyte (VALUE self)
static VALUE | strio_each_char (VALUE self)
static VALUE | strio_chars (VALUE self)
static VALUE | strio_each_codepoint (VALUE self)
static VALUE | strio_codepoints (VALUE self)
static void | bm_init_skip (long *skip, const char *pat, long m)
static long | bm_search (const char *little, long llen, const char *big, long blen, const long *skip)
static VALUE | strio_getline (int argc, VALUE *argv, struct StringIO *ptr)
static VALUE | strio_gets (int argc, VALUE *argv, VALUE self)
static VALUE | strio_readline (int argc, VALUE *argv, VALUE self)
static VALUE | strio_each (int argc, VALUE *argv, VALUE self)
static VALUE | strio_lines (int argc, VALUE *argv, VALUE self)
static VALUE | strio_readlines (int argc, VALUE *argv, VALUE self)
static VALUE | strio_write (VALUE self, VALUE str)
static VALUE | strio_putc (VALUE self, VALUE ch)
static VALUE | strio_read (int argc, VALUE *argv, VALUE self)
static VALUE | strio_sysread (int argc, VALUE *argv, VALUE self)
static VALUE | strio_size (VALUE self)
static VALUE | strio_truncate (VALUE self, VALUE len)
static VALUE | strio_external_encoding (VALUE self)
static VALUE | strio_internal_encoding (VALUE self)
static VALUE | strio_set_encoding (int argc, VALUE *argv, VALUE self)
void | Init_stringio ()

## Variables
static const rb_data_type_t | strio_data_type

## Macro Definition Documentation

#define check_strio | ( |  | self) |  | ((struct StringIO*)rb_check_typeddata((self), &strio_data_type))

Definition at line 83 of file stringio.c.

Referenced by get_strio(), strio_copy(), and strio_initialize().

#define CLOSED | ( |  | strio) |  | (!STRIO_MODE_SET_P(strio, READWRITE))

Definition at line 117 of file stringio.c.

Referenced by strio_close(), strio_closed(), and strio_seek().

#define error_inval | ( |  | msg) |  | (errno = EINVAL, rb_sys_fail(msg))

Definition at line 34 of file stringio.c.

Referenced by strio_seek(), strio_set_pos(), and strio_truncate().

#define IS_STRIO | ( |  | obj) |  | (rb_typeddata_is_kind_of((obj), &strio_data_type))

Definition at line 33 of file stringio.c.

#define READABLE | ( |  | strio) |  | STRIO_MODE_SET_P(strio, READABLE)

Definition at line 118 of file stringio.c.

Referenced by readable(), strio_close_read(), and strio_closed_read().

#define StringIO | ( |  | obj) |  | get_strio(obj)

Definition at line 108 of file stringio.c.

Referenced by readable(), strio_0(), strio_close(), strio_close_read(), strio_close_write(), strio_closed(), strio_closed_read(), strio_closed_write(), strio_copy(), strio_each(), strio_external_encoding(), strio_false(), strio_finalize(), strio_first(), strio_get_lineno(), strio_get_pos(), strio_get_string(), strio_get_sync(), strio_nil(), strio_readlines(), strio_reopen(), strio_rewind(), strio_seek(), strio_self(), strio_set_encoding(), strio_set_lineno(), strio_set_pos(), strio_set_string(), strio_size(), strio_unimpl(), and writable().

#define strio_addstr rb_io_addstr

Definition at line 1209 of file stringio.c.

Referenced by Init_stringio().

#define strio_binmode strio_self

Definition at line 498 of file stringio.c.

Referenced by Init_stringio().

#define strio_fcntl strio_unimpl

Definition at line 501 of file stringio.c.

Referenced by Init_stringio().

#define strio_fileno strio_nil

Definition at line 1362 of file stringio.c.

Referenced by Init_stringio().

#define strio_flush strio_self

Definition at line 504 of file stringio.c.

Referenced by Init_stringio().

#define strio_fsync strio_0

Definition at line 507 of file stringio.c.

Referenced by Init_stringio().

#define strio_isatty strio_false

Definition at line 1356 of file stringio.c.

Referenced by Init_stringio().

#define STRIO_MODE_SET_P | ( |  | strio,
|  |  | mode
| ) |  |

Value:
((RBASIC(strio)->flags & STRIO_##mode) && \
((struct StringIO*)DATA_PTR(strio))->flags & FMODE_##mode)

Definition at line 114 of file stringio.c.

#define strio_pid strio_nil

Definition at line 1359 of file stringio.c.

Referenced by Init_stringio().

#define strio_print rb_io_print

Definition at line 1218 of file stringio.c.

Referenced by Init_stringio().

#define strio_printf rb_io_printf

Definition at line 1226 of file stringio.c.

Referenced by Init_stringio().

#define strio_puts rb_io_puts

Definition at line 1258 of file stringio.c.

Referenced by Init_stringio().

#define STRIO_READABLE FL_USER4

Definition at line 110 of file stringio.c.

Referenced by strio_close_read(), and strio_init().

#define STRIO_READWRITE (STRIO_READABLE|STRIO_WRITABLE)

Definition at line 112 of file stringio.c.

Referenced by strio_close(), and strio_copy().

#define strio_set_sync strio_first

Definition at line 627 of file stringio.c.

Referenced by Init_stringio().

#define strio_syswrite rb_io_write

Definition at line 1348 of file stringio.c.

Referenced by Init_stringio().

#define strio_tell strio_get_pos

Definition at line 629 of file stringio.c.

Referenced by Init_stringio().

#define STRIO_WRITABLE FL_USER5

Definition at line 111 of file stringio.c.

Referenced by strio_close_write().

#define WRITABLE | ( |  | strio) |  | STRIO_MODE_SET_P(strio, WRITABLE)

Definition at line 119 of file stringio.c.

Referenced by strio_close_write(), strio_closed_write(), and writable().

## Typedef Documentation

typedef char strio_flags_check[(STRIO_READABLE/FMODE_READABLE==STRIO_WRITABLE/FMODE_WRITABLE)*2-1]

Definition at line 113 of file stringio.c.

## Function Documentation

static void bm_init_skip | ( | long * | skip,
|  | const char * | pat,
|  | long | m
| ) |  |
| static

Definition at line 930 of file stringio.c.

References c, and CHAR_BIT.

Referenced by strio_getline().

static long bm_search | ( | const char * | little,
|  | long | llen,
|  | const char * | big,
|  | long | blen,
|  | const long * | skip
| ) |  |
| static

Definition at line 943 of file stringio.c.

References i.

Referenced by strio_getline().

static void check_modifiable | ( | struct StringIO * | ptr) |  |
| static

Definition at line 145 of file stringio.c.

References OBJ_FROZEN, rb_eIOError, rb_raise(), and StringIO::string.

Referenced by strio_extend(), strio_putc(), strio_ungetbyte(), strio_ungetc(), and strio_write().

static struct StringIO* get_strio | ( | VALUE | self) |  |
| static

Definition at line 86 of file stringio.c.

References check_strio, rb_eIOError, rb_io_taint_check(), and rb_raise().

void Init_stringio | ( | ) |  |

Definition at line 1464 of file stringio.c.

References rb_cData, rb_cIO, rb_define_alloc_func(), rb_define_class(), rb_define_method(), rb_define_module_under(), rb_define_singleton_method(), rb_include_module(), rb_mEnumerable, strio_addstr, strio_binmode, strio_bytes(), strio_chars(), strio_close(), strio_close_read(), strio_close_write(), strio_closed(), strio_closed_read(), strio_closed_write(), strio_codepoints(), strio_copy(), strio_each(), strio_each_byte(), strio_each_char(), strio_each_codepoint(), strio_eof(), strio_external_encoding(), strio_fcntl, strio_fileno, strio_flush, strio_fsync, strio_get_lineno(), strio_get_pos(), strio_get_string(), strio_get_sync(), strio_getbyte(), strio_getc(), strio_gets(), strio_initialize(), strio_internal_encoding(), strio_isatty, strio_lines(), strio_pid, strio_print, strio_printf, strio_putc(), strio_puts, strio_read(), strio_readbyte(), strio_readchar(), strio_readline(), strio_readlines(), strio_reopen(), strio_rewind(), strio_s_allocate(), strio_s_open(), strio_seek(), strio_set_encoding(), strio_set_lineno(), strio_set_pos(), strio_set_string(), strio_set_sync, strio_size(), strio_sysread(), strio_syswrite, strio_tell, strio_truncate(), strio_ungetbyte(), strio_ungetc(), and strio_write().

static struct StringIO* readable | ( | VALUE | strio) |  |
| static

Definition at line 122 of file stringio.c.

References rb_eIOError, rb_raise(), READABLE, and StringIO.

Referenced by r_byte1_buffered(), r_bytes1_buffered(), strio_each(), strio_each_byte(), strio_each_codepoint(), strio_eof(), strio_getbyte(), strio_getc(), strio_gets(), strio_read(), strio_readlines(), strio_ungetbyte(), and strio_ungetc().

static VALUE strio_0 | ( | VALUE | self) |  |
| static

Definition at line 276 of file stringio.c.

References INT2FIX, and StringIO.

static struct StringIO* strio_alloc | ( | void | ) |  |
| static

Definition at line 37 of file stringio.c.

References ALLOC, StringIO::count, StringIO::flags, StringIO::lineno, StringIO::pos, Qnil, and StringIO::string.

Referenced by strio_initialize().

static VALUE strio_bytes | ( | VALUE | self) |  |
| static

Definition at line 656 of file stringio.c.

References ID2SYM, rb_block_given_p(), rb_enumeratorize(), rb_intern, rb_warn(), and strio_each_byte().

Referenced by Init_stringio().

static VALUE strio_chars | ( | VALUE | self) |  |
| static

Definition at line 876 of file stringio.c.

References ID2SYM, rb_block_given_p(), rb_enumeratorize(), rb_intern, rb_warn(), and strio_each_char().

Referenced by Init_stringio().

static VALUE strio_close | ( | VALUE | self) |  |
| static

Definition at line 343 of file stringio.c.

References CLOSED, Qnil, rb_eIOError, rb_raise(), RBASIC, StringIO, and STRIO_READWRITE.

Referenced by Init_stringio().

static VALUE strio_close_read | ( | VALUE | self) |  |
| static

Definition at line 361 of file stringio.c.

References Qnil, rb_eIOError, rb_raise(), RBASIC, READABLE, StringIO, and STRIO_READABLE.

Referenced by Init_stringio().

static VALUE strio_close_write | ( | VALUE | self) |  |
| static

Definition at line 379 of file stringio.c.

References Qnil, rb_eIOError, rb_raise(), RBASIC, StringIO, STRIO_WRITABLE, and WRITABLE.

Referenced by Init_stringio().

static VALUE strio_closed | ( | VALUE | self) |  |
| static

Definition at line 396 of file stringio.c.

References CLOSED, Qfalse, Qtrue, and StringIO.

Referenced by Init_stringio().

static VALUE strio_closed_read | ( | VALUE | self) |  |
| static

Definition at line 410 of file stringio.c.

References Qfalse, Qtrue, READABLE, and StringIO.

Referenced by Init_stringio().

static VALUE strio_closed_write | ( | VALUE | self) |  |
| static

Definition at line 424 of file stringio.c.

References Qfalse, Qtrue, StringIO, and WRITABLE.

Referenced by Init_stringio().

static VALUE strio_codepoints | ( | VALUE | self) |  |
| static

Definition at line 920 of file stringio.c.

References ID2SYM, rb_block_given_p(), rb_enumeratorize(), rb_intern, rb_warn(), and strio_each_codepoint().

Referenced by Init_stringio().

static VALUE strio_copy | ( | VALUE | copy,
|  | VALUE | orig
| ) |  |
| static

Definition at line 449 of file stringio.c.

References check_strio, StringIO::count, DATA_PTR, OBJ_INFECT, rb_convert_type(), RBASIC, StringIO, strio_free(), STRIO_READWRITE, and T_DATA.

Referenced by Init_stringio(), and strio_reopen().

static VALUE strio_each | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 1102 of file stringio.c.

References NIL_P, NUM2LONG, rb_check_string_type(), rb_eArgError, rb_raise(), rb_yield(), readable(), RETURN_ENUMERATOR, StringIO, and strio_getline().

Referenced by Init_stringio(), and strio_lines().

static VALUE strio_each_byte | ( | VALUE | self) |  |
| static

Definition at line 639 of file stringio.c.

References c, CHR2FIX, StringIO::pos, rb_yield(), readable(), RETURN_ENUMERATOR, RSTRING_LEN, RSTRING_PTR, and StringIO::string.

Referenced by Init_stringio(), and strio_bytes().

static VALUE strio_each_char | ( | VALUE | self) |  |
| static

Definition at line 860 of file stringio.c.

References c, NIL_P, rb_yield(), RETURN_ENUMERATOR, and strio_getc().

Referenced by Init_stringio(), and strio_chars().

static VALUE strio_each_codepoint | ( | VALUE | self) |  |
| static

Definition at line 892 of file stringio.c.

References c, StringIO::pos, rb_enc_codepoint_len(), rb_enc_get(), rb_yield(), readable(), RETURN_ENUMERATOR, RSTRING_END, RSTRING_LEN, RSTRING_PTR, StringIO::string, and UINT2NUM.

Referenced by Init_stringio(), and strio_codepoints().

static VALUE strio_eof | ( | VALUE | self) |  |
| static

Definition at line 440 of file stringio.c.

References StringIO::pos, Qfalse, Qtrue, readable(), RSTRING_LEN, and StringIO::string.

Referenced by Init_stringio().

static void strio_extend | ( | struct StringIO * | ptr,
|  | long | pos,
|  | long | len
| ) |  |
| static

Definition at line 706 of file stringio.c.

References check_modifiable(), MEMZERO, rb_str_modify(), rb_str_resize(), RSTRING_LEN, RSTRING_PTR, and StringIO::string.

Referenced by strio_putc(), and strio_write().

static VALUE strio_external_encoding | ( | VALUE | self) |  |
| static

Definition at line 1412 of file stringio.c.

References rb_enc_from_encoding(), rb_enc_get(), and StringIO.

Referenced by Init_stringio().

static VALUE strio_false | ( | VALUE | self) |  |
| static

Definition at line 246 of file stringio.c.

References Qfalse, and StringIO.

static VALUE strio_finalize | ( | VALUE | self) |  |
| static

Definition at line 219 of file stringio.c.

References StringIO::flags, FMODE_READWRITE, Qnil, StringIO::string, and StringIO.

Referenced by strio_s_open().

static VALUE strio_first | ( | VALUE | self,
|  | VALUE | arg
| ) |  |
| static

Definition at line 286 of file stringio.c.

References arg, and StringIO.

static void strio_free | ( | void * | p) |  |
| static

Definition at line 58 of file stringio.c.

References StringIO::count, p, and xfree.

Referenced by strio_copy().

static VALUE strio_get_lineno | ( | VALUE | self) |  |
| static

Definition at line 478 of file stringio.c.

References StringIO::lineno, LONG2NUM, and StringIO.

Referenced by Init_stringio().

static VALUE strio_get_pos | ( | VALUE | self) |  |
| static

Definition at line 536 of file stringio.c.

References LONG2NUM, StringIO::pos, and StringIO.

Referenced by Init_stringio().

static VALUE strio_get_string | ( | VALUE | self) |  |
| static

Definition at line 310 of file stringio.c.

References StringIO.

Referenced by Init_stringio().

static VALUE strio_get_sync | ( | VALUE | self) |  |
| static

Definition at line 620 of file stringio.c.

References Qtrue, and StringIO.

Referenced by Init_stringio().

static VALUE strio_getbyte | ( | VALUE | self) |  |
| static

Definition at line 694 of file stringio.c.

References c, CHR2FIX, StringIO::pos, Qnil, readable(), RSTRING_LEN, RSTRING_PTR, and StringIO::string.

Referenced by Init_stringio().

static VALUE strio_getc | ( | VALUE | self) |  |
| static

Definition at line 671 of file stringio.c.

References p, StringIO::pos, Qnil, rb_enc_get(), rb_enc_mbclen(), rb_enc_str_new(), readable(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, and StringIO::string.

Referenced by Init_stringio(), and strio_each_char().

static VALUE strio_getline | ( | int | argc,
|  | VALUE * | argv,
|  | struct StringIO * | ptr
| ) |  |
| static

Definition at line 962 of file stringio.c.

References bm_init_skip(), bm_search(), CHAR_BIT, StringIO::lineno, MEMCMP, NIL_P, NUM2LONG, p, StringIO::pos, Qnil, rb_check_string_type(), rb_enc_get(), rb_enc_right_char_head, rb_rs, rb_scan_args(), rb_str_new(), RB_TYPE_P, RSTRING_LEN, RSTRING_PTR, StringIO::string, StringValue, strio_substr(), and T_STRING.

Referenced by strio_each(), strio_gets(), and strio_readlines().

static VALUE strio_gets | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 1063 of file stringio.c.

References rb_lastline_set(), readable(), and strio_getline().

Referenced by Init_stringio().

static void strio_init | ( | int | argc,
|  | VALUE * | argv,
|  | struct StringIO * | ptr,
|  | VALUE | self
| ) |  |
| static

Definition at line 177 of file stringio.c.

References errno, FIX2INT, FIXNUM_P, StringIO::flags, FMODE_READABLE, FMODE_READWRITE, FMODE_WRITABLE, StringIO::lineno, OBJ_FROZEN, StringIO::pos, rb_default_external_encoding(), rb_enc_str_new(), rb_io_mode_flags, rb_io_modenum_flags, rb_scan_args(), rb_str_resize(), rb_sys_fail(), RBASIC, StringIO::string, StringValue, StringValueCStr, and STRIO_READABLE.

Referenced by strio_initialize(), and strio_reopen().

static VALUE strio_initialize | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 164 of file stringio.c.

References check_strio, DATA_PTR, rb_call_super(), strio_alloc(), and strio_init().

Referenced by Init_stringio().

static VALUE strio_internal_encoding | ( | VALUE | self) |  |
| static

Definition at line 1426 of file stringio.c.

References Qnil.

Referenced by Init_stringio().

static VALUE strio_lines | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 1124 of file stringio.c.

References ID2SYM, rb_block_given_p(), rb_enumeratorize(), rb_intern, rb_warn(), and strio_each().

Referenced by Init_stringio().

static void strio_mark | ( | void * | p) |  |
| static

Definition at line 49 of file stringio.c.

References p, rb_gc_mark(), and StringIO::string.

static size_t strio_memsize | ( | const void * | p) |  |
| static

Definition at line 67 of file stringio.c.

References p.

static VALUE strio_nil | ( | VALUE | self) |  |
| static

Definition at line 256 of file stringio.c.

References Qnil, and StringIO.

static VALUE strio_putc | ( | VALUE | self,
|  | VALUE | ch
| ) |  |
| static

Definition at line 1235 of file stringio.c.

References c, check_modifiable(), StringIO::flags, FMODE_APPEND, NUM2CHR, OBJ_INFECT, StringIO::pos, RSTRING_LEN, RSTRING_PTR, StringIO::string, strio_extend(), and writable().

Referenced by Init_stringio().

static VALUE strio_read | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 1267 of file stringio.c.

References MEMCPY, NIL_P, NUM2LONG, StringIO::pos, Qnil, rb_ascii8bit_encoding(), rb_eArgError, rb_enc_associate(), rb_enc_copy(), rb_raise(), rb_str_modify(), rb_str_new(), rb_str_resize(), readable(), RSTRING_LEN, RSTRING_PTR, StringIO::string, StringValue, and strio_substr().

Referenced by Init_stringio().

static VALUE strio_readbyte | ( | VALUE | self) |  |
| static

Definition at line 845 of file stringio.c.

References c, NIL_P, rb_eof_error(), rb_funcall2(), and rb_intern.

Referenced by Init_stringio().

static VALUE strio_readchar | ( | VALUE | self) |  |
| static

Definition at line 831 of file stringio.c.

References c, NIL_P, rb_eof_error(), rb_funcall2(), and rb_intern.

Referenced by Init_stringio().

static VALUE strio_readline | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 1080 of file stringio.c.

References NIL_P, rb_eof_error(), rb_funcall2(), and rb_intern.

Referenced by Init_stringio().

static VALUE strio_readlines | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 1141 of file stringio.c.

References NIL_P, NUM2LONG, rb_ary_new(), rb_ary_push(), rb_check_string_type(), rb_eArgError, rb_raise(), readable(), StringIO, and strio_getline().

Referenced by Init_stringio().

static VALUE strio_reopen | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 518 of file stringio.c.

References rb_io_taint_check(), RB_TYPE_P, StringIO, strio_copy(), strio_init(), and T_STRING.

Referenced by Init_stringio().

static VALUE strio_rewind | ( | VALUE | self) |  |
| static

Definition at line 567 of file stringio.c.

References INT2FIX, StringIO::lineno, StringIO::pos, and StringIO.

Referenced by Init_stringio().

static VALUE strio_s_allocate | ( | VALUE | klass) |  |
| static

Definition at line 153 of file stringio.c.

References TypedData_Wrap_Struct.

Referenced by Init_stringio().

static VALUE strio_s_open | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | klass
| ) |  |
| static

Definition at line 235 of file stringio.c.

References rb_block_given_p(), rb_class_new_instance(), rb_ensure(), rb_yield(), and strio_finalize().

Referenced by Init_stringio().

static VALUE strio_seek | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 583 of file stringio.c.

References CLOSED, error_inval, INT2FIX, NIL_P, NULL, NUM2LONG, StringIO::pos, rb_eIOError, rb_raise(), rb_scan_args(), RSTRING_LEN, StringIO::string, and StringIO.

Referenced by Init_stringio().

static VALUE strio_self | ( | VALUE | self) |  |
| static

Definition at line 266 of file stringio.c.

References StringIO.

static VALUE strio_set_encoding | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 1442 of file stringio.c.

References NIL_P, rb_default_external_encoding(), rb_enc_associate(), rb_scan_args(), rb_to_encoding(), and StringIO.

Referenced by Init_stringio().

static VALUE strio_set_lineno | ( | VALUE | self,
|  | VALUE | lineno
| ) |  |
| static

Definition at line 491 of file stringio.c.

References StringIO::lineno, NUM2LONG, and StringIO.

Referenced by Init_stringio().

static VALUE strio_set_pos | ( | VALUE | self,
|  | VALUE | pos
| ) |  |
| static

Definition at line 548 of file stringio.c.

References error_inval, NUM2LONG, p, StringIO::pos, and StringIO.

Referenced by Init_stringio().

static VALUE strio_set_string | ( | VALUE | self,
|  | VALUE | string
| ) |  |
| static

Definition at line 322 of file stringio.c.

References StringIO::flags, FMODE_READABLE, FMODE_READWRITE, StringIO::lineno, OBJ_FROZEN, StringIO::pos, rb_io_taint_check(), StringIO::string, StringIO, and StringValue.

Referenced by Init_stringio().

static VALUE strio_size | ( | VALUE | self) |  |
| static

Definition at line 1371 of file stringio.c.

References NIL_P, rb_eIOError, rb_raise(), RSTRING_LEN, StringIO, and ULONG2NUM.

Referenced by Init_stringio().

static VALUE strio_substr | ( | struct StringIO * | ptr,
|  | long | pos,
|  | long | len
| ) |  |
| static

Definition at line 97 of file stringio.c.

References StringIO::pos, rb_enc_get(), rb_enc_str_new(), RSTRING_LEN, RSTRING_PTR, and StringIO::string.

Referenced by strio_getline(), and strio_read().

static VALUE strio_sysread | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 1339 of file stringio.c.

References NIL_P, rb_eof_error(), rb_funcall2(), rb_intern, and val.

Referenced by Init_stringio().

static VALUE strio_truncate | ( | VALUE | self,
|  | VALUE | len
| ) |  |
| static

Definition at line 1388 of file stringio.c.

References error_inval, MEMZERO, NUM2LONG, rb_str_resize(), RSTRING_LEN, RSTRING_PTR, StringIO::string, and writable().

Referenced by Init_stringio().

static VALUE strio_ungetbyte | ( | VALUE | self,
|  | VALUE | c
| ) |  |
| static

Definition at line 788 of file stringio.c.

References buf, check_modifiable(), FIX2INT, FIXNUM_P, memmove(), NIL_P, StringIO::pos, Qnil, RB_GC_GUARD, rb_str_modify(), rb_str_resize(), readable(), RSTRING_LEN, RSTRING_PTR, SafeStringValue, and StringIO::string.

Referenced by Init_stringio().

static VALUE strio_ungetc | ( | VALUE | self,
|  | VALUE | c
| ) |  |
| static

Definition at line 732 of file stringio.c.

References buf, check_modifiable(), FIX2INT, FIXNUM_P, NIL_P, p, StringIO::pos, Qnil, rb_ascii8bit_encoding(), rb_enc_codelen(), rb_enc_get(), rb_enc_mbclen(), rb_enc_mbcput, rb_enc_str_new(), rb_str_concat(), rb_str_conv_enc(), rb_str_resize(), rb_str_update(), readable(), RSTRING_LEN, RSTRING_PTR, SafeStringValue, and StringIO::string.

Referenced by Init_stringio().

static VALUE strio_unimpl | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | self
| ) |  |
| static

Definition at line 296 of file stringio.c.

References rb_notimplement(), StringIO, and UNREACHABLE.

static VALUE strio_write | ( | VALUE | self,
|  | VALUE | str
| ) |  |
| static

Definition at line 1169 of file stringio.c.

References check_modifiable(), StringIO::flags, FMODE_APPEND, INT2FIX, LONG2NUM, memmove(), OBJ_INFECT, StringIO::pos, rb_ascii8bit_encoding(), rb_enc_get(), RB_GC_GUARD, rb_obj_as_string(), rb_str_cat(), rb_str_conv_enc(), RB_TYPE_P, RSTRING_LEN, RSTRING_PTR, StringIO::string, strio_extend(), T_STRING, and writable().

Referenced by Init_stringio().

static struct StringIO* writable | ( | VALUE | strio) |  |
| static

Definition at line 132 of file stringio.c.

References OBJ_TAINTED, rb_eIOError, rb_raise(), rb_secure(), StringIO::string, StringIO, and WRITABLE.

Referenced by strio_putc(), strio_truncate(), and strio_write().

## Variable Documentation

const rb_data_type_t strio_data_type
| static

Initial value:
= {
"strio",
{
strio_mark,
strio_free,
strio_memsize,
},
}

Definition at line 74 of file stringio.c.