Ruby  1.9.3p547(2014-05-14revision45962)
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
string.c File Reference
#include "ruby/ruby.h"
#include "ruby/re.h"
#include "ruby/encoding.h"
#include "internal.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 str_new (VALUE klass, const char *ptr, long len)
 
VALUE rb_str_new (const char *ptr, long len)
 
VALUE rb_usascii_str_new (const char *ptr, long len)
 
VALUE rb_enc_str_new (const char *ptr, long len, rb_encoding *enc)
 
VALUE rb_str_new_cstr (const char *ptr)
 
 RUBY_ALIAS_FUNCTION (rb_str_new2(const char *ptr), rb_str_new_cstr,(ptr))
 
 RUBY_ALIAS_FUNCTION (rb_usascii_str_new2(const char *ptr), rb_usascii_str_new_cstr,(ptr))
 
VALUE rb_tainted_str_new_cstr (const char *ptr)
 
 RUBY_ALIAS_FUNCTION (rb_tainted_str_new2(const char *ptr), rb_tainted_str_new_cstr,(ptr))
 
VALUE rb_str_conv_enc (VALUE str, rb_encoding *from, rb_encoding *to)
 
VALUE rb_external_str_new_with_enc (const char *ptr, long len, rb_encoding *eenc)
 
VALUE rb_external_str_new (const char *ptr, long len)
 
VALUE rb_external_str_new_cstr (const char *ptr)
 
VALUE rb_locale_str_new (const char *ptr, long len)
 
VALUE rb_locale_str_new_cstr (const char *ptr)
 
VALUE rb_filesystem_str_new (const char *ptr, long len)
 
VALUE rb_filesystem_str_new_cstr (const char *ptr)
 
VALUE rb_str_export (VALUE str)
 
VALUE rb_str_export_locale (VALUE str)
 
VALUE rb_str_export_to_enc (VALUE str, rb_encoding *enc)
 
static VALUE str_replace_shared (VALUE str2, VALUE str)
 
static VALUE str_new_shared (VALUE klass, VALUE str)
 
static VALUE str_new3 (VALUE klass, VALUE str)
 
VALUE rb_str_new_shared (VALUE str)
 
 RUBY_ALIAS_FUNCTION (rb_str_new3(VALUE str), rb_str_new_shared,(str))
 
VALUE rb_str_new_frozen (VALUE orig)
 
 RUBY_ALIAS_FUNCTION (rb_str_new4(VALUE orig), rb_str_new_frozen,(orig))
 
 RUBY_ALIAS_FUNCTION (rb_str_new5(VALUE obj, const char *ptr, long len), rb_str_new_with_class,(obj, ptr, len))
 
VALUE rb_str_buf_new (long capa)
 
VALUE rb_str_buf_new_cstr (const char *ptr)
 
 RUBY_ALIAS_FUNCTION (rb_str_buf_new2(const char *ptr), rb_str_buf_new_cstr,(ptr))
 
void * rb_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)
 
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)
 
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_each_line (int argc, VALUE *argv, VALUE str)
 
static VALUE rb_str_each_byte (VALUE str)
 
static VALUE rb_str_each_char (VALUE str)
 
static VALUE rb_str_each_codepoint (VALUE str)
 
static long chopped_length (VALUE str)
 
static VALUE rb_str_chop_bang (VALUE str)
 
static VALUE rb_str_chop (VALUE str)
 
static VALUE rb_str_chomp_bang (int argc, VALUE *argv, VALUE str)
 
static VALUE rb_str_chomp (int argc, VALUE *argv, VALUE str)
 
static VALUE rb_str_lstrip_bang (VALUE str)
 
static VALUE rb_str_lstrip (VALUE str)
 
static VALUE rb_str_rstrip_bang (VALUE str)
 
static VALUE rb_str_rstrip (VALUE str)
 
static VALUE rb_str_strip_bang (VALUE str)
 
static VALUE rb_str_strip (VALUE str)
 
static VALUE scan_once (VALUE str, VALUE pat, long *start)
 
static VALUE rb_str_scan (VALUE str, VALUE pat)
 
static VALUE rb_str_hex (VALUE str)
 
static VALUE rb_str_oct (VALUE str)
 
static VALUE rb_str_crypt (VALUE str, VALUE salt)
 
VALUE rb_str_intern (VALUE s)
 
VALUE rb_str_ord (VALUE s)
 
static VALUE rb_str_sum (int argc, VALUE *argv, VALUE str)
 
static VALUE rb_str_justify (int argc, VALUE *argv, VALUE str, char jflag)
 
static VALUE rb_str_ljust (int argc, VALUE *argv, VALUE str)
 
static VALUE rb_str_rjust (int argc, VALUE *argv, VALUE str)
 
static VALUE rb_str_center (int argc, VALUE *argv, VALUE str)
 
static VALUE rb_str_partition (VALUE str, VALUE sep)
 
static VALUE rb_str_rpartition (VALUE str, VALUE sep)
 
static VALUE rb_str_start_with (int argc, VALUE *argv, VALUE str)
 
