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 (  )     isspacetable[(unsigned char)(c)]

Definition at line 5449 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.

#define CHAR_ESC_LEN   13

Definition at line 4110 of file string.c.

Referenced by rb_str_buf_cat_escaped_char(), and rb_str_inspect().

#define CHECK_IF_ASCII (  ) 

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.

#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,
 )     ((p) < (e) && (*(p) == '$' || *(p) == '@' || *(p) == '{'))

Definition at line 4245 of file string.c.

Referenced by rb_str_dump().

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

Definition at line 2084 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.

#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.

#define STR_ASSOC_P (  )     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 1778 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 (  )     (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,
 ) 

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,
 ) 

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 (  )     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 (  ) 

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 4695 of file string.c.


Enumeration Type Documentation

enum neighbor_char

Enumerator:
NEIGHBOR_NOT_CHAR 
NEIGHBOR_FOUND 
NEIGHBOR_WRAPPED 

Definition at line 2613 of file string.c.


Function Documentation

static long chopped_length ( VALUE  str  )  [static]

Definition at line 5980 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, 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 2654 of file string.c.

References MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, MBCLEN_INVALID_P, NEIGHBOR_FOUND, 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 2697 of file string.c.

References enc_pred_char(), enc_succ_char(), MEMCPY, NEIGHBOR_FOUND, NEIGHBOR_NOT_CHAR, 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 2620 of file string.c.

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

Referenced by enc_succ_alnum_char(), and rb_str_succ().

static VALUE get_pat ( VALUE  ,
int   
) [static]

Definition at line 3423 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 7443 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 1393 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 1822 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 1417 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 1912 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 2042 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 1959 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_SET, 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 3010 of file string.c.

References FIX2LONG, INT2FIX, 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 3104 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 3267 of file string.c.

References re_registers::beg, FIX2LONG, INT2FIX, 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 3331 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 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 1943 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 1781 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 1791 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 1919 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 4113 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 4625 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 4577 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 2247 of file string.c.

References INT2FIX, 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 1797 of file string.c.

References 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 1816 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 6813 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 4388 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 6180 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 6060 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_CLEAR, is_broken_string, 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 6042 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 6007 of file string.c.

References chopped_length(), ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_CLEAR, 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 3847 of file string.c.

References rb_str_substr().

Referenced by Init_String().

static VALUE rb_str_clear ( VALUE  str  )  [static]

Definition at line 3823 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 2112 of file string.c.

References ENCODING_GET, 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 2207 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 2087 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 2001 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, FIX2UINT, FIXNUM_P, 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 5370 of file string.c.

References 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 6520 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 5201 of file string.c.

References rb_str_delete_bang(), and rb_str_dup().

Referenced by Init_String().

static VALUE rb_str_delete_bang ( int  ,
VALUE ,
VALUE   
) [static]

Definition at line 5123 of file string.c.

References 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 4554 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 4489 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 3119 of file string.c.

References ELTS_SHARED, ENC_CODERANGE_CLEAR, 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 4256 of file string.c.

References ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, IS_EVSTR, ISPRINT, 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(), 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 5873 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 5904 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_VALID, 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 5955 of file string.c.

References re_registers::end, 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 5757 of file string.c.

References 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 6956 of file string.c.

References 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 2177 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 2157 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 6996 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 1648 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 3859 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 3784 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 3733 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 2048 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 2058 of file string.c.

References 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 2078 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 6472 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 4008 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 2305 of file string.c.

References is_broken_string, 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 2366 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 3366 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 4158 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 6572 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 7034 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 6669 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_AND, ENC_CODERANGE_BROKEN, ENC_CODERANGE_SET, 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 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 6773 of file string.c.

References rb_str_justify().

Referenced by Init_String().

static VALUE rb_str_lstrip ( VALUE  str  )  [static]

Definition at line 6241 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 6200 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 2549 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 2599 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 bug_str_cstr_term(), 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_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 6498 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 1480 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 6592 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 6834 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 3802 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 1689 of file string.c.

References ALLOC_N, 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 3905 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 3969 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 2421 of file string.c.

References is_broken_string, 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 2478 of file string.c.

References 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 6793 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 6884 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 6311 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 6262 of file string.c.

References ascii_isspace, 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 1411 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 6426 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 1681 of file string.c.

References rb_str_modify(), RSTRING_PTR, and STR_SET_LEN.

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

Definition at line 3878 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 6979 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 3401 of file string.c.

References 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 3180 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 3147 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 5709 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 5494 of file string.c.

References ascii_isspace, BEG, END, get_pat(), is_ascii_string, is_broken_string, 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 5308 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 5218 of file string.c.

References 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 6933 of file string.c.

References 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 6349 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 6328 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 3602 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 3461 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(), 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 1525 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 2999 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 3229 of file string.c.

References BEG, END, 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 1536 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 1556 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_VALID, 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 2779 of file string.c.

References enc_succ_alnum_char(), enc_succ_char(), ISALPHA, ISDIGIT, MEMCPY, memmove(), NEIGHBOR_FOUND, NEIGHBOR_NOT_CHAR, 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 2862 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 6611 of file string.c.

References CHAR_BIT, FIXNUM_MAX, INT2FIX, 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 4688 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 4643 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 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 4075 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 4042 of file string.c.

References b(), 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 4090 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 5026 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 5002 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 5345 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 5325 of file string.c.

References tr_trans().

Referenced by Init_String().

VALUE rb_str_unlocktmp ( VALUE  str  ) 

Definition at line 1671 of file string.c.

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

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

static VALUE rb_str_upcase ( VALUE  str  )  [static]

Definition at line 4471 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 4406 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 3223 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 2903 of file string.c.

References b(), 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 7016 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 7161 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 7405 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_ary_join(), rb_big2str0(), rb_id2str(), and rb_io_getline_1().

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

Definition at line 1657 of file string.c.

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

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_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_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_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.

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_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_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().

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

Definition at line 6357 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 1735 of file string.c.

References FL_UNSET, 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 2137 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 3610 of file string.c.

References BEG, re_registers::beg, END, get_pat(), hash(), last, 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, 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, rb_eArgError, rb_raise(), RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_PTR, str_alloc(), STR_SET_LEN, and STR_SET_NOEMBED.

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 1458 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 1472 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, 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, 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 7308 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 7188 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 7373 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 7278 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 7261 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 7360 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 7334 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 7399 of file string.c.

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

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

Definition at line 7084 of file string.c.

References Qfalse, and Qtrue.

Referenced by Init_String().

static VALUE sym_inspect ( VALUE  sym  )  [static]

Definition at line 7114 of file string.c.

References 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 7321 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 7294 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 7092 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 7247 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 7386 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 7209 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 7180 of file string.c.

Referenced by Init_String().

static VALUE sym_upcase ( VALUE  sym  )  [static]

Definition at line 7347 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 5093 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 5034 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 4751 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(), if(), 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 4704 of file string.c.

References tr::gen, if(), 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 5430 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.


Generated on Wed Aug 10 09:19:01 2011 for Ruby by  doxygen 1.4.7