Ruby 2.0.0p353(2013-11-22revision43784)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
string.c File Reference
`#include "ruby/ruby.h"`
`#include "ruby/re.h"`
`#include "ruby/encoding.h"`
`#include "vm_core.h"`
`#include "internal.h"`
`#include "probes.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

## Macros
#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 /* = ELTS_SHARED */
#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 | str_make_independent(str) str_make_independent_expand((str), 0L)
#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 /* sizeof(\x{ hex of 32bit unsigned int } \0) */
#define | IS_EVSTR(p, e) ((p) < (e) && (*(p) == '$' || *(p) == '@' || *(p) == '{'))
#define | CHECK_IF_ASCII(c)
#define | TR_TABLE_SIZE 257
#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 VALUE | rb_str_clear (VALUE str)
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)
size_t | rb_str_capacity (VALUE str)
static VALUE | str_alloc (VALUE klass)
static VALUE | empty_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_without_enc (VALUE str2, VALUE str)
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_alloc_tmp_buffer (volatile VALUE *store, long len)
void | rb_free_tmp_buffer (volatile VALUE *store)
void | rb_str_free (VALUE str)
RUBY_FUNC_EXPORTED 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_expand (VALUE str, long expand)
void | rb_str_modify (VALUE str)
void | rb_str_modify_expand (VALUE str, long expand)
static void | str_modify_keep_cr (VALUE str)
void | rb_str_associate (VALUE str, VALUE add)
VALUE | rb_str_associated (VALUE str)
void | rb_must_asciicompat (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)
static char * | str_nth_len (const char *p, const char *e, long *nthp, rb_encoding *enc)
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)
static char * | rb_str_subpos (VALUE str, long beg, long *lenp)
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)
VALUE | rb_str_locktmp_ensure (VALUE str, VALUE(*func)(VALUE), VALUE arg)
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)
static VALUE | rb_str_prepend (VALUE str, VALUE str2)
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_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 | str_byte_substr (VALUE str, long beg, long len)
static VALUE | str_byte_aref (VALUE str, VALUE indx)
static VALUE | rb_str_byteslice (int argc, VALUE *argv, VALUE str)
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[TR_TABLE_SIZE], int first, VALUE *tablep, VALUE *ctablep, rb_encoding *enc)
static int | tr_find (unsigned int c, char table[TR_TABLE_SIZE], 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_enumerate_lines (int argc, VALUE *argv, VALUE str, int wantarray)
static VALUE | rb_str_each_line (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_lines (int argc, VALUE *argv, VALUE str)
static VALUE | rb_str_each_byte_size (VALUE str, VALUE args)
static VALUE | rb_str_enumerate_bytes (VALUE str, int wantarray)
static VALUE | rb_str_each_byte (VALUE str)
static VALUE | rb_str_bytes (VALUE str)
static VALUE | rb_str_each_char_size (VALUE str)
static VALUE | rb_str_enumerate_chars (VALUE str, int wantarray)
static VALUE | rb_str_each_char (VALUE str)
static VALUE | rb_str_chars (VALUE str)
static VALUE | rb_str_enumerate_codepoints (VALUE str, int wantarray)
static VALUE | rb_str_each_codepoint (VALUE str)
static VALUE | rb_str_codepoints (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_b (VALUE str)
static VALUE | rb_str_valid_encoding_p (VALUE str)
static VALUE | rb_str_is_ascii_only_p (VALUE str)
VALUE | rb_str_ellipsize (VALUE str, long len)
| Shortens str and adds three dots, an ellipsis, if it is longer than len characters. More...
static VALUE | sym_equal (VALUE sym1, VALUE sym2)
static int | sym_printable (const char *s, const char *send, rb_encoding *enc)
int | rb_str_symname_p (VALUE sym)
VALUE | rb_str_quote_unprintable (VALUE str)
VALUE | rb_id_quote_unprintable (ID id)
static VALUE | sym_inspect (VALUE sym)
VALUE | rb_sym_to_s (VALUE sym)
static VALUE | sym_to_sym (VALUE sym)
static VALUE | sym_call (VALUE args, VALUE sym, int argc, VALUE *argv, VALUE passed_proc)
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]

## Macro Definition Documentation

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

Definition at line 5866 of file string.c.

Referenced by rb_str_rstrip_bang(), and rb_str_split_m().

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

Definition at line 22 of file string.c.

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

#define CHAR_ESC_LEN 13 /* sizeof(\x{ hex of 32bit unsigned int } \0) */

Definition at line 4460 of file string.c.

Referenced by rb_str_buf_cat_escaped_char(), and rb_str_inspect().

#define CHECK_IF_ASCII | ( |  | c | ) |

Value:
(void)((cr == ENC_CODERANGE_7BIT && !rb_isascii(c)) ? \
(cr = ENC_CODERANGE_VALID) : 0)
rb_isascii
#define rb_isascii(c)
void
VP_EXPORT void
Definition: bigdecimal.c:5083
c
VpDivd * c
Definition: bigdecimal.c:1205
ENC_CODERANGE_VALID
#define ENC_CODERANGE_VALID
ENC_CODERANGE_7BIT
#define ENC_CODERANGE_7BIT

Referenced by tr_trans().

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

Definition at line 23 of file string.c.

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

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

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

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

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

Definition at line 4617 of file string.c.

Referenced by rb_str_dump().

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

Definition at line 2280 of file string.c.

Referenced by rb_str_cmp().

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

Definition at line 32 of file string.c.

Referenced by rb_str_upto().

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

#define rb_str_buf_new2 rb_str_buf_new_cstr

#define rb_str_dup_frozen rb_str_new_frozen

#define rb_str_new2 rb_str_new_cstr

#define rb_str_new3 rb_str_new_shared

#define rb_str_new4 rb_str_new_frozen

#define rb_str_new5 rb_str_new_with_class

#define rb_tainted_str_new2 rb_tainted_str_new_cstr

#define rb_usascii_str_new2 rb_usascii_str_new_cstr

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

Value:
do {\
if (STR_EMBED_P(str)) {\
if ((capacity) > RSTRING_EMBED_LEN_MAX) {\
char *tmp = ALLOC_N(char, (capacity)+1);\
memcpy(tmp, RSTRING_PTR(str), RSTRING_LEN(str));\
RSTRING(str)->as.heap.ptr = tmp;\
RSTRING(str)->as.heap.len = RSTRING_LEN(str);\
STR_SET_NOEMBED(str);\
RSTRING(str)->as.heap.aux.capa = (capacity);\
}\
}\
else {\
REALLOC_N(RSTRING(str)->as.heap.ptr, char, (capacity)+1);\
if (!STR_NOCAPA_P(str))\
RSTRING(str)->as.heap.aux.capa = (capacity);\
}\
} while (0)
tmp
volatile VALUE tmp
Definition: tcltklib.c:10209
RSTRING
#define RSTRING(obj)
RSTRING_PTR
#define RSTRING_PTR(str)
STR_SET_NOEMBED
#define STR_SET_NOEMBED(str)
Definition: string.c:70
str
static VALUE char * str
Definition: tcltklib.c:3547
RSTRING_LEN
#define RSTRING_LEN(str)
memcpy
memcpy(buf+1, str, len)
else
else
Definition: bigdecimal.c:1192
RSTRING_EMBED_LEN_MAX
#define RSTRING_EMBED_LEN_MAX
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186
ALLOC_N
#define ALLOC_N(type, n)
STR_EMBED_P
#define STR_EMBED_P(str)
Definition: string.c:75
STR_NOCAPA_P
#define STR_NOCAPA_P(s)
Definition: string.c:64
REALLOC_N
#define REALLOC_N(var, type, n)

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

#define STR_ASSOC FL_USER3

Definition at line 60 of file string.c.

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

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

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

Referenced by rb_str_inspect().

#define STR_BUF_MIN_SIZE 128

Definition at line 774 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)
n
ssize_t n
Definition: bigdecimal.c:5655
RSTRING
#define RSTRING(obj)
str
static VALUE char * str
Definition: tcltklib.c:3547
RSTRING_LEN
#define RSTRING_LEN(str)
STR_SET_EMBED_LEN
#define STR_SET_EMBED_LEN(str, n)
Definition: string.c:76
else
else
Definition: bigdecimal.c:1192
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186
STR_EMBED_P
#define STR_EMBED_P(str)
Definition: string.c:75

Definition at line 91 of file string.c.

Referenced by rb_str_chomp_bang().

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

Definition at line 75 of file string.c.

Referenced by rb_str_associate(), rb_str_capacity(), rb_str_free(), rb_str_memsize(), rb_str_modify_expand(), 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 123 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_enumerate_codepoints(), 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_quote_unprintable(), 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_subpos(), rb_str_succ(), rb_str_swapcase_bang(), rb_str_symname_p(), rb_str_upcase_bang(), RUBY_ALIAS_FUNCTION(), scan_once(), single_byte_optimizable(), str_byte_substr(), str_gsub(), str_strlen(), and sym_inspect().

#define str_make_independent | ( |  | str | ) | str_make_independent_expand((str), 0L)

Definition at line 1366 of file string.c.

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

#define STR_NOCAPA (STR_NOEMBED|ELTS_SHARED|STR_ASSOC)

Definition at line 63 of file string.c.

Referenced by rb_str_shared_replace().

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

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

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

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

Definition at line 74 of file string.c.

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

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

Value:
do { \
long tmp_n = (n);\
RBASIC(str)->flags &= ~RSTRING_EMBED_LEN_MASK;\
RBASIC(str)->flags |= (tmp_n) << RSTRING_EMBED_LEN_SHIFT;\
} while (0)
n
ssize_t n
Definition: bigdecimal.c:5655
str
static VALUE char * str
Definition: tcltklib.c:3547
RBASIC
#define RBASIC(obj)
RSTRING_EMBED_LEN_MASK
#define RSTRING_EMBED_LEN_MASK
RSTRING_EMBED_LEN_SHIFT
#define RSTRING_EMBED_LEN_SHIFT

Definition at line 76 of file string.c.

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

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

Value:
do { \
if (STR_EMBED_P(str)) {\
STR_SET_EMBED_LEN((str), (n));\
}\
else {\
RSTRING(str)->as.heap.len = (n);\
}\
} while (0)
n
ssize_t n
Definition: bigdecimal.c:5655
RSTRING
#define RSTRING(obj)
str
static VALUE char * str
Definition: tcltklib.c:3547
STR_SET_EMBED_LEN
#define STR_SET_EMBED_LEN(str, n)
Definition: string.c:76
else
else
Definition: bigdecimal.c:1192
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186
STR_EMBED_P
#define STR_EMBED_P(str)
Definition: string.c:75

Definition at line 82 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)
FL_SET
#define FL_SET(x, f)
STR_NOEMBED
#define STR_NOEMBED
Definition: string.c:58
str
static VALUE char * str
Definition: tcltklib.c:3547
STR_SET_EMBED_LEN
#define STR_SET_EMBED_LEN(str, n)
Definition: string.c:76

Definition at line 70 of file string.c.

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

#define STR_SHARED FL_USER2 /* = ELTS_SHARED */

Definition at line 59 of file string.c.

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

Definition at line 61 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(), rb_str_set_len(), RUBY_ALIAS_FUNCTION(), str_discard(), str_independent(), and str_replace().

#define STR_TMPLOCK FL_USER7

Definition at line 57 of file string.c.

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

#define STR_UNSET_NOCAPA | ( |  | s | ) |

Value:
do {\
if (FL_TEST((s),STR_NOEMBED)) FL_UNSET((s),(ELTS_SHARED|STR_ASSOC));\
} while (0)
FL_TEST
#define FL_TEST(x, f)
STR_NOEMBED
#define STR_NOEMBED
Definition: string.c:58
while
while(a->frac[0]/shift==0)
Definition: bigdecimal.c:5117
s
register char * s
Definition: os2.c:56
STR_ASSOC
#define STR_ASSOC
Definition: string.c:60
ELTS_SHARED
#define ELTS_SHARED
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186
FL_UNSET
#define FL_UNSET(x, f)

Definition at line 65 of file string.c.

Referenced by rb_str_shared_replace(), and str_make_independent_expand().

#define TR_TABLE_SIZE 257

Definition at line 5437 of file string.c.

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

## Typedef Documentation

typedef unsigned char* USTR

Definition at line 5069 of file string.c.

## Enumeration Type Documentation

enum neighbor_char

Enumerator
NEIGHBOR_NOT_CHAR |
NEIGHBOR_FOUND |
NEIGHBOR_WRAPPED |

Definition at line 2818 of file string.c.

## Function Documentation

static long chopped_length | ( | VALUE | str | ) |
| static

Definition at line 6620 of file string.c.

References enc, end, p, 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 183 of file string.c.

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

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

static VALUE empty_str_alloc | ( | VALUE | klass | ) |
| inline static

Definition at line 386 of file string.c.

References rb_sourcefile, rb_sourceline(), RUBY_DTRACE_STRING_CREATE, RUBY_DTRACE_STRING_CREATE_ENABLED, and str_alloc().

Referenced by Init_String().

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

Definition at line 2859 of file string.c.

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

Referenced by enc_succ_alnum_char().

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

Definition at line 979 of file string.c.

References c, e, ENC_CODERANGE_7BIT, ENC_CODERANGE_VALID, ISASCII, p, q, 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 2902 of file string.c.

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

Referenced by rb_str_succ().

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

Definition at line 2825 of file string.c.

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

Referenced by enc_succ_alnum_char(), and rb_str_succ().

static VALUE get_pat | ( | VALUE | pat,
|  | int | quote
| ) |  |
| static

Definition at line 3650 of file string.c.

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

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

References CLASS_OF, empty_str_alloc(), 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_b(), rb_str_bytes(), rb_str_bytesize(), rb_str_byteslice(), rb_str_capitalize(), rb_str_capitalize_bang(), rb_str_casecmp(), rb_str_center(), rb_str_chars(), 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_codepoints(), 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_lines(), 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_prepend(), 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(), 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().

void* rb_alloc_tmp_buffer | ( | volatile VALUE * | store,
|  | long | len
| ) |  |

Definition at line 814 of file string.c.

References rb_str_tmp_new(), RSTRING_PTR, and s.

VALUE rb_check_string_type | ( | VALUE | str | ) |

Definition at line 1508 of file string.c.

References rb_check_convert_type(), str, and T_STRING.

Referenced by ary_join_1(), constant_arg(), env_has_value(), env_rassoc(), get_pat(), gzreader_gets(), io_encoding_set(), make_exception(), marshal_load(), month_arg(), prepare_getline_args(), range_each(), range_step(), rb_ary_join(), rb_ary_times(), rb_check_id(), rb_check_sockaddr_string_type(), rb_convert_to_integer(), rb_f_kill(), rb_io_extract_encoding_option(), rb_mod_const_get(), rb_str_format(), rb_str_index_m(), rb_str_partition(), rb_str_rindex_m(), rb_str_rpartition(), rb_str_s_try_convert(), rb_String(), rb_to_encoding_index(), rb_to_id(), reg_operand(), setup_narg(), strio_each(), strio_getline(), strio_readlines(), 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 1988 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, str, str_buf_cat(), and str_enc.

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 290 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_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 320 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 1582 of file string.c.

References str_nth_len().

Referenced by rb_str_ellipsize(), and rb_str_format().

int rb_enc_str_asciionly_p | ( | VALUE | str | ) |

Definition at line 340 of file string.c.

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

Referenced by file_path_convert(), fnmatch_brace(), rb_enc_compatible(), rb_inspect(), 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 2074 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 327 of file string.c.

References coderange_scan(), enc, 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_options(), rb_enc_compatible(), rb_enc_cr_str_buf_cat(), rb_enc_str_asciionly_p(), rb_external_str_new_with_enc(), rb_file_expand_path_internal(), 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(), sym_check_asciionly(), and w_symbol().

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

Definition at line 439 of file string.c.

References rb_enc_associate(), rb_str_new(), and str.

Referenced by append_fspath(), compile_snprintf(), do_opendir(), econv_get_replacement(), fix_string_encoding(), fole_missing(), foletypelib_name(), foletypelib_path(), get_user_from_path(), io_getc(), lex_get_str(), ole_wc2vstr(), parser_str_new(), prepare_getline_args(), rb_enc_uint_chr(), rb_intern3(), rb_io_getline_1(), rb_push_glob(), rb_reg_initialize(), rb_reg_initialize_m(), rb_reg_source(), rb_str_upto(), rb_w32_conv_from_wchar(), register_symid(), strftimev(), strio_getc(), strio_init(), strio_substr(), strio_ungetc(), sym_inspect(), time_strftime(), and transcode_loop().

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

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

References c, e, ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, ENC_CODERANGE_VALID, ISASCII, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, p, q, rb_enc_asciicompat, rb_enc_mbmaxlen, rb_enc_mbminlen, rb_enc_precise_mbclen(), ret, and search_nonascii().

Referenced by str_strlen().

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

Definition at line 584 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(), and set_arg0().

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

Definition at line 590 of file string.c.

References rb_default_external_encoding(), rb_external_str_new_with_enc(), and strlen().

Referenced by ruby_set_argv().

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

Definition at line 569 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(), rb_usascii_encoding(), and str.

Referenced by coverage(), debug_lines(), 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 608 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 614 of file string.c.

References rb_external_str_new_with_enc(), rb_filesystem_encoding(), and strlen().

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

void rb_free_tmp_buffer | ( | volatile VALUE * | store | ) |

Definition at line 822 of file string.c.

References rb_str_clear(), and s.

VALUE rb_id_quote_unprintable | ( | ID | id | ) |

Definition at line 7849 of file string.c.

References rb_id2str(), and rb_str_quote_unprintable().

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

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

References rb_external_str_new_with_enc(), rb_locale_encoding(), and strlen().

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

void rb_must_asciicompat | ( | VALUE | str | ) |

Definition at line 1463 of file string.c.

References enc, rb_eEncCompatError, rb_enc_asciicompat, rb_enc_get(), rb_enc_name, and rb_raise().

Referenced by rb_str_to_inum(), string_to_c(), string_to_c_strict(), string_to_r(), and string_to_r_strict().

VALUE rb_obj_as_string | ( | VALUE | obj | ) |

Definition at line 895 of file string.c.

References obj, OBJ_TAINT, OBJ_TAINTED, rb_any_to_s(), rb_funcall(), RB_TYPE_P, str, and T_STRING.

Referenced by ary_join_1(), compile_err_append(), exc_inspect(), fdbm_store(), init_libraries(), io_write(), pack_pack(), pruby_eval(), pruby_obj_to_var(), rand_random(), range_to_s(), 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(), ruby__sfvextra(), setup_exception(), str_gsub(), strio_write(), and tcl_protect_core().

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

Definition at line 2121 of file string.c.

References enc, ENC_CODERANGE, ENC_CODERANGE_SET, len, memcpy(), OBJ_INFECT, rb_enc_associate(), rb_enc_check(), rb_str_buf_append(), rb_str_modify_expand(), RSTRING, RSTRING_LEN, RSTRING_PTR, str, STR_ASSOC_P, and StringValue.

Referenced by argf_read(), compile_err_append(), dir_inspect(), dt_lite_jisx0301(), eval_string_with_cref(), fc_path(), gzfile_error_inspect(), inspect_i(), inspect_range(), inspect_struct(), iso8601_timediv(), join_der_i(), make_version_str(), method_inspect(), name_err_mesg_to_str(), ossl_sslctx_set_ciphers(), ossl_x509_inspect(), ossl_x509extfactory_create_ext(), parser_here_document(), path_sub_ext(), rand_random(), range_to_s(), rb_io_inspect(), rb_iseq_disasm(), rb_load_fail(), rb_mod_to_s(), rb_reg_s_union(), rb_set_class_path_string(), rb_stat_inspect(), rb_str_concat(), rb_str_ellipsize(), rb_str_insert(), reg_compile_gen(), sockopt_inspect(), strscan_concat(), sys_fail2(), tcl_protect_core(), and warn_print().

static VALUE rb_str_aref | ( | VALUE | str,
|  | VALUE | indx
| ) |  |
| static

Definition at line 3215 of file string.c.

References BUILTIN_TYPE, FIX2LONG, FIXNUM_P, idx, INT2FIX, len, NIL_P(), NUM2LONG, Qfalse, Qnil, rb_range_beg_len(), rb_str_dup(), rb_str_index(), rb_str_subpat(), rb_str_substr(), RSTRING_LEN, SPECIAL_CONST_P, str, STR_ENC_GET, str_strlen(), T_REGEXP, T_STRING, tmp, and UNREACHABLE.

Referenced by rb_str_aref_m().

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

Definition at line 3334 of file string.c.

References NUM2LONG, rb_check_arity, rb_str_aref(), rb_str_subpat(), rb_str_substr(), RB_TYPE_P, and T_REGEXP.

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

References FIX2LONG, FIXNUM_P, idx, INT2FIX, len, NUM2LONG, rb_eIndexError, rb_raise(), rb_range_beg_len(), rb_str_index(), rb_str_splice(), rb_str_sublen(), rb_str_subpat_set(), SPECIAL_CONST_P, str_strlen(), T_REGEXP, T_STRING, TYPE, and val.

Referenced by rb_str_aset_m().

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

Definition at line 3562 of file string.c.

References NUM2LONG, rb_check_arity, rb_str_aset(), rb_str_splice(), rb_str_subpat_set(), RB_TYPE_P, and T_REGEXP.

Referenced by Init_String(), and rb_str_slice_bang().

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

Definition at line 1422 of file string.c.

References add, assoc, FL_SET, rb_ary_concat(), rb_check_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 1453 of file string.c.

References Qfalse, RSTRING, STR_ASSOC_P, and STR_SHARED_P.

Referenced by pack_unpack().

static VALUE rb_str_b | ( | VALUE | str | ) |
| static

Definition at line 7648 of file string.c.

References ENC_CODERANGE_SET, ENC_CODERANGE_VALID, OBJ_INFECT, rb_cString, str_alloc(), and str_replace_shared_without_enc().

Referenced by Init_String().

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

Definition at line 2105 of file string.c.

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

Referenced by ary_join_0(), ary_join_1(), env_inspect(), exc_inspect(), gc_profile_result(), 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 1947 of file string.c.

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

Referenced by append_utf8(), appendline(), encodes(), env_inspect(), exc_inspect(), fill_envp_buf_i(), json_string_unescape(), load_file_read_contents_callback(), match_inspect(), pack_pack(), pack_unpack(), parser_nextc(), qpencode(), rb_enc_cr_str_buf_cat(), rb_exec_fillarg(), rb_execarg_fixup(), rb_file_expand_path_internal(), 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 1957 of file string.c.

References rb_str_buf_cat(), and strlen().

Referenced by addrinfo_inspect(), env_inspect(), fill_envp_buf_i(), inspect_ary(), inspect_enumerator(), inspect_hash(), match_inspect(), method_inspect(), rb_digest_instance_inspect(), rb_enc_reg_error_desc(), rb_exec_fillarg(), 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 2081 of file string.c.

References ALLOCA_N, buf, c, enc, 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, rb_enc_mbmaxlen, str, and strlen().

Referenced by inspect_i(), 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 4463 of file string.c.

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

Referenced by rb_reg_expr_str(), and rb_str_inspect().

VALUE rb_str_buf_new | ( | long | capa | ) |

Definition at line 777 of file string.c.

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

Referenced by appendline(), copy_stream_body(), copy_stream_fallback_body(), gc_profile_result(), 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_exec_fillarg(), rb_execarg_fixup(), 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 793 of file string.c.

References rb_str_buf_cat(), rb_str_buf_new(), str, and strlen().

Referenced by rb_load_fail().

static VALUE rb_str_bytes | ( | VALUE | str | ) |
| static

Definition at line 6406 of file string.c.

References rb_str_enumerate_bytes().

Referenced by Init_String().

static VALUE rb_str_bytesize | ( | VALUE | str | ) |
| static

Definition at line 1201 of file string.c.

References LONG2NUM, and RSTRING_LEN.

Referenced by Init_String().

static VALUE rb_str_byteslice | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  |
| static

Definition at line 4236 of file string.c.

References NUM2LONG, rb_check_arity, str_byte_aref(), and str_byte_substr().

Referenced by Init_String().

size_t rb_str_capacity | ( | VALUE | str | ) |

Definition at line 360 of file string.c.

References RSTRING, RSTRING_EMBED_LEN_MAX, STR_EMBED_P, and STR_NOCAPA_P.

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

static VALUE rb_str_capitalize | ( | VALUE | str | ) |
| static

Definition at line 4999 of file string.c.

References rb_str_capitalize_bang(), rb_str_dup(), and str.

Referenced by Init_String(), and sym_capitalize().

static VALUE rb_str_capitalize_bang | ( | VALUE | str | ) |
| static

Definition at line 4951 of file string.c.

References c, enc, n, 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, s, str, 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 2444 of file string.c.

References enc, INT2FIX, len, memcmp(), Qnil, r, 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 1963 of file string.c.

References len, memcpy(), p, rb_eArgError, rb_raise(), rb_str_buf_cat(), rb_str_modify_expand(), RSTRING, str, and STR_ASSOC_P.

Referenced by date_strftime_internal(), eval_string_with_cref(), flo_to_s(), inspect_range(), inspect_sockaddr(), io_getc(), io_shift_cbuf(), moreswitches(), ole_excepinfo2msg(), parser_here_document(), process_sflag(), r_bytes1_buffered(), range_to_s(), rb_file_dirname(), rb_id2str(), rb_io_inspect(), rb_str_cat2(), rb_str_concat(), rb_str_ellipsize(), realpath_rec(), reg_compile_gen(), strio_write(), and time_strftime().

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

Definition at line 1982 of file string.c.

References rb_str_cat(), and strlen().

Referenced by addrinfo_inspect(), argf_next_argv(), cannot_be_coerced_into_BigDecimal(), clsid_from_remote(), compile_err_append(), compile_snprintf(), compile_warn_print(), cState_aset(), dir_inspect(), econv_description(), econv_inspect(), f_format(), fc_path(), foleparam_inspect(), folevariable_inspect(), gzfile_error_inspect(), 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_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_io_inspect(), rb_iseq_disasm(), rb_iseq_disasm_insn(), rb_load_fail(), rb_mod_to_s(), rb_set_class_path(), rb_set_class_path_string(), realpath_rec(), search_required(), sockopt_inspect(), sys_fail2(), and warn_print().

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

Definition at line 7452 of file string.c.

References rb_str_justify().

Referenced by Init_String().

static VALUE rb_str_chars | ( | VALUE | str | ) |
| static

Definition at line 6520 of file string.c.

References rb_str_enumerate_chars().

Referenced by Init_String().

static void rb_str_check_dummy_enc | ( | rb_encoding * | enc | ) |
| static

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

References rb_str_chomp_bang(), rb_str_dup(), and str.

Referenced by Init_String().

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

Definition at line 6697 of file string.c.

References e, enc, ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_CLEAR, is_broken_string, len, memcmp(), NIL_P(), 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, 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 6682 of file string.c.

References chopped_length(), and rb_str_subseq().

Referenced by Init_String().

static VALUE rb_str_chop_bang | ( | VALUE | str | ) |
| static

Definition at line 6647 of file string.c.

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

Referenced by Init_String().

static VALUE rb_str_chr | ( | VALUE | str | ) |
| static

Definition at line 4075 of file string.c.

References rb_str_substr().

Referenced by Init_String().

static VALUE rb_str_clear | ( | VALUE | str | ) |
| static

Definition at line 4051 of file string.c.

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

Referenced by Init_String(), and rb_free_tmp_buffer().

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

Definition at line 2308 of file string.c.

References ENCODING_GET, lesser, memcmp(), rb_str_comparable(), retval, and RSTRING_GETMEM.

Referenced by iseq_location_setup(), 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(), typeinfo_from_ole(), and typelib_file_from_typelib().

static VALUE rb_str_cmp_m | ( | VALUE | str1,
|  | VALUE | str2
| ) |  |
| static

Definition at line 2412 of file string.c.

References INT2FIX, rb_check_funcall(), rb_intern, rb_invcmp(), rb_str_cmp(), RB_TYPE_P, result, T_STRING, and tmp.

Referenced by Init_String(), and sym_cmp().

static VALUE rb_str_codepoints | ( | VALUE | str | ) |
| static

Definition at line 6613 of file string.c.

References rb_str_enumerate_codepoints().

Referenced by Init_String().

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

Definition at line 232 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, p, rb_enc_asciicompat, rb_enc_precise_mbclen(), rb_enc_to_index, ret, s, and search_nonascii().

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

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

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

References ALLOCA_N, buf, code, enc, ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, FIX2LONG, FIXNUM_P, len, memcpy(), ONIGERR_INVALID_CODE_POINT_VALUE, ONIGERR_TOO_BIG_WIDE_CHAR_VALUE, rb_ascii8bit_encoding(), rb_enc_associate(), rb_enc_codelen(), rb_enc_mbcput, rb_enc_name, rb_enc_precise_mbclen(), rb_eRangeError, rb_num_to_uint(), rb_raise(), rb_str_append(), rb_str_cat(), rb_str_resize(), RB_TYPE_P, rb_usascii_encoding(), RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, and T_BIGNUM.

Referenced by clsid_from_remote(), cState_aref(), cState_aset(), f_format(), foleparam_inspect(), folevariable_inspect(), Init_String(), insn_data_to_s_detail(), inspect_enumerator(), iseq_compile_each(), make_inspect(), nucomp_inspect(), nurat_inspect(), ole_typedesc2val(), oletypelib_path(), pruby_eval(), rb_iseq_disasm(), rb_iseq_disasm_insn(), rb_mod_to_s(), and strio_ungetc().

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

Definition at line 563 of file string.c.

References Qnil, and rb_str_conv_enc_opts().

Referenced by append_fspath(), env_fetch(), env_str_new(), file_path_convert(), rb_external_str_new_with_enc(), rb_f_getenv(), rb_gzreader_ungetc(), rb_gzwriter_write(), rb_str_export(), rb_str_export_locale(), rb_str_export_to_enc(), realpath_rec(), strio_ungetc(), and strio_write().

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

Definition at line 5789 of file string.c.

References argc, c, enc, i, INT2FIX, INT2NUM, is_broken_string, n, rb_check_arity, rb_enc_asciicompat, rb_enc_check(), rb_enc_codepoint_len(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, s, StringValue, table, tr_find(), tr_setup_table(), TR_TABLE_SIZE, and UNLIMITED_ARGUMENTS.

Referenced by Init_String().

static VALUE rb_str_crypt | ( | VALUE | str,
|  | VALUE | salt
| ) |  |
| static

Definition at line 7154 of file string.c.

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

Referenced by Init_String().

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

Definition at line 5609 of file string.c.

References rb_str_delete_bang(), rb_str_dup(), and str.

Referenced by Init_String().

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

Definition at line 5533 of file string.c.

References argc, c, enc, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, i, Qnil, rb_check_arity, rb_enc_asciicompat, rb_enc_check(), rb_enc_codepoint_len(), rb_enc_mbcput, RSTRING_END, RSTRING_LEN, RSTRING_PTR, s, str, str_modify_keep_cr(), STR_SET_LEN, StringValue, t, tr_find(), tr_setup_table(), TR_TABLE_SIZE, and UNLIMITED_ARGUMENTS.

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

static VALUE rb_str_downcase | ( | VALUE | str | ) |
| static

Definition at line 4928 of file string.c.

References rb_str_downcase_bang(), rb_str_dup(), and str.

Referenced by Init_String(), and sym_downcase().

static VALUE rb_str_downcase_bang | ( | VALUE | str | ) |
| static

Definition at line 4863 of file string.c.

References c, enc, n, 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, s, single_byte_optimizable(), str, 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 3347 of file string.c.

References ELTS_SHARED, ENC_CODERANGE_CLEAR, int, len, memmove(), ptr, rb_str_new4, RBASIC, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, RSTRING_PTR, str, 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 4630 of file string.c.

References c, enc, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, IS_EVSTR, ISPRINT, len, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, n, OnigEncodingTypeST::name, OBJ_INFECT, p, q, 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, snprintf, and strlen().

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

VALUE rb_str_dup | ( | VALUE | str | ) |

Definition at line 946 of file string.c.

References rb_obj_class(), and str_duplicate().

Referenced by cannot_be_coerced_into_BigDecimal(), check_exec_redirect(), classname(), convert_encoding(), cParser_source(), cState_aset(), date__parse(), dir_path(), econv_convert(), encoded_dup(), eval_string_with_cref(), exc_inspect(), fc_path(), fdbm_delete_if(), fgdbm_delete_if(), fsdbm_delete_if(), insn_operand_intern(), inspect_range(), iseq_compile_each(), make_inspectname(), name_err_mesg_to_str(), process_options(), range_to_s(), rb_class_path(), rb_class_path_no_cache(), rb_deflate_init_copy(), rb_execarg_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_intern_str(), 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_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(), ruby_set_script_name(), and str_gsub().

static VALUE rb_str_each_byte | ( | VALUE | str | ) |
| static

Definition at line 6389 of file string.c.

References rb_str_enumerate_bytes().

Referenced by Init_String().

static VALUE rb_str_each_byte_size | ( | VALUE | str,
|  | VALUE | args
| ) |  |
| static

Definition at line 6332 of file string.c.

References LONG2FIX, and RSTRING_LEN.

Referenced by rb_str_enumerate_bytes().

static VALUE rb_str_each_char | ( | VALUE | str | ) |
| static

Definition at line 6503 of file string.c.

References rb_str_enumerate_chars().

Referenced by Init_String().

static VALUE rb_str_each_char_size | ( | VALUE | str | ) |
| static

Definition at line 6412 of file string.c.

References enc, len, LONG2FIX, rb_enc_get(), rb_enc_mbclen(), RSTRING_LEN, RSTRING_PTR, and single_byte_optimizable().

Referenced by rb_str_enumerate_chars(), and rb_str_enumerate_codepoints().

static VALUE rb_str_each_codepoint | ( | VALUE | str | ) |
| static

Definition at line 6595 of file string.c.

References rb_str_enumerate_codepoints().

Referenced by Init_String().

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

Definition at line 6308 of file string.c.

References rb_str_enumerate_lines().

Referenced by Init_String().

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

Shortens str and adds three dots, an ellipsis, if it is longer than len characters.

Parameters

  str | the string to ellipsize.
  len | the maximum string length.

Returns
  the ellipsized string.

Precondition
  len must not be negative.

Postcondition
  the length of the returned string in characters is less than or equal to len.
  If the length of str is less than or equal len, returns str itself.
  the encoded of returned string is equal to the encoded of str.
  the class of returned string is equal to the class of str.

Note
  the length is counted in characters.

Definition at line 7709 of file string.c.

References enc, Qnil, rb_eIndexError, rb_enc_asciicompat, rb_enc_associate(), rb_enc_from_encoding(), rb_enc_get(), rb_enc_mbminlen, rb_enc_nth(), rb_enc_step_back, rb_raise(), rb_str_append(), rb_str_cat(), rb_str_encode(), rb_str_new_with_class(), rb_str_subseq(), rb_usascii_str_new(), ret, RSTRING_LEN, RSTRING_PTR, and str.

Referenced by rb_hash_fetch_m(), and sys_fail2().

static VALUE rb_str_empty | ( | VALUE | str | ) |
| static

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

References argc, e, enc, i, memcmp(), p, Qfalse, Qtrue, rb_enc_check(), rb_enc_left_char_head, RSTRING_LEN, RSTRING_PTR, s, StringValue, and tmp.

Referenced by Init_String().

static VALUE rb_str_enumerate_bytes | ( | VALUE | str,
|  | int | wantarray
| ) |  |
| static

Definition at line 6338 of file string.c.

References ary, i, INT2FIX, rb_ary_new(), rb_ary_new2(), rb_ary_push(), rb_block_given_p(), rb_str_each_byte_size(), rb_warn(), rb_warning(), rb_yield(), RETURN_SIZED_ENUMERATOR, RSTRING_LEN, RSTRING_PTR, str, and UNINITIALIZED_VAR.

Referenced by rb_str_bytes(), rb_str_each_byte(), and rb_str_enumerate_codepoints().

static VALUE rb_str_enumerate_chars | ( | VALUE | str,
|  | int | wantarray
| ) |  |
| static

Definition at line 6427 of file string.c.

References ary, enc, ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_VALID, i, len, n, ptr, rb_ary_new(), rb_ary_push(), rb_block_given_p(), rb_enc_fast_mbclen(), rb_enc_get(), rb_enc_mbclen(), RB_GC_GUARD, rb_str_each_char_size(), rb_str_new4, rb_str_subseq(), rb_warn(), rb_warning(), rb_yield(), RETURN_SIZED_ENUMERATOR, RSTRING_LEN, RSTRING_PTR, str, and UNINITIALIZED_VAR.

Referenced by rb_str_chars(), and rb_str_each_char().

static VALUE rb_str_enumerate_codepoints | ( | VALUE | str,
|  | int | wantarray
| ) |  |
| static

Definition at line 6527 of file string.c.

References ary, c, enc, end, n, ptr, rb_ary_new(), rb_ary_push(), rb_block_given_p(), rb_enc_codepoint_len(), RB_GC_GUARD, rb_str_each_char_size(), rb_str_enumerate_bytes(), rb_str_new4, rb_warn(), rb_warning(), rb_yield(), RETURN_SIZED_ENUMERATOR, RSTRING_END, RSTRING_PTR, single_byte_optimizable(), str, STR_ENC_GET, UINT2NUM, and UNINITIALIZED_VAR.

Referenced by rb_str_codepoints(), and rb_str_each_codepoint().

static VALUE rb_str_enumerate_lines | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str,
|  | int | wantarray
| ) |  |
| static

Definition at line 6142 of file string.c.

References ary, c, enc, len, memcmp(), n, NIL_P(), p, ptr, rb_ary_new(), rb_ary_push(), rb_block_given_p(), rb_default_rs, rb_enc_check(), rb_enc_codepoint, rb_enc_codepoint_len(), rb_enc_get(), rb_enc_is_newline, rb_enc_left_char_head, rb_enc_mbclen(), RB_GC_GUARD, rb_rs, rb_scan_args(), rb_str_new4, rb_str_subseq(), rb_warn(), rb_warning(), rb_yield(), RETURN_ENUMERATOR, RSTRING_END, RSTRING_LEN, RSTRING_PTR, s, str, str_mod_check(), StringValue, and UNINITIALIZED_VAR.

Referenced by rb_str_each_line(), and rb_str_lines().

static VALUE rb_str_eql | ( | VALUE | str1,
|  | VALUE | str2
| ) |  |
| static

Definition at line 2379 of file string.c.

References Qfalse, Qtrue, RB_TYPE_P, str_eql(), and T_STRING.

Referenced by Init_String().

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

Definition at line 2359 of file string.c.

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

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

VALUE rb_str_export | ( | VALUE | str | ) |

Definition at line 620 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 626 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 632 of file string.c.

References rb_str_conv_enc(), and STR_ENC_GET.

Referenced by alias(), scalar(), start_document(), start_mapping(), start_sequence(), and transcode_string().

static VALUE rb_str_force_encoding | ( | VALUE | str,
|  | VALUE | enc
| ) |  |
| static

Definition at line 7632 of file string.c.

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

Referenced by Init_String().

static VALUE rb_str_format_m | ( | VALUE | str,
|  | VALUE | arg
| ) |  |
| static

Definition at line 1316 of file string.c.

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

Referenced by Init_String().

void rb_str_free | ( | VALUE | str | ) |

Definition at line 830 of file string.c.

References RSTRING, STR_EMBED_P, STR_SHARED_P, and xfree.

Referenced by dispose_string(), and obj_free().

VALUE rb_str_freeze | ( | VALUE | str | ) |

Definition at line 1797 of file string.c.

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

Referenced by get_loaded_features_index(), path_freeze(), rb_construct_expanded_load_path(), rb_provide_feature(), and ruby_init_loadpath_safe().

static VALUE rb_str_getbyte | ( | VALUE | str,
|  | VALUE | index
| ) |  |
| static

Definition at line 4087 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 4012 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 3961 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 2244 of file string.c.

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

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

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

Definition at line 2254 of file string.c.

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

Referenced by cdhash_cmp(), and rb_any_cmp().

static VALUE rb_str_hash_m | ( | VALUE | str | ) |
| static

Definition at line 2274 of file string.c.

References hval, INT2FIX, and rb_str_hash().

Referenced by Init_String().

static VALUE rb_str_hex | ( | VALUE | str | ) |
| static

Definition at line 7109 of file string.c.

References FALSE, and rb_str_to_inum().

Referenced by Init_String().

static VALUE rb_str_include | ( | VALUE | str,
|  | VALUE | arg
| ) |  |
| static

Definition at line 4358 of file string.c.

References i, 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 2502 of file string.c.

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

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

References BUILTIN_TYPE, 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(), RB_TYPE_P, RSTRING_END, RSTRING_PTR, single_byte_optimizable(), SPECIAL_CONST_P, STR_ENC_GET, str_offset(), str_strlen(), sub, T_REGEXP, T_STRING, and tmp.

Referenced by Init_String().

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

Definition at line 969 of file string.c.

References rb_scan_args(), rb_str_replace(), and str.

Referenced by Init_String().

static VALUE rb_str_insert | ( | VALUE | str,
|  | VALUE | idx,
|  | VALUE | str2
| ) |  |
| static

Definition at line 3595 of file string.c.

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

Referenced by Init_String().

VALUE rb_str_inspect | ( | VALUE | str | ) |

Definition at line 4508 of file string.c.

References buf, c, CHAR_ESC_LEN, enc, int, ISPRINT, MBCLEN_CHARFOUND_LEN, MBCLEN_CHARFOUND_P, n, NULL, OBJ_INFECT, p, q, rb_default_external_encoding(), rb_default_internal_encoding(), rb_enc_asciicompat, rb_enc_associate(), rb_enc_codepoint, rb_enc_find(), 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, STR_ENC_GET, and strlen().

Referenced by check_path_encoding(), gzfile_error_inspect(), id_to_name(), Init_String(), location_inspect_m(), match_inspect(), rb_str_quote_unprintable(), and sym_inspect().

VALUE rb_str_intern | ( | VALUE | s | ) |

Definition at line 7211 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(), set_state_ivars(), 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 7687 of file string.c.

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

Referenced by Init_String(), rb_str_quote_unprintable(), and rb_str_symname_p().

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

Definition at line 7308 of file string.c.

References enc, ENC_CODERANGE, ENC_CODERANGE_AND, ENC_CODERANGE_BROKEN, ENC_CODERANGE_SET, f, len, LONG_MAX, memcpy(), memset(), n, NIL_P(), NUM2LONG, OBJ_INFECT, p, rb_eArgError, rb_enc_associate(), rb_enc_check(), rb_raise(), rb_scan_args(), rb_str_dup(), rb_str_new5, res, 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 1182 of file string.c.

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

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

static VALUE rb_str_lines | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str
| ) |  |
| static

Definition at line 6326 of file string.c.

References rb_str_enumerate_lines().

Referenced by Init_String().

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

Definition at line 7412 of file string.c.

References rb_str_justify().

Referenced by Init_String().

VALUE rb_str_locktmp_ensure | ( | VALUE | str,
|  | VALUE(*)(VALUE) | func,
|  | VALUE | arg
| ) |  |

Definition at line 1830 of file string.c.

References func, rb_ensure(), rb_str_locktmp(), and rb_str_unlocktmp().

Referenced by io_fread(), and io_getpartial().

static VALUE rb_str_lstrip | ( | VALUE | str | ) |
| static

Definition at line 6878 of file string.c.

References rb_str_dup(), rb_str_lstrip_bang(), and str.

Referenced by Init_String().

static VALUE rb_str_lstrip_bang | ( | VALUE | str | ) |
| static

Definition at line 6837 of file string.c.

References e, enc, memmove(), n, Qnil, rb_enc_codepoint_len(), rb_isspace(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, s, str, STR_ENC_GET, str_modify_keep_cr(), STR_SET_LEN, and t.

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

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

Referenced by Init_String(), and sym_match().

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

Definition at line 2804 of file string.c.

References get_pat(), NIL_P(), rb_block_given_p(), rb_check_arity, rb_funcall2(), rb_intern, rb_yield(), result, and str.

Referenced by Init_String().

RUBY_FUNC_EXPORTED size_t rb_str_memsize | ( | VALUE | str | ) |

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

References ENC_CODERANGE_CLEAR, str_independent(), and str_make_independent.

Referenced by econv_primitive_convert(), io_set_read_length(), io_setstrbuf(), ossl_ssl_read_internal(), rb_file_expand_path_internal(), rb_str_setbyte(), rb_str_splice_0(), rb_str_sub_bang(), rb_str_vcatf(), rb_string_value_cstr(), setup_narg(), str_buf_cat(), string_to_c(), string_to_c_strict(), string_to_r(), string_to_r_strict(), strio_extend(), strio_read(), and strio_ungetbyte().

void rb_str_modify_expand | ( | VALUE | str,
|  | long | expand
| ) |  |

Definition at line 1377 of file string.c.

References ENC_CODERANGE_CLEAR, rb_eArgError, rb_raise(), REALLOC_N, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, STR_EMBED_P, str_independent(), and str_make_independent_expand().

Referenced by io_setstrbuf(), rb_str_append(), rb_str_cat(), and read_all().

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

Definition at line 425 of file string.c.

References rb_cString, and str_new().

Referenced by addrinfo_inspect_sockaddr(), addrinfo_mdump(), addrinfo_to_sockaddr(), appendline(), argf_getpartial(), 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_pipe_command(), cState_array_nl(), cState_indent(), cState_object_nl(), cState_space(), cState_space_before(), cState_to_h(), date_strftime_internal(), date_zone_to_diff(), decode_bstr(), decode_eoc(), dir_s_home(), econv_convert(), econv_description(), econv_finish(), econv_primitive_errinfo(), econv_putback(), env_fetch(), env_str_new(), extract_user_token(), gzfile_getc(), gzfile_read(), gzfile_read_all(), gzfile_read_header(), gzfile_readpartial(), gzreader_gets(), if(), infected_str_new(), inspect1(), inspect2(), int_chr(), int_ossl_asn1_decode0_prim(), io_getc(), io_setstrbuf(), io_shift_cbuf(), join_der(), load_file_internal(), load_file_read_contents(), load_transcoder_entry(), make_econv_exception(), match_to_s(), Messaging_HandleMessage(), name_to_backref_number(), ossl_asn1cons_to_der(), ossl_asn1data_to_der(), ossl_asn1eoc_initialize(), ossl_bn_to_s(), ossl_cipher_final(), ossl_cipher_update(), 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(), parse(), proc_options(), r_bytes0(), r_bytes1_buffered(), rb_compile_cstr(), rb_digest_base_finish(), rb_enc_str_new(), rb_exc_new(), rb_execarg_fixup(), rb_execarg_run_options(), rb_f_backquote(), rb_f_getenv(), 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_new_cstr(), rb_str_plus(), rb_str_slice_bang(), rb_usascii_str_new(), rb_write_error2(), reg_named_captures_iter(), reg_names_iter(), RUBY_ALIAS_FUNCTION(), ruby_init_loadpath_safe(), s3e(), 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(), strio_getline(), strio_read(), strscan_inspect(), time_mdump(), time_strftime(), warn_print(), writer(), zstream_detach_buffer(), zstream_detach_input(), and zstream_expand_buffer_into().

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

Definition at line 447 of file string.c.

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

Referenced by addrinfo_mdump(), curses_keyname(), decorate_convpath(), dir_inspect(), econv_convpath(), eval_string_with_cref(), finish_writeconv(), gc_profile_dump_on(), hist_to_s(), Init_readline(), load_file_internal(), prep_io(), process_options(), pty_getpty(), pty_open(), rand_random(), rb_econv_open_exc(), rb_exec_fillarg(), rb_file_open(), rb_io_inspect(), rb_io_s_binread(), rb_iseq_defined_string(), rb_load_file(), rb_parser_dump_tree(), rb_path2class(), rb_strftime_with_timespec(), ruby_init_loadpath_safe(), search_convpath_i(), sig_signame(), and sys_fail2().

VALUE rb_str_new_frozen | ( | VALUE | orig | ) |

Definition at line 713 of file string.c.

References assert, assoc, ENCODING_GET, FL_SET, FL_TAINT, FL_UNSET, FL_UNTRUSTED, flags, klass, OBJ_FREEZE, OBJ_FROZEN, OBJ_INFECT, rb_enc_cr_str_exact_copy(), rb_obj_class(), RBASIC, RSTRING, RSTRING_LEN, RSTRING_PTR, str, STR_ASSOC, STR_ASSOC_P, STR_EMBED_P, str_new(), str_new3(), and STR_SHARED_P.

Referenced by hash_aset_str(), io_write(), rb_check_argv(), rb_econv_prepare_options(), rb_file_open_generic(), rb_io_reopen(), rb_io_syswrite(), rb_set_class_path_string(), rb_str_subseq(), and str_replace_shared_without_enc().

VALUE rb_str_new_shared | ( | VALUE | str | ) |

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

References FALSE, and rb_str_to_inum().

Referenced by Init_String().

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

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

References c, 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 7473 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(), RB_TYPE_P, RSTRING_LEN, T_REGEXP, tmp, and TRUE.

Referenced by Init_String().

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

Definition at line 1236 of file string.c.

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

Referenced by Init_String().

static VALUE rb_str_prepend | ( | VALUE | str,
|  | VALUE | str2
| ) |  |
| static

Definition at line 2235 of file string.c.

References rb_str_update(), str, and StringValue.

Referenced by Init_String().

VALUE rb_str_quote_unprintable | ( | VALUE | str | ) |

Definition at line 7828 of file string.c.

References Check_Type, enc, len, NULL, ptr, rb_default_external_encoding(), rb_default_internal_encoding(), rb_str_inspect(), rb_str_is_ascii_only_p(), RSTRING_LEN, RSTRING_PTR, str, STR_ENC_GET, sym_printable(), and T_STRING.

Referenced by rb_id_quote_unprintable().

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

Definition at line 4030 of file string.c.

References str, 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 1853 of file string.c.

References ENC_CODERANGE_CLEAR, len, MEMCPY, rb_eArgError, rb_raise(), REALLOC_N, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, str, STR_EMBED_P, str_independent(), str_make_independent_expand(), STR_NOCAPA_P, STR_SET_EMBED, STR_SET_EMBED_LEN, STR_SET_NOEMBED, and xfree.

Referenced by append_fspath(), appendline(), argf_getpartial(), argf_read(), BigDecimal_dump(), BigDecimal_inspect(), BigDecimal_split(), BigDecimal_to_s(), copy_stream_body(), copy_stream_fallback_body(), econv_primitive_convert(), flo_to_s(), get_user_from_path(), gzfile_error_inspect(), gzfile_readpartial(), literal_concat0(), marshal_dump(), moreswitches(), ossl_cipher_update(), ossl_digest_finish(), ossl_ssl_read_internal(), r_object0(), rb_big2str0(), rb_econv_substr_append(), rb_enc_vsprintf(), rb_feature_p(), rb_file_expand_path_internal(), rb_gzfile_set_comment(), rb_gzfile_set_orig_name(), rb_home_dir(), rb_io_getline_fast(), rb_iseq_disasm(), rb_nkf_putchar(), rb_reg_quote(), rb_str_concat(), rb_str_format(), rb_str_vcatf(), realpath_rec(), RUBY_ALIAS_FUNCTION(), ruby_init_loadpath_safe(), ruby_setenv(), set_file_encoding(), setup_narg(), str_transcoding_resize(), strio_extend(), strio_init(), strio_read(), strio_truncate(), strio_ungetbyte(), strio_ungetc(), switch(), sym_inspect(), VpAlloc(), w_nbyte(), 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 952 of file string.c.

References rb_cString, rb_sourcefile, rb_sourceline(), RSTRING_LEN, RUBY_DTRACE_STRING_CREATE, RUBY_DTRACE_STRING_CREATE_ENABLED, str_alloc(), and str_replace().

Referenced by gzfile_raise(), gzfile_reader_get_unused(), and obj_resurrect().

static VALUE rb_str_reverse | ( | VALUE | str | ) |
| static

Definition at line 4255 of file string.c.

References e, enc, ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_UNKNOWN, ENC_CODERANGE_VALID, memcpy(), OBJ_INFECT, p, 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, s, 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 4319 of file string.c.

References c, e, rb_str_reverse(), rb_str_shared_replace(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, s, single_byte_optimizable(), str, and str_modify_keep_cr().

Referenced by Init_String().

static long rb_str_rindex | ( | VALUE | str,
|  | VALUE | sub,
|  | long | pos
| ) |  |
| static

Definition at line 2620 of file string.c.

References e, enc, is_broken_string, len, memcmp(), rb_enc_check(), rb_enc_prev_char, RSTRING_END, RSTRING_LEN, RSTRING_PTR, s, single_byte_optimizable(), str_nth(), str_strlen(), and t.

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

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

Referenced by Init_String().

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

Definition at line 7432 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 7523 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(), RB_TYPE_P, RSTRING_LEN, STR_ENC_GET, str_strlen(), T_REGEXP, tmp, and TRUE.

Referenced by Init_String().

static VALUE rb_str_rstrip | ( | VALUE | str | ) |
| static

Definition at line 6948 of file string.c.

References rb_str_dup(), rb_str_rstrip_bang(), and str.

Referenced by Init_String().

static VALUE rb_str_rstrip_bang | ( | VALUE | str | ) |
| static

Definition at line 6899 of file string.c.

References ascii_isspace, c, e, enc, len, NULL, Qnil, rb_enc_codepoint, rb_enc_prev_char, rb_isspace(), rb_str_check_dummy_enc(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, s, single_byte_optimizable(), str, STR_ENC_GET, str_modify_keep_cr(), STR_SET_LEN, t, and tp.

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

References ary, 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(), str, and str_mod_check().

Referenced by Init_String().

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

Definition at line 1837 of file string.c.

References len, rb_bug(), rb_eRuntimeError, rb_raise(), rb_str_capacity(), RSTRING_PTR, str_modifiable(), STR_SET_LEN, and STR_SHARED_P.

Referenced by appendline(), econv_primitive_convert(), io_set_read_length(), io_setstrbuf(), load_transcoder_entry(), ossl_cipher_final(), ossl_cipher_update(), ossl_dh_compute_key(), ossl_dsa_sign(), ossl_pkey_sign(), ossl_rsa_private_decrypt(), ossl_rsa_private_encrypt(), ossl_rsa_public_decrypt(), ossl_rsa_public_encrypt(), ossl_ssl_read_internal(), ossl_x509attr_to_der(), pack_pack(), pack_unpack(), r_object0(), rb_econv_substr_append(), rb_execarg_fixup(), rb_execarg_run_options(), rb_file_expand_path_internal(), rb_file_join(), rb_find_file_ext_safe(), rb_nkf_convert(), rb_realpath_internal(), rb_str_format(), read_all(), rsock_s_recvfrom(), rsock_s_recvfrom_nonblock(), ruby__sfvwrite(), RUBY_ALIAS_FUNCTION(), and str_transcode0().

static VALUE rb_str_setbyte | ( | VALUE | str,
|  | VALUE | index,
|  | VALUE | value
| ) |  |
| static

Definition at line 4106 of file string.c.

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

Referenced by Init_String().

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

Definition at line 7615 of file string.c.

References NIL_P(), rb_eTypeError, rb_id2name(), rb_raise(), RB_TYPE_P, T_STRING, and val.

Referenced by Init_IO().

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

Definition at line 857 of file string.c.

References enc, ENC_CODERANGE, ENC_CODERANGE_SET, FL_SET, flags, memcpy(), 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 3630 of file string.c.

References argc, buf, i, NIL_P(), rb_check_arity, 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 3408 of file string.c.

References e, enc, ENC_CODERANGE, ENC_CODERANGE_AND, ENC_CODERANGE_BROKEN, ENC_CODERANGE_SET, p, 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 3375 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 6131 of file string.c.

References rb_str_new2, rb_str_split_m(), and StringValue.

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

Definition at line 5916 of file string.c.

References ascii_isspace, BEG, c, enc, enc2, END, end, get_pat(), i, idx, is_ascii_string, is_broken_string, len, n, NIL_P(), NUM2INT, re_registers::num_regs, ptr, 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(), RB_TYPE_P, result, RMATCH_REGS, RSTRING_END, RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, t, T_STRING, and tmp.

Referenced by Init_String(), and rb_str_split().

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

Definition at line 5716 of file string.c.

References rb_str_dup(), rb_str_squeeze_bang(), and str.

Referenced by Init_String().

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

Definition at line 5626 of file string.c.

References argc, c, enc, i, Qnil, rb_enc_asciicompat, rb_enc_check(), rb_enc_codepoint_len(), rb_enc_mbcput, RSTRING_END, RSTRING_LEN, RSTRING_PTR, s, single_byte_optimizable(), str, STR_ENC_GET, str_modify_keep_cr(), STR_SET_LEN, StringValue, t, tr_find(), tr_setup_table(), and TR_TABLE_SIZE.

Referenced by Init_String(), and rb_str_squeeze().

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

Definition at line 7569 of file string.c.

References argc, i, memcmp(), Qfalse, Qtrue, rb_enc_check(), RSTRING_LEN, RSTRING_PTR, StringValue, and tmp.

Referenced by Init_String().

static VALUE rb_str_strip | ( | VALUE | str | ) |
| static

Definition at line 6986 of file string.c.

References rb_str_dup(), rb_str_strip_bang(), and str.

Referenced by Init_String().

static VALUE rb_str_strip_bang | ( | VALUE | str | ) |
| static

Definition at line 6965 of file string.c.

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

Referenced by Init_String(), and rb_str_strip().

long rb_str_strlen | ( | VALUE | str | ) |

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

References rb_str_dup(), rb_str_sub_bang(), and str.

Referenced by Init_String().

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

Definition at line 3689 of file string.c.

References BEG, coderange_scan(), enc, ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, ENC_CODERANGE_SET, ENC_CODERANGE_UNKNOWN, ENC_CODERANGE_VALID, END, get_pat(), hash, len, match(), memcpy(), memmove(), NIL_P(), OBJ_TAINT, OBJ_TAINTED, OBJ_UNTRUST, OBJ_UNTRUSTED, p, pat, Qnil, rb_backref_get(), rb_block_given_p(), rb_check_arity, rb_check_frozen, rb_check_hash_type(), 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, str_enc, STR_ENC_GET, str_mod_check(), str_modifiable(), STR_SET_LEN, and StringValue.

Referenced by Init_String(), and rb_str_sub().

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

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

References match(), 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 3457 of file string.c.

References BEG, enc, END, end, len, match(), 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().

static char* rb_str_subpos | ( | VALUE | str,
|  | long | beg,
|  | long * | lenp
| ) |  |
| static

Definition at line 1689 of file string.c.

References e, enc, ENC_CODERANGE, ENC_CODERANGE_VALID, end, len, p, rb_enc_mbmaxlen, rb_enc_mbminlen, rb_enc_prev_char, RB_GC_GUARD, rb_utf8_encoding(), RSTRING_LEN, RSTRING_PTR, single_byte_optimizable(), STR_ENC_GET, str_nth_len(), str_offset(), and str_strlen().

Referenced by rb_str_substr().

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

Definition at line 1668 of file string.c.

References OBJ_INFECT, rb_enc_cr_str_copy_for_substr(), RB_GC_GUARD, 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 check_dirname(), features_index_add(), match_array(), path_sub_ext(), rb_file_s_extname(), rb_mod_const_get(), rb_realpath_internal(), rb_reg_match_post(), rb_reg_match_pre(), rb_reg_nth_match(), rb_str_chop(), rb_str_ellipsize(), rb_str_enumerate_chars(), rb_str_enumerate_lines(), rb_str_partition(), rb_str_split_m(), rb_str_sub_bang(), realpath_rec(), search_required(), str_gsub(), and zstream_shift_buffer().

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

Definition at line 1774 of file string.c.

References len, OBJ_INFECT, Qnil, rb_enc_cr_str_copy_for_substr(), RB_GC_GUARD, rb_obj_class(), rb_str_new4, rb_str_new5, rb_str_subpos(), RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_END, and str_new3().

Referenced by rb_io_putc(), rb_str_aref(), rb_str_aref_m(), rb_str_chr(), rb_str_rpartition(), and set_state_ivars().

VALUE rb_str_succ | ( | VALUE | orig | ) |

Definition at line 2984 of file string.c.

References c, e, enc, enc_succ_alnum_char(), enc_succ_char(), ISALPHA, ISDIGIT, MEMCPY, memmove(), NEIGHBOR_FOUND, NEIGHBOR_NOT_CHAR, NEIGHBOR_WRAPPED, OBJ_INFECT, ONIGENC_CODE_TO_MBC_MAXLEN, rb_enc_asciicompat, rb_enc_cr_str_copy_for_substr(), rb_enc_precise_mbclen(), rb_enc_prev_char, rb_enc_str_coderange(), rb_str_new5, RESIZE_CAPA, RSTRING_LEN, RSTRING_PTR, s, str, 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 3067 of file string.c.

References rb_str_shared_replace(), rb_str_succ(), and str.

Referenced by Init_String().

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

Definition at line 7250 of file string.c.

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

Referenced by Init_String().

static VALUE rb_str_swapcase | ( | VALUE | str | ) |
| static

Definition at line 5062 of file string.c.

References rb_str_dup(), rb_str_swapcase_bang(), and str.

Referenced by Init_String(), and sym_swapcase().

static VALUE rb_str_swapcase_bang | ( | VALUE | str | ) |
| static

Definition at line 5017 of file string.c.

References c, enc, n, 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, s, str, STR_ENC_GET, and str_modify_keep_cr().

Referenced by Init_String(), and rb_str_swapcase().

int rb_str_symname_p | ( | VALUE | sym | ) |

Definition at line 7809 of file string.c.

References enc, FALSE, len, NULL, ptr, rb_default_external_encoding(), rb_default_internal_encoding(), rb_enc_symname_p(), rb_str_is_ascii_only_p(), RSTRING_LEN, RSTRING_PTR, STR_ENC_GET, strlen(), sym_printable(), and TRUE.

Referenced by id_to_name(), and sym_inspect().

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

Definition at line 1268 of file string.c.

References len, LONG_MAX, memcpy(), n, 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 4425 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 4392 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 4440 of file string.c.

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

Referenced by Init_String().

VALUE rb_str_to_str | ( | VALUE | str | ) |

Definition at line 849 of file string.c.

References rb_convert_type(), and T_STRING.

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

static VALUE rb_str_tr | ( | VALUE | str,
|  | VALUE | src,
|  | VALUE | repl
| ) |  |
| static

Definition at line 5430 of file string.c.

References rb_str_dup(), str, and tr_trans().

Referenced by Init_String().

static VALUE rb_str_tr_bang | ( | VALUE | str,
|  | VALUE | src,
|  | VALUE | repl
| ) |  |
| static

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

References rb_str_dup(), str, and tr_trans().

Referenced by Init_String().

static VALUE rb_str_tr_s_bang | ( | VALUE | str,
|  | VALUE | src,
|  | VALUE | repl
| ) |  |
| static

Definition at line 5733 of file string.c.

References tr_trans().

Referenced by Init_String().

VALUE rb_str_unlocktmp | ( | VALUE | str | ) |

Definition at line 1820 of file string.c.

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

Referenced by rb_io_sysread(), rb_str_locktmp_ensure(), and readline_readline().

static VALUE rb_str_upcase | ( | VALUE | str | ) |
| static

Definition at line 4845 of file string.c.

References rb_str_dup(), rb_str_upcase_bang(), and str.

Referenced by Init_String(), and sym_upcase().

static VALUE rb_str_upcase_bang | ( | VALUE | str | ) |
| static

Definition at line 4780 of file string.c.

References c, enc, n, 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, s, single_byte_optimizable(), str, 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 3451 of file string.c.

References rb_str_splice().

Referenced by eval_string_with_cref(), rb_str_prepend(), and strio_ungetc().

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

Definition at line 3108 of file string.c.

References args, b, c, CONST_ID, current, e, enc, end, FALSE, FIX2LONG, FIXNUM_P, fmt, INT2FIX, is_ascii_string, ISDIGIT, n, 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, s, and StringValue.

Referenced by Init_String().

static VALUE rb_str_valid_encoding_p | ( | VALUE | str | ) |
| static

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

References ptr, rb_str_to_str(), RB_TYPE_P, s, and T_STRING.

Referenced by rb_string_value_cstr(), and rb_string_value_ptr().

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

Definition at line 1490 of file string.c.

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

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

Definition at line 1483 of file string.c.

References rb_string_value(), and RSTRING_PTR.

VALUE rb_sym_to_s | ( | VALUE | sym | ) |

Definition at line 7906 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(), hash2named_arg(), Init_String(), location_base_label(), ole_invoke(), range_each(), range_step(), rb_mod_const_get(), 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 479 of file string.c.

References OBJ_TAINT, rb_str_new2, and str.

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

ID rb_to_id | ( | VALUE | name | ) |

Definition at line 8154 of file string.c.

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

Referenced by enum_inject(), enumerator_init(), fole_missing(), make_struct(), num_sadded(), obj_respond_to(), ole_search_handler_method(), rb_f_trace_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_const_missing(), rb_mod_const_set(), rb_mod_cvar_set(), rb_mod_define_method(), rb_mod_modfunc(), rb_obj_ivar_set(), rb_struct_aref(), rb_struct_aset(), rb_struct_s_def(), rb_thread_aref(), rb_thread_aset(), rb_thread_key_p(), rb_thread_variable_get(), rb_thread_variable_p(), rb_thread_variable_set(), send_internal(), and vm_call_opt_send().

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

Definition at line 431 of file string.c.

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

Referenced by date__strptime(), flo_to_s(), hexencode_str_new(), int_chr(), nil_to_s(), pack_unpack(), rb_ary_join(), rb_big2str0(), rb_id2str(), rb_io_getline_1(), rb_str_ellipsize(), and strftimev().

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

Definition at line 455 of file string.c.

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

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

Definition at line 466 of file string.c.

References OBJ_TAINT, rb_str_new(), and str.

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

Definition at line 487 of file string.c.

References DATA_PTR(), dp, ec, econv_destination_buffer_full, econv_finished, ENC_CODERANGE, ENC_CODERANGE_7BIT, len, LONG_MAX, OnigEncodingTypeST::name, rb_ascii8bit_encoding(), rb_cEncodingConverter, rb_econv_close(), rb_econv_convert(), rb_econv_open_opts(), rb_enc_asciicompat, rb_enc_associate(), rb_enc_get(), rb_gc_force_recycle(), rb_obj_alloc(), rb_str_dup(), rb_str_new(), rb_str_resize(), rb_str_set_len(), RBASIC, ret, RSTRING_LEN, RSTRING_PTR, str, and STR_ENC_GET.

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

Definition at line 685 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_str_new4(VALUE orig) | ,
|  | rb_str_new_frozen | ,
|  | (orig) |
| ) |  |

Definition at line 752 of file string.c.

References rb_obj_class(), and 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 761 of file string.c.

References OBJ_INFECT, rb_enc_copy(), rb_str_new5, and v.

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

Definition at line 804 of file string.c.

References str_new().

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

Definition at line 1806 of file string.c.

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

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

Definition at line 6994 of file string.c.

References BEG, enc, END, i, match(), 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 146 of file string.c.

References e, ISASCII, NULL, s, and t.

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

static int single_byte_optimizable | ( | VALUE | str | ) |
| inline static

Definition at line 126 of file string.c.

References enc, ENC_CODERANGE, ENC_CODERANGE_7BIT, rb_enc_mbmaxlen, and STR_ENC_GET.

Referenced by rb_str_casecmp(), rb_str_downcase_bang(), rb_str_each_char_size(), rb_str_enumerate_codepoints(), 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_subpos(), rb_str_upcase_bang(), str_strlen(), and tr_trans().

static VALUE str_alloc | ( | VALUE | klass | ) |
| inline static

Definition at line 374 of file string.c.

References NEWOBJ_OF, str, and T_STRING.

Referenced by empty_str_alloc(), rb_str_b(), 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 1901 of file string.c.

References FL_UNSET, len, LONG_MAX, memcpy(), rb_eArgError, rb_raise(), rb_str_modify(), RESIZE_CAPA, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_END, RSTRING_LEN, RSTRING_PTR, str, 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 VALUE str_byte_aref | ( | VALUE | str,
|  | VALUE | indx
| ) |  |
| static

Definition at line 4179 of file string.c.

References FIX2LONG, idx, NIL_P(), NUM2LONG, Qfalse, Qnil, rb_range_beg_len(), RSTRING_LEN, str, str_byte_substr(), T_FIXNUM, TYPE, and UNREACHABLE.

Referenced by rb_str_byteslice().

static VALUE str_byte_substr | ( | VALUE | str,
|  | long | beg,
|  | long | len
| ) |  |
| static

Definition at line 4124 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_UNKNOWN, ENC_CODERANGE_VALID, len, n, OBJ_INFECT, p, Qnil, rb_enc_asciicompat, rb_obj_class(), rb_str_new4, rb_str_new5, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, RSTRING_PTR, str_enc_copy(), STR_ENC_GET, and str_new3().

Referenced by rb_str_byteslice(), and str_byte_aref().

static void str_discard | ( | VALUE | str | ) |
| inline static

Definition at line 1411 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 938 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 284 of file string.c.

References ENCODING_GET, and rb_enc_set_index().

Referenced by rb_enc_cr_str_copy_for_substr(), rb_enc_cr_str_exact_copy(), and str_byte_substr().

static VALUE str_eql | ( | const VALUE | str1,
|  | const VALUE | str2
| ) |  |
| static

Definition at line 2335 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 VALUE str_gsub | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | str,
|  | int | bang
| ) |  |
| static

Definition at line 3836 of file string.c.

References BEG, cp, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, END, get_pat(), hash, last, len, match(), n, NIL_P(), OBJ_INFECT, OBJ_TAINT, OBJ_TAINTED, pat, Qnil, rb_backref_get(), rb_check_arity, rb_check_hash_type(), rb_enc_asciicompat, rb_enc_associate(), 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, str_enc, STR_ENC_GET, str_mod_check(), StringValue, and val.

Referenced by rb_str_gsub(), and rb_str_gsub_bang().

static int str_independent | ( | VALUE | str | ) |
| inline static

Definition at line 1338 of file string.c.

References STR_EMBED_P, str_modifiable(), and STR_SHARED_P.

Referenced by rb_str_modify(), rb_str_modify_expand(), rb_str_resize(), and str_modify_keep_cr().

static void str_make_independent_expand | ( | VALUE | str,
|  | long | expand
| ) |  |
| static

Definition at line 1347 of file string.c.

References ALLOC_N, len, memcpy(), ptr, RSTRING, RSTRING_LEN, RSTRING_PTR, STR_SET_NOEMBED, and STR_UNSET_NOCAPA.

Referenced by rb_str_modify_expand(), and rb_str_resize().

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

Definition at line 352 of file string.c.

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

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

static void str_modifiable | ( | VALUE | str | ) |
| inline static

Definition at line 1327 of file string.c.

References FL_TEST, OBJ_UNTRUSTED, rb_check_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_set_len(), rb_str_sub_bang(), str_discard(), and str_independent().

static void str_modify_keep_cr | ( | VALUE | str | ) |
| static

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

References ALLOC_N, ENC_CODERANGE_7BIT, ENC_CODERANGE_SET, len, memcpy(), rb_eArgError, rb_raise(), rb_sourcefile, rb_sourceline(), RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_PTR, RUBY_DTRACE_STRING_CREATE, RUBY_DTRACE_STRING_CREATE_ENABLED, str, str_alloc(), STR_SET_LEN, and STR_SET_NOEMBED.

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

static VALUE str_new3 | ( | VALUE | klass,
|  | VALUE | str
| ) |  |
| static

Definition at line 671 of file string.c.

References str_new_shared().

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

static VALUE str_new_shared | ( | VALUE | klass,
|  | VALUE | str
| ) |  |
| static

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

References e, p, and str_nth_len().

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

static char* str_nth_len | ( | const char * | p,
|  | const char * | e,
|  | long * | nthp,
|  | rb_encoding * | enc
| ) |  |
| static

Definition at line 1532 of file string.c.

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

Referenced by rb_enc_nth(), rb_str_subpos(), and str_nth().

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

Definition at line 1602 of file string.c.

References p, and str_nth().

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

static VALUE str_replace | ( | VALUE | str,
|  | VALUE | str2
| ) |  |
| static

Definition at line 910 of file string.c.

References assert, ELTS_SHARED, FL_SET, FL_UNSET, len, OBJ_FROZEN, OBJ_INFECT, rb_enc_cr_str_exact_copy(), rb_str_new4, RSTRING, RSTRING_LEN, RSTRING_PTR, str, 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 657 of file string.c.

References rb_enc_cr_str_exact_copy(), and str_replace_shared_without_enc().

Referenced by str_new_shared(), and str_replace().

static VALUE str_replace_shared_without_enc | ( | VALUE | str2,
|  | VALUE | str
| ) |  |
| static

Definition at line 638 of file string.c.

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

Referenced by rb_str_b(), and str_replace_shared().

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

Definition at line 1122 of file string.c.

References e, ENC_CODERANGE, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, len, n, p, rb_enc_strlen_cr(), rb_utf8_encoding(), RSTRING_END, RSTRING_LEN, RSTRING_PTR, s, single_byte_optimizable(), STR_ENC_GET, and t.

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

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

Definition at line 8057 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,
|  | VALUE | passed_proc
| ) |  |
| static

Definition at line 7931 of file string.c.

References obj, rb_eArgError, rb_funcall_with_block(), and rb_raise().

Referenced by sym_to_proc().

static VALUE sym_capitalize | ( | VALUE | sym | ) |
| static

Definition at line 8122 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 8027 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 8010 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 8109 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 8083 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 8148 of file string.c.

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

Referenced by Init_String().

static VALUE sym_equal | ( | VALUE | sym1,
|  | VALUE | sym2
| ) |  |
| static

Definition at line 7788 of file string.c.

References Qfalse, and Qtrue.

Referenced by Init_String().

static VALUE sym_inspect | ( | VALUE | sym | ) |
| static

Definition at line 7864 of file string.c.

References enc, len, memcpy(), memmove(), ptr, rb_enc_str_new(), rb_id2str(), rb_str_inspect(), rb_str_resize(), rb_str_symname_p(), RSTRING_LEN, RSTRING_PTR, str, STR_ENC_GET, and SYM2ID.

Referenced by get_exception_sym2type(), and Init_String().

static VALUE sym_length | ( | VALUE | sym | ) |
| static

Definition at line 8070 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 8043 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 7796 of file string.c.

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

Referenced by rb_str_quote_unprintable(), and rb_str_symname_p().

static VALUE sym_succ | ( | VALUE | sym | ) |
| static

Definition at line 7990 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 8135 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 7952 of file string.c.

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

Referenced by Init_String().

static VALUE sym_to_sym | ( | VALUE | sym | ) |
| static

Definition at line 7925 of file string.c.

References sym.

Referenced by Init_String().

static VALUE sym_upcase | ( | VALUE | sym | ) |
| static

Definition at line 8096 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[TR_TABLE_SIZE],
|  | VALUE | del,
|  | VALUE | nodel
| ) |  |
| static

Definition at line 5503 of file string.c.

References c, FALSE, NIL_P(), rb_hash_lookup, table, TRUE, UINT2NUM, and v.

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

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

Definition at line 5439 of file string.c.

References buf, c, tr::gen, i, key, 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, table, 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 5134 of file string.c.

References ALLOC_N, buf, c, CHECK_IF_ASCII, enc, ENC_CODERANGE, ENC_CODERANGE_7BIT, ENC_CODERANGE_BROKEN, ENC_CODERANGE_SET, ENC_CODERANGE_VALID, tr::gen, hash, i, int, last, max(), tr::max, memcmp(), NIL_P(), tr::now, NUM2INT, tr::p, tr::pend, Qnil, Qtrue, r, 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, s, single_byte_optimizable(), str, STR_EMBED_P, str_modify_keep_cr(), STR_SET_NOEMBED, StringValue, tmp, 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 5078 of file string.c.

References c, tr::gen, tr::max, n, tr::now, ONIGENC_CODE_TO_MBCLEN, tr::p, tr::pend, rb_eArgError, rb_enc_ascget(), 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 892 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 5847 of file string.c.

VALUE rb_cString

Definition at line 53 of file string.c.

VALUE rb_cSymbol

Definition at line 54 of file string.c.

VALUE rb_fs

Definition at line 143 of file string.c.