static VALUE rb_str_end_with (int argc, VALUE *argv, VALUE str)
 
void rb_str_setter (VALUE val, ID id, VALUE *var)
 
static VALUE rb_str_force_encoding (VALUE str, VALUE enc)
 
static VALUE rb_str_valid_encoding_p (VALUE str)
 
static VALUE rb_str_is_ascii_only_p (VALUE str)
 
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)
 
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 5731 of file string.c.

Referenced by rb_str_rstrip_bang(), and rb_str_split_m().

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

Definition at line 20 of file string.c.

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

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

Definition at line 4362 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)
#define ENC_CODERANGE_7BIT
Definition: encoding.h:58
#define ENC_CODERANGE_VALID
Definition: encoding.h:59
#define rb_isascii(c)
Definition: ruby.h:1433

Referenced by tr_trans().

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

Definition at line 21 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 118 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)
#define IS_EVSTR (   p,
 
)    ((p) < (e) && (*(p) == '$' || *(p) == '@' || *(p) == '{'))

Definition at line 4519 of file string.c.

Referenced by rb_str_dump().

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

Definition at line 2206 of file string.c.

Referenced by rb_str_cmp().

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

Definition at line 30 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);\
RSTRING(str)->as.heap.aux.capa = (capacity);\
}\
}\
else {\
REALLOC_N(RSTRING(str)->as.heap.ptr, char, (capacity)+1);\
RSTRING(str)->as.heap.aux.capa = (capacity);\
}\
} while (0)
#define RSTRING_LEN(string)
Definition: generator.h:45
#define RSTRING(obj)
Definition: ruby.h:909
if(len<=MAX_WORD_LENGTH &&len >=MIN_WORD_LENGTH)
Definition: name2ctype.h:23841
#define RSTRING_PTR(string)
Definition: generator.h:42
#define STR_SET_NOEMBED(str)
Definition: string.c:68
#define ALLOC_N(type, n)
Definition: ruby.h:1034
#define REALLOC_N(var, type, n)
Definition: ruby.h:1036
#define RSTRING_EMBED_LEN_MAX
Definition: ruby.h:651
#define STR_EMBED_P(str)
Definition: string.c:73
#define STR_NOCAPA_P(s)
Definition: string.c:62

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

#define STR_ASSOC   FL_USER3

Definition at line 58 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)
#define str_buf_cat2 (   str,
  ptr 
)    str_buf_cat((str), (ptr), strlen(ptr))

Definition at line 1870 of file string.c.

Referenced by rb_str_inspect().

#define STR_BUF_MIN_SIZE   128

Definition at line 733 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)
#define RSTRING_LEN(string)
Definition: generator.h:45
#define RSTRING(obj)
Definition: ruby.h:909
if(len<=MAX_WORD_LENGTH &&len >=MIN_WORD_LENGTH)
Definition: name2ctype.h:23841
#define STR_SET_EMBED_LEN(str, n)
Definition: string.c:74
#define STR_EMBED_P(str)
Definition: string.c:73
#define long
Definition: name2ctype.h:37

Definition at line 89 of file string.c.

Referenced by rb_str_chomp_bang().

#define STR_EMBED_P (   str)    (!FL_TEST((str), STR_NOEMBED))
#define STR_ENC_GET (   str)    rb_enc_from_index(ENCODING_GET(str))
#define str_make_independent (   str)    str_make_independent_expand((str), 0L)

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

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

#define STR_SET_EMBED (   str)    FL_UNSET((str), STR_NOEMBED)
#define STR_SET_EMBED_LEN (   str,
 
)
Value:
do { \
long tmp_n = (n);\
RBASIC(str)->flags |= (tmp_n) << RSTRING_EMBED_LEN_SHIFT;\
} while (0)
#define RSTRING_EMBED_LEN_MASK
Definition: ruby.h:667
#define RBASIC(obj)
Definition: ruby.h:904
#define long
Definition: name2ctype.h:37
#define RSTRING_EMBED_LEN_SHIFT
Definition: ruby.h:668

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

#define STR_SET_LEN (   str,
 
)
Value:
do { \
if (STR_EMBED_P(str)) {\
STR_SET_EMBED_LEN((str), (n));\
}\
else {\
RSTRING(str)->as.heap.len = (n);\
}\
} while (0)
#define RSTRING(obj)
Definition: ruby.h:909
if(len<=MAX_WORD_LENGTH &&len >=MIN_WORD_LENGTH)
Definition: name2ctype.h:23841
#define STR_SET_EMBED_LEN(str, n)
Definition: string.c:74
#define STR_EMBED_P(str)
Definition: string.c:73

Definition at line 80 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 {\
STR_SET_EMBED_LEN((str), 0);\
} while (0)
#define STR_NOEMBED
Definition: string.c:56
#define STR_SET_EMBED_LEN(str, n)
Definition: string.c:74
#define FL_SET(x, f)
Definition: ruby.h:959

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

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

Definition at line 55 of file string.c.

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

