Ruby 1.9.2p136(2010-12-25revision30365)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Defines | Typedefs | Enumerations | Functions | Variables

# string.c File Reference

`#include "ruby/ruby.h"`
`#include "ruby/re.h"`
`#include "ruby/encoding.h"`
`#include <assert.h>`
`#include <math.h>`
`#include <ctype.h>`
Include dependency graph for string.c:

Go to the source code of this file.

## Data Structures
struct | tr
## Defines
#define | BEG(no) regs->beg[no]
#define | END(no) regs->end[no]
#define | numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
#define | RUBY_MAX_CHAR_LEN 16
#define | STR_TMPLOCK FL_USER7
#define | STR_NOEMBED FL_USER1
#define | STR_SHARED FL_USER2
#define | STR_ASSOC FL_USER3
#define | STR_SHARED_P(s) FL_ALL(s, STR_NOEMBED|ELTS_SHARED)
#define | STR_ASSOC_P(s) FL_ALL(s, STR_NOEMBED|STR_ASSOC)
#define | STR_NOCAPA (STR_NOEMBED|ELTS_SHARED|STR_ASSOC)
#define | STR_NOCAPA_P(s) (FL_TEST(s,STR_NOEMBED) && FL_ANY(s,ELTS_SHARED|STR_ASSOC))
#define | STR_UNSET_NOCAPA(s)
#define | STR_SET_NOEMBED(str)
#define | STR_SET_EMBED(str) FL_UNSET(str, STR_NOEMBED)
#define | STR_EMBED_P(str) (!FL_TEST(str, STR_NOEMBED))
#define | STR_SET_EMBED_LEN(str, n)
#define | STR_SET_LEN(str, n)
#define | STR_DEC_LEN(str)
#define | RESIZE_CAPA(str, capacity)
#define | is_ascii_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT)
#define | is_broken_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN)
#define | STR_ENC_GET(str) rb_enc_from_index(ENCODING_GET(str))
#define | rb_str_new2 rb_str_new_cstr
#define | rb_usascii_str_new2 rb_usascii_str_new_cstr
#define | rb_tainted_str_new2 rb_tainted_str_new_cstr
#define | rb_str_new3 rb_str_new_shared
#define | rb_str_new4 rb_str_new_frozen
#define | rb_str_new5 rb_str_new_with_class
#define | STR_BUF_MIN_SIZE 128
#define | rb_str_buf_new2 rb_str_buf_new_cstr
#define | rb_str_dup_frozen rb_str_new_frozen
#define | str_buf_cat2(str, ptr) str_buf_cat(str, (ptr), strlen(ptr))
#define | lesser(a, b) (((a)>(b))?(b):(a))
#define | CHAR_ESC_LEN 13
#define | IS_EVSTR(p, e) ((p) < (e) && (*(p) == '$' || *(p) == '@' || *(p) == '{'))
#define | CHECK_IF_ASCII(c)
#define | ascii_isspace(c) isspacetable[(unsigned char)(c)]
#define | rb_intern(str) rb_intern_const(str)
## Typedefs
typedef unsigned char * | USTR
## Enumerations
enum | neighbor_char { NEIGHBOR_NOT_CHAR, NEIGHBOR_FOUND, NEIGHBOR_WRAPPED }
## Functions
static int | single_byte_optimizable (VALUE str)
static const char * | search_nonascii (const char *p, const char *e)
static int | coderange_scan (const char *p, long len, rb_encoding *enc)
long | rb_str_coderange_scan_restartable (const char *s, const char *e, rb_encoding *enc, int *cr)
static void | str_enc_copy (VALUE str1, VALUE str2)
static void | rb_enc_cr_str_copy_for_substr (VALUE dest, VALUE src)
static void | rb_enc_cr_str_exact_copy (VALUE dest, VALUE src)
int | rb_enc_str_coderange (VALUE str)
int | rb_enc_str_asciionly_p (VALUE str)
static void | str_mod_check (VALUE s, const char *p, long len)
static void | str_frozen_check (VALUE s)
size_t | rb_str_capacity (VALUE str)
static VALUE | str_alloc (VALUE klass)
static VALUE | str_new (VALUE klass, const char *ptr, long len)
VALUE | rb_str_new (const char *ptr, long len)
VALUE | rb_usascii_str_new (const char *ptr, long len)
VALUE | rb_enc_str_new (const char *ptr, long len, rb_encoding *enc)
VALUE | rb_str_new_cstr (const char *ptr)
| RUBY_ALIAS_FUNCTION (rb_str_new2(const char *ptr), rb_str_new_cstr,(ptr))
| RUBY_ALIAS_FUNCTION (rb_usascii_str_new2(const char *ptr), rb_usascii_str_new_cstr,(ptr))
VALUE | rb_tainted_str_new_cstr (const char *ptr)
| RUBY_ALIAS_FUNCTION (rb_tainted_str_new2(const char *ptr), rb_tainted_str_new_cstr,(ptr))
VALUE | rb_str_conv_enc (VALUE str, rb_encoding *from, rb_encoding *to)
VALUE | rb_external_str_new_with_enc (const char *ptr, long len, rb_encoding *eenc)
VALUE | rb_external_str_new (const char *ptr, long len)
VALUE | rb_external_str_new_cstr (const char *ptr)
VALUE | rb_locale_str_new (const char *ptr, long len)
VALUE | rb_locale_str_new_cstr (const char *ptr)
VALUE | rb_filesystem_str_new (const char *ptr, long len)
VALUE | rb_filesystem_str_new_cstr (const char *ptr)
VALUE | rb_str_export (VALUE str)
VALUE | rb_str_export_locale (VALUE str)
VALUE | rb_str_export_to_enc (VALUE str, rb_encoding *enc)
static VALUE | str_replace_shared (VALUE str2, VALUE str)
static VALUE | str_new_shared (VALUE klass, VALUE str)
static VALUE | str_new3 (VALUE klass, VALUE str)
VALUE | rb_str_new_shared (VALUE str)
| RUBY_ALIAS_FUNCTION (rb_str_new3(VALUE str), rb_str_new_shared,(str))
VALUE | rb_str_new_frozen (VALUE orig)
| RUBY_ALIAS_FUNCTION (rb_str_new4(VALUE orig), rb_str_new_frozen,(orig))
| RUBY_ALIAS_FUNCTION (rb_str_new5(VALUE obj, const char *ptr, long len), rb_str_new_with_class,(obj, ptr, len))
VALUE | rb_str_buf_new (long capa)
VALUE | rb_str_buf_new_cstr (const char *ptr)
| RUBY_ALIAS_FUNCTION (rb_str_buf_new2(const char *ptr), rb_str_buf_new_cstr,(ptr))
void | rb_str_free (VALUE str)
size_t | rb_str_memsize (VALUE str)
VALUE | rb_str_to_str (VALUE str)
static void | str_discard (VALUE str)
void | rb_str_shared_replace (VALUE str, VALUE str2)
VALUE | rb_obj_as_string (VALUE obj)
static VALUE | str_replace (VALUE str, VALUE str2)
static VALUE | str_duplicate (VALUE klass, VALUE str)
VALUE | rb_str_dup (VALUE str)
VALUE | rb_str_resurrect (VALUE str)
static VALUE | rb_str_init (int argc, VALUE *argv, VALUE str)
static long | enc_strlen (const char *p, const char *e, rb_encoding *enc, int cr)
long | rb_enc_strlen (const char *p, const char *e, rb_encoding *enc)
long | rb_enc_strlen_cr (const char *p, const char *e, rb_encoding *enc, int *cr)
static long | str_strlen (VALUE str, rb_encoding *enc)
long | rb_str_strlen (VALUE str)
VALUE | rb_str_length (VALUE str)
static VALUE | rb_str_bytesize (VALUE str)
static VALUE | rb_str_empty (VALUE str)
VALUE | rb_str_plus (VALUE str1, VALUE str2)
VALUE | rb_str_times (VALUE str, VALUE times)
static VALUE | rb_str_format_m (VALUE str, VALUE arg)
static void | str_modifiable (VALUE str)
static int | str_independent (VALUE str)
static void | str_make_independent (VALUE str)
void | rb_str_modify (VALUE str)
static void | str_modify_keep_cr (VALUE str)
void | rb_str_associate (VALUE str, VALUE add)
VALUE | rb_str_associated (VALUE str)
VALUE | rb_string_value (volatile VALUE *ptr)
char * | rb_string_value_ptr (volatile VALUE *ptr)
char * | rb_string_value_cstr (volatile VALUE *ptr)
VALUE | rb_check_string_type (VALUE str)
static VALUE | rb_str_s_try_convert (VALUE dummy, VALUE str)
char * | rb_enc_nth (const char *p, const char *e, long nth, rb_encoding *enc)
static char * | str_nth (const char *p, const char *e, long nth, rb_encoding *enc, int singlebyte)
static long | str_offset (const char *p, const char *e, long nth, rb_encoding *enc, int singlebyte)
long | rb_str_offset (VALUE str, long pos)
long | rb_str_sublen (VALUE str, long pos)
VALUE | rb_str_subseq (VALUE str, long beg, long len)
VALUE | rb_str_substr (VALUE str, long beg, long len)
VALUE | rb_str_freeze (VALUE str)
| RUBY_ALIAS_FUNCTION (rb_str_dup_frozen(VALUE str), rb_str_new_frozen,(str))
VALUE | rb_str_unlocktmp (VALUE str)
void | rb_str_set_len (VALUE str, long len)
VALUE | rb_str_resize (VALUE str, long len)
static VALUE | str_buf_cat (VALUE str, const char *ptr, long len)
VALUE | rb_str_buf_cat (VALUE str, const char *ptr, long len)
VALUE | rb_str_buf_cat2 (VALUE str, const char *ptr)
VALUE | rb_str_cat (VALUE str, const char *ptr, long len)
VALUE | rb_str_cat2 (VALUE str, const char *ptr)
static VALUE | rb_enc_cr_str_buf_cat (VALUE str, const char *ptr, long len, int ptr_encindex, int ptr_cr, int *ptr_cr_ret)
VALUE | rb_enc_str_buf_cat (VALUE str, const char *ptr, long len, rb_encoding *ptr_enc)
VALUE | rb_str_buf_cat_ascii (VALUE str, const char *ptr)
VALUE | rb_str_buf_append (VALUE str, VALUE str2)
VALUE | rb_str_append (VALUE str, VALUE str2)
VALUE | rb_str_concat (VALUE str1, VALUE str2)
st_index_t | rb_memhash (const void *ptr, long len)
st_index_t | rb_str_hash (VALUE str)
int | rb_str_hash_cmp (VALUE str1, VALUE str2)
static VALUE | rb_str_hash_m (VALUE str)
int | rb_str_comparable (VALUE str1, VALUE str2)
int | rb_str_cmp (VALUE str1, VALUE str2)
static VALUE | str_eql (const VALUE str1, const VALUE str2)
VALUE | rb_str_equal (VALUE str1, VALUE str2)
static VALUE | rb_str_eql (VALUE str1, VALUE str2)
static VALUE | rb_str_cmp_m (VALUE str1, VALUE str2)
static VALUE | rb_str_casecmp (VALUE str1, VALUE str2)
static long | rb_str_index (VALUE str, VALUE sub, long offset)
static VALUE | rb_str_index_m (int argc, VALUE *argv, VALUE str)
static long | rb_str_rindex (VALUE str, VALUE sub, long pos)
static VALUE | rb_str_rindex_m (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_match (VALUE x, VALUE y)
static VALUE | get_pat (VALUE, int)
static VALUE | rb_str_match_m (int argc, VALUE *argv, VALUE str)
static enum neighbor_char | enc_succ_char (char *p, long len, rb_encoding *enc)
static enum neighbor_char | enc_pred_char (char *p, long len, rb_encoding *enc)
static enum neighbor_char | enc_succ_alnum_char (char *p, long len, rb_encoding *enc, char *carry)
VALUE | rb_str_succ (VALUE orig)
static VALUE | rb_str_succ_bang (VALUE str)
static VALUE | rb_str_upto (int argc, VALUE *argv, VALUE beg)
static VALUE | rb_str_subpat (VALUE str, VALUE re, VALUE backref)
static VALUE | rb_str_aref (VALUE str, VALUE indx)
static VALUE | rb_str_aref_m (int argc, VALUE *argv, VALUE str)
VALUE | rb_str_drop_bytes (VALUE str, long len)
static void | rb_str_splice_0 (VALUE str, long beg, long len, VALUE val)
static void | rb_str_splice (VALUE str, long beg, long len, VALUE val)
void | rb_str_update (VALUE str, long beg, long len, VALUE val)
static void | rb_str_subpat_set (VALUE str, VALUE re, VALUE backref, VALUE val)
static VALUE | rb_str_aset (VALUE str, VALUE indx, VALUE val)
static VALUE | rb_str_aset_m (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_insert (VALUE str, VALUE idx, VALUE str2)
static VALUE | rb_str_slice_bang (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_sub_bang (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_sub (int argc, VALUE *argv, VALUE str)
static VALUE | str_gsub (int argc, VALUE *argv, VALUE str, int bang)
static VALUE | rb_str_gsub_bang (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_gsub (int argc, VALUE *argv, VALUE str)
VALUE | rb_str_replace (VALUE str, VALUE str2)
static VALUE | rb_str_clear (VALUE str)
static VALUE | rb_str_chr (VALUE str)
static VALUE | rb_str_getbyte (VALUE str, VALUE index)
static VALUE | rb_str_setbyte (VALUE str, VALUE index, VALUE value)
static VALUE | rb_str_reverse (VALUE str)
static VALUE | rb_str_reverse_bang (VALUE str)
static VALUE | rb_str_include (VALUE str, VALUE arg)
static VALUE | rb_str_to_i (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_to_f (VALUE str)
static VALUE | rb_str_to_s (VALUE str)
int | rb_str_buf_cat_escaped_char (VALUE result, unsigned int c, int unicode_p)
VALUE | rb_str_inspect (VALUE str)
VALUE | rb_str_dump (VALUE str)
static void | rb_str_check_dummy_enc (rb_encoding *enc)
static VALUE | rb_str_upcase_bang (VALUE str)
static VALUE | rb_str_upcase (VALUE str)
static VALUE | rb_str_downcase_bang (VALUE str)
static VALUE | rb_str_downcase (VALUE str)
static VALUE | rb_str_capitalize_bang (VALUE str)
static VALUE | rb_str_capitalize (VALUE str)
static VALUE | rb_str_swapcase_bang (VALUE str)
static VALUE | rb_str_swapcase (VALUE str)
static unsigned int | trnext (struct tr *t, rb_encoding *enc)
static VALUE | rb_str_delete_bang (int, VALUE *, VALUE)
static VALUE | tr_trans (VALUE str, VALUE src, VALUE repl, int sflag)
static VALUE | rb_str_tr_bang (VALUE str, VALUE src, VALUE repl)
static VALUE | rb_str_tr (VALUE str, VALUE src, VALUE repl)
static void | tr_setup_table (VALUE str, char stable[256], int first, VALUE *tablep, VALUE *ctablep, rb_encoding *enc)
static int | tr_find (unsigned int c, char table[256], VALUE del, VALUE nodel)
static VALUE | rb_str_delete (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_squeeze_bang (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_squeeze (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_tr_s_bang (VALUE str, VALUE src, VALUE repl)
static VALUE | rb_str_tr_s (VALUE str, VALUE src, VALUE repl)
static VALUE | rb_str_count (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_split_m (int argc, VALUE *argv, VALUE str)
VALUE | rb_str_split (VALUE str, const char *sep0)
static VALUE | rb_str_each_line (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_each_byte (VALUE str)
static VALUE | rb_str_each_char (VALUE str)
static VALUE | rb_str_each_codepoint (VALUE str)
static long | chopped_length (VALUE str)
static VALUE | rb_str_chop_bang (VALUE str)
static VALUE | rb_str_chop (VALUE str)
static VALUE | rb_str_chomp_bang (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_chomp (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_lstrip_bang (VALUE str)
static VALUE | rb_str_lstrip (VALUE str)
static VALUE | rb_str_rstrip_bang (VALUE str)
static VALUE | rb_str_rstrip (VALUE str)
static VALUE | rb_str_strip_bang (VALUE str)
static VALUE | rb_str_strip (VALUE str)
static VALUE | scan_once (VALUE str, VALUE pat, long *start)
static VALUE | rb_str_scan (VALUE str, VALUE pat)
static VALUE | rb_str_hex (VALUE str)
static VALUE | rb_str_oct (VALUE str)
static VALUE | rb_str_crypt (VALUE str, VALUE salt)
VALUE | rb_str_intern (VALUE s)
VALUE | rb_str_ord (VALUE s)
static VALUE | rb_str_sum (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_justify (int argc, VALUE *argv, VALUE str, char jflag)
static VALUE | rb_str_ljust (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_rjust (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_center (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_partition (VALUE str, VALUE sep)
static VALUE | rb_str_rpartition (VALUE str, VALUE sep)
static VALUE | rb_str_start_with (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_end_with (int argc, VALUE *argv, VALUE str)
void | rb_str_setter (VALUE val, ID id, VALUE *var)
static VALUE | rb_str_force_encoding (VALUE str, VALUE enc)
static VALUE | rb_str_valid_encoding_p (VALUE str)
static VALUE | rb_str_is_ascii_only_p (VALUE str)
static VALUE | sym_equal (VALUE sym1, VALUE sym2)
static int | sym_printable (const char *s, const char *send, rb_encoding *enc)
static VALUE | sym_inspect (VALUE sym)
VALUE | rb_sym_to_s (VALUE sym)
static VALUE | sym_to_sym (VALUE sym)
VALUE | rb_funcall_passing_block (VALUE recv, ID mid, int argc, const VALUE *argv)
static VALUE | sym_call (VALUE args, VALUE sym, int argc, VALUE *argv)
static VALUE | sym_to_proc (VALUE sym)
static VALUE | sym_succ (VALUE sym)
static VALUE | sym_cmp (VALUE sym, VALUE other)
static VALUE | sym_casecmp (VALUE sym, VALUE other)
static VALUE | sym_match (VALUE sym, VALUE other)
static VALUE | sym_aref (int argc, VALUE *argv, VALUE sym)
static VALUE | sym_length (VALUE sym)
static VALUE | sym_empty (VALUE sym)
static VALUE | sym_upcase (VALUE sym)
static VALUE | sym_downcase (VALUE sym)
static VALUE | sym_capitalize (VALUE sym)
static VALUE | sym_swapcase (VALUE sym)
static VALUE | sym_encoding (VALUE sym)
ID | rb_to_id (VALUE name)
void | Init_String (void)
## Variables
VALUE | rb_cString
VALUE | rb_cSymbol
VALUE | rb_fs
static ID | id_to_s
static const char | isspacetable [256]

## Define Documentation

#define ascii_isspace | ( |  | c | ) | isspacetable[(unsigned char)(c)]

Definition at line 5444 of file string.c.

Referenced by rb_str_rstrip_bang(), and rb_str_split_m().

#define BEG | ( |  | no | ) | regs->beg[no]

Definition at line 19 of file string.c.

Referenced by rb_str_split_m(), rb_str_sub_bang(), rb_str_subpat_set(), scan_once(), and str_gsub().

#define CHAR_ESC_LEN 13

Definition at line 4105 of file string.c.

Referenced by rb_str_buf_cat_escaped_char(), and rb_str_inspect().

#define CHECK_IF_ASCII | ( |  | c | ) |

Value:

    (void)((cr == ENC_CODERANGE_7BIT && !rb_isascii(c)) ? \
               (cr = ENC_CODERANGE_VALID) : 0)

Referenced by tr_trans().

#define END | ( |  | no | ) | regs->end[no]

Definition at line 20 of file string.c.

Referenced by rb_str_split_m(), rb_str_sub_bang(), rb_str_subpat_set(), scan_once(), and str_gsub().

#define is_ascii_string | ( |  | str | ) | (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT)

Definition at line 115 of file string.c.

Referenced by rb_str_split_m(), and rb_str_upto().

#define is_broken_string | ( |  | str | ) | (rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN)

Definition at line 116 of file string.c.

Referenced by rb_str_chomp_bang(), rb_str_count(), rb_str_index(), rb_str_rindex(), and rb_str_split_m().

#define IS_EVSTR | ( |  | p,
|  |  | e
| ) |  | ((p) < (e) && (*(p) == '$' || *(p) == '@' || *(p) == '{'))

Definition at line 4240 of file string.c.

Referenced by rb_str_dump().

#define lesser | ( |  | a,
|  |  | b
| ) |  | (((a)>(b))?(b):(a))

Definition at line 2079 of file string.c.

Referenced by rb_str_cmp().

#define numberof | ( |  | array | ) | (int)(sizeof(array) / sizeof((array)[0]))

Definition at line 29 of file string.c.

Referenced by rb_str_upto().

#define rb_intern | ( |  | str | ) | rb_intern_const(str)

#define rb_str_buf_new2 rb_str_buf_new_cstr

#define rb_str_dup_frozen rb_str_new_frozen

#define rb_str_new2 rb_str_new_cstr

#define rb_str_new3 rb_str_new_shared

#define rb_str_new4 rb_str_new_frozen

#define rb_str_new5 rb_str_new_with_class

#define rb_tainted_str_new2 rb_tainted_str_new_cstr

#define rb_usascii_str_new2 rb_usascii_str_new_cstr

#define RESIZE_CAPA | ( |  | str,
|  |  | capacity
| ) |  |

Value:

    do {\
        if (STR_EMBED_P(str)) {\
            if ((capacity) > RSTRING_EMBED_LEN_MAX) {\
                char *tmp = ALLOC_N(char, capacity+1);\
                memcpy(tmp, RSTRING_PTR(str), RSTRING_LEN(str));\
                RSTRING(str)->as.heap.ptr = tmp;\
                RSTRING(str)->as.heap.len = RSTRING_LEN(str);\
                STR_SET_NOEMBED(str);\
                RSTRING(str)->as.heap.aux.capa = (capacity);\
            }\
        }\
        else {\
            REALLOC_N(RSTRING(str)->as.heap.ptr, char, (capacity)+1);\
            if (!STR_NOCAPA_P(str))\
                RSTRING(str)->as.heap.aux.capa = (capacity);\
        }\
    } while (0)

Definition at line 97 of file string.c.

Referenced by rb_str_associate(), rb_str_splice_0(), rb_str_sub_bang(), rb_str_succ(), and str_buf_cat().

#define RUBY_MAX_CHAR_LEN 16

Definition at line 51 of file string.c.

#define STR_ASSOC FL_USER3

Definition at line 55 of file string.c.

Referenced by rb_str_associate(), rb_str_new_frozen(), str_buf_cat(), and str_replace().

#define STR_ASSOC_P | ( |  | s | ) | FL_ALL(s, STR_NOEMBED|STR_ASSOC)

Definition at line 57 of file string.c.

Referenced by rb_str_append(), rb_str_associate(), rb_str_associated(), rb_str_cat(), rb_str_freeze(), rb_str_new_frozen(), str_buf_cat(), and str_replace().

#define str_buf_cat2 | ( |  | str,
|  |  | ptr
| ) |  | str_buf_cat(str, (ptr), strlen(ptr))

Definition at line 1773 of file string.c.

Referenced by rb_str_inspect().

#define STR_BUF_MIN_SIZE 128

Definition at line 737 of file string.c.

Referenced by rb_str_buf_new().

#define STR_DEC_LEN | ( |  | str | ) |

Value:

    do {\
        if (STR_EMBED_P(str)) {\
            long n = RSTRING_LEN(str);\
            n--;\
            STR_SET_EMBED_LEN(str, n);\
        }\
        else {\
            RSTRING(str)->as.heap.len--;\
        }\
    } while (0)

Definition at line 86 of file string.c.

Referenced by rb_str_chomp_bang().

#define STR_EMBED_P | ( |  | str | ) | (!FL_TEST(str, STR_NOEMBED))

Definition at line 70 of file string.c.

Referenced by rb_str_associate(), rb_str_capacity(), rb_str_cat(), rb_str_free(), rb_str_memsize(), rb_str_new_frozen(), rb_str_resize(), str_buf_cat(), str_discard(), str_independent(), and tr_trans().

#define STR_ENC_GET | ( |  | str | ) | rb_enc_from_index(ENCODING_GET(str))

Definition at line 118 of file string.c.

Referenced by chopped_length(), rb_enc_cr_str_copy_for_substr(), rb_enc_str_asciionly_p(), rb_enc_str_coderange(), rb_str_aref(), rb_str_capitalize_bang(), rb_str_clear(), rb_str_concat(), rb_str_downcase_bang(), rb_str_each_codepoint(), rb_str_export(), rb_str_export_locale(), rb_str_export_to_enc(), rb_str_index_m(), rb_str_inspect(), rb_str_justify(), rb_str_length(), rb_str_lstrip_bang(), rb_str_offset(), rb_str_ord(), rb_str_reverse(), rb_str_rindex_m(), rb_str_rpartition(), rb_str_rstrip_bang(), rb_str_shared_replace(), rb_str_split_m(), rb_str_squeeze_bang(), rb_str_strlen(), rb_str_sub_bang(), rb_str_sublen(), rb_str_substr(), rb_str_succ(), rb_str_swapcase_bang(), rb_str_upcase_bang(), RUBY_ALIAS_FUNCTION(), scan_once(), single_byte_optimizable(), str_gsub(), str_strlen(), and sym_inspect().

#define STR_NOCAPA (STR_NOEMBED|ELTS_SHARED|STR_ASSOC)

Definition at line 58 of file string.c.

Referenced by rb_str_shared_replace().

#define STR_NOCAPA_P | ( |  | s | ) | (FL_TEST(s,STR_NOEMBED) && FL_ANY(s,ELTS_SHARED|STR_ASSOC))

Definition at line 59 of file string.c.

Referenced by rb_str_capacity(), rb_str_resize(), and rb_str_shared_replace().

#define STR_NOEMBED FL_USER1

Definition at line 53 of file string.c.

Referenced by rb_str_buf_new(), rb_str_drop_bytes(), and str_replace_shared().

#define STR_SET_EMBED | ( |  | str | ) | FL_UNSET(str, STR_NOEMBED)

Definition at line 69 of file string.c.

Referenced by rb_str_clear(), rb_str_drop_bytes(), rb_str_resize(), rb_str_shared_replace(), and str_replace_shared().

#define STR_SET_EMBED_LEN | ( |  | str,
|  |  | n
| ) |  |

Value:

    do { \
        long tmp_n = (n);\
        RBASIC(str)->flags &= ~RSTRING_EMBED_LEN_MASK;\
        RBASIC(str)->flags |= (tmp_n) << RSTRING_EMBED_LEN_SHIFT;\
    } while (0)

Definition at line 71 of file string.c.

Referenced by rb_str_clear(), rb_str_drop_bytes(), rb_str_resize(), rb_str_shared_replace(), and str_replace_shared().

#define STR_SET_LEN | ( |  | str,
|  |  | n
| ) |  |

Value:

    do { \
        if (STR_EMBED_P(str)) {\
            STR_SET_EMBED_LEN(str, n);\
        }\
        else {\
            RSTRING(str)->as.heap.len = (n);\
        }\
    } while (0)

Definition at line 77 of file string.c.

Referenced by rb_str_chomp_bang(), rb_str_chop_bang(), rb_str_delete_bang(), rb_str_justify(), rb_str_lstrip_bang(), rb_str_reverse(), rb_str_rstrip_bang(), rb_str_set_len(), rb_str_splice_0(), rb_str_squeeze_bang(), rb_str_sub_bang(), rb_str_succ(), str_buf_cat(), and str_new().

#define STR_SET_NOEMBED | ( |  | str | ) |

Value:

    do {\
        FL_SET(str, STR_NOEMBED);\
        STR_SET_EMBED_LEN(str, 0);\
    } while (0)

Definition at line 65 of file string.c.

Referenced by rb_str_resize(), rb_str_shared_replace(), RUBY_ALIAS_FUNCTION(), str_make_independent(), str_new(), str_replace(), and tr_trans().

#define STR_SHARED FL_USER2

Definition at line 54 of file string.c.

#define STR_SHARED_P | ( |  | s | ) | FL_ALL(s, STR_NOEMBED|ELTS_SHARED)

Definition at line 56 of file string.c.

Referenced by rb_str_associate(), rb_str_associated(), rb_str_drop_bytes(), rb_str_free(), rb_str_memsize(), rb_str_new_frozen(), RUBY_ALIAS_FUNCTION(), str_discard(), str_independent(), and str_replace().

#define STR_TMPLOCK FL_USER7

Definition at line 52 of file string.c.

Referenced by rb_str_unlocktmp(), RUBY_ALIAS_FUNCTION(), and str_modifiable().

#define STR_UNSET_NOCAPA | ( |  | s | ) |

Value:

    do {\
        if (FL_TEST(s,STR_NOEMBED)) FL_UNSET(s,(ELTS_SHARED|STR_ASSOC));\
    } while (0)

Definition at line 60 of file string.c.

Referenced by rb_str_shared_replace(), and str_make_independent().

## Typedef Documentation

typedef unsigned char* USTR

Definition at line 4690 of file string.c.

## Enumeration Type Documentation

enum neighbor_char

Enumerator:

  NEIGHBOR_NOT_CHAR |
  NEIGHBOR_FOUND |
  NEIGHBOR_WRAPPED |

Definition at line 2608 of file string.c.

## Function Documentation

static long chopped_length | ( | VALUE | str | ) | `[static]`

Definition at line 5975 of file string.c.

References re_registers::beg, re_registers::end, rb_enc_ascget(), rb_enc_prev_char, RSTRING_LEN, RSTRING_PTR, and STR_ENC_GET.

Referenced by rb_str_chop(), and rb_str_chop_bang().

static int coderange_scan | ( | const char * | p,
|  | long | len,
|  | rb_encoding * | enc
| ) |  | `[static]`

Definition at line 178 of file string.c.

References ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, ENC_CODERANGE_VALID, len, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, rb_enc_asciicompat, rb_enc_precise_mbclen(), rb_enc_to_index, and search_nonascii().

Referenced by rb_enc_cr_str_buf_cat(), rb_enc_str_coderange(), and rb_str_sub_bang().

static enum neighbor_char enc_pred_char | ( | char * | p,
|  | long | len,
|  | rb_encoding * | enc
| ) |  | `[static]`

Definition at line 2649 of file string.c.

References MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, MBCLEN_INVALID_P, NEIGHBOR_FOUND, NEIGHBOR_WRAPPED, and rb_enc_precise_mbclen().

Referenced by enc_succ_alnum_char().

static long enc_strlen | ( | const char * | p,
|  | const char * | e,
|  | rb_encoding * | enc,
|  | int | cr
| ) |  | `[inline, static]`

Definition at line 922 of file string.c.

References ENC_CODERANGE_7BIT, ENC_CODERANGE_VALID, ISASCII, rb_enc_asciicompat, rb_enc_fast_mbclen(), rb_enc_mbclen(), rb_enc_mbmaxlen, rb_enc_mbminlen, and search_nonascii().

Referenced by rb_enc_strlen(), and rb_str_sublen().

static enum neighbor_char enc_succ_alnum_char | ( | char * | p,
|  | long | len,
|  | rb_encoding * | enc,
|  | char * | carry
| ) |  | `[static]`

Definition at line 2692 of file string.c.

References enc_pred_char(), enc_succ_char(), MEMCPY, NEIGHBOR_FOUND, NEIGHBOR_NOT_CHAR, NEIGHBOR_WRAPPED, ONIGENC_CODE_TO_MBC_MAXLEN, ONIGENC_CTYPE_ALPHA, ONIGENC_CTYPE_DIGIT, range, rb_enc_isctype, and rb_enc_mbc_to_codepoint.

Referenced by rb_str_succ().

static enum neighbor_char enc_succ_char | ( | char * | p,
|  | long | len,
|  | rb_encoding * | enc
| ) |  | `[static]`

Definition at line 2615 of file string.c.

References MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, MBCLEN_INVALID_P, NEIGHBOR_FOUND, NEIGHBOR_WRAPPED, and rb_enc_precise_mbclen().

Referenced by enc_succ_alnum_char(), and rb_str_succ().

static VALUE get_pat | ( | VALUE | pat,
|  | int | quote
| ) |  | `[static]`

Definition at line 3418 of file string.c.

References Check_Type, NIL_P, rb_check_string_type(), rb_reg_quote(), rb_reg_regcomp(), T_REGEXP, T_STRING, and TYPE.

Referenced by rb_str_match_m(), rb_str_scan(), rb_str_split_m(), rb_str_sub_bang(), and str_gsub().

void Init_String | ( | void |  | ) |

Definition at line 7438 of file string.c.

References CLASS_OF, Qnil, rb_cObject, rb_cString, rb_cSymbol, rb_define_alloc_func(), rb_define_class(), rb_define_method(), rb_define_singleton_method(), rb_define_variable(), rb_fs, rb_include_module(), rb_intern, rb_mComparable, rb_obj_encoding(), rb_str_aref_m(), rb_str_aset_m(), rb_str_bytesize(), rb_str_capitalize(), rb_str_capitalize_bang(), rb_str_casecmp(), rb_str_center(), rb_str_chomp(), rb_str_chomp_bang(), rb_str_chop(), rb_str_chop_bang(), rb_str_chr(), rb_str_clear(), rb_str_cmp_m(), rb_str_concat(), rb_str_count(), rb_str_crypt(), rb_str_delete(), rb_str_delete_bang(), rb_str_downcase(), rb_str_downcase_bang(), rb_str_dump(), rb_str_each_byte(), rb_str_each_char(), rb_str_each_codepoint(), rb_str_each_line(), rb_str_empty(), rb_str_end_with(), rb_str_eql(), rb_str_equal(), rb_str_force_encoding(), rb_str_format_m(), rb_str_getbyte(), rb_str_gsub(), rb_str_gsub_bang(), rb_str_hash_m(), rb_str_hex(), rb_str_include(), rb_str_index_m(), rb_str_init(), rb_str_insert(), rb_str_inspect(), rb_str_intern(), rb_str_is_ascii_only_p(), rb_str_length(), rb_str_ljust(), rb_str_lstrip(), rb_str_lstrip_bang(), rb_str_match(), rb_str_match_m(), rb_str_oct(), rb_str_ord(), rb_str_partition(), rb_str_plus(), rb_str_replace(), rb_str_reverse(), rb_str_reverse_bang(), rb_str_rindex_m(), rb_str_rjust(), rb_str_rpartition(), rb_str_rstrip(), rb_str_rstrip_bang(), rb_str_s_try_convert(), rb_str_scan(), rb_str_setbyte(), rb_str_slice_bang(), rb_str_split_m(), rb_str_squeeze(), rb_str_squeeze_bang(), rb_str_start_with(), rb_str_strip(), rb_str_strip_bang(), rb_str_sub(), rb_str_sub_bang(), rb_str_succ(), rb_str_succ_bang(), rb_str_sum(), rb_str_swapcase(), rb_str_swapcase_bang(), rb_str_times(), rb_str_to_f(), rb_str_to_i(), rb_str_to_s(), rb_str_tr(), rb_str_tr_bang(), rb_str_tr_s(), rb_str_tr_s_bang(), rb_str_upcase(), rb_str_upcase_bang(), rb_str_upto(), rb_str_valid_encoding_p(), rb_sym_all_symbols(), rb_sym_to_s(), rb_undef_alloc_func(), rb_undef_method(), str_alloc(), sym_aref(), sym_capitalize(), sym_casecmp(), sym_cmp(), sym_downcase(), sym_empty(), sym_encoding, sym_equal(), sym_inspect(), sym_length(), sym_match(), sym_succ(), sym_swapcase(), sym_to_proc(), sym_to_sym(), and sym_upcase().

VALUE rb_check_string_type | ( | VALUE | str | ) |

Definition at line 1389 of file string.c.

References rb_check_convert_type(), and T_STRING.

Referenced by ary_join_1(), constant_arg(), env_has_value(), env_rassoc(), get_pat(), io_encoding_set(), make_exception(), marshal_load(), month_arg(), prepare_getline_args(), range_each(), range_step(), rb_ary_join(), rb_ary_times(), rb_check_sockaddr_string_type(), rb_convert_to_integer(), rb_f_kill(), rb_get_expanded_load_path(), rb_io_ctl(), rb_io_extract_encoding_option(), rb_str_end_with(), rb_str_format(), rb_str_index_m(), rb_str_partition(), rb_str_rindex_m(), rb_str_rpartition(), rb_str_s_try_convert(), rb_str_start_with(), rb_to_encoding_index(), rb_to_id(), reg_operand(), rlimit_resource_type(), rlimit_resource_value(), strio_getline(), syck_defaultresolver_detect_implicit(), syck_emitter_reset(), syck_parser_assign_io(), syck_resolver_tagurize(), trap_handler(), and utc_offset_arg().

static VALUE rb_enc_cr_str_buf_cat | ( | VALUE | str,
|  | const char * | ptr,
|  | long | len,
|  | int | ptr_encindex,
|  | int | ptr_cr,
|  | int * | ptr_cr_ret
| ) |  | `[static]`

Definition at line 1817 of file string.c.

References coderange_scan(), ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_UNKNOWN, ENC_CODERANGE_VALID, ENCODING_CODERANGE_SET, ENCODING_GET, ENCODING_IS_ASCII8BIT, rb_eArgError, rb_eEncCompatError, rb_enc_asciicompat, rb_enc_from_index(), rb_enc_name, rb_enc_str_coderange(), rb_raise(), rb_str_buf_cat(), RSTRING_LEN, and str_buf_cat().

Referenced by rb_enc_str_buf_cat(), rb_str_buf_append(), and rb_str_buf_cat_ascii().

static void rb_enc_cr_str_copy_for_substr | ( | VALUE | dest,
|  | VALUE | src
| ) |  | `[static]`

Definition at line 285 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, rb_enc_asciicompat, RSTRING_END, RSTRING_LEN, RSTRING_PTR, search_nonascii(), str_enc_copy(), and STR_ENC_GET.

Referenced by rb_str_chop(), rb_str_each_line(), rb_str_reverse(), rb_str_subseq(), rb_str_substr(), rb_str_succ(), and rb_str_times().

static void rb_enc_cr_str_exact_copy | ( | VALUE | dest,
|  | VALUE | src
| ) |  | `[static]`

Definition at line 314 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_SET, and str_enc_copy().

Referenced by rb_str_new_frozen(), RUBY_ALIAS_FUNCTION(), str_replace(), and str_replace_shared().

char* rb_enc_nth | ( | const char * | p,
|  | const char * | e,
|  | long | nth,
|  | rb_encoding * | enc
| ) |  |

Definition at line 1413 of file string.c.

References ISASCII, rb_enc_asciicompat, rb_enc_mbclen(), rb_enc_mbmaxlen, rb_enc_mbminlen, and search_nonascii().

Referenced by iconv_iconv(), rb_str_format(), and str_nth().

int rb_enc_str_asciionly_p | ( | VALUE | str | ) |

Definition at line 334 of file string.c.

References ENC_CODERANGE_7BIT, FALSE, rb_enc_asciicompat, rb_enc_str_coderange(), STR_ENC_GET, and TRUE.

Referenced by rb_reg_quote(), and rb_reg_s_union().

VALUE rb_enc_str_buf_cat | ( | VALUE | str,
|  | const char * | ptr,
|  | long | len,
|  | rb_encoding * | ptr_enc
| ) |  |

Definition at line 1907 of file string.c.

References ENC_CODERANGE_UNKNOWN, NULL, rb_enc_cr_str_buf_cat(), and rb_enc_to_index.

Referenced by rb_reg_regsub(), and str_gsub().

int rb_enc_str_coderange | ( | VALUE | str | ) |

Definition at line 321 of file string.c.

References coderange_scan(), ENC_CODERANGE, ENC_CODERANGE_SET, ENC_CODERANGE_UNKNOWN, RSTRING_LEN, RSTRING_PTR, and STR_ENC_GET.

Referenced by parser_str_new(), prepare_getline_args(), rb_econv_prepare_opts(), rb_enc_compatible(), rb_enc_cr_str_buf_cat(), rb_enc_str_asciionly_p(), rb_external_str_new_with_enc(), rb_intern3(), rb_intern_str(), rb_reg_initialize_str(), rb_reg_prepare_enc(), rb_reg_preprocess_dregexp(), rb_str_comparable(), rb_str_hash(), rb_str_is_ascii_only_p(), rb_str_succ(), rb_str_valid_encoding_p(), reg_fragment_setenc_gen(), str_transcode0(), and w_symbol().

VALUE rb_enc_str_new | ( | const char * | ptr,
|  | long | len,
|  | rb_encoding * | enc
| ) |  |

Definition at line 429 of file string.c.

References rb_enc_associate(), and rb_str_new().

Referenced by econv_get_replacement(), fole_missing(), foletypelib_name(), foletypelib_path(), io_getc(), lex_get_str(), ole_wc2vstr(), parser_str_new(), prepare_getline_args(), rb_enc_uint_chr(), rb_io_getline_1(), rb_push_glob(), rb_realpath_internal(), rb_reg_initialize(), rb_reg_initialize_m(), rb_reg_source(), rb_str_upto(), rb_w32_conv_from_wchar(), register_symid(), strio_getc(), strio_init(), strio_substr(), strio_ungetc(), sym_inspect(), and transcode_loop().

long rb_enc_strlen | ( | const char * | p,
|  | const char * | e,
|  | rb_encoding * | enc
| ) |  |

Definition at line 968 of file string.c.

References ENC_CODERANGE_UNKNOWN, and enc_strlen().

Referenced by rb_str_format(), and update_char_offset().

long rb_enc_strlen_cr | ( | const char * | p,
|  | const char * | e,
|  | rb_encoding * | enc,
|  | int * | cr
| ) |  |

Definition at line 974 of file string.c.

References ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, ENC_CODERANGE_VALID, ISASCII, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, rb_enc_asciicompat, rb_enc_mbmaxlen, rb_enc_mbminlen, rb_enc_precise_mbclen(), and search_nonascii().

Referenced by str_strlen().

VALUE rb_external_str_new | ( | const char * | ptr,
|  | long | len
| ) |  |

Definition at line 554 of file string.c.

References rb_default_external_encoding(), and rb_external_str_new_with_enc().

Referenced by fsdbm_delete(), fsdbm_delete_if(), fsdbm_each_key(), fsdbm_each_pair(), fsdbm_each_value(), fsdbm_fetch(), fsdbm_invert(), fsdbm_key(), fsdbm_keys(), fsdbm_select(), fsdbm_shift(), fsdbm_to_a(), fsdbm_to_hash(), fsdbm_values(), ruby_script(), ruby_set_argv(), and set_arg0().

VALUE rb_external_str_new_cstr | ( | const char * | ptr | ) |

Definition at line 560 of file string.c.

References rb_default_external_encoding(), and rb_external_str_new_with_enc().

VALUE rb_external_str_new_with_enc | ( | const char * | ptr,
|  | long | len,
|  | rb_encoding * | eenc
| ) |  |

Definition at line 539 of file string.c.

References ENC_CODERANGE_7BIT, rb_ascii8bit_encoding(), rb_default_internal_encoding(), rb_enc_associate(), rb_enc_str_coderange(), rb_str_conv_enc(), rb_tainted_str_new(), and rb_usascii_encoding().

Referenced by dir_each(), dir_read(), gettable_gen(), push_pattern(), rb_external_str_new(), rb_external_str_new_cstr(), rb_filesystem_str_new(), rb_filesystem_str_new_cstr(), rb_locale_str_new(), and rb_locale_str_new_cstr().

VALUE rb_filesystem_str_new | ( | const char * | ptr,
|  | long | len
| ) |  |

Definition at line 578 of file string.c.

References rb_external_str_new_with_enc(), and rb_filesystem_encoding().

VALUE rb_filesystem_str_new_cstr | ( | const char * | ptr | ) |

Definition at line 584 of file string.c.

References rb_external_str_new_with_enc(), and rb_filesystem_encoding().

Referenced by env_fetch(), etc_sysconfdir(), etc_systmpdir(), and rb_f_getenv().

VALUE rb_funcall_passing_block | ( | VALUE | recv,
|  | ID | mid,
|  | int | argc,
|  | const VALUE * | argv
| ) |  |

Definition at line 670 of file vm_eval.c.

References CALL_PUBLIC, GET_THREAD, PASS_PASSED_BLOCK_TH, and rb_call().

Referenced by sym_call().

VALUE rb_locale_str_new | ( | const char * | ptr,
|  | long | len
| ) |  |

Definition at line 566 of file string.c.

References rb_external_str_new_with_enc(), and rb_locale_encoding().

Referenced by curses_getch(), env_str_new(), and window_getch().

VALUE rb_locale_str_new_cstr | ( | const char * | ptr | ) |

Definition at line 572 of file string.c.

References rb_external_str_new_with_enc(), and rb_locale_encoding().

Referenced by curses_getstr(), filename_completion_proc_call(), hist_each(), hist_get(), rb_remove_history(), readline_attempted_completion_function(), readline_readline(), username_completion_proc_call(), and window_getstr().

st_index_t rb_memhash | ( | const void * | ptr,
|  | long | len
| ) |  |

Definition at line 2037 of file string.c.

References rb_hash_start(), and st_hash().

Referenced by flo_hash(), match_hash(), nucomp_hash(), nurat_hash(), rb_big_hash(), rb_str_hash(), and reg_hash().

VALUE rb_obj_as_string | ( | VALUE | obj | ) |

Definition at line 842 of file string.c.

References OBJ_TAINT, OBJ_TAINTED, rb_any_to_s(), rb_funcall(), T_STRING, and TYPE.

Referenced by ary_join_1(), err_append(), exc_inspect(), fdbm_store(), io_write(), pack_pack(), random_rand(), range_to_s(), rb_check_type(), rb_gzwriter_write(), rb_inspect(), rb_io_puts(), rb_io_syswrite(), rb_io_write_nonblock(), rb_p(), rb_str_format(), rb_str_sub_bang(), readline_attempted_completion_function(), reg_fragment_check_gen(), setup_exception(), str_gsub(), strio_write(), and tcl_protect_core().

VALUE rb_str_append | ( | VALUE | str,
|  | VALUE | str2
| ) |  |

Definition at line 1954 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_SET, len, OBJ_INFECT, rb_enc_associate(), rb_enc_check(), rb_str_buf_append(), rb_str_modify(), REALLOC_N, RSTRING, RSTRING_LEN, RSTRING_PTR, STR_ASSOC_P, and StringValue.

Referenced by argf_read(), eval_string_with_cref(), fc_path(), iconv_s_conv(), inspect_i(), inspect_range(), inspect_struct(), join_der_i(), key2keyname(), load_failed(), make_version_str(), method_inspect(), ossl_config_inspect(), ossl_sslctx_set_ciphers(), ossl_x509_inspect(), ossl_x509extfactory_create_ext(), parser_here_document(), random_rand(), range_to_s(), rb_mod_to_s(), rb_reg_s_union(), rb_set_class_path_string(), rb_stat_inspect(), rb_str_concat(), rb_str_insert(), reg_compile_gen(), sockopt_inspect(), strscan_concat(), syck_resolver_transfer(), tcl_protect_core(), and tk_install_cmd_core().

static VALUE rb_str_aref | ( | VALUE | str,
|  | VALUE | indx
| ) |  | `[static]`

Definition at line 3005 of file string.c.

References FIX2LONG, INT2FIX, len, NIL_P, NUM2LONG(), Qfalse, Qnil, rb_range_beg_len(), rb_str_dup(), rb_str_index(), rb_str_subpat(), rb_str_substr(), RSTRING_LEN, STR_ENC_GET, str_strlen(), T_FIXNUM, T_REGEXP, T_STRING, and TYPE.

Referenced by rb_str_aref_m().

static VALUE rb_str_aref_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 3099 of file string.c.

References NUM2LONG(), rb_eArgError, rb_raise(), rb_str_aref(), rb_str_subpat(), rb_str_substr(), T_REGEXP, and TYPE.

Referenced by Init_String(), rb_str_slice_bang(), and sym_aref().

static VALUE rb_str_aset | ( | VALUE | str,
|  | VALUE | indx,
|  | VALUE | val
| ) |  | `[static]`

Definition at line 3262 of file string.c.

References re_registers::beg, FIX2LONG, INT2FIX, len, NUM2LONG(), rb_eIndexError, rb_raise(), rb_range_beg_len(), rb_str_index(), rb_str_splice(), rb_str_sublen(), rb_str_subpat_set(), str_strlen(), T_FIXNUM, T_REGEXP, T_STRING, and TYPE.

Referenced by rb_str_aset_m().

static VALUE rb_str_aset_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 3326 of file string.c.

References NUM2LONG(), rb_eArgError, rb_raise(), rb_str_aset(), rb_str_splice(), rb_str_subpat_set(), T_REGEXP, and TYPE.

Referenced by Init_String(), and rb_str_slice_bang().

void rb_str_associate | ( | VALUE | str,
|  | VALUE | add
| ) |  |

Definition at line 1316 of file string.c.

References add, FL_SET, OBJ_FROZEN, rb_ary_concat(), rb_error_frozen(), RBASIC, RESIZE_CAPA, RSTRING, RSTRING_LEN, STR_ASSOC, STR_ASSOC_P, STR_EMBED_P, str_make_independent(), and STR_SHARED_P.

Referenced by pack_pack(), and pack_unpack().

VALUE rb_str_associated | ( | VALUE | str | ) |

Definition at line 1347 of file string.c.

References Qfalse, RSTRING, STR_ASSOC_P, and STR_SHARED_P.

Referenced by pack_unpack().

VALUE rb_str_buf_append | ( | VALUE | str,
|  | VALUE | str2
| ) |  |

Definition at line 1938 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_SET, ENCODING_GET, OBJ_INFECT, rb_enc_cr_str_buf_cat(), RSTRING_LEN, and RSTRING_PTR.

Referenced by ary_join_0(), ary_join_1(), env_inspect(), exc_inspect(), iconv_conv(), iconv_failure_inspect(), inspect_ary(), inspect_i(), literal_concat0(), match_inspect(), method_inspect(), rb_digest_instance_inspect(), rb_file_join(), rb_reg_preprocess_dregexp(), rb_str_append(), and str_gsub().

VALUE rb_str_buf_cat | ( | VALUE | str,
|  | const char * | ptr,
|  | long | len
| ) |  |

Definition at line 1776 of file string.c.

References rb_eArgError, rb_raise(), and str_buf_cat().

Referenced by append_utf8(), appendline(), encodes(), env_inspect(), exc_inspect(), iconv_convert(), iconv_failure_inspect(), json_string_unescape(), match_inspect(), pack_pack(), parser_nextc(), qpencode(), rb_enc_cr_str_buf_cat(), rb_reg_expr_str(), rb_str_buf_cat2(), rb_str_buf_cat_escaped_char(), rb_str_buf_new_cstr(), rb_str_cat(), unescape_escaped_nonascii(), unescape_nonascii(), w_nbyte(), zstream_append_buffer(), and zstream_append_input().

VALUE rb_str_buf_cat2 | ( | VALUE | str,
|  | const char * | ptr
| ) |  |

Definition at line 1786 of file string.c.

References rb_str_buf_cat().

Referenced by addrinfo_inspect(), env_inspect(), iconv_failure_inspect(), inspect_ary(), inspect_enumerator(), inspect_hash(), inspect_i(), match_inspect(), method_inspect(), rb_digest_instance_inspect(), rb_enc_reg_error_desc(), rb_reg_desc(), rb_reg_to_s(), and rb_stat_inspect().

VALUE rb_str_buf_cat_ascii | ( | VALUE | str,
|  | const char * | ptr
| ) |  |

Definition at line 1914 of file string.c.

References ALLOCA_N, buf, ENC_CODERANGE_7BIT, ENC_CODERANGE_VALID, ENCODING_GET, rb_enc_asciicompat, rb_enc_codelen(), rb_enc_cr_str_buf_cat(), rb_enc_from_index(), rb_enc_mbcput, and rb_enc_mbmaxlen.

Referenced by prepare_getline_args(), and rb_reg_s_union().

int rb_str_buf_cat_escaped_char | ( | VALUE | result,
|  | unsigned int | c,
|  | int | unicode_p
| ) |  |

Definition at line 4108 of file string.c.

References buf, CHAR_ESC_LEN, ISPRINT, rb_str_buf_cat(), and snprintf.

Referenced by rb_reg_expr_str(), and rb_str_inspect().

VALUE rb_str_buf_new | ( | long | capa | ) |

Definition at line 740 of file string.c.

References ALLOC_N, FL_SET, rb_cString, RSTRING, str_alloc(), STR_BUF_MIN_SIZE, and STR_NOEMBED.

Referenced by appendline(), copy_stream_body(), copy_stream_fallback_body(), JSON_parse_string(), marshal_dump(), pack_pack(), parser_nextc(), pst_to_s(), rb_ary_join(), rb_digest_instance_inspect(), rb_econv_substr_append(), rb_enc_vsprintf(), rb_file_join(), rb_reg_preprocess(), rb_reg_regsub(), rb_reg_s_union(), rb_str_buf_new_cstr(), rb_str_format(), rb_str_inspect(), str_gsub(), zstream_append_buffer(), and zstream_append_input().

VALUE rb_str_buf_new_cstr | ( | const char * | ptr | ) |

Definition at line 756 of file string.c.

References rb_str_buf_cat(), and rb_str_buf_new().

Referenced by load_failed().

static VALUE rb_str_bytesize | ( | VALUE | str | ) | `[static]`

Definition at line 1124 of file string.c.

References INT2NUM(), and RSTRING_LEN.

Referenced by Init_String().

size_t rb_str_capacity | ( | VALUE | str | ) |

Definition at line 362 of file string.c.

References RSTRING, RSTRING_EMBED_LEN_MAX, STR_EMBED_P, and STR_NOCAPA_P.

Referenced by econv_primitive_convert(), rb_econv_substr_append(), and rb_str_vcatf().

static VALUE rb_str_capitalize | ( | VALUE | str | ) | `[static]`

Definition at line 4620 of file string.c.

References rb_str_capitalize_bang(), and rb_str_dup().

Referenced by Init_String(), and sym_capitalize().

static VALUE rb_str_capitalize_bang | ( | VALUE | str | ) | `[static]`

Definition at line 4572 of file string.c.

References Qnil, rb_enc_codepoint_len(), rb_enc_islower, rb_enc_isupper, rb_enc_mbcput, rb_enc_tolower(), rb_enc_toupper(), rb_str_check_dummy_enc(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, and str_modify_keep_cr().

Referenced by Init_String(), and rb_str_capitalize().

static VALUE rb_str_casecmp | ( | VALUE | str1,
|  | VALUE | str2
| ) |  | `[static]`

Definition at line 2242 of file string.c.

References INT2FIX, len, memcmp(), Qnil, rb_enc_ascget(), rb_enc_compatible(), rb_enc_mbclen(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), StringValue, and TOUPPER.

Referenced by Init_String(), and sym_casecmp().

VALUE rb_str_cat | ( | VALUE | str,
|  | const char * | ptr,
|  | long | len
| ) |  |

Definition at line 1792 of file string.c.

References len, rb_eArgError, rb_raise(), rb_str_buf_cat(), rb_str_modify(), REALLOC_N, RSTRING, STR_ASSOC_P, STR_EMBED_P, and str_make_independent().

Referenced by eval_string_with_cref(), flo_to_s(), iconv_convert(), inspect_range(), io_getc(), io_shift_cbuf(), moreswitches(), ole_excepinfo2msg(), parser_here_document(), process_sflag(), range_to_s(), rb_file_dirname(), rb_id2str(), rb_str_cat2(), rb_syck_output_handler(), realpath_rec(), reg_compile_gen(), strio_write(), and time_strftime().

VALUE rb_str_cat2 | ( | VALUE | str,
|  | const char * | ptr
| ) |  |

Definition at line 1811 of file string.c.

References rb_str_cat().

Referenced by addrinfo_inspect(), argf_next_argv(), cbsubst_get_subst_arg(), cbsubst_sym_to_subst(), cbsubst_table_setup(), clsid_from_remote(), econv_description(), econv_inspect(), err_append(), f_format(), fc_path(), foleparam_inspect(), folevariable_inspect(), gc_profile_result(), iconv_fail(), insn_data_to_s_detail(), inspect_i(), inspect_obj(), inspect_sockaddr(), inspect_struct(), make_inspect(), make_version_str(), name_err_mesg_to_str(), nucomp_inspect(), nurat_inspect(), ole_excepinfo2msg(), ole_hresult2msg(), oletypelib_path(), ossl_config_inspect(), ossl_ssl_get_state(), ossl_sslctx_set_ciphers(), ossl_x509_inspect(), path_check_0(), proc_options(), process_sflag(), pst_inspect(), pst_message(), rb_econv_open_exc(), rb_find_file_ext_safe(), rb_iseq_disasm(), rb_iseq_disasm_insn(), rb_mod_to_s(), rb_set_class_path(), rb_set_class_path_string(), realpath_rec(), search_required(), and sockopt_inspect().

static VALUE rb_str_center | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 6808 of file string.c.

References rb_str_justify().

Referenced by Init_String().

static void rb_str_check_dummy_enc | ( | rb_encoding * | enc | ) | `[static]`

Definition at line 4383 of file string.c.

References rb_eEncCompatError, rb_enc_dummy_p(), rb_enc_name, and rb_raise().

Referenced by rb_str_capitalize_bang(), rb_str_downcase_bang(), rb_str_rstrip_bang(), rb_str_swapcase_bang(), and rb_str_upcase_bang().

static VALUE rb_str_chomp | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 6175 of file string.c.

References rb_str_chomp_bang(), and rb_str_dup().

Referenced by Init_String().

static VALUE rb_str_chomp_bang | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 6055 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_CLEAR, is_broken_string, len, memcmp(), NIL_P, Qnil, rb_default_rs, rb_enc_ascget(), rb_enc_check(), rb_enc_get(), rb_enc_is_newline, rb_enc_left_char_head, rb_enc_mbminlen, rb_rs, rb_scan_args(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, STR_DEC_LEN, str_modify_keep_cr(), STR_SET_LEN, and StringValue.

Referenced by Init_String(), and rb_str_chomp().

static VALUE rb_str_chop | ( | VALUE | str | ) | `[static]`

Definition at line 6037 of file string.c.

References chopped_length(), OBJ_INFECT, rb_enc_cr_str_copy_for_substr(), rb_str_new5, and RSTRING_PTR.

Referenced by Init_String().

static VALUE rb_str_chop_bang | ( | VALUE | str | ) | `[static]`

Definition at line 6002 of file string.c.

References chopped_length(), ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_CLEAR, len, Qnil, RSTRING_LEN, RSTRING_PTR, str_modify_keep_cr(), and STR_SET_LEN.

Referenced by Init_String().

static VALUE rb_str_chr | ( | VALUE | str | ) | `[static]`

Definition at line 3842 of file string.c.

References rb_str_substr().

Referenced by Init_String().

static VALUE rb_str_clear | ( | VALUE | str | ) | `[static]`

Definition at line 3818 of file string.c.

References ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, rb_enc_asciicompat, RSTRING_PTR, str_discard(), STR_ENC_GET, STR_SET_EMBED, and STR_SET_EMBED_LEN.

Referenced by Init_String().

int rb_str_cmp | ( | VALUE | str1,
|  | VALUE | str2
| ) |  |

Definition at line 2107 of file string.c.

References ENCODING_GET, len, lesser, memcmp(), rb_str_comparable(), RSTRING_LEN, and RSTRING_PTR.

Referenced by ary2list(), ary2list2(), ole_method_event(), ole_search_event(), ole_search_event_at(), oleclass_from_typelib(), oletypelib_search_registry(), rb_digest_instance_equal(), rb_str_cmp_m(), rb_str_upto(), sort_2(), syck_resolver_transfer(), typeinfo_from_ole(), and typelib_file_from_typelib().

static VALUE rb_str_cmp_m | ( | VALUE | str1,
|  | VALUE | str2
| ) |  | `[static]`

Definition at line 2202 of file string.c.

References FIX2LONG, FIXNUM_P, LONG2FIX, LONG2NUM, NIL_P, Qnil, rb_funcall(), rb_intern, rb_respond_to(), rb_str_cmp(), result, T_STRING, and TYPE.

Referenced by Init_String(), and sym_cmp().

long rb_str_coderange_scan_restartable | ( | const char * | s,
|  | const char * | e,
|  | rb_encoding * | enc,
|  | int * | cr
| ) |  |

Definition at line 227 of file string.c.

References ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, ENC_CODERANGE_UNKNOWN, ENC_CODERANGE_VALID, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, MBCLEN_INVALID_P, rb_enc_asciicompat, rb_enc_precise_mbclen(), rb_enc_to_index, and search_nonascii().

Referenced by rb_io_getline_fast(), rb_str_format(), read_all(), and str_encode_associate().

int rb_str_comparable | ( | VALUE | str1,
|  | VALUE | str2
| ) |  |

Definition at line 2082 of file string.c.

References ENC_CODERANGE_7BIT, ENCODING_GET, FALSE, rb_enc_asciicompat, rb_enc_from_index(), rb_enc_str_coderange(), RSTRING_LEN, and TRUE.

Referenced by rb_str_cmp(), rb_str_hash_cmp(), and str_eql().

VALUE rb_str_concat | ( | VALUE | str1,
|  | VALUE | str2
| ) |  |

Definition at line 1996 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, FIX2UINT, FIXNUM_P, len, NUM2UINT, PRIuVALUE, rb_enc_codelen(), rb_enc_mbcput, rb_eRangeError, rb_raise(), rb_str_append(), rb_str_resize(), RBIGNUM_SIGN, RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, T_BIGNUM, and TYPE.

Referenced by clsid_from_remote(), defined_expr(), f_format(), foleparam_inspect(), folevariable_inspect(), iconv_convert(), Init_String(), insn_data_to_s_detail(), inspect_enumerator(), iseq_compile_each(), make_inspect(), nucomp_inspect(), nurat_inspect(), ole_typedesc2val(), oletypelib_path(), rb_iseq_disasm(), rb_iseq_disasm_insn(), string_to_c_internal(), and strio_ungetc().

VALUE rb_str_conv_enc | ( | VALUE | str,
|  | rb_encoding * | from,
|  | rb_encoding * | to
| ) |  |

Definition at line 533 of file string.c.

References Qnil, and rb_str_conv_enc_opts().

Referenced by file_path_convert(), rb_external_str_new_with_enc(), rb_gzreader_ungetc(), rb_gzwriter_write(), rb_str_export(), rb_str_export_locale(), rb_str_export_to_enc(), strio_ungetc(), and strio_write().

static VALUE rb_str_count | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 5365 of file string.c.

References argc, INT2FIX, INT2NUM(), is_broken_string, rb_eArgError, rb_enc_asciicompat, rb_enc_check(), rb_enc_codepoint_len(), rb_raise(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, StringValue, tr_find(), and tr_setup_table().

Referenced by Init_String().

static VALUE rb_str_crypt | ( | VALUE | str,
|  | VALUE | salt
| ) |  | `[static]`

Definition at line 6515 of file string.c.

References crypt(), ISASCII, OBJ_INFECT, rb_eArgError, rb_raise(), rb_str_new2, result, RSTRING_LEN, RSTRING_PTR, and StringValue.

Referenced by Init_String().

static VALUE rb_str_delete | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 5196 of file string.c.

References rb_str_delete_bang(), and rb_str_dup().

Referenced by Init_String().

static VALUE rb_str_delete_bang | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 5118 of file string.c.

References argc, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, Qnil, rb_eArgError, rb_enc_asciicompat, rb_enc_check(), rb_enc_codepoint_len(), rb_enc_mbcput, rb_raise(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, str_modify_keep_cr(), STR_SET_LEN, StringValue, tr_find(), and tr_setup_table().

Referenced by Init_String(), rb_str_delete(), and tr_trans().

static VALUE rb_str_downcase | ( | VALUE | str | ) | `[static]`

Definition at line 4549 of file string.c.

References rb_str_downcase_bang(), and rb_str_dup().

Referenced by Init_String(), and sym_downcase().

static VALUE rb_str_downcase_bang | ( | VALUE | str | ) | `[static]`

Definition at line 4484 of file string.c.

References Qnil, rb_enc_asciicompat, rb_enc_codepoint_len(), rb_enc_isascii, rb_enc_isupper, rb_enc_mbcput, rb_enc_tolower(), rb_str_check_dummy_enc(), RSTRING_END, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, and str_modify_keep_cr().

Referenced by Init_String(), and rb_str_downcase().

VALUE rb_str_drop_bytes | ( | VALUE | str,
|  | long | len
| ) |  |

Definition at line 3114 of file string.c.

References ELTS_SHARED, ENC_CODERANGE_CLEAR, len, memmove(), rb_str_new4, RBASIC, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, RSTRING_PTR, str_modifiable(), STR_NOEMBED, STR_SET_EMBED, STR_SET_EMBED_LEN, STR_SHARED_P, and xfree().

Referenced by econv_primitive_convert(), rb_str_splice_0(), and rb_str_subseq().

VALUE rb_str_dump | ( | VALUE | str | ) |

Definition at line 4251 of file string.c.

References ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, IS_EVSTR, ISPRINT, len, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, OnigEncodingTypeST::name, OBJ_INFECT, rb_ascii8bit_encoding(), rb_enc_asciicompat, rb_enc_associate(), rb_enc_get(), rb_enc_mbc_to_codepoint, rb_enc_precise_mbclen(), rb_str_new5, rb_utf8_encoding(), result, RSTRING_LEN, RSTRING_PTR, and snprintf.

Referenced by Init_String(), inspect1(), inspect2(), make_econv_exception(), rb_econv_prepare_opts(), and sockopt_inspect().

VALUE rb_str_dup | ( | VALUE | str | ) |

Definition at line 893 of file string.c.

References rb_obj_class(), and str_duplicate().

Referenced by check_exec_redirect(), classname(), convert_encoding(), cParser_source(), dir_path(), econv_convert(), eval_string_with_cref(), exc_inspect(), fc_path(), fdbm_delete_if(), fsdbm_delete_if(), gzfile_reader_get_unused(), insn_operand_intern(), inspect_range(), iseq_compile_each(), make_inspectname(), name_err_mesg_to_str(), range_to_s(), rb_deflate_init_copy(), rb_exec_arg_addopt(), rb_file_path(), rb_find_file_ext_safe(), rb_gzfile_comment(), rb_gzfile_orig_name(), rb_gzfile_set_comment(), rb_gzfile_set_orig_name(), rb_id2str(), rb_mod_name(), rb_mod_to_s(), rb_set_class_path(), rb_set_class_path_string(), rb_str_aref(), rb_str_capitalize(), rb_str_chomp(), rb_str_delete(), rb_str_downcase(), rb_str_encode(), rb_str_encode_ospath(), rb_str_justify(), rb_str_lstrip(), rb_str_reverse(), rb_str_rstrip(), rb_str_squeeze(), rb_str_strip(), rb_str_sub(), rb_str_swapcase(), rb_str_tr(), rb_str_tr_s(), rb_str_upcase(), rb_str_upto(), realpath_rec(), rsock_ipaddr(), RUBY_ALIAS_FUNCTION(), str_encode(), and str_gsub().

static VALUE rb_str_each_byte | ( | VALUE | str | ) | `[static]`

Definition at line 5868 of file string.c.

References INT2FIX, rb_yield(), RETURN_ENUMERATOR, RSTRING_LEN, and RSTRING_PTR.

Referenced by Init_String(), and rb_str_each_codepoint().

static VALUE rb_str_each_char | ( | VALUE | str | ) | `[static]`

Definition at line 5899 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_VALID, len, rb_enc_fast_mbclen(), rb_enc_get(), rb_enc_mbclen(), rb_str_new4, rb_str_subseq(), rb_yield(), RETURN_ENUMERATOR, RSTRING_LEN, and RSTRING_PTR.

Referenced by Init_String().

static VALUE rb_str_each_codepoint | ( | VALUE | str | ) | `[static]`

Definition at line 5950 of file string.c.

References re_registers::end, len, rb_enc_codepoint_len(), rb_str_each_byte(), rb_str_new4, rb_yield(), RETURN_ENUMERATOR, RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, and UINT2NUM().

Referenced by Init_String().

static VALUE rb_str_each_line | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 5752 of file string.c.

References len, memcmp(), NIL_P, OBJ_INFECT, rb_default_rs, rb_enc_check(), rb_enc_codepoint, rb_enc_codepoint_len(), rb_enc_cr_str_copy_for_substr(), rb_enc_get(), rb_enc_is_newline, rb_enc_left_char_head, rb_enc_mbclen(), rb_rs, rb_scan_args(), rb_str_new4, rb_str_new5, rb_yield(), RETURN_ENUMERATOR, RSTRING_END, RSTRING_LEN, RSTRING_PTR, str_mod_check(), and StringValue.

Referenced by Init_String().

static VALUE rb_str_empty | ( | VALUE | str | ) | `[static]`

Definition at line 1140 of file string.c.

References Qfalse, Qtrue, and RSTRING_LEN.

Referenced by Init_String(), and sym_empty().

static VALUE rb_str_end_with | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 6951 of file string.c.

References argc, memcmp(), NIL_P, Qfalse, Qtrue, rb_check_string_type(), rb_enc_check(), rb_enc_left_char_head, RSTRING_LEN, and RSTRING_PTR.

Referenced by Init_String().

static VALUE rb_str_eql | ( | VALUE | str1,
|  | VALUE | str2
| ) |  | `[static]`

Definition at line 2172 of file string.c.

References Qfalse, str_eql(), T_STRING, and TYPE.

Referenced by Init_String().

VALUE rb_str_equal | ( | VALUE | str1,
|  | VALUE | str2
| ) |  |

Definition at line 2152 of file string.c.

References Qfalse, Qtrue, rb_equal(), rb_intern, rb_respond_to(), str_eql(), T_STRING, and TYPE.

Referenced by iconv_create(), init_addrinfo_getaddrinfo(), Init_String(), match_equal(), opt_eq_func(), and rb_str_upto().

VALUE rb_str_export | ( | VALUE | str | ) |

Definition at line 590 of file string.c.

References rb_default_external_encoding(), rb_str_conv_enc(), and STR_ENC_GET.

VALUE rb_str_export_locale | ( | VALUE | str | ) |

Definition at line 596 of file string.c.

References rb_locale_encoding(), rb_str_conv_enc(), and STR_ENC_GET.

Referenced by curses_addstr(), and window_addstr().

VALUE rb_str_export_to_enc | ( | VALUE | str,
|  | rb_encoding * | enc
| ) |  |

Definition at line 602 of file string.c.

References rb_str_conv_enc(), and STR_ENC_GET.

static VALUE rb_str_force_encoding | ( | VALUE | str,
|  | VALUE | enc
| ) |  | `[static]`

Definition at line 6991 of file string.c.

References ENC_CODERANGE_CLEAR, rb_enc_associate(), rb_to_encoding(), and str_modifiable().

Referenced by Init_String().

static VALUE rb_str_format_m | ( | VALUE | str,
|  | VALUE | arg
| ) |  | `[static]`

Definition at line 1237 of file string.c.

References NIL_P, RARRAY_LENINT, RARRAY_PTR, rb_check_array_type(), and rb_str_format().

Referenced by Init_String().

void rb_str_free | ( | VALUE | str | ) |

Definition at line 777 of file string.c.

References RSTRING, STR_EMBED_P, STR_SHARED_P, and xfree().

Referenced by obj_free().

VALUE rb_str_freeze | ( | VALUE | str | ) |

Definition at line 1644 of file string.c.

References OBJ_FREEZE, rb_obj_freeze(), RSTRING, and STR_ASSOC_P.

Referenced by rb_get_expanded_load_path().

static VALUE rb_str_getbyte | ( | VALUE | str,
|  | VALUE | index
| ) |  | `[static]`

Definition at line 3854 of file string.c.

References INT2FIX, NUM2LONG(), Qnil, RSTRING_LEN, and RSTRING_PTR.

Referenced by Init_String().

static VALUE rb_str_gsub | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 3779 of file string.c.

References str_gsub().

Referenced by Init_String().

static VALUE rb_str_gsub_bang | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 3728 of file string.c.

References str_gsub(), and str_modify_keep_cr().

Referenced by Init_String().

st_index_t rb_str_hash | ( | VALUE | str | ) |

Definition at line 2043 of file string.c.

References ENC_CODERANGE_7BIT, ENCODING_GET, rb_enc_str_coderange(), rb_memhash(), RSTRING_LEN, and RSTRING_PTR.

Referenced by cdhash_hash(), match_hash(), rb_any_hash(), and rb_str_hash_m().

int rb_str_hash_cmp | ( | VALUE | str1,
|  | VALUE | str2
| ) |  |

Definition at line 2053 of file string.c.

References len, memcmp(), rb_str_comparable(), RSTRING_LEN, and RSTRING_PTR.

Referenced by cdhash_cmp(), and rb_any_cmp().

static VALUE rb_str_hash_m | ( | VALUE | str | ) | `[static]`

Definition at line 2073 of file string.c.

References INT2FIX, and rb_str_hash().

Referenced by Init_String().

static VALUE rb_str_hex | ( | VALUE | str | ) | `[static]`

Definition at line 6467 of file string.c.

References FALSE, rb_eEncCompatError, rb_enc_asciicompat, rb_enc_get(), rb_enc_name, rb_raise(), and rb_str_to_inum().

Referenced by Init_String().

static VALUE rb_str_include | ( | VALUE | str,
|  | VALUE | arg
| ) |  | `[static]`

Definition at line 4003 of file string.c.

References Qfalse, Qtrue, rb_str_index(), and StringValue.

Referenced by Init_String().

static long rb_str_index | ( | VALUE | str,
|  | VALUE | sub,
|  | long | offset
| ) |  | `[static]`

Definition at line 2300 of file string.c.

References is_broken_string, len, rb_enc_check(), rb_enc_right_char_head, rb_memsearch(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), str_offset(), and str_strlen().

Referenced by rb_str_aref(), rb_str_aset(), rb_str_include(), rb_str_index_m(), and rb_str_partition().

static VALUE rb_str_index_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 2361 of file string.c.

References LONG2NUM, NIL_P, NUM2LONG(), Qnil, rb_backref_set(), rb_check_string_type(), rb_enc_check(), rb_eTypeError, rb_obj_classname(), rb_raise(), rb_reg_search(), rb_scan_args(), rb_str_index(), rb_str_sublen(), RSTRING_END, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, str_offset(), str_strlen(), sub, T_REGEXP, T_STRING, and TYPE.

Referenced by Init_String().

static VALUE rb_str_init | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 912 of file string.c.

References rb_scan_args(), and rb_str_replace().

Referenced by Init_String().

static VALUE rb_str_insert | ( | VALUE | str,
|  | VALUE | idx,
|  | VALUE | str2
| ) |  | `[static]`

Definition at line 3361 of file string.c.

References NUM2LONG(), rb_str_append(), and rb_str_splice().

Referenced by Init_String().

VALUE rb_str_inspect | ( | VALUE | str | ) |

Definition at line 4153 of file string.c.

References buf, CHAR_ESC_LEN, ISPRINT, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, NULL, OBJ_INFECT, rb_default_external_encoding(), rb_default_internal_encoding(), rb_enc_asciicompat, rb_enc_associate(), rb_enc_codepoint, rb_enc_isascii, rb_enc_isprint, rb_enc_mbc_to_codepoint, rb_enc_mbminlen, rb_enc_precise_mbclen(), rb_enc_unicode_p(), rb_str_buf_cat_escaped_char(), rb_str_buf_new(), rb_usascii_encoding(), result, RSTRING_END, RSTRING_PTR, snprintf, str_buf_cat(), str_buf_cat2, and STR_ENC_GET.

Referenced by Init_String(), match_inspect(), rb_invalid_str(), and sym_inspect().

VALUE rb_str_intern | ( | VALUE | s | ) |

Definition at line 6567 of file string.c.

References id, ID2SYM, RB_GC_GUARD, and rb_intern_str().

Referenced by hash2ptr_dispparams(), hash2result(), Init_String(), JSON_parse_string(), rb_to_id(), sym_capitalize(), sym_downcase(), sym_each_i(), sym_step_i(), sym_succ(), sym_swapcase(), and sym_upcase().

static VALUE rb_str_is_ascii_only_p | ( | VALUE | str | ) | `[static]`

Definition at line 7029 of file string.c.

References ENC_CODERANGE_7BIT, Qfalse, Qtrue, and rb_enc_str_coderange().

Referenced by Init_String(), and sym_inspect().

static VALUE rb_str_justify | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str,
|  | char | jflag
| ) |  | `[static]`

Definition at line 6664 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_AND, ENC_CODERANGE_BROKEN, ENC_CODERANGE_SET, len, LONG_MAX, NIL_P, NUM2LONG(), OBJ_INFECT, rb_eArgError, rb_enc_associate(), rb_enc_check(), rb_raise(), rb_scan_args(), rb_str_dup(), rb_str_new5, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), size, STR_ENC_GET, str_offset(), STR_SET_LEN, str_strlen(), and StringValue.

Referenced by rb_str_center(), rb_str_ljust(), and rb_str_rjust().

VALUE rb_str_length | ( | VALUE | str | ) |

Definition at line 1108 of file string.c.

References len, LONG2NUM, STR_ENC_GET, and str_strlen().

Referenced by iconv_iconv(), Init_String(), reg_match_pos(), and sym_length().

static VALUE rb_str_ljust | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 6768 of file string.c.

References rb_str_justify().

Referenced by Init_String().

static VALUE rb_str_lstrip | ( | VALUE | str | ) | `[static]`

Definition at line 6236 of file string.c.

References rb_str_dup(), and rb_str_lstrip_bang().

Referenced by Init_String().

static VALUE rb_str_lstrip_bang | ( | VALUE | str | ) | `[static]`

Definition at line 6195 of file string.c.

References memmove(), Qnil, rb_enc_codepoint_len(), rb_isspace(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, str_modify_keep_cr(), and STR_SET_LEN.

Referenced by Init_String(), rb_str_lstrip(), and rb_str_strip_bang().

static VALUE rb_str_match | ( | VALUE | x,
|  | VALUE | y
| ) |  | `[static]`

Definition at line 2544 of file string.c.

References rb_eTypeError, rb_funcall(), rb_intern, rb_raise(), rb_reg_match(), T_REGEXP, T_STRING, and TYPE.

Referenced by Init_String(), and sym_match().

static VALUE rb_str_match_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 2594 of file string.c.

References get_pat(), NIL_P, rb_block_given_p(), rb_eArgError, rb_funcall2(), rb_intern, rb_raise(), rb_yield(), and result.

Referenced by Init_String().

size_t rb_str_memsize | ( | VALUE | str | ) |

Definition at line 785 of file string.c.

References RSTRING, STR_EMBED_P, and STR_SHARED_P.

Referenced by memsize_of().

void rb_str_modify | ( | VALUE | str | ) |

Definition at line 1286 of file string.c.

References ENC_CODERANGE_CLEAR, str_independent(), and str_make_independent().

Referenced by econv_primitive_convert(), io_setstrbuf(), ossl_ssl_read_internal(), rb_io_ctl(), rb_str_append(), rb_str_cat(), rb_str_resize(), rb_str_set_len(), rb_str_setbyte(), rb_str_splice_0(), rb_str_sub_bang(), rb_str_vcatf(), rb_string_value_cstr(), str_buf_cat(), strio_extend(), strio_read(), and strio_ungetbyte().

VALUE rb_str_new | ( | const char * | ptr,
|  | long | len
| ) |  |

Definition at line 415 of file string.c.

References rb_cString, and str_new().

Referenced by addrinfo_inspect_sockaddr(), addrinfo_mdump(), addrinfo_to_sockaddr(), appendline(), argf_readpartial(), asn1str_to_str(), BigDecimal_dump(), BigDecimal_inspect(), BigDecimal_split(), BigDecimal_to_f(), BigDecimal_to_s(), bsock_getpeername(), bsock_getsockname(), bsock_getsockopt(), bubblebabble_str_new(), check_dirname(), check_pipe_command(), cState_partial_generate(), cState_to_h(), decode_bstr(), dir_s_home(), econv_convert(), econv_description(), econv_finish(), econv_primitive_errinfo(), econv_putback(), extract_user_token(), gzfile_getc(), gzfile_read(), gzfile_read_all(), gzfile_read_header(), gzfile_readpartial(), hexencode_str_new(), iconv_convert(), iconv_create(), iconv_s_conv(), infected_str_new(), inspect1(), inspect2(), int_chr(), io_getc(), io_setstrbuf(), io_shift_cbuf(), join_der(), JSON_parse_float(), JSON_parse_integer(), lib_conv_listelement(), lib_fromUTF8_core(), lib_merge_tklist(), lib_toUTF8_core(), lib_UTF_backslash_core(), load_file_internal(), make_econv_exception(), match_to_s(), mktime_r(), name_to_backref_number(), ossl_asn1_decode0(), ossl_asn1cons_to_der(), ossl_asn1data_to_der(), ossl_bn_to_s(), ossl_cipher_final(), ossl_cipher_update(), ossl_config_to_s(), ossl_dh_compute_key(), ossl_dh_to_der(), ossl_digest_finish(), ossl_dsa_sign(), ossl_dsa_to_der(), ossl_hmac_s_digest(), ossl_membio2str0(), ossl_pkcs12_to_der(), ossl_pkcs7_to_der(), ossl_pkey_sign(), ossl_rand_bytes(), ossl_rand_pseudo_bytes(), ossl_rsa_private_decrypt(), ossl_rsa_private_encrypt(), ossl_rsa_public_decrypt(), ossl_rsa_public_encrypt(), ossl_rsa_to_der(), ossl_spki_get_challenge(), ossl_spki_print(), ossl_spki_to_der(), ossl_ssl_read_internal(), ossl_ssl_session_to_der(), ossl_ssl_session_to_pem(), ossl_ssl_session_to_text(), ossl_sslctx_session_get_cb(), ossl_sslctx_set_ciphers(), ossl_str_new(), ossl_x509_to_der(), ossl_x509attr_get_value(), ossl_x509attr_to_der(), ossl_x509crl_get_signature_algorithm(), ossl_x509crl_to_der(), ossl_x509crl_to_pem(), ossl_x509crl_to_text(), ossl_x509ext_to_der(), ossl_x509name_to_a(), ossl_x509name_to_der(), ossl_x509req_get_signature_algorithm(), ossl_x509req_to_der(), ossl_x509req_to_pem(), ossl_x509req_to_text(), pack_pack(), pack_unpack(), parse(), proc_options(), r_bytes0(), rb_ary_join(), rb_compile_cstr(), rb_digest_base_finish(), rb_enc_str_new(), rb_exc_new(), rb_f_backquote(), rb_file_dirname(), rb_file_join(), rb_file_s_basename(), rb_file_s_extname(), rb_gdbm_fetch(), rb_gdbm_firstkey(), rb_gdbm_nextkey(), rb_inflate_inflate(), rb_io_getline_fast(), rb_io_putc(), rb_io_ungetbyte(), rb_iseq_disasm(), rb_iseq_disasm_insn(), rb_nkf_convert(), rb_parser_compile_cstr(), rb_path_check(), rb_random_bytes(), rb_reg_compile(), rb_reg_quote(), rb_str_derive(), rb_str_new_cstr(), rb_str_plus(), rb_str_slice_bang(), rb_syck_output_handler(), rb_usascii_str_new(), rb_write_error2(), realpath_rec(), reg_named_captures_iter(), reg_names_iter(), RUBY_ALIAS_FUNCTION(), ruby_init_loadpath_safe(), search_required(), set_file_encoding(), set_option_encoding_once(), sock_s_gethostbyaddr(), sock_s_pack_sockaddr_in(), sock_sockaddr(), sockopt_s_bool(), sockopt_s_int(), sockopt_s_linger(), str_new(), strftimev(), strio_getline(), strio_read(), strscan_inspect(), syck_genericresolver_node_import(), syck_resolver_node_import(), time_mdump(), time_strftime(), tkstr_to_str(), writer(), yaml_org_handler(), zstream_detach_buffer(), zstream_detach_input(), zstream_expand_buffer(), zstream_expand_buffer_into(), and zstream_sync().

VALUE rb_str_new_cstr | ( | const char * | ptr | ) |

Definition at line 437 of file string.c.

References rb_eArgError, rb_raise(), and rb_str_new().

Referenced by addrinfo_mdump(), curses_keyname(), decorate_convpath(), econv_convpath(), finish_writeconv(), hist_to_s(), Init_readline(), load_file_internal(), prep_io(), process_options(), pty_getpty(), pty_open(), random_rand(), rb_econv_open_exc(), rb_file_open(), rb_io_s_binread(), rb_parser_dump_tree(), rb_path2class(), ruby_init_loadpath_safe(), and search_convpath_i().

VALUE rb_str_new_frozen | ( | VALUE | orig | ) |

Definition at line 677 of file string.c.

References assert, ENCODING_GET, FL_SET, FL_UNSET, OBJ_FREEZE, OBJ_FROZEN, OBJ_INFECT, OBJ_TAINTED, rb_enc_cr_str_exact_copy(), rb_obj_class(), RBASIC, RSTRING, RSTRING_LEN, RSTRING_PTR, STR_ASSOC, STR_ASSOC_P, STR_EMBED_P, str_new(), str_new3(), and STR_SHARED_P.

Referenced by rb_econv_prepare_opts(), rb_file_open_generic(), rb_io_reopen(), rb_set_class_path_string(), rb_str_subseq(), and str_replace_shared().

VALUE rb_str_new_shared | ( | VALUE | str | ) |

Definition at line 641 of file string.c.

References OBJ_INFECT, rb_obj_class(), and str_new3().

Referenced by rb_file_s_basename(), and rb_str_subseq().

static VALUE rb_str_oct | ( | VALUE | str | ) | `[static]`

Definition at line 6493 of file string.c.

References FALSE, rb_eEncCompatError, rb_enc_asciicompat, rb_enc_get(), rb_enc_name, rb_raise(), and rb_str_to_inum().

Referenced by Init_String().

long rb_str_offset | ( | VALUE | str,
|  | long | pos
| ) |  |

Definition at line 1476 of file string.c.

References RSTRING_END, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, and str_offset().

Referenced by reg_match_pos().

VALUE rb_str_ord | ( | VALUE | s | ) |

Definition at line 6587 of file string.c.

References rb_enc_codepoint, RSTRING_END, RSTRING_PTR, STR_ENC_GET, and UINT2NUM().

Referenced by Init_String().

static VALUE rb_str_partition | ( | VALUE | str,
|  | VALUE | sep
| ) |  | `[static]`

Definition at line 6829 of file string.c.

References FALSE, INT2FIX, NIL_P, rb_ary_new3(), rb_check_string_type(), rb_eTypeError, rb_obj_classname(), rb_raise(), rb_reg_search(), rb_str_index(), rb_str_subpat(), rb_str_subseq(), RSTRING_LEN, T_REGEXP, TRUE, and TYPE.

Referenced by Init_String().

VALUE rb_str_plus | ( | VALUE | str1,
|  | VALUE | str2
| ) |  |

Definition at line 1158 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_AND, ENCODING_CODERANGE_SET, OBJ_TAINT, OBJ_TAINTED, rb_enc_check(), rb_enc_to_index, rb_str_new(), RSTRING_LEN, RSTRING_PTR, and StringValue.

Referenced by iconv_create(), and Init_String().

VALUE rb_str_replace | ( | VALUE | str,
|  | VALUE | str2
| ) |  |

Definition at line 3797 of file string.c.

References str_discard(), str_modifiable(), str_replace(), and StringValue.

Referenced by Init_String(), and rb_str_init().

VALUE rb_str_resize | ( | VALUE | str,
|  | long | len
| ) |  |

Definition at line 1685 of file string.c.

References ALLOC_N, len, MEMCPY, rb_eArgError, rb_raise(), rb_str_modify(), REALLOC_N, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, STR_EMBED_P, STR_NOCAPA_P, STR_SET_EMBED, STR_SET_EMBED_LEN, STR_SET_NOEMBED, and xfree().

Referenced by appendline(), argf_read(), argf_readpartial(), BigDecimal_dump(), BigDecimal_inspect(), BigDecimal_split(), BigDecimal_to_s(), copy_stream_body(), copy_stream_fallback_body(), econv_primitive_convert(), flo_to_s(), gzfile_readpartial(), iconv_create(), io_getpartial(), io_read(), io_setstrbuf(), lib_conv_listelement(), literal_concat0(), marshal_dump(), moreswitches(), ossl_cipher_update(), ossl_digest_finish(), ossl_ssl_read_internal(), rb_big2str0(), rb_econv_substr_append(), rb_enc_vsprintf(), rb_feature_p(), rb_gzfile_set_comment(), rb_gzfile_set_orig_name(), rb_home_dir(), rb_io_ctl(), rb_io_getline_fast(), rb_io_sysread(), rb_iseq_disasm(), rb_nkf_putchar(), rb_reg_quote(), rb_str_concat(), rb_str_format(), rb_str_vcatf(), read_all(), realpath_rec(), RUBY_ALIAS_FUNCTION(), ruby_init_loadpath_safe(), set_file_encoding(), str_transcoding_resize(), strio_extend(), strio_init(), strio_read(), strio_truncate(), strio_ungetbyte(), strio_ungetc(), sym_inspect(), VpAlloc(), w_nbyte(), yyparse(), zstream_append_buffer(), zstream_detach_buffer(), zstream_discard_input(), zstream_expand_buffer(), and zstream_expand_buffer_into().

VALUE rb_str_resurrect | ( | VALUE | str | ) |

Definition at line 899 of file string.c.

References rb_cString, str_alloc(), and str_replace().

Referenced by obj_resurrect().

static VALUE rb_str_reverse | ( | VALUE | str | ) | `[static]`

Definition at line 3900 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_UNKNOWN, ENC_CODERANGE_VALID, OBJ_INFECT, rb_enc_cr_str_copy_for_substr(), rb_enc_fast_mbclen(), rb_enc_mbclen(), rb_str_dup(), rb_str_new5, RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, and STR_SET_LEN.

Referenced by Init_String(), and rb_str_reverse_bang().

static VALUE rb_str_reverse_bang | ( | VALUE | str | ) | `[static]`

Definition at line 3964 of file string.c.

References rb_str_reverse(), rb_str_shared_replace(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), and str_modify_keep_cr().

Referenced by Init_String().

static long rb_str_rindex | ( | VALUE | str,
|  | VALUE | sub,
|  | long | pos
| ) |  | `[static]`

Definition at line 2416 of file string.c.

References is_broken_string, len, memcmp(), rb_enc_check(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), str_nth(), and str_strlen().

Referenced by rb_str_rindex_m(), and rb_str_rpartition().

static VALUE rb_str_rindex_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 2473 of file string.c.

References len, LONG2NUM, NIL_P, NUM2LONG(), Qnil, rb_backref_set(), rb_check_string_type(), rb_eTypeError, rb_obj_classname(), rb_raise(), rb_reg_search(), rb_scan_args(), rb_str_rindex(), rb_str_sublen(), RREGEXP, RREGEXP_SRC_LEN, RSTRING_END, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, str_offset(), str_strlen(), sub, T_REGEXP, T_STRING, and TYPE.

Referenced by Init_String().

static VALUE rb_str_rjust | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 6788 of file string.c.

References rb_str_justify().

Referenced by Init_String().

static VALUE rb_str_rpartition | ( | VALUE | str,
|  | VALUE | sep
| ) |  | `[static]`

Definition at line 6879 of file string.c.

References FALSE, NIL_P, rb_ary_new3(), rb_backref_get(), rb_check_string_type(), rb_eTypeError, rb_obj_classname(), rb_raise(), rb_reg_nth_match(), rb_reg_search(), rb_str_rindex(), rb_str_sublen(), rb_str_substr(), RSTRING_LEN, STR_ENC_GET, str_strlen(), T_REGEXP, TRUE, and TYPE.

Referenced by Init_String().

static VALUE rb_str_rstrip | ( | VALUE | str | ) | `[static]`

Definition at line 6306 of file string.c.

References rb_str_dup(), and rb_str_rstrip_bang().

Referenced by Init_String().

static VALUE rb_str_rstrip_bang | ( | VALUE | str | ) | `[static]`

Definition at line 6257 of file string.c.

References ascii_isspace, len, NULL, Qnil, rb_enc_codepoint, rb_enc_prev_char, rb_isspace(), rb_str_check_dummy_enc(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, str_modify_keep_cr(), and STR_SET_LEN.

Referenced by Init_String(), rb_str_rstrip(), and rb_str_strip_bang().

static VALUE rb_str_s_try_convert | ( | VALUE | dummy,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 1407 of file string.c.

References rb_check_string_type().

Referenced by Init_String().

static VALUE rb_str_scan | ( | VALUE | str,
|  | VALUE | pat
| ) |  | `[static]`

Definition at line 6421 of file string.c.

References get_pat(), last, NIL_P, rb_ary_new(), rb_ary_push(), rb_block_given_p(), rb_reg_search(), rb_yield(), result, RSTRING_LEN, RSTRING_PTR, scan_once(), and str_mod_check().

Referenced by Init_String().

void rb_str_set_len | ( | VALUE | str,
|  | long | len
| ) |  |

Definition at line 1677 of file string.c.

References len, rb_str_modify(), RSTRING_PTR, and STR_SET_LEN.

static VALUE rb_str_setbyte | ( | VALUE | str,
|  | VALUE | index,
|  | VALUE | value
| ) |  | `[static]`

Definition at line 3873 of file string.c.

References NUM2INT, NUM2LONG(), rb_eIndexError, rb_raise(), rb_str_modify(), RSTRING_LEN, and RSTRING_PTR.

Referenced by Init_String().

void rb_str_setter | ( | VALUE | val,
|  | ID | id,
|  | VALUE * | var
| ) |  |

Definition at line 6974 of file string.c.

References NIL_P, rb_eTypeError, rb_id2name(), rb_raise(), T_STRING, and TYPE.

Referenced by Init_IO().

void rb_str_shared_replace | ( | VALUE | str,
|  | VALUE | str2
| ) |  |

Definition at line 804 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_SET, FL_SET, OBJ_INFECT, rb_enc_associate(), RBASIC, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, RSTRING_PTR, str_discard(), STR_ENC_GET, STR_NOCAPA, STR_NOCAPA_P, STR_SET_EMBED, STR_SET_EMBED_LEN, STR_SET_NOEMBED, and STR_UNSET_NOCAPA.

Referenced by rb_str_reverse_bang(), rb_str_succ_bang(), str_encode_bang(), and str_gsub().

static VALUE rb_str_slice_bang | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 3396 of file string.c.

References argc, buf, NIL_P, rb_eArgError, rb_raise(), rb_str_aref_m(), rb_str_aset_m(), rb_str_new(), result, and str_modify_keep_cr().

Referenced by Init_String().

static void rb_str_splice | ( | VALUE | str,
|  | long | beg,
|  | long | len,
|  | VALUE | val
| ) |  | `[static]`

Definition at line 3175 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_AND, ENC_CODERANGE_BROKEN, ENC_CODERANGE_SET, rb_eIndexError, rb_enc_associate(), rb_enc_check(), rb_raise(), rb_str_splice_0(), RSTRING_END, RSTRING_PTR, single_byte_optimizable(), str_modify_keep_cr(), str_nth(), str_strlen(), and StringValue.

Referenced by rb_str_aset(), rb_str_aset_m(), rb_str_insert(), and rb_str_update().

static void rb_str_splice_0 | ( | VALUE | str,
|  | long | beg,
|  | long | len,
|  | VALUE | val
| ) |  | `[static]`

Definition at line 3142 of file string.c.

References memmove(), MEMZERO, OBJ_INFECT, rb_str_drop_bytes(), rb_str_modify(), RESIZE_CAPA, RSTRING_LEN, RSTRING_PTR, and STR_SET_LEN.

Referenced by rb_str_splice(), and rb_str_subpat_set().

VALUE rb_str_split | ( | VALUE | str,
|  | const char * | sep0
| ) |  |

Definition at line 5704 of file string.c.

References rb_str_new2, rb_str_split_m(), and StringValue.

Referenced by syck_const_find(), and syck_resolver_transfer().

static VALUE rb_str_split_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 5489 of file string.c.

References ascii_isspace, BEG, END, get_pat(), is_ascii_string, is_broken_string, len, NIL_P, NUM2INT, re_registers::num_regs, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_new(), rb_ary_new2(), rb_ary_new3(), rb_ary_pop(), rb_ary_push(), rb_backref_get(), rb_eArgError, rb_enc_ascget(), rb_enc_asciicompat, rb_enc_check(), rb_enc_codepoint_len(), rb_enc_fast_mbclen(), rb_enc_name, rb_enc_right_char_head, rb_fs, rb_isspace(), rb_memsearch(), rb_raise(), rb_reg_regcomp(), rb_reg_search(), rb_scan_args(), rb_str_subseq(), result, RMATCH_REGS, RSTRING_END, RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, T_STRING, and TYPE.

Referenced by Init_String(), and rb_str_split().

static VALUE rb_str_squeeze | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 5303 of file string.c.

References rb_str_dup(), and rb_str_squeeze_bang().

Referenced by Init_String().

static VALUE rb_str_squeeze_bang | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 5213 of file string.c.

References argc, Qnil, rb_enc_asciicompat, rb_enc_check(), rb_enc_codepoint_len(), rb_enc_mbcput, RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, str_modify_keep_cr(), STR_SET_LEN, StringValue, tr_find(), and tr_setup_table().

Referenced by Init_String(), and rb_str_squeeze().

static VALUE rb_str_start_with | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 6928 of file string.c.

References argc, memcmp(), NIL_P, Qfalse, Qtrue, rb_check_string_type(), rb_enc_check(), RSTRING_LEN, and RSTRING_PTR.

Referenced by Init_String().

static VALUE rb_str_strip | ( | VALUE | str | ) | `[static]`

Definition at line 6344 of file string.c.

References rb_str_dup(), and rb_str_strip_bang().

Referenced by Init_String().

static VALUE rb_str_strip_bang | ( | VALUE | str | ) | `[static]`

Definition at line 6323 of file string.c.

References NIL_P, Qnil, rb_str_lstrip_bang(), and rb_str_rstrip_bang().

Referenced by Init_String(), and rb_str_strip().

long rb_str_strlen | ( | VALUE | str | ) |

Definition at line 1094 of file string.c.

References STR_ENC_GET, and str_strlen().

static VALUE rb_str_sub | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 3597 of file string.c.

References rb_str_dup(), and rb_str_sub_bang().

Referenced by Init_String().

static VALUE rb_str_sub_bang | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 3456 of file string.c.

References BEG, coderange_scan(), ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, ENC_CODERANGE_SET, ENC_CODERANGE_UNKNOWN, ENC_CODERANGE_VALID, END, get_pat(), hash(), len, memmove(), NIL_P, OBJ_TAINT, OBJ_TAINTED, OBJ_UNTRUST, OBJ_UNTRUSTED, Qnil, rb_backref_get(), rb_block_given_p(), rb_check_convert_type(), rb_eArgError, rb_eEncCompatError, rb_enc_associate(), rb_enc_compatible(), rb_enc_name, rb_hash_aref(), rb_obj_as_string(), rb_raise(), rb_reg_nth_match(), rb_reg_regsub(), rb_reg_search(), rb_str_modify(), rb_str_subseq(), rb_yield(), RESIZE_CAPA, RMATCH_REGS, RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, str_frozen_check(), str_mod_check(), str_modifiable(), STR_SET_LEN, StringValue, and T_HASH.

Referenced by Init_String(), and rb_str_sub().

long rb_str_sublen | ( | VALUE | str,
|  | long | pos
| ) |  |

Definition at line 1521 of file string.c.

References ENC_CODERANGE, enc_strlen(), RSTRING_PTR, single_byte_optimizable(), and STR_ENC_GET.

Referenced by rb_reg_match(), rb_reg_match2(), rb_str_aset(), rb_str_index_m(), rb_str_rindex_m(), and rb_str_rpartition().

static VALUE rb_str_subpat | ( | VALUE | str,
|  | VALUE | re,
|  | VALUE | backref
| ) |  | `[static]`

Definition at line 2994 of file string.c.

References Qnil, rb_backref_get(), rb_reg_backref_number(), rb_reg_nth_match(), and rb_reg_search().

Referenced by rb_str_aref(), rb_str_aref_m(), and rb_str_partition().

static void rb_str_subpat_set | ( | VALUE | str,
|  | VALUE | re,
|  | VALUE | backref,
|  | VALUE | val
| ) |  | `[static]`

Definition at line 3224 of file string.c.

References BEG, END, len, re_registers::num_regs, rb_backref_get(), rb_eIndexError, rb_enc_associate(), rb_enc_check(), rb_raise(), rb_reg_backref_number(), rb_reg_search(), rb_str_splice_0(), RMATCH_REGS, and StringValue.

Referenced by rb_str_aset(), and rb_str_aset_m().

VALUE rb_str_subseq | ( | VALUE | str,
|  | long | beg,
|  | long | len
| ) |  |

Definition at line 1532 of file string.c.

References OBJ_INFECT, rb_enc_cr_str_copy_for_substr(), rb_str_drop_bytes(), rb_str_new5, rb_str_new_frozen(), rb_str_new_shared(), RSTRING_EMBED_LEN_MAX, RSTRING_LEN, and RSTRING_PTR.

Referenced by match_array(), rb_reg_match_post(), rb_reg_match_pre(), rb_reg_nth_match(), rb_str_derive(), rb_str_each_char(), rb_str_partition(), rb_str_split_m(), rb_str_sub_bang(), str_gsub(), strip_glibc_option(), and zstream_shift_buffer().

VALUE rb_str_substr | ( | VALUE | str,
|  | long | beg,
|  | long | len
| ) |  |

Definition at line 1552 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_VALID, len, OBJ_INFECT, Qnil, rb_enc_cr_str_copy_for_substr(), rb_enc_mbmaxlen, rb_enc_mbminlen, rb_enc_prev_char, rb_obj_class(), rb_str_new4, rb_str_new5, rb_utf8_encoding(), RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, str_new3(), str_nth(), str_offset(), str_strlen(), and sub.

Referenced by iconv_fail(), rb_str_aref(), rb_str_aref_m(), rb_str_chr(), and rb_str_rpartition().

VALUE rb_str_succ | ( | VALUE | orig | ) |

Definition at line 2774 of file string.c.

References enc_succ_alnum_char(), enc_succ_char(), ISALPHA, ISDIGIT, MEMCPY, memmove(), NEIGHBOR_FOUND, NEIGHBOR_NOT_CHAR, NEIGHBOR_WRAPPED, OBJ_INFECT, ONIGENC_CODE_TO_MBC_MAXLEN, rb_enc_asciicompat, rb_enc_cr_str_copy_for_substr(), rb_enc_precise_mbclen(), rb_enc_prev_char, rb_enc_str_coderange(), rb_str_new5, RESIZE_CAPA, RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, and STR_SET_LEN.

Referenced by Init_String(), rb_str_succ_bang(), and sym_succ().

static VALUE rb_str_succ_bang | ( | VALUE | str | ) | `[static]`

Definition at line 2857 of file string.c.

References rb_str_shared_replace(), and rb_str_succ().

Referenced by Init_String().

static VALUE rb_str_sum | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 6606 of file string.c.

References CHAR_BIT, FIXNUM_MAX, INT2FIX, len, LONG2FIX, mod, NUM2INT, rb_funcall(), rb_intern, rb_scan_args(), RSTRING_LEN, RSTRING_PTR, and str_mod_check().

Referenced by Init_String().

static VALUE rb_str_swapcase | ( | VALUE | str | ) | `[static]`

Definition at line 4683 of file string.c.

References rb_str_dup(), and rb_str_swapcase_bang().

Referenced by Init_String(), and sym_swapcase().

static VALUE rb_str_swapcase_bang | ( | VALUE | str | ) | `[static]`

Definition at line 4638 of file string.c.

References Qnil, rb_enc_codepoint_len(), rb_enc_islower, rb_enc_isupper, rb_enc_mbcput, rb_enc_tolower(), rb_enc_toupper(), rb_str_check_dummy_enc(), RSTRING_END, RSTRING_PTR, STR_ENC_GET, and str_modify_keep_cr().

Referenced by Init_String(), and rb_str_swapcase().

VALUE rb_str_times | ( | VALUE | str,
|  | VALUE | times
| ) |  |

Definition at line 1189 of file string.c.

References len, LONG_MAX, NUM2LONG(), OBJ_INFECT, rb_eArgError, rb_enc_cr_str_copy_for_substr(), rb_raise(), rb_str_new5, RSTRING_LEN, and RSTRING_PTR.

Referenced by Init_String().

static VALUE rb_str_to_f | ( | VALUE | str | ) | `[static]`

Definition at line 4070 of file string.c.

References DBL2NUM, FALSE, and rb_str_to_dbl().

Referenced by Init_String().

static VALUE rb_str_to_i | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 4037 of file string.c.

References FALSE, NUM2INT, rb_eArgError, rb_raise(), rb_scan_args(), and rb_str_to_inum().

Referenced by Init_String().

static VALUE rb_str_to_s | ( | VALUE | str | ) | `[static]`

Definition at line 4085 of file string.c.

References rb_cString, rb_obj_class(), and str_duplicate().

Referenced by Init_String().

VALUE rb_str_to_str | ( | VALUE | str | ) |

Definition at line 796 of file string.c.

References rb_convert_type(), and T_STRING.

Referenced by make_struct(), rb_gzfile_set_comment(), rb_gzfile_set_orig_name(), and rb_string_value().

static VALUE rb_str_tr | ( | VALUE | str,
|  | VALUE | src,
|  | VALUE | repl
| ) |  | `[static]`

Definition at line 5021 of file string.c.

References rb_str_dup(), and tr_trans().

Referenced by Init_String().

static VALUE rb_str_tr_bang | ( | VALUE | str,
|  | VALUE | src,
|  | VALUE | repl
| ) |  | `[static]`

Definition at line 4997 of file string.c.

References tr_trans().

Referenced by Init_String().

static VALUE rb_str_tr_s | ( | VALUE | str,
|  | VALUE | src,
|  | VALUE | repl
| ) |  | `[static]`

Definition at line 5340 of file string.c.

References rb_str_dup(), and tr_trans().

Referenced by Init_String().

static VALUE rb_str_tr_s_bang | ( | VALUE | str,
|  | VALUE | src,
|  | VALUE | repl
| ) |  | `[static]`

Definition at line 5320 of file string.c.

References tr_trans().

Referenced by Init_String().

VALUE rb_str_unlocktmp | ( | VALUE | str | ) |

Definition at line 1667 of file string.c.

References FL_TEST, FL_UNSET, rb_eRuntimeError, rb_raise(), and STR_TMPLOCK.

Referenced by io_fread(), io_getpartial(), and rb_io_sysread().

static VALUE rb_str_upcase | ( | VALUE | str | ) | `[static]`

Definition at line 4466 of file string.c.

References rb_str_dup(), and rb_str_upcase_bang().

Referenced by Init_String(), and sym_upcase().

static VALUE rb_str_upcase_bang | ( | VALUE | str | ) | `[static]`

Definition at line 4401 of file string.c.

References Qnil, rb_enc_asciicompat, rb_enc_codepoint_len(), rb_enc_isascii, rb_enc_islower, rb_enc_mbcput, rb_enc_toupper(), rb_str_check_dummy_enc(), RSTRING_END, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, and str_modify_keep_cr().

Referenced by Init_String(), and rb_str_upcase().

void rb_str_update | ( | VALUE | str,
|  | long | beg,
|  | long | len,
|  | VALUE | val
| ) |  |

Definition at line 3218 of file string.c.

References rb_str_splice().

Referenced by eval_string_with_cref(), and strio_ungetc().

static VALUE rb_str_upto | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | beg
| ) |  | `[static]`

Definition at line 2898 of file string.c.

References CONST_ID, FALSE, FIX2LONG, FIXNUM_P, INT2FIX, is_ascii_string, ISDIGIT, NIL_P, no_digits, numberof, Qnil, rb_enc_check(), rb_enc_sprintf(), rb_enc_str_new(), rb_funcall(), rb_intern, rb_long2int, rb_obj_freeze(), rb_scan_args(), rb_str_cmp(), rb_str_dup(), rb_str_equal(), rb_str_format(), rb_str_to_inum(), rb_usascii_encoding(), rb_usascii_str_new_cstr(), rb_yield(), RETURN_ENUMERATOR, RSTRING_END, RSTRING_LEN, RSTRING_PTR, RTEST, and StringValue.

Referenced by Init_String().

static VALUE rb_str_valid_encoding_p | ( | VALUE | str | ) | `[static]`

Definition at line 7011 of file string.c.

References ENC_CODERANGE_BROKEN, Qfalse, Qtrue, and rb_enc_str_coderange().

Referenced by Init_String().

VALUE rb_string_value | ( | volatile VALUE * | ptr | ) |

Definition at line 1357 of file string.c.

References rb_str_to_str(), T_STRING, and TYPE.

Referenced by rb_string_value_cstr(), and rb_string_value_ptr().

char* rb_string_value_cstr | ( | volatile VALUE * | ptr | ) |

Definition at line 1375 of file string.c.

References rb_eArgError, rb_raise(), rb_str_modify(), rb_string_value(), RSTRING_LEN, and RSTRING_PTR.

char* rb_string_value_ptr | ( | volatile VALUE * | ptr | ) |

Definition at line 1368 of file string.c.

References rb_string_value(), and RSTRING_PTR.

VALUE rb_sym_to_s | ( | VALUE | sym | ) |

Definition at line 7156 of file string.c.

References rb_cString, rb_id2str(), str_new3(), and SYM2ID.

Referenced by constant_arg(), ev_on_event(), fev_off_event(), fole_respond_to(), get_eval_string_core(), hash2named_arg(), Init_String(), ole_invoke(), range_each(), range_step(), reg_operand(), sym_aref(), sym_casecmp(), sym_cmp(), sym_match(), and sym_succ().

VALUE rb_tainted_str_new_cstr | ( | const char * | ptr | ) |

Definition at line 469 of file string.c.

References OBJ_TAINT, and rb_str_new2.

Referenced by addrinfo_firstonly_new(), addrinfo_list_new(), and init_addrinfo_getaddrinfo().

ID rb_to_id | ( | VALUE | name | ) |

Definition at line 7400 of file string.c.

References id, NIL_P, rb_check_string_type(), rb_eTypeError, rb_inspect(), rb_raise(), rb_str_intern(), RSTRING_PTR, SYM2ID, T_STRING, T_SYMBOL, and TYPE.

Referenced by bug_funcall(), enum_inject(), enumerator_init(), fole_missing(), make_struct(), num_sadded(), obj_respond_to(), ole_search_handler_method(), rb_f_trace_var(), rb_f_untrace_var(), rb_mod_alias_method(), rb_mod_attr(), rb_mod_attr_accessor(), rb_mod_attr_reader(), rb_mod_attr_writer(), rb_mod_autoload(), rb_mod_autoload_p(), rb_mod_const_defined(), rb_mod_const_get(), rb_mod_const_missing(), rb_mod_const_set(), rb_mod_cvar_defined(), rb_mod_cvar_get(), rb_mod_cvar_set(), rb_mod_define_method(), rb_mod_instance_method(), rb_mod_method_defined(), rb_mod_modfunc(), rb_mod_private_method_defined(), rb_mod_protected_method_defined(), rb_mod_public_instance_method(), rb_mod_public_method_defined(), rb_mod_remove_const(), rb_mod_remove_cvar(), rb_mod_remove_method(), rb_mod_undef_method(), rb_obj_ivar_defined(), rb_obj_ivar_get(), rb_obj_ivar_set(), rb_obj_method(), rb_obj_public_method(), rb_obj_remove_instance_variable(), rb_struct_aref(), rb_struct_aset(), rb_struct_s_def(), rb_thread_aref(), rb_thread_aset(), rb_thread_key_p(), send_internal(), set_method_visibility(), syck_const_find(), and vm_call_method().

VALUE rb_usascii_str_new | ( | const char * | ptr,
|  | long | len
| ) |  |

Definition at line 421 of file string.c.

References ENC_CODERANGE_7BIT, ENCODING_CODERANGE_SET, rb_str_new(), and rb_usascii_encindex().

Referenced by flo_to_s(), Init_golf(), Init_prelude(), int_chr(), nil_to_s(), prelude_require(), rb_big2str0(), rb_id2str(), and rb_io_getline_1().

RUBY_ALIAS_FUNCTION | ( | rb_str_new2(const char *ptr) | ,
|  | rb_str_new_cstr | ,
|  | (ptr) |
| ) |  |

Definition at line 445 of file string.c.

References ENC_CODERANGE_7BIT, ENCODING_CODERANGE_SET, rb_str_new2, and rb_usascii_encindex().

RUBY_ALIAS_FUNCTION | ( | rb_str_dup_frozen(VALUE str) | ,
|  | rb_str_new_frozen | ,
|  | (str) |
| ) |  |

Definition at line 1653 of file string.c.

References FL_SET, FL_TEST, rb_eRuntimeError, rb_raise(), and STR_TMPLOCK.

RUBY_ALIAS_FUNCTION | ( | rb_tainted_str_new2(const char *ptr) | ,
|  | rb_tainted_str_new_cstr | ,
|  | (ptr) |
| ) |  |

Definition at line 477 of file string.c.

References dp, econv_destination_buffer_full, econv_finished, ENC_CODERANGE, ENC_CODERANGE_7BIT, len, OnigEncodingTypeST::name, rb_ascii8bit_encoding(), rb_econv_close(), rb_econv_convert(), rb_econv_open_opts(), rb_enc_asciicompat, rb_enc_associate(), rb_str_dup(), rb_str_new(), rb_str_resize(), rb_str_set_len, RSTRING_END, RSTRING_LEN, RSTRING_PTR, and STR_ENC_GET.

RUBY_ALIAS_FUNCTION | ( | rb_str_new4(VALUE orig) | ,
|  | rb_str_new_frozen | ,
|  | (orig) |
| ) |  |

Definition at line 716 of file string.c.

References rb_obj_class(), and str_new().

RUBY_ALIAS_FUNCTION | ( | rb_usascii_str_new2(const char *ptr) | ,
|  | rb_usascii_str_new_cstr | ,
|  | (ptr) |
| ) |  |

Definition at line 456 of file string.c.

References OBJ_TAINT, and rb_str_new().

RUBY_ALIAS_FUNCTION | ( | rb_str_new5(VALUE obj, const char *ptr, long len) | ,
|  | rb_str_new_with_class | ,
|  | (obj, ptr, len) |
| ) |  |

Definition at line 725 of file string.c.

References OBJ_INFECT, and rb_str_new5.

RUBY_ALIAS_FUNCTION | ( | rb_str_buf_new2(const char *ptr) | ,
|  | rb_str_buf_new_cstr | ,
|  | (ptr) |
| ) |  |

Definition at line 767 of file string.c.

References str_new().

RUBY_ALIAS_FUNCTION | ( | rb_str_new3(VALUE str) | ,
|  | rb_str_new_shared | ,
|  | (str) |
| ) |  |

Definition at line 649 of file string.c.

References assert, ELTS_SHARED, FL_SET, OBJ_FROZEN, OBJ_INFECT, rb_enc_cr_str_exact_copy(), RSTRING, RSTRING_LEN, RSTRING_PTR, str_alloc(), STR_SET_NOEMBED, and STR_SHARED_P.

static VALUE scan_once | ( | VALUE | str,
|  | VALUE | pat,
|  | long * | start
| ) |  | `[static]`

Definition at line 6352 of file string.c.

References BEG, END, re_registers::num_regs, Qnil, rb_ary_new2(), rb_ary_push(), rb_backref_get(), rb_enc_fast_mbclen(), rb_reg_nth_match(), rb_reg_search(), result, RMATCH_REGS, RSTRING_END, RSTRING_LEN, RSTRING_PTR, and STR_ENC_GET.

Referenced by rb_str_scan().

static const char* search_nonascii | ( | const char * | p,
|  | const char * | e
| ) |  | `[inline, static]`

Definition at line 141 of file string.c.

References ISASCII, and NULL.

Referenced by coderange_scan(), enc_strlen(), rb_enc_cr_str_copy_for_substr(), rb_enc_nth(), rb_enc_strlen_cr(), and rb_str_coderange_scan_restartable().

static int single_byte_optimizable | ( | VALUE | str | ) | `[inline, static]`

Definition at line 121 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, rb_enc_mbmaxlen, and STR_ENC_GET.

Referenced by rb_str_casecmp(), rb_str_downcase_bang(), rb_str_each_codepoint(), rb_str_index(), rb_str_index_m(), rb_str_justify(), rb_str_offset(), rb_str_reverse(), rb_str_reverse_bang(), rb_str_rindex(), rb_str_rindex_m(), rb_str_rstrip_bang(), rb_str_splice(), rb_str_squeeze_bang(), rb_str_sublen(), rb_str_substr(), rb_str_upcase_bang(), str_strlen(), and tr_trans().

static VALUE str_alloc | ( | VALUE | klass | ) | `[inline, static]`

Definition at line 376 of file string.c.

References NEWOBJ, OBJSETUP, and T_STRING.

Referenced by Init_String(), rb_str_buf_new(), rb_str_resurrect(), RUBY_ALIAS_FUNCTION(), str_duplicate(), str_new(), and str_new_shared().

static VALUE str_buf_cat | ( | VALUE | str,
|  | const char * | ptr,
|  | long | len
| ) |  | `[static]`

Definition at line 1730 of file string.c.

References FL_UNSET, len, LONG_MAX, rb_eArgError, rb_raise(), rb_str_modify(), RESIZE_CAPA, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_END, RSTRING_LEN, RSTRING_PTR, STR_ASSOC, STR_ASSOC_P, STR_EMBED_P, and STR_SET_LEN.

Referenced by rb_enc_cr_str_buf_cat(), rb_str_buf_cat(), and rb_str_inspect().

static void str_discard | ( | VALUE | str | ) | `[inline, static]`

Definition at line 1305 of file string.c.

References RSTRING, RSTRING_PTR, STR_EMBED_P, str_modifiable(), STR_SHARED_P, and xfree().

Referenced by rb_str_clear(), rb_str_replace(), and rb_str_shared_replace().

static VALUE str_duplicate | ( | VALUE | klass,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 885 of file string.c.

References str_alloc(), and str_replace().

Referenced by rb_str_dup(), and rb_str_to_s().

static void str_enc_copy | ( | VALUE | str1,
|  | VALUE | str2
| ) |  | `[inline, static]`

Definition at line 279 of file string.c.

References ENCODING_GET, and rb_enc_set_index().

Referenced by rb_enc_cr_str_copy_for_substr(), and rb_enc_cr_str_exact_copy().

static VALUE str_eql | ( | const VALUE | str1,
|  | const VALUE | str2
| ) |  | `[static]`

Definition at line 2132 of file string.c.

References memcmp(), Qfalse, Qtrue, rb_str_comparable(), RSTRING_LEN, and RSTRING_PTR.

Referenced by rb_str_eql(), and rb_str_equal().

static void str_frozen_check | ( | VALUE | s | ) | `[inline, static]`

Definition at line 354 of file string.c.

References OBJ_FROZEN, rb_eRuntimeError, and rb_raise().

Referenced by rb_str_sub_bang().

static VALUE str_gsub | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str,
|  | int | bang
| ) |  | `[static]`

Definition at line 3605 of file string.c.

References BEG, re_registers::beg, END, get_pat(), hash(), last, len, NIL_P, OBJ_INFECT, OBJ_TAINT, OBJ_TAINTED, Qnil, rb_backref_get(), rb_check_convert_type(), rb_eArgError, rb_enc_fast_mbclen(), rb_enc_str_buf_cat(), rb_eRuntimeError, rb_hash_aref(), rb_obj_as_string(), rb_obj_class(), rb_raise(), rb_reg_nth_match(), rb_reg_regsub(), rb_reg_search(), rb_str_buf_append(), rb_str_buf_new(), rb_str_dup(), rb_str_shared_replace(), rb_str_subseq(), rb_yield(), RBASIC, RETURN_ENUMERATOR, RMATCH_REGS, RSTRING_END, RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, str_mod_check(), StringValue, and T_HASH.

Referenced by rb_str_gsub(), and rb_str_gsub_bang().

static int str_independent | ( | VALUE | str | ) | `[inline, static]`

Definition at line 1259 of file string.c.

References STR_EMBED_P, str_modifiable(), and STR_SHARED_P.

Referenced by rb_str_modify(), and str_modify_keep_cr().

static void str_make_independent | ( | VALUE | str | ) | `[static]`

Definition at line 1268 of file string.c.

References ALLOC_N, len, RSTRING, RSTRING_LEN, RSTRING_PTR, STR_SET_NOEMBED, and STR_UNSET_NOCAPA.

Referenced by rb_str_associate(), rb_str_cat(), rb_str_modify(), and str_modify_keep_cr().

static void str_mod_check | ( | VALUE | s,
|  | const char * | p,
|  | long | len
| ) |  | `[inline, static]`

Definition at line 346 of file string.c.

References rb_eRuntimeError, rb_raise(), RSTRING_LEN, and RSTRING_PTR.

Referenced by rb_str_each_line(), rb_str_scan(), rb_str_sub_bang(), rb_str_sum(), and str_gsub().

static void str_modifiable | ( | VALUE | str | ) | `[inline, static]`

Definition at line 1248 of file string.c.

References FL_TEST, OBJ_FROZEN, OBJ_UNTRUSTED, rb_error_frozen(), rb_eRuntimeError, rb_eSecurityError, rb_raise(), rb_safe_level, and STR_TMPLOCK.

Referenced by rb_str_drop_bytes(), rb_str_force_encoding(), rb_str_replace(), rb_str_sub_bang(), str_discard(), and str_independent().

static void str_modify_keep_cr | ( | VALUE | str | ) | `[static]`

Definition at line 1295 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_BROKEN, ENC_CODERANGE_CLEAR, str_independent(), and str_make_independent().

Referenced by rb_str_capitalize_bang(), rb_str_chomp_bang(), rb_str_chop_bang(), rb_str_delete_bang(), rb_str_downcase_bang(), rb_str_gsub_bang(), rb_str_lstrip_bang(), rb_str_reverse_bang(), rb_str_rstrip_bang(), rb_str_slice_bang(), rb_str_splice(), rb_str_squeeze_bang(), rb_str_swapcase_bang(), rb_str_upcase_bang(), and tr_trans().

static VALUE str_new | ( | VALUE | klass,
|  | const char * | ptr,
|  | long | len
| ) |  | `[static]`

Definition at line 389 of file string.c.

References ALLOC_N, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, len, rb_eArgError, rb_raise(), RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_PTR, str_alloc(), STR_SET_LEN, and STR_SET_NOEMBED.

Referenced by rb_str_new(), rb_str_new_frozen(), and RUBY_ALIAS_FUNCTION().

static VALUE str_new3 | ( | VALUE | klass,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 635 of file string.c.

References str_new_shared().

Referenced by rb_str_new_frozen(), rb_str_new_shared(), rb_str_substr(), and rb_sym_to_s().

static VALUE str_new_shared | ( | VALUE | klass,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 629 of file string.c.

References str_alloc(), and str_replace_shared().

Referenced by str_new3().

static char* str_nth | ( | const char * | p,
|  | const char * | e,
|  | long | nth,
|  | rb_encoding * | enc,
|  | int | singlebyte
| ) |  | `[static]`

Definition at line 1454 of file string.c.

References rb_enc_nth().

Referenced by rb_str_rindex(), rb_str_splice(), rb_str_substr(), and str_offset().

static long str_offset | ( | const char * | p,
|  | const char * | e,
|  | long | nth,
|  | rb_encoding * | enc,
|  | int | singlebyte
| ) |  | `[static]`

Definition at line 1468 of file string.c.

References str_nth().

Referenced by rb_str_index(), rb_str_index_m(), rb_str_justify(), rb_str_offset(), rb_str_rindex_m(), and rb_str_substr().

static VALUE str_replace | ( | VALUE | str,
|  | VALUE | str2
| ) |  | `[static]`

Definition at line 857 of file string.c.

References assert, ELTS_SHARED, FL_SET, FL_UNSET, len, OBJ_FROZEN, OBJ_INFECT, rb_enc_cr_str_exact_copy(), rb_str_new4, RSTRING, RSTRING_LEN, RSTRING_PTR, STR_ASSOC, STR_ASSOC_P, str_replace_shared(), STR_SET_NOEMBED, and STR_SHARED_P.

Referenced by rb_str_replace(), rb_str_resurrect(), and str_duplicate().

static VALUE str_replace_shared | ( | VALUE | str2,
|  | VALUE | str
| ) |  | `[static]`

Definition at line 608 of file string.c.

References ELTS_SHARED, FL_SET, rb_enc_cr_str_exact_copy(), rb_str_new_frozen(), RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, RSTRING_PTR, STR_NOEMBED, STR_SET_EMBED, and STR_SET_EMBED_LEN.

Referenced by str_new_shared(), and str_replace().

static long str_strlen | ( | VALUE | str,
|  | rb_encoding * | enc
| ) |  | `[static]`

Definition at line 1048 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, len, rb_enc_strlen_cr(), rb_utf8_encoding(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), and STR_ENC_GET.

Referenced by rb_str_aref(), rb_str_aset(), rb_str_index(), rb_str_index_m(), rb_str_justify(), rb_str_length(), rb_str_rindex(), rb_str_rindex_m(), rb_str_rpartition(), rb_str_splice(), rb_str_strlen(), and rb_str_substr().

static VALUE sym_aref | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | sym
| ) |  | `[static]`

Definition at line 7303 of file string.c.

References rb_str_aref_m(), and rb_sym_to_s().

Referenced by Init_String().

static VALUE sym_call | ( | VALUE | args,
|  | VALUE | sym,
|  | int | argc,
|  | VALUE * | argv
| ) |  | `[static]`

Definition at line 7183 of file string.c.

References rb_eArgError, rb_funcall_passing_block(), and rb_raise().

Referenced by sym_to_proc().

static VALUE sym_capitalize | ( | VALUE | sym | ) | `[static]`

Definition at line 7368 of file string.c.

References rb_id2str(), rb_str_capitalize(), rb_str_intern(), and SYM2ID.

Referenced by Init_String().

static VALUE sym_casecmp | ( | VALUE | sym,
|  | VALUE | other
| ) |  | `[static]`

Definition at line 7273 of file string.c.

References Qnil, rb_str_casecmp(), rb_sym_to_s(), and SYMBOL_P.

Referenced by Init_String().

static VALUE sym_cmp | ( | VALUE | sym,
|  | VALUE | other
| ) |  | `[static]`

Definition at line 7256 of file string.c.

References Qnil, rb_str_cmp_m(), rb_sym_to_s(), and SYMBOL_P.

Referenced by Init_String().

static VALUE sym_downcase | ( | VALUE | sym | ) | `[static]`

Definition at line 7355 of file string.c.

References rb_id2str(), rb_str_downcase(), rb_str_intern(), and SYM2ID.

Referenced by Init_String().

static VALUE sym_empty | ( | VALUE | sym | ) | `[static]`

Definition at line 7329 of file string.c.

References rb_id2str(), rb_str_empty(), and SYM2ID.

Referenced by Init_String().

static VALUE sym_encoding | ( | VALUE | sym | ) | `[static]`

Definition at line 7394 of file string.c.

References rb_id2str(), rb_obj_encoding(), and SYM2ID.

static VALUE sym_equal | ( | VALUE | sym1,
|  | VALUE | sym2
| ) |  | `[static]`

Definition at line 7079 of file string.c.

References Qfalse, and Qtrue.

Referenced by Init_String().

static VALUE sym_inspect | ( | VALUE | sym | ) | `[static]`

Definition at line 7109 of file string.c.

References len, memmove(), NULL, rb_default_external_encoding(), rb_default_internal_encoding(), rb_enc_str_new(), rb_enc_symname_p(), rb_id2str(), rb_str_inspect(), rb_str_is_ascii_only_p(), rb_str_resize(), RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, SYM2ID, and sym_printable().

Referenced by Init_String().

static VALUE sym_length | ( | VALUE | sym | ) | `[static]`

Definition at line 7316 of file string.c.

References rb_id2str(), rb_str_length(), and SYM2ID.

Referenced by Init_String().

static VALUE sym_match | ( | VALUE | sym,
|  | VALUE | other
| ) |  | `[static]`

Definition at line 7289 of file string.c.

References rb_str_match(), and rb_sym_to_s().

Referenced by Init_String().

static int sym_printable | ( | const char * | s,
|  | const char * | send,
|  | rb_encoding * | enc
| ) |  | `[static]`

Definition at line 7087 of file string.c.

References FALSE, rb_enc_codepoint_len(), rb_enc_isprint, and TRUE.

Referenced by sym_inspect().

static VALUE sym_succ | ( | VALUE | sym | ) | `[static]`

Definition at line 7242 of file string.c.

References rb_str_intern(), rb_str_succ(), and rb_sym_to_s().

Referenced by Init_String().

static VALUE sym_swapcase | ( | VALUE | sym | ) | `[static]`

Definition at line 7381 of file string.c.

References rb_id2str(), rb_str_intern(), rb_str_swapcase(), and SYM2ID.

Referenced by Init_String().

static VALUE sym_to_proc | ( | VALUE | sym | ) | `[static]`

Definition at line 7204 of file string.c.

References id, Qfalse, Qnil, RARRAY_PTR, rb_ary_store(), rb_ary_tmp_new(), rb_gc_register_mark_object(), rb_proc_new(), SYM2ID, and sym_call().

Referenced by Init_String().

static VALUE sym_to_sym | ( | VALUE | sym | ) | `[static]`

Definition at line 7175 of file string.c.

Referenced by Init_String().

static VALUE sym_upcase | ( | VALUE | sym | ) | `[static]`

Definition at line 7342 of file string.c.

References rb_id2str(), rb_str_intern(), rb_str_upcase(), and SYM2ID.

Referenced by Init_String().

static int tr_find | ( | unsigned int | c,
|  | char | table[256],
|  | VALUE | del,
|  | VALUE | nodel
| ) |  | `[static]`

Definition at line 5088 of file string.c.

References FALSE, NIL_P, rb_hash_lookup, TRUE, and UINT2NUM().

Referenced by rb_str_count(), rb_str_delete_bang(), and rb_str_squeeze_bang().

static void tr_setup_table | ( | VALUE | str,
|  | char | stable[256],
|  | int | first,
|  | VALUE * | tablep,
|  | VALUE * | ctablep,
|  | rb_encoding * | enc
| ) |  | `[static]`

Definition at line 5029 of file string.c.

References buf, tr::gen, tr::max, NIL_P, tr::now, tr::p, tr::pend, Qtrue, rb_enc_ascget(), rb_hash_aref(), rb_hash_aset(), rb_hash_new(), RSTRING_LEN, RSTRING_PTR, trnext(), and UINT2NUM().

Referenced by rb_str_count(), rb_str_delete_bang(), and rb_str_squeeze_bang().

static VALUE tr_trans | ( | VALUE | str,
|  | VALUE | src,
|  | VALUE | repl,
|  | int | sflag
| ) |  | `[static]`

Definition at line 4746 of file string.c.

References ALLOC_N, buf, CHECK_IF_ASCII, ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, tr::gen, hash(), last, max(), tr::max, memcmp(), NIL_P, tr::now, NUM2INT, tr::p, tr::pend, Qnil, Qtrue, rb_enc_ascget(), rb_enc_associate(), rb_enc_check(), rb_enc_codelen(), rb_enc_codepoint_len(), rb_enc_mbcput, rb_enc_mbmaxlen, rb_hash_aset(), rb_hash_lookup, rb_hash_new(), rb_str_delete_bang(), REALLOC_N, RSTRING, RSTRING_END, RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), STR_EMBED_P, str_modify_keep_cr(), STR_SET_NOEMBED, StringValue, trans, trnext(), UINT2NUM(), and xfree().

Referenced by rb_str_tr(), rb_str_tr_bang(), rb_str_tr_s(), and rb_str_tr_s_bang().

static unsigned int trnext | ( | struct tr * | t,
|  | rb_encoding * | enc
| ) |  | `[static]`

Definition at line 4699 of file string.c.

References tr::gen, tr::max, tr::now, tr::p, tr::pend, rb_eArgError, rb_enc_codepoint_len(), and rb_raise().

Referenced by tr_setup_table(), and tr_trans().

## Variable Documentation

ID id_to_s`[static]`

Definition at line 839 of file string.c.

const char isspacetable[256]`[static]`

Initial value:

     {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    }

Definition at line 5425 of file string.c.

VALUE rb_cString

Definition at line 48 of file string.c.

VALUE rb_cSymbol

Definition at line 49 of file string.c.

VALUE rb_fs

Definition at line 138 of file string.c.