#define STR_UNSET_NOCAPA (   s)
Value:
do {\
} while (0)
#define ELTS_SHARED
Definition: ruby.h:649
if(len<=MAX_WORD_LENGTH &&len >=MIN_WORD_LENGTH)
Definition: name2ctype.h:23841
#define STR_NOEMBED
Definition: string.c:56
#define FL_TEST(x, f)
Definition: ruby.h:956
#define STR_ASSOC
Definition: string.c:58
#define FL_UNSET(x, f)
Definition: ruby.h:960

Definition at line 63 of file string.c.

Referenced by rb_str_modify_expand(), rb_str_shared_replace(), and str_make_independent_expand().

#define TR_TABLE_SIZE   257

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

Enumeration Type Documentation

Enumerator
NEIGHBOR_NOT_CHAR 
NEIGHBOR_FOUND 
NEIGHBOR_WRAPPED 

Definition at line 2739 of file string.c.

Function Documentation

static long chopped_length ( VALUE  str)
static
static int coderange_scan ( const char *  p,
long  len,
rb_encoding enc 
)
static
static enum neighbor_char enc_pred_char ( char *  p,
long  len,
rb_encoding enc 
)
static
static long enc_strlen ( const char *  p,
const char *  e,
rb_encoding enc,
int  cr 
)
inlinestatic
static enum neighbor_char enc_succ_alnum_char ( char *  p,
long  len,
rb_encoding enc,
char *  carry 
)
static
static enum neighbor_char enc_succ_char ( char *  p,
long  len,
rb_encoding enc 
)
static
static VALUE get_pat ( VALUE  pat,
int  quote 
)
static
void Init_String ( void  )

Definition at line 7777 of file string.c.

References CLASS_OF, Qnil, rb_cObject, rb_cString, rb_cSymbol, rb_define_alloc_func(), rb_define_class(), rb_define_method(), rb_define_singleton_method(), rb_define_variable(), rb_fs, rb_include_module(), rb_intern, rb_mComparable, rb_obj_encoding(), rb_str_aref_m(), rb_str_aset_m(), rb_str_bytesize(), rb_str_byteslice(), rb_str_capitalize(), rb_str_capitalize_bang(), rb_str_casecmp(), rb_str_center(), rb_str_chomp(), rb_str_chomp_bang(), rb_str_chop(), rb_str_chop_bang(), rb_str_chr(), rb_str_clear(), rb_str_cmp_m(), rb_str_concat(), rb_str_count(), rb_str_crypt(), rb_str_delete(), rb_str_delete_bang(), rb_str_downcase(), rb_str_downcase_bang(), rb_str_dump(), rb_str_each_byte(), rb_str_each_char(), rb_str_each_codepoint(), rb_str_each_line(), rb_str_empty(), rb_str_end_with(), rb_str_eql(), rb_str_equal(), rb_str_force_encoding(), rb_str_format_m(), rb_str_getbyte(), rb_str_gsub(), rb_str_gsub_bang(), rb_str_hash_m(), rb_str_hex(), rb_str_include(), rb_str_index_m(), rb_str_init(), rb_str_insert(), rb_str_inspect(), rb_str_intern(), rb_str_is_ascii_only_p(), rb_str_length(), rb_str_ljust(), rb_str_lstrip(), rb_str_lstrip_bang(), rb_str_match(), rb_str_match_m(), rb_str_oct(), rb_str_ord(), rb_str_partition(), rb_str_plus(), rb_str_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(), str_alloc(), sym_aref(), sym_capitalize(), sym_casecmp(), sym_cmp(), sym_downcase(), sym_empty(), sym_encoding(), sym_equal(), sym_inspect(), sym_length(), sym_match(), sym_succ(), sym_swapcase(), sym_to_proc(), sym_to_sym(), and sym_upcase().

void* rb_alloc_tmp_buffer ( volatile VALUE store,
long  len 
)

Definition at line 773 of file string.c.

References rb_str_tmp_new(), and RSTRING_PTR.

VALUE rb_check_string_type ( VALUE  str)
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
static void rb_enc_cr_str_copy_for_substr ( VALUE  dest,
VALUE  src 
)
static
static void rb_enc_cr_str_exact_copy ( VALUE  dest,
VALUE  src 
)
static
char* rb_enc_nth ( const char *  p,
const char *  e,
long  nth,
rb_encoding enc 
)

Definition at line 1523 of file string.c.

References str_nth_len().

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

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

Definition at line 2000 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)
VALUE rb_enc_str_new ( const char *  ptr,
long  len,
rb_encoding enc 
)
long rb_enc_strlen ( const char *  p,
const char *  e,
rb_encoding enc 
)

Definition at line 980 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 
)
VALUE rb_external_str_new ( const char *  ptr,
long  len 
)
VALUE rb_external_str_new_cstr ( const char *  ptr)

Definition at line 555 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 
)
VALUE rb_filesystem_str_new ( const char *  ptr,
long  len 
)

Definition at line 573 of file string.c.

References rb_external_str_new_with_enc(), and rb_filesystem_encoding().

VALUE rb_filesystem_str_new_cstr ( const char *  ptr)
void rb_free_tmp_buffer ( volatile VALUE store)

Definition at line 781 of file string.c.

References rb_str_clear().

VALUE rb_locale_str_new ( const char *  ptr,
long  len 
)

Definition at line 561 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)
VALUE rb_obj_as_string ( VALUE  obj)
VALUE rb_str_append ( VALUE  str,
VALUE  str2 
)
static VALUE rb_str_aref ( VALUE  str,
VALUE  indx 
)
static
static VALUE rb_str_aref_m ( int  argc,
VALUE argv,
VALUE  str 
)
static
static VALUE rb_str_aset ( VALUE  str,
VALUE  indx,
VALUE  val 
)
static
static VALUE rb_str_aset_m ( int  argc,
VALUE argv,
VALUE  str 
)
static
void rb_str_associate ( VALUE  str,
VALUE  add 
)
VALUE rb_str_associated ( VALUE  str)

Definition at line 1404 of file string.c.

References Qfalse, RSTRING, STR_ASSOC_P, and STR_SHARED_P.

Referenced by pack_unpack().

VALUE rb_str_buf_append ( VALUE  str,
VALUE  str2 
)
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_buf_cat_ascii ( VALUE  str,
const char *  ptr 
)
int rb_str_buf_cat_escaped_char ( VALUE  result,
unsigned int  c,
int  unicode_p 
)

Definition at line 4365 of file string.c.

References buf, CHAR_ESC_LEN, 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)
VALUE rb_str_buf_new_cstr ( const char *  ptr)

Definition at line 752 of file string.c.

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

Referenced by load_failed().

static VALUE rb_str_bytesize ( VALUE  str)
static

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

References NUM2LONG(), rb_eArgError, rb_raise(), str_byte_aref(), and str_byte_substr().

Referenced by Init_String().

size_t rb_str_capacity ( VALUE  str)
static VALUE rb_str_capitalize ( VALUE  str)
static

Definition at line 4899 of file string.c.

References rb_str_capitalize_bang(), and rb_str_dup().

Referenced by Init_String(), and sym_capitalize().

static VALUE rb_str_capitalize_bang ( VALUE  str)
static
static VALUE rb_str_casecmp ( VALUE  str1,
VALUE  str2 
)
static
VALUE rb_str_cat ( VALUE  str,
const char *  ptr,
long  len 
)
VALUE rb_str_cat2 ( VALUE  str,
const char *  ptr 
)
static VALUE rb_str_center ( int  argc,
VALUE argv,
VALUE  str 
)
static

Definition at line 7099 of file string.c.

References rb_str_justify().

Referenced by Init_String().

static void rb_str_check_dummy_enc ( rb_encoding enc)
static
static VALUE rb_str_chomp ( int  argc,
VALUE argv,
VALUE  str 
)
static

Definition at line 6461 of file string.c.

References rb_str_chomp_bang(), and rb_str_dup().

Referenced by Init_String().

static VALUE rb_str_chomp_bang ( int  argc,
VALUE argv,
VALUE  str 
)
static
static VALUE rb_str_chop ( VALUE  str)
static

Definition at line 6323 of file string.c.

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

Referenced by Init_String().

static VALUE rb_str_chop_bang ( VALUE  str)
static
static VALUE rb_str_chr ( VALUE  str)
static

Definition at line 3976 of file string.c.

References rb_str_substr().

Referenced by Init_String().

static VALUE rb_str_clear ( VALUE  str)
static
int rb_str_cmp ( VALUE  str1,
VALUE  str2 
)
static VALUE rb_str_cmp_m ( VALUE  str1,
VALUE  str2 
)
static

Definition at line 2335 of file string.c.

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

Referenced by Init_String(), and sym_cmp().

long rb_str_coderange_scan_restartable ( const char *  s,
const char *  e,
rb_encoding enc,
int *  cr 
)
int rb_str_comparable ( VALUE  str1,
VALUE  str2 
)
VALUE rb_str_concat ( VALUE  str1,
VALUE  str2 
)
VALUE rb_str_conv_enc ( VALUE  str,
rb_encoding from,
rb_encoding to 
)
static VALUE rb_str_count ( int  argc,
VALUE argv,
VALUE  str 
)
static
static VALUE rb_str_crypt ( VALUE  str,
VALUE  salt 
)
static
static VALUE rb_str_delete ( int  argc,
VALUE argv,
VALUE  str 
)
static

Definition at line 5483 of file string.c.

References rb_str_delete_bang(), and rb_str_dup().

Referenced by Init_String().

static VALUE rb_str_delete_bang ( int  argc,
VALUE argv,
VALUE  str 
)
static
static VALUE rb_str_downcase ( VALUE  str)
static

Definition at line 4828 of file string.c.

References rb_str_downcase_bang(), and rb_str_dup().

Referenced by Init_String(), and sym_downcase().

static VALUE rb_str_downcase_bang ( VALUE  str)
static
VALUE rb_str_drop_bytes ( VALUE  str,
long  len 
)
VALUE rb_str_dump ( VALUE  str)
VALUE rb_str_dup ( VALUE  str)
static VALUE rb_str_each_byte ( VALUE  str)
static

Definition at line 6156 of file string.c.

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

Referenced by Init_String(), and rb_str_each_codepoint().

static VALUE rb_str_each_char ( VALUE  str)
static
static VALUE rb_str_each_codepoint ( VALUE  str)
static
static VALUE rb_str_each_line ( int  argc,
VALUE argv,
VALUE  str 
)
static
VALUE rb_str_ellipsize ( VALUE  str,
long  len 
)

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

Parameters
strthe string to ellipsize.
lenthe 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 7342 of file string.c.

References 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(), RSTRING_LEN, and RSTRING_PTR.

Referenced by bug_str_ellipsize(), rb_hash_fetch_m(), and sys_fail2().

static VALUE rb_str_empty ( VALUE  str)
static

Definition at line 1169 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
static VALUE rb_str_eql ( VALUE  str1,
VALUE  str2 
)
static

Definition at line 2304 of file string.c.

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

Referenced by Init_String().

VALUE rb_str_equal ( VALUE  str1,
VALUE  str2 
)
VALUE rb_str_export ( VALUE  str)

Definition at line 585 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 591 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 597 of file string.c.

References rb_str_conv_enc(), and STR_ENC_GET.

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

static VALUE rb_str_force_encoding ( VALUE  str,
VALUE  enc 
)
static

Definition at line 7282 of file string.c.

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

Referenced by Init_String().

static VALUE rb_str_format_m ( VALUE  str,
VALUE  arg 
)
static

Definition at line 1266 of file string.c.

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

Referenced by Init_String().

void rb_str_free ( VALUE  str)

Definition at line 789 of file string.c.

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

Referenced by obj_free().

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

Definition at line 3988 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 3913 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 3862 of file string.c.

References str_gsub(), and str_modify_keep_cr().

Referenced by Init_String().

st_index_t rb_str_hash ( VALUE  str)
int rb_str_hash_cmp ( VALUE  str1,
VALUE  str2 
)

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

References INT2FIX, and rb_str_hash().

Referenced by Init_String().

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

Definition at line 4260 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
static VALUE rb_str_index_m ( int  argc,
VALUE argv,
VALUE  str 
)
static
static VALUE rb_str_init ( int  argc,
VALUE argv,
VALUE  str 
)
static

Definition at line 924 of file string.c.

References rb_scan_args(), and rb_str_replace().

Referenced by Init_String().

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

Definition at line 3493 of file string.c.

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

Referenced by Init_String().

VALUE rb_str_inspect ( VALUE  str)
VALUE rb_str_intern ( VALUE  s)
static VALUE rb_str_is_ascii_only_p ( VALUE  str)
static

Definition at line 7320 of file string.c.

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

Referenced by Init_String(), and sym_inspect().

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

Definition at line 1137 of file string.c.

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

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

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

Definition at line 7059 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 1756 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 6522 of file string.c.

References rb_str_dup(), and rb_str_lstrip_bang().

Referenced by Init_String().

static VALUE rb_str_lstrip_bang ( VALUE  str)
static
static VALUE rb_str_match ( VALUE  x,
VALUE  y 
)
static

Definition at line 2677 of file string.c.

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

Referenced by Init_String(), and sym_match().

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

Definition at line 2725 of file string.c.

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

Referenced by Init_String().

RUBY_FUNC_EXPORTED size_t rb_str_memsize ( VALUE  str)

Definition at line 797 of file string.c.

References RSTRING, STR_EMBED_P, and STR_SHARED_P.

Referenced by memsize_of().

void rb_str_modify ( VALUE  str)
void rb_str_modify_expand ( VALUE  str,
long  expand 
)
VALUE rb_str_new ( const char *  ptr,
long  len 
)

Definition at line 410 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(), 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(), extract_user_token(), gzfile_getc(), gzfile_read(), gzfile_read_all(), gzfile_read_header(), gzfile_readpartial(), gzreader_gets(), hexencode_str_new(), iconv_convert(), iconv_create(), iconv_s_conv(), infected_str_new(), inspect1(), inspect2(), int_chr(), int_ossl_asn1_decode0_prim(), io_getc(), io_setstrbuf(), io_shift_cbuf(), join_der(), JSON_parse_float(), JSON_parse_integer(), lib_conv_listelement(), lib_fromUTF8_core(), lib_merge_tklist(), lib_toUTF8_core(), lib_UTF_backslash_core(), load_file_internal(), make_econv_exception(), match_to_s(), mktime_r(), name_to_backref_number(), ossl_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_make_error(), ossl_membio2str0(), ossl_pkcs12_to_der(), ossl_pkcs7_to_der(), ossl_pkey_sign(), ossl_rand_bytes(), ossl_rand_pseudo_bytes(), ossl_rsa_private_decrypt(), ossl_rsa_private_encrypt(), ossl_rsa_public_decrypt(), ossl_rsa_public_encrypt(), ossl_rsa_to_der(), ossl_spki_get_challenge(), ossl_spki_print(), ossl_spki_to_der(), ossl_ssl_read_internal(), ossl_ssl_session_to_der(), ossl_ssl_session_to_pem(), ossl_ssl_session_to_text(), ossl_sslctx_session_get_cb(), ossl_sslctx_set_ciphers(), ossl_str_new(), ossl_x509_to_der(), ossl_x509attr_get_value(), ossl_x509attr_to_der(), ossl_x509crl_get_signature_algorithm(), ossl_x509crl_to_der(), ossl_x509crl_to_pem(), ossl_x509crl_to_text(), ossl_x509ext_to_der(), ossl_x509name_to_a(), ossl_x509name_to_der(), ossl_x509req_get_signature_algorithm(), ossl_x509req_to_der(), ossl_x509req_to_pem(), ossl_x509req_to_text(), pack_pack(), pack_unpack(), parse(), proc_options(), r_bytes0(), rb_compile_cstr(), rb_digest_base_finish(), rb_enc_str_new(), rb_exc_new(), rb_f_backquote(), rb_file_dirname(), rb_file_join(), rb_file_s_basename(), rb_file_s_extname(), rb_gdbm_fetch(), rb_gdbm_firstkey(), rb_gdbm_nextkey(), rb_inflate_inflate(), rb_io_getline_fast(), rb_io_putc(), rb_io_ungetbyte(), rb_iseq_disasm(), rb_iseq_disasm_insn(), rb_nkf_convert(), rb_parser_compile_cstr(), rb_path_check(), rb_random_bytes(), rb_reg_compile(), rb_reg_quote(), rb_str_derive(), rb_str_new_cstr(), rb_str_plus(), rb_str_slice_bang(), rb_syck_output_handler(), rb_usascii_str_new(), rb_write_error2(), 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(), strftimev(), strio_getline(), strio_read(), syck_genericresolver_node_import(), syck_resolver_node_import(), time_mdump(), time_strftime(), tkstr_to_str(), writer(), yaml_org_handler(), zstream_detach_buffer(), zstream_detach_input(), zstream_expand_buffer(), zstream_expand_buffer_into(), and zstream_sync().

VALUE rb_str_new_cstr ( const char *  ptr)
VALUE rb_str_new_frozen ( VALUE  orig)
VALUE rb_str_new_shared ( VALUE  str)

Definition at line 636 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
long rb_str_offset ( VALUE  str,
long  pos 
)

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

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

Referenced by Init_String().

static VALUE rb_str_partition ( VALUE  str,
VALUE  sep 
)
static
VALUE rb_str_plus ( VALUE  str1,
VALUE  str2 
)
static VALUE rb_str_prepend ( VALUE  str,
VALUE  str2 
)
static

Definition at line 2161 of file string.c.

References rb_str_update(), and StringValue.

Referenced by Init_String().

VALUE rb_str_replace ( VALUE  str,
VALUE  str2 
)

Definition at line 3931 of file string.c.

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

Referenced by Init_String(), and rb_str_init().

VALUE rb_str_resize ( VALUE  str,
long  len 
)

Definition at line 1779 of file string.c.

References ENC_CODERANGE_CLEAR, len, MEMCPY, rb_eArgError, rb_raise(), REALLOC_N, RSTRING, RSTRING_EMBED_LEN_MAX, RSTRING_LEN, 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(), iconv_create(), io_getpartial(), io_read(), io_setstrbuf(), lib_conv_listelement(), literal_concat0(), marshal_dump(), moreswitches(), ossl_cipher_update(), ossl_digest_finish(), ossl_ssl_read_internal(), rb_big2str0(), rb_econv_substr_append(), rb_enc_vsprintf(), rb_feature_p(), rb_file_expand_path_internal(), rb_gzfile_set_comment(), rb_gzfile_set_orig_name(), rb_home_dir(), rb_io_getline_fast(), rb_io_sysread(), rb_iseq_disasm(), rb_nkf_putchar(), rb_reg_quote(), rb_str_concat(), rb_str_format(), rb_str_vcatf(), read_all(), realpath_rec(), RUBY_ALIAS_FUNCTION(), ruby_init_loadpath_safe(), ruby_setenv(), set_file_encoding(), setup_narg(), str_transcoding_resize(), strio_extend(), strio_init(), strio_read(), strio_truncate(), strio_ungetbyte(), strio_ungetc(), sym_inspect(), VpAlloc(), w_nbyte(), yyparse(), zstream_append_buffer(), zstream_detach_buffer(), zstream_discard_input(), zstream_expand_buffer(), and zstream_expand_buffer_into().

VALUE rb_str_resurrect ( VALUE  str)

Definition at line 911 of file string.c.

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

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

static VALUE rb_str_reverse ( VALUE  str)
static
static VALUE rb_str_reverse_bang ( VALUE  str)
static
static long rb_str_rindex ( VALUE  str,
VALUE  sub,
long  pos 
)
static
static VALUE rb_str_rindex_m ( int  argc,
VALUE argv,
VALUE  str 
)
static
static VALUE rb_str_rjust ( int  argc,
VALUE argv,
VALUE  str 
)
static

Definition at line 7079 of file string.c.

References rb_str_justify().

Referenced by Init_String().

static VALUE rb_str_rpartition ( VALUE  str,
VALUE  sep 
)
static
static VALUE rb_str_rstrip ( VALUE  str)
static

Definition at line 6592 of file string.c.

References rb_str_dup(), and rb_str_rstrip_bang().

Referenced by Init_String().

static VALUE rb_str_rstrip_bang ( VALUE  str)
static
static VALUE rb_str_s_try_convert ( VALUE  dummy,
VALUE  str 
)
static

Definition at line 1468 of file string.c.

References rb_check_string_type().

Referenced by Init_String().

static VALUE rb_str_scan ( VALUE  str,
VALUE  pat 
)
static
void rb_str_set_len ( VALUE  str,
long  len 
)
static VALUE rb_str_setbyte ( VALUE  str,
VALUE  index,
VALUE  value 
)
static

Definition at line 4007 of file string.c.

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

Referenced by Init_String().

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

Definition at line 7265 of file string.c.

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

Referenced by Init_IO().

void rb_str_shared_replace ( VALUE  str,
VALUE  str2 
)
static VALUE rb_str_slice_bang ( int  argc,
VALUE argv,
VALUE  str 
)
static
static void rb_str_splice ( VALUE  str,
long  beg,
long  len,
VALUE  val 
)
static
static void rb_str_splice_0 ( VALUE  str,
long  beg,
long  len,
VALUE  val 
)
static
VALUE rb_str_split ( VALUE  str,
const char *  sep0 
)

Definition at line 5991 of file string.c.

References rb_str_new2, rb_str_split_m(), and StringValue.

Referenced by syck_const_find(), and syck_resolver_transfer().

static VALUE rb_str_split_m ( int  argc,
VALUE argv,
VALUE  str 
)
static
static VALUE rb_str_squeeze ( int  argc,
VALUE argv,
VALUE  str 
)
static

Definition at line 5590 of file string.c.

References rb_str_dup(), and rb_str_squeeze_bang().

Referenced by Init_String().

static VALUE rb_str_squeeze_bang ( int  argc,
VALUE argv,
VALUE  str 
)
static
static VALUE rb_str_start_with ( int  argc,
VALUE argv,
VALUE  str 
)
static

Definition at line 7219 of file string.c.

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

Referenced by Init_String().

static VALUE rb_str_strip ( VALUE  str)
static

Definition at line 6630 of file string.c.

References rb_str_dup(), and rb_str_strip_bang().

Referenced by Init_String().

static VALUE rb_str_strip_bang ( VALUE  str)
static

Definition at line 6609 of file string.c.

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

Referenced by Init_String(), and rb_str_strip().

long rb_str_strlen ( VALUE  str)

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

References rb_str_dup(), and rb_str_sub_bang().

Referenced by Init_String().

static VALUE rb_str_sub_bang ( int  argc,
VALUE argv,
VALUE  str 
)
static
long rb_str_sublen ( VALUE  str,
long  pos 
)
static VALUE rb_str_subpat ( VALUE  str,
VALUE  re,
VALUE  backref 
)
static
static void rb_str_subpat_set ( VALUE  str,
VALUE  re,
VALUE  backref,
VALUE  val 
)
static
VALUE rb_str_subseq ( VALUE  str,
long  beg,
long  len 
)
VALUE rb_str_substr ( VALUE  str,
long  beg,
long  len 
)
VALUE rb_str_succ ( VALUE  orig)
static VALUE rb_str_succ_bang ( VALUE  str)
static

Definition at line 2988 of file string.c.

References rb_str_shared_replace(), and rb_str_succ().

Referenced by Init_String().

static VALUE rb_str_sum ( int  argc,
VALUE argv,
VALUE  str 
)
static
static VALUE rb_str_swapcase ( VALUE  str)
static

Definition at line 4962 of file string.c.

References rb_str_dup(), and rb_str_swapcase_bang().

Referenced by Init_String(), and sym_swapcase().

static VALUE rb_str_swapcase_bang ( VALUE  str)
static
VALUE rb_str_times ( VALUE  str,
VALUE  times 
)
static VALUE rb_str_to_f ( VALUE  str)
static

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

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

Referenced by Init_String().

static VALUE rb_str_to_s ( VALUE  str)
static

Definition at line 4342 of file string.c.

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

Referenced by Init_String().

VALUE rb_str_to_str ( VALUE  str)

Definition at line 808 of file string.c.

References rb_convert_type(), and T_STRING.

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

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

Definition at line 5306 of file string.c.

References rb_str_dup(), and tr_trans().

Referenced by Init_String().

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

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

References rb_str_dup(), and tr_trans().

Referenced by Init_String().

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

Definition at line 5607 of file string.c.

References tr_trans().

Referenced by Init_String().

VALUE rb_str_unlocktmp ( VALUE  str)
static VALUE rb_str_upcase ( VALUE  str)
static

Definition at line 4745 of file string.c.

References rb_str_dup(), and rb_str_upcase_bang().

Referenced by Init_String(), and sym_upcase().

static VALUE rb_str_upcase_bang ( VALUE  str)
static
void rb_str_update ( VALUE  str,
long  beg,
long  len,
VALUE  val 
)

Definition at line 3350 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
static VALUE rb_str_valid_encoding_p ( VALUE  str)
static

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

References rb_str_to_str(), T_STRING, and TYPE.

Referenced by rb_string_value_cstr(), and rb_string_value_ptr().

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

Definition at line 1425 of file string.c.

References rb_string_value(), and RSTRING_PTR.

VALUE rb_sym_to_s ( VALUE  sym)
VALUE rb_tainted_str_new_cstr ( const char *  ptr)

Definition at line 464 of file string.c.

References OBJ_TAINT, and rb_str_new2.

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

ID rb_to_id ( VALUE  name)
VALUE rb_usascii_str_new ( const char *  ptr,
long  len 
)
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)   
)

Definition at line 451 of file string.c.

References OBJ_TAINT, and rb_str_new().

RUBY_ALIAS_FUNCTION ( rb_tainted_str_new2(const char *ptr)  ,
rb_tainted_str_new_cstr  ,
(ptr)   
)
RUBY_ALIAS_FUNCTION ( rb_str_new3(VALUE str)  ,
rb_str_new_shared  ,
(str)   
)
RUBY_ALIAS_FUNCTION ( rb_str_new4(VALUE orig)  ,
rb_str_new_frozen  ,
(orig)   
)

Definition at line 711 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 720 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 763 of file string.c.

References str_new().

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

Definition at line 1732 of file string.c.

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

static VALUE scan_once ( VALUE  str,
VALUE  pat,
long start 
)
static
static const char* search_nonascii ( const char *  p,
const char *  e 
)
inlinestatic
static int single_byte_optimizable ( VALUE  str)
inlinestatic
static VALUE str_alloc ( VALUE  klass)
inlinestatic
static VALUE str_buf_cat ( VALUE  str,
const char *  ptr,
long  len 
)
static
static VALUE str_byte_aref ( VALUE  str,
VALUE  indx 
)
static
static VALUE str_byte_substr ( VALUE  str,
long  beg,
long  len 
)
static
static void str_discard ( VALUE  str)
inlinestatic
static VALUE str_duplicate ( VALUE  klass,
VALUE  str 
)
static

Definition at line 897 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 
)
inlinestatic
static VALUE str_eql ( const VALUE  str1,
const VALUE  str2 
)
static

Definition at line 2261 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
static int str_independent ( VALUE  str)
inlinestatic
static void str_make_independent_expand ( VALUE  str,
long  expand 
)
static

Definition at line 1297 of file string.c.

References ALLOC_N, len, 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 
)
inlinestatic
static void str_modifiable ( VALUE  str)
inlinestatic
static void str_modify_keep_cr ( VALUE  str)
static
static VALUE str_new ( VALUE  klass,
const char *  ptr,
long  len 
)
static
static VALUE str_new3 ( VALUE  klass,
VALUE  str 
)
static
static VALUE str_new_shared ( VALUE  klass,
VALUE  str 
)
static

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

References 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
static long str_offset ( const char *  p,
const char *  e,
long  nth,
rb_encoding enc,
int  singlebyte 
)
static

Definition at line 1543 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_substr().

static VALUE str_replace ( VALUE  str,
VALUE  str2 
)
static
static VALUE str_replace_shared ( VALUE  str2,
VALUE  str 
)
static
static long str_strlen ( VALUE  str,
rb_encoding enc 
)
static
static VALUE sym_aref ( int  argc,
VALUE argv,
VALUE  sym 
)
static

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

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

Referenced by sym_to_proc().

static VALUE sym_capitalize ( VALUE  sym)
static

Definition at line 7708 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 7613 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 7596 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 7695 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 7669 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 7734 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 7421 of file string.c.

References Qfalse, and Qtrue.

Referenced by Init_String().

static VALUE sym_inspect ( VALUE  sym)
static
static VALUE sym_length ( VALUE  sym)
static

Definition at line 7656 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 7629 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 7429 of file string.c.

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

Referenced by sym_inspect().

static VALUE sym_succ ( VALUE  sym)
static

Definition at line 7582 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 7721 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
static VALUE sym_to_sym ( VALUE  sym)
static

Definition at line 7517 of file string.c.

References sym.

Referenced by Init_String().

static VALUE sym_upcase ( VALUE  sym)
static

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

References FALSE, NIL_P, rb_hash_lookup, 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
static VALUE tr_trans ( VALUE  str,
VALUE  src,
VALUE  repl,
int  sflag 
)
static
static unsigned int trnext ( struct tr t,
rb_encoding enc 
)
static

Definition at line 4978 of file string.c.

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

Referenced by tr_setup_table(), and tr_trans().

Variable Documentation

ID id_to_s
static

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

VALUE rb_cString
VALUE rb_cSymbol

Definition at line 52 of file string.c.

Referenced by Init_String().

VALUE rb_fs

Definition at line 141 of file string.c.

Referenced by Init_String(), and rb_str_split_m().