Ruby  2.5.0dev(2017-10-22revision60238)
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
string.c File Reference
#include "internal.h"
#include "ruby/re.h"
#include "encindex.h"
#include "probes.h"
#include "gc.h"
#include "ruby_assert.h"
#include "id.h"
#include "debug_counter.h"
#include <math.h>
#include <ctype.h>
#include "missing/crypt.h"

Go to the source code of this file.

Data Structures

struct  mapping_buffer
 
struct  tr
 

Macros

#define BEG(no)   (regs->beg[(no)])
 
#define END(no)   (regs->end[(no)])
 
#define HAVE_CRYPT_R   1
 
#define STRING_ENUMERATORS_WANTARRAY   0 /* next major */
 
#define RUBY_MAX_CHAR_LEN   16
 
#define STR_IS_SHARED_M   FL_USER6
 
#define STR_TMPLOCK   FL_USER7
 
#define STR_NOFREE   FL_USER18
 
#define STR_FAKESTR   FL_USER19
 
#define STR_SET_NOEMBED(str)
 
#define STR_SET_EMBED(str)   FL_UNSET((str), (STR_NOEMBED|STR_NOFREE))
 
#define STR_SET_EMBED_LEN(str, n)
 
#define STR_SET_LEN(str, n)
 
#define STR_DEC_LEN(str)
 
#define TERM_LEN(str)   rb_enc_mbminlen(rb_enc_get(str))
 
#define TERM_FILL(ptr, termlen)
 
#define RESIZE_CAPA(str, capacity)
 
#define RESIZE_CAPA_TERM(str, capacity, termlen)
 
#define STR_SET_SHARED(str, shared_str)
 
#define STR_HEAP_PTR(str)   (RSTRING(str)->as.heap.ptr)
 
#define STR_HEAP_SIZE(str)   ((size_t)RSTRING(str)->as.heap.aux.capa + TERM_LEN(str))
 
#define STR_ENC_GET(str)   get_encoding(str)
 
#define SHARABLE_MIDDLE_SUBSTRING   0
 
#define SHARABLE_SUBSTRING_P(beg, len, end)   ((beg) + (len) == (end))
 
#define STR_EMBEDDABLE_P(len, termlen)   ((len) <= RSTRING_EMBED_LEN_MAX + 1 - (termlen))
 
#define BARE_STRING_P(str)   (!FL_ANY_RAW(str, FL_TAINT|FL_EXIVAR) && RBASIC_CLASS(str) == rb_cString)
 
#define STR_BUF_MIN_SIZE   127
 
#define rb_str_dup_frozen   rb_str_new_frozen
 
#define str_buf_cat2(str, ptr)   str_buf_cat((str), (ptr), strlen(ptr))
 
#define MIN_PRE_ALLOC_SIZE   48
 
#define lesser(a, b)   (((a)>(b))?(b):(a))
 
#define rb_str_index(str, sub, offset)   rb_strseq_index(str, sub, offset, 0)
 
#define rb_str_splice(str, beg, len, val)   rb_str_update(str, beg, len, val)
 
#define CHAR_ESC_LEN   13 /* sizeof(\x{ hex of 32bit unsigned int } \0) */
 
#define IS_EVSTR(p, e)   ((p) < (e) && (*(p) == '$' || *(p) == '@' || *(p) == '{'))
 
#define CASE_MAPPING_ADDITIONAL_LENGTH   20
 
#define CASEMAP_DEBUG   0
 
#define CHECK_IF_ASCII(c)
 
#define TR_TABLE_SIZE   257
 
#define ascii_isspace(c)   isspacetable[(unsigned char)(c)]
 
#define WANTARRAY(m, size)   (enumerator_wantarray(m) ? rb_ary_new_capa(size) : 0)
 
#define ENUM_ELEM(ary, e)   enumerator_element(ary, e)
 
#define DEFAULT_REPLACE_CHAR(str)
 
#define sym_equal   rb_obj_equal
 
#define rb_intern(str)   rb_intern_const(str)
 

Typedefs

typedef struct mapping_buffer mapping_buffer
 
typedef unsigned char * USTR
 

Enumerations

enum  neighbor_char { NEIGHBOR_NOT_CHAR, NEIGHBOR_FOUND, NEIGHBOR_WRAPPED }
 

Functions

RUBY_FUNC_EXPORTED VALUE rb_fstring (VALUE str)
 
VALUE rb_setup_fake_str (struct RString *fake_str, const char *name, long len, rb_encoding *enc)
 
VALUE rb_fstring_new (const char *ptr, long len)
 
VALUE rb_fstring_enc_new (const char *ptr, long len, rb_encoding *enc)
 
VALUE rb_fstring_cstr (const char *ptr)
 
VALUE rb_fstring_enc_cstr (const char *ptr, rb_encoding *enc)
 
long rb_str_coderange_scan_restartable (const char *s, const char *e, rb_encoding *enc, int *cr)
 
int rb_enc_str_coderange (VALUE str)
 
int rb_enc_str_asciionly_p (VALUE str)
 
size_t rb_str_capacity (VALUE str)
 
VALUE rb_str_new (const char *ptr, long len)
 
VALUE rb_usascii_str_new (const char *ptr, long len)
 
VALUE rb_utf8_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)
 
VALUE rb_usascii_str_new_cstr (const char *ptr)
 
VALUE rb_utf8_str_new_cstr (const char *ptr)
 
VALUE rb_enc_str_new_cstr (const char *ptr, rb_encoding *enc)
 
VALUE rb_str_new_static (const char *ptr, long len)
 
VALUE rb_usascii_str_new_static (const char *ptr, long len)
 
VALUE rb_utf8_str_new_static (const char *ptr, long len)
 
VALUE rb_enc_str_new_static (const char *ptr, long len, rb_encoding *enc)
 
VALUE rb_tainted_str_new (const char *ptr, long len)
 
VALUE rb_tainted_str_new_cstr (const char *ptr)
 
VALUE rb_str_conv_enc_opts (VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts)
 
VALUE rb_str_cat_conv_enc_opts (VALUE newstr, long ofs, const char *ptr, long len, rb_encoding *from, int ecflags, VALUE ecopts)
 
VALUE rb_str_initialize (VALUE str, const char *ptr, long len, rb_encoding *enc)
 
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_with_enc (VALUE str, 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)
 
VALUE rb_str_new_shared (VALUE str)
 
VALUE rb_str_new_frozen (VALUE orig)
 
VALUE rb_str_tmp_frozen_acquire (VALUE orig)
 
void rb_str_tmp_frozen_release (VALUE orig, VALUE tmp)
 
VALUE rb_str_new_with_class (VALUE obj, const char *ptr, long len)
 
VALUE rb_str_buf_new (long capa)
 
VALUE rb_str_buf_new_cstr (const char *ptr)
 
VALUE rb_str_tmp_new (long len)
 
void rb_str_free (VALUE str)
 
RUBY_FUNC_EXPORTED size_t rb_str_memsize (VALUE str)
 
VALUE rb_str_to_str (VALUE str)
 
void rb_str_shared_replace (VALUE str, VALUE str2)
 
VALUE rb_obj_as_string_result (VALUE str, VALUE obj)
 
VALUE rb_obj_as_string (VALUE obj)
 
VALUE rb_str_dup (VALUE str)
 
VALUE rb_str_resurrect (VALUE str)
 
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)
 
long rb_str_strlen (VALUE str)
 
VALUE rb_str_length (VALUE str)
 
VALUE rb_str_plus (VALUE str1, VALUE str2)
 
VALUE rb_str_times (VALUE str, VALUE times)
 
void rb_str_modify (VALUE str)
 
void rb_str_modify_expand (VALUE str, long expand)
 
void rb_must_asciicompat (VALUE str)
 
VALUE rb_string_value (volatile VALUE *ptr)
 
char * rb_string_value_ptr (volatile VALUE *ptr)
 
void rb_str_change_terminator_length (VALUE str, const int oldtermlen, const int termlen)
 
char * rb_str_to_cstr (VALUE str)
 
char * rb_string_value_cstr (volatile VALUE *ptr)
 
char * rb_str_fill_terminator (VALUE str, const int newminlen)
 
VALUE rb_check_string_type (VALUE str)
 
char * rb_enc_nth (const char *p, const char *e, long nth, rb_encoding *enc)
 
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)
 
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)
 
RUBY_FUNC_EXPORTED 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)
 
VALUE rb_str_cat (VALUE str, const char *ptr, long len)
 
VALUE rb_str_cat_cstr (VALUE str, const char *ptr)
 
 RUBY_ALIAS_FUNCTION (rb_str_buf_cat(VALUE str, const char *ptr, long len), rb_str_cat,(str, ptr, len))
 
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_literals (size_t num, const VALUE *strary)
 
VALUE rb_str_concat (VALUE str1, VALUE str2)
 
st_index_t rb_str_hash (VALUE str)
 
int rb_str_hash_cmp (VALUE str1, VALUE str2)
 
int rb_str_comparable (VALUE str1, VALUE str2)
 
int rb_str_cmp (VALUE str1, VALUE str2)
 
VALUE rb_str_equal (VALUE str1, VALUE str2)
 
VALUE rb_str_eql (VALUE str1, VALUE str2)
 
VALUE rb_str_succ (VALUE orig)
 
VALUE rb_str_include_range_p (VALUE beg, VALUE end, VALUE val, VALUE exclusive)
 
VALUE rb_str_drop_bytes (VALUE str, long len)
 
void rb_str_update (VALUE str, long beg, long len, VALUE val)
 
VALUE rb_str_replace (VALUE str, VALUE str2)
 
int rb_str_buf_cat_escaped_char (VALUE result, unsigned int c, int unicode_p)
 
VALUE rb_str_escape (VALUE str)
 
VALUE rb_str_inspect (VALUE str)
 
VALUE rb_str_dump (VALUE str)
 
VALUE rb_str_split (VALUE str, const char *sep0)
 
VALUE rb_str_chomp_string (VALUE str, VALUE rs)
 
VALUE rb_str_ord (VALUE s)
 
void rb_str_setter (VALUE val, ID id, VALUE *var)
 
VALUE rb_str_ellipsize (VALUE str, long len)
 Shortens str and adds three dots, an ellipsis, if it is longer than len characters. More...
 
VALUE rb_str_scrub (VALUE str, VALUE repl)
 
VALUE rb_enc_str_scrub (rb_encoding *enc, VALUE str, VALUE repl)
 
int rb_str_symname_p (VALUE sym)
 
VALUE rb_str_quote_unprintable (VALUE str)
 
VALUE rb_id_quote_unprintable (ID id)
 
VALUE rb_sym_to_s (VALUE sym)
 
VALUE rb_sym_proc_call (ID mid, int argc, const VALUE *argv, VALUE passed_proc)
 
ID rb_to_id (VALUE name)
 
VALUE rb_to_symbol (VALUE name)
 
void Init_String (void)
 

Variables

VALUE rb_cString
 
VALUE rb_cSymbol
 
const struct st_hash_type rb_fstring_hash_type
 
VALUE rb_fs
 

Macro Definition Documentation

◆ ascii_isspace

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

Definition at line 7336 of file string.c.

◆ BARE_STRING_P

#define BARE_STRING_P (   str)    (!FL_ANY_RAW(str, FL_TAINT|FL_EXIVAR) && RBASIC_CLASS(str) == rb_cString)

Definition at line 259 of file string.c.

Referenced by rb_fstring().

◆ BEG

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

Definition at line 23 of file string.c.

◆ CASE_MAPPING_ADDITIONAL_LENGTH

#define CASE_MAPPING_ADDITIONAL_LENGTH   20

Definition at line 6118 of file string.c.

◆ CASEMAP_DEBUG

#define CASEMAP_DEBUG   0

Definition at line 6120 of file string.c.

◆ CHAR_ESC_LEN

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

Definition at line 5701 of file string.c.

Referenced by rb_str_escape(), and rb_str_inspect().

◆ CHECK_IF_ASCII

#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:100
#define ENC_CODERANGE_VALID
Definition: encoding.h:101

◆ DEFAULT_REPLACE_CHAR

#define DEFAULT_REPLACE_CHAR (   str)
Value:
do { \
static const char replace[sizeof(str)-1] = str; \
rep = replace; replen = (int)sizeof(replace); \
} while (0)

◆ END

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

Definition at line 24 of file string.c.

◆ ENUM_ELEM

#define ENUM_ELEM (   ary,
 
)    enumerator_element(ary, e)

Definition at line 7641 of file string.c.

◆ HAVE_CRYPT_R

#define HAVE_CRYPT_R   1

Definition at line 39 of file string.c.

◆ IS_EVSTR

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

Definition at line 5907 of file string.c.

◆ lesser

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

Definition at line 3131 of file string.c.

Referenced by rb_str_cmp().

◆ MIN_PRE_ALLOC_SIZE

#define MIN_PRE_ALLOC_SIZE   48

Definition at line 2906 of file string.c.

Referenced by rb_str_concat_literals().

◆ rb_intern

#define rb_intern (   str)    rb_intern_const(str)

◆ rb_str_dup_frozen

#define rb_str_dup_frozen   rb_str_new_frozen

◆ rb_str_index

#define rb_str_index (   str,
  sub,
  offset 
)    rb_strseq_index(str, sub, offset, 0)

Definition at line 3416 of file string.c.

◆ rb_str_splice

#define rb_str_splice (   str,
  beg,
  len,
  val 
)    rb_str_update(str, beg, len, val)

Definition at line 4589 of file string.c.

◆ RESIZE_CAPA

#define RESIZE_CAPA (   str,
  capacity 
)
Value:
do {\
const int termlen = TERM_LEN(str);\
RESIZE_CAPA_TERM(str,capacity,termlen);\
} while (0)
#define TERM_LEN(str)
Definition: string.c:120

Definition at line 129 of file string.c.

◆ RESIZE_CAPA_TERM

#define RESIZE_CAPA_TERM (   str,
  capacity,
  termlen 
)
Value:
do {\
if (STR_EMBED_P(str)) {\
if (!STR_EMBEDDABLE_P(capacity, termlen)) {\
char *const tmp = ALLOC_N(char, (size_t)(capacity) + (termlen));\
const long tlen = RSTRING_LEN(str);\
memcpy(tmp, RSTRING_PTR(str), tlen);\
RSTRING(str)->as.heap.ptr = tmp;\
RSTRING(str)->as.heap.len = tlen;\
STR_SET_NOEMBED(str);\
RSTRING(str)->as.heap.aux.capa = (capacity);\
}\
}\
else {\
assert(!FL_TEST((str), STR_SHARED)); \
REALLOC_N(RSTRING(str)->as.heap.ptr, char, (size_t)(capacity) + (termlen));\
RSTRING(str)->as.heap.aux.capa = (capacity);\
}\
} while (0)
#define RSTRING(obj)
Definition: ruby.h:1201
#define FL_TEST(x, f)
Definition: ruby.h:1282
#define STR_EMBEDDABLE_P(len, termlen)
Definition: string.c:175
#define ALLOC_N(type, n)
Definition: ruby.h:1587
#define RSTRING_LEN(str)
Definition: ruby.h:971
#define RSTRING_PTR(str)
Definition: ruby.h:975
#define STR_SHARED
Definition: internal.h:1651
#define STR_EMBED_P(str)
Definition: internal.h:1652

Definition at line 133 of file string.c.

◆ RUBY_MAX_CHAR_LEN

#define RUBY_MAX_CHAR_LEN   16

Definition at line 83 of file string.c.

◆ SHARABLE_MIDDLE_SUBSTRING

#define SHARABLE_MIDDLE_SUBSTRING   0

Definition at line 167 of file string.c.

◆ SHARABLE_SUBSTRING_P

#define SHARABLE_SUBSTRING_P (   beg,
  len,
  end 
)    ((beg) + (len) == (end))

Definition at line 170 of file string.c.

Referenced by rb_str_subseq().

◆ str_buf_cat2

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

Definition at line 2743 of file string.c.

◆ STR_BUF_MIN_SIZE

#define STR_BUF_MIN_SIZE   127

Definition at line 1279 of file string.c.

◆ STR_DEC_LEN

#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(str)
Definition: ruby.h:971
#define STR_EMBED_P(str)
Definition: internal.h:1652

Definition at line 109 of file string.c.

◆ STR_EMBEDDABLE_P

#define STR_EMBEDDABLE_P (   len,
  termlen 
)    ((len) <= RSTRING_EMBED_LEN_MAX + 1 - (termlen))

Definition at line 175 of file string.c.

Referenced by rb_str_subseq().

◆ STR_ENC_GET

#define STR_ENC_GET (   str)    get_encoding(str)

◆ STR_FAKESTR

#define STR_FAKESTR   FL_USER19

Definition at line 87 of file string.c.

◆ STR_HEAP_PTR

#define STR_HEAP_PTR (   str)    (RSTRING(str)->as.heap.ptr)

Definition at line 161 of file string.c.

Referenced by rb_str_free().

◆ STR_HEAP_SIZE

#define STR_HEAP_SIZE (   str)    ((size_t)RSTRING(str)->as.heap.aux.capa + TERM_LEN(str))

Definition at line 162 of file string.c.

Referenced by rb_str_free(), and rb_str_memsize().

◆ STR_IS_SHARED_M

#define STR_IS_SHARED_M   FL_USER6

Definition at line 84 of file string.c.

Referenced by rb_str_tmp_frozen_release().

◆ STR_NOFREE

#define STR_NOFREE   FL_USER18

Definition at line 86 of file string.c.

Referenced by rb_str_free(), rb_str_memsize(), and rb_str_tmp_frozen_release().

◆ STR_SET_EMBED

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

Definition at line 93 of file string.c.

◆ STR_SET_EMBED_LEN

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

Definition at line 94 of file string.c.

◆ STR_SET_LEN

#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 STR_EMBED_P(str)
Definition: internal.h:1652

Definition at line 100 of file string.c.

Referenced by rb_str_cat_conv_enc_opts(), and rb_str_initialize().

◆ STR_SET_NOEMBED

#define STR_SET_NOEMBED (   str)
Value:
do {\
FL_SET((str), STR_NOEMBED);\
STR_SET_EMBED_LEN((str), 0);\
} while (0)
#define STR_NOEMBED
Definition: internal.h:1650

Definition at line 89 of file string.c.

◆ STR_SET_SHARED

#define STR_SET_SHARED (   str,
  shared_str 
)
Value:
do { \
if (!FL_TEST(str, STR_FAKESTR)) { \
RB_OBJ_WRITE((str), &RSTRING(str)->as.heap.aux.shared, (shared_str)); \
FL_SET((str), STR_SHARED); \
if (RBASIC_CLASS((shared_str)) == 0) /* for CoW-friendliness */ \
FL_SET_RAW((shared_str), STR_IS_SHARED_M); \
} \
} while (0)
#define RSTRING(obj)
Definition: ruby.h:1201
#define STR_IS_SHARED_M
Definition: string.c:84
#define FL_TEST(x, f)
Definition: ruby.h:1282
#define STR_FAKESTR
Definition: string.c:87
#define RBASIC_CLASS(obj)
Definition: ruby.h:878
#define STR_SHARED
Definition: internal.h:1651

Definition at line 152 of file string.c.

◆ STR_TMPLOCK

#define STR_TMPLOCK   FL_USER7

Definition at line 85 of file string.c.

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

◆ STRING_ENUMERATORS_WANTARRAY

#define STRING_ENUMERATORS_WANTARRAY   0 /* next major */

Definition at line 42 of file string.c.

◆ sym_equal

#define sym_equal   rb_obj_equal

Definition at line 10070 of file string.c.

◆ TERM_FILL

#define TERM_FILL (   ptr,
  termlen 
)
Value:
do {\
char *const term_fill_ptr = (ptr);\
const int term_fill_len = (termlen);\
*term_fill_ptr = '\0';\
if (UNLIKELY(term_fill_len > 1))\
memset(term_fill_ptr, 0, term_fill_len);\
} while (0)
#define UNLIKELY(x)
Definition: internal.h:43

Definition at line 121 of file string.c.

◆ TERM_LEN

#define TERM_LEN (   str)    rb_enc_mbminlen(rb_enc_get(str))

Definition at line 120 of file string.c.

Referenced by rb_str_modify_expand(), rb_str_set_len(), and rb_str_subseq().

◆ TR_TABLE_SIZE

#define TR_TABLE_SIZE   257

Definition at line 6885 of file string.c.

◆ WANTARRAY

#define WANTARRAY (   m,
  size 
)    (enumerator_wantarray(m) ? rb_ary_new_capa(size) : 0)

Definition at line 7625 of file string.c.

Typedef Documentation

◆ mapping_buffer

◆ USTR

typedef unsigned char* USTR

Definition at line 6517 of file string.c.

Enumeration Type Documentation

◆ neighbor_char

Enumerator
NEIGHBOR_NOT_CHAR 
NEIGHBOR_FOUND 
NEIGHBOR_WRAPPED 

Definition at line 3819 of file string.c.

Function Documentation

◆ Init_String()

void Init_String ( void  )

Definition at line 10529 of file string.c.

References assert, rb_cObject, rb_cString, rb_define_class(), rb_vm_fstring_table(), and st_foreach.

◆ rb_check_string_type()

VALUE rb_check_string_type ( VALUE  str)

◆ rb_enc_nth()

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

Definition at line 2320 of file string.c.

Referenced by rb_str_ellipsize().

◆ rb_enc_str_asciionly_p()

int rb_enc_str_asciionly_p ( VALUE  str)

Definition at line 641 of file string.c.

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

Referenced by rb_inspect(), and rb_reg_quote().

◆ rb_enc_str_buf_cat()

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

Definition at line 2853 of file string.c.

References ENC_CODERANGE_UNKNOWN, NULL, and rb_enc_to_index().

Referenced by rb_reg_regsub().

◆ rb_enc_str_coderange()

int rb_enc_str_coderange ( VALUE  str)

◆ rb_enc_str_new()

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

Definition at line 759 of file string.c.

References rb_str_new().

Referenced by rb_enc_uint_chr(), rb_syntax_error_append(), and rb_w32_conv_from_wchar().

◆ rb_enc_str_new_cstr()

VALUE rb_enc_str_new_cstr ( const char *  ptr,
rb_encoding enc 
)

Definition at line 794 of file string.c.

◆ rb_enc_str_new_static()

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

Definition at line 848 of file string.c.

◆ rb_enc_str_scrub()

VALUE rb_enc_str_scrub ( rb_encoding enc,
VALUE  str,
VALUE  repl 
)

Definition at line 9645 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_UNKNOWN, and STR_ENC_GET.

◆ rb_enc_strlen()

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

Definition at line 1700 of file string.c.

◆ rb_enc_strlen_cr()

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

Definition at line 1709 of file string.c.

References rb_enc_mbmaxlen, and rb_enc_mbminlen.

◆ rb_external_str_new()

VALUE rb_external_str_new ( const char *  ptr,
long  len 
)

Definition at line 1055 of file string.c.

References rb_default_external_encoding(), and rb_external_str_new_with_enc().

◆ rb_external_str_new_cstr()

VALUE rb_external_str_new_cstr ( const char *  ptr)

◆ rb_external_str_new_with_enc()

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

◆ rb_external_str_with_enc()

VALUE rb_external_str_with_enc ( VALUE  str,
rb_encoding eenc 
)

◆ rb_filesystem_str_new()

VALUE rb_filesystem_str_new ( const char *  ptr,
long  len 
)

Definition at line 1079 of file string.c.

References rb_external_str_new_with_enc(), and rb_filesystem_encoding().

◆ rb_filesystem_str_new_cstr()

VALUE rb_filesystem_str_new_cstr ( const char *  ptr)

◆ rb_fstring()

RUBY_FUNC_EXPORTED VALUE rb_fstring ( VALUE  str)

Definition at line 306 of file string.c.

References BARE_STRING_P, Check_Type, FL_TEST, OBJ_FREEZE_RAW, RSTRING_FSTR, STR_EMBED_P, and T_STRING.

Referenced by rb_iseq_pathobj_new().

◆ rb_fstring_cstr()

VALUE rb_fstring_cstr ( const char *  ptr)

Definition at line 388 of file string.c.

References rb_fstring_new(), and strlen().

Referenced by rb_autoload(), rb_insns_name_array(), rb_iseq_new_main(), and ruby_set_inplace_mode().

◆ rb_fstring_enc_cstr()

VALUE rb_fstring_enc_cstr ( const char *  ptr,
rb_encoding enc 
)

Definition at line 394 of file string.c.

References rb_fstring_enc_new(), and strlen().

◆ rb_fstring_enc_new()

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

Definition at line 381 of file string.c.

Referenced by rb_fstring_enc_cstr().

◆ rb_fstring_new()

VALUE rb_fstring_new ( const char *  ptr,
long  len 
)

Definition at line 374 of file string.c.

Referenced by rb_deprecate_constant(), and rb_fstring_cstr().

◆ rb_id_quote_unprintable()

VALUE rb_id_quote_unprintable ( ID  id)

Definition at line 10129 of file string.c.

References rb_id2str, and rb_str_quote_unprintable().

◆ rb_locale_str_new()

VALUE rb_locale_str_new ( const char *  ptr,
long  len 
)

Definition at line 1067 of file string.c.

References rb_external_str_new_with_enc(), and rb_locale_encoding().

◆ rb_locale_str_new_cstr()

VALUE rb_locale_str_new_cstr ( const char *  ptr)

Definition at line 1073 of file string.c.

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

◆ rb_must_asciicompat()

void rb_must_asciicompat ( VALUE  str)

Definition at line 2098 of file string.c.

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

Referenced by rb_str_to_inum().

◆ rb_obj_as_string()

VALUE rb_obj_as_string ( VALUE  obj)

Definition at line 1410 of file string.c.

References rb_funcall(), rb_obj_as_string_result(), RB_TYPE_P, and T_STRING.

Referenced by rb_inspect(), and rb_p().

◆ rb_obj_as_string_result()

VALUE rb_obj_as_string_result ( VALUE  str,
VALUE  obj 
)

Definition at line 1422 of file string.c.

References FL_ABLE, FL_TEST_RAW, OBJ_INFECT_RAW, rb_any_to_s(), RB_TYPE_P, RSTRING_FSTR, and T_STRING.

Referenced by rb_obj_as_string().

◆ rb_setup_fake_str()

VALUE rb_setup_fake_str ( struct RString fake_str,
const char *  name,
long  len,
rb_encoding enc 
)

◆ rb_str_append()

VALUE rb_str_append ( VALUE  str,
VALUE  str2 
)

Definition at line 2900 of file string.c.

References rb_str_buf_append(), and StringValue.

Referenced by rb_keyword_error_new(), rb_load_fail(), rb_str_concat(), and rb_str_ellipsize().

◆ rb_str_buf_append()

VALUE rb_str_buf_append ( VALUE  str,
VALUE  str2 
)

Definition at line 2884 of file string.c.

References ENC_CODERANGE, ENC_CODERANGE_SET, ENCODING_GET, OBJ_INFECT, RSTRING_LEN, and RSTRING_PTR.

Referenced by rb_str_append().

◆ rb_str_buf_cat_ascii()

VALUE rb_str_buf_cat_ascii ( VALUE  str,
const char *  ptr 
)

◆ rb_str_buf_cat_escaped_char()

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

Definition at line 5704 of file string.c.

◆ rb_str_buf_new()

VALUE rb_str_buf_new ( long  capa)

◆ rb_str_buf_new_cstr()

VALUE rb_str_buf_new_cstr ( const char *  ptr)

Definition at line 1298 of file string.c.

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

Referenced by rb_load_fail().

◆ rb_str_capacity()

size_t rb_str_capacity ( VALUE  str)

Definition at line 675 of file string.c.

Referenced by rb_econv_append(), and rb_str_vcatf().

◆ rb_str_cat()

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

◆ rb_str_cat_conv_enc_opts()

VALUE rb_str_cat_conv_enc_opts ( VALUE  newstr,
long  ofs,
const char *  ptr,
long  len,
rb_encoding from,
int  ecflags,
VALUE  ecopts 
)

Definition at line 915 of file string.c.

References rb_eIndexError, rb_raise(), rb_str_cat(), rb_str_modify(), RSTRING_LEN, and STR_SET_LEN.

◆ rb_str_cat_cstr()

VALUE rb_str_cat_cstr ( VALUE  str,
const char *  ptr 
)

Definition at line 2756 of file string.c.

Referenced by rb_keyword_error_new().

◆ rb_str_change_terminator_length()

void rb_str_change_terminator_length ( VALUE  str,
const int  oldtermlen,
const int  termlen 
)

Definition at line 2162 of file string.c.

References RString::capa.

◆ rb_str_chomp_string()

VALUE rb_str_chomp_string ( VALUE  str,
VALUE  rs 
)

Definition at line 8342 of file string.c.

References RSTRING_LEN.

◆ rb_str_cmp()

int rb_str_cmp ( VALUE  str1,
VALUE  str2 
)

Definition at line 3159 of file string.c.

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

Referenced by rb_iseq_pathobj_new().

◆ rb_str_coderange_scan_restartable()

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

◆ rb_str_comparable()

int rb_str_comparable ( VALUE  str1,
VALUE  str2 
)

◆ rb_str_concat()

VALUE rb_str_concat ( VALUE  str1,
VALUE  str2 
)

◆ rb_str_concat_literals()

VALUE rb_str_concat_literals ( size_t  num,
const VALUE strary 
)

◆ rb_str_conv_enc()

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

◆ rb_str_conv_enc_opts()

VALUE rb_str_conv_enc_opts ( VALUE  str,
rb_encoding from,
rb_encoding to,
int  ecflags,
VALUE  ecopts 
)

◆ rb_str_drop_bytes()

VALUE rb_str_drop_bytes ( VALUE  str,
long  len 
)

Definition at line 4473 of file string.c.

References RSTRING_LEN, and RSTRING_PTR.

◆ rb_str_dump()

VALUE rb_str_dump ( VALUE  str)

Definition at line 5920 of file string.c.

References len, rb_enc_from_index(), and rb_enc_get_index().

◆ rb_str_dup()

VALUE rb_str_dup ( VALUE  str)

◆ rb_str_ellipsize()

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 encoding of returned string is equal to the encoding of str.
the class of returned string is equal to the class of str.
Note
the length is counted in characters.

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

◆ rb_str_eql()

VALUE rb_str_eql ( VALUE  str1,
VALUE  str2 
)

Definition at line 3234 of file string.c.

References Qfalse, Qtrue, RB_TYPE_P, and T_STRING.

◆ rb_str_equal()

VALUE rb_str_equal ( VALUE  str1,
VALUE  str2 
)

Definition at line 3214 of file string.c.

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

◆ rb_str_export()

VALUE rb_str_export ( VALUE  str)

Definition at line 1091 of file string.c.

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

◆ rb_str_export_locale()

VALUE rb_str_export_locale ( VALUE  str)

Definition at line 1097 of file string.c.

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

◆ rb_str_export_to_enc()

VALUE rb_str_export_to_enc ( VALUE  str,
rb_encoding enc 
)

Definition at line 1103 of file string.c.

References rb_str_conv_enc(), and STR_ENC_GET.

◆ rb_str_fill_terminator()

char* rb_str_fill_terminator ( VALUE  str,
const int  newminlen 
)

Definition at line 2238 of file string.c.

References RSTRING_LEN, and RSTRING_PTR.

◆ rb_str_free()

void rb_str_free ( VALUE  str)

◆ rb_str_freeze()

VALUE rb_str_freeze ( VALUE  str)

Definition at line 2549 of file string.c.

References OBJ_FROZEN, rb_obj_freeze(), rb_str_resize(), and RSTRING_LEN.

◆ rb_str_hash()

st_index_t rb_str_hash ( VALUE  str)

◆ rb_str_hash_cmp()

int rb_str_hash_cmp ( VALUE  str1,
VALUE  str2 
)

Definition at line 3104 of file string.c.

References memcmp(), rb_str_comparable(), and RSTRING_GETMEM.

◆ rb_str_include_range_p()

VALUE rb_str_include_range_p ( VALUE  beg,
VALUE  end,
VALUE  val,
VALUE  exclusive 
)

◆ rb_str_initialize()

VALUE rb_str_initialize ( VALUE  str,
const char *  ptr,
long  len,
rb_encoding enc 
)

Definition at line 936 of file string.c.

References rb_enc_associate(), rb_str_cat(), and STR_SET_LEN.

◆ rb_str_inspect()

VALUE rb_str_inspect ( VALUE  str)

Definition at line 5813 of file string.c.

References buf, CHAR_ESC_LEN, ENCODING_GET, and rb_enc_from_index().

◆ rb_str_length()

VALUE rb_str_length ( VALUE  str)

Definition at line 1803 of file string.c.

References LONG2NUM.

◆ rb_str_locktmp_ensure()

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

Definition at line 2620 of file string.c.

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

◆ rb_str_memsize()

RUBY_FUNC_EXPORTED size_t rb_str_memsize ( VALUE  str)

Definition at line 1338 of file string.c.

References FL_TEST, STR_HEAP_SIZE, STR_NOEMBED, STR_NOFREE, and STR_SHARED.

◆ rb_str_modify()

void rb_str_modify ( VALUE  str)

Definition at line 2046 of file string.c.

Referenced by rb_str_cat_conv_enc_opts(), and rb_str_vcatf().

◆ rb_str_modify_expand()

void rb_str_modify_expand ( VALUE  str,
long  expand 
)

Definition at line 2054 of file string.c.

References LONG_MAX, rb_eArgError, rb_raise(), RSTRING_LEN, and TERM_LEN.

Referenced by rb_str_encode_ospath(), and ruby_init_loadpath_safe().

◆ rb_str_new()

VALUE rb_str_new ( const char *  ptr,
long  len 
)

◆ rb_str_new_cstr()

VALUE rb_str_new_cstr ( const char *  ptr)

◆ rb_str_new_frozen()

VALUE rb_str_new_frozen ( VALUE  orig)

Definition at line 1158 of file string.c.

References OBJ_FROZEN.

Referenced by rb_econv_substr_append(), rb_str_include_range_p(), and rb_str_subseq().

◆ rb_str_new_shared()

VALUE rb_str_new_shared ( VALUE  str)

Definition at line 1149 of file string.c.

Referenced by rb_str_subseq().

◆ rb_str_new_static()

VALUE rb_str_new_static ( const char *  ptr,
long  len 
)

Definition at line 830 of file string.c.

◆ rb_str_new_with_class()

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

Definition at line 1265 of file string.c.

Referenced by rb_str_ellipsize(), rb_str_subseq(), and rb_str_succ().

◆ rb_str_offset()

long rb_str_offset ( VALUE  str,
long  pos 
)

Definition at line 2348 of file string.c.

◆ rb_str_ord()

VALUE rb_str_ord ( VALUE  s)

Definition at line 8909 of file string.c.

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

◆ rb_str_plus()

VALUE rb_str_plus ( VALUE  str1,
VALUE  str2 
)

◆ rb_str_quote_unprintable()

VALUE rb_str_quote_unprintable ( VALUE  str)

◆ rb_str_replace()

VALUE rb_str_replace ( VALUE  str,
VALUE  str2 
)

Definition at line 5246 of file string.c.

◆ rb_str_resize()

VALUE rb_str_resize ( VALUE  str,
long  len 
)

◆ rb_str_resurrect()

VALUE rb_str_resurrect ( VALUE  str)

Definition at line 1494 of file string.c.

References RSTRING_LEN, and RUBY_DTRACE_CREATE_HOOK.

Referenced by rb_str_concat_literals().

◆ rb_str_scrub()

VALUE rb_str_scrub ( VALUE  str,
VALUE  repl 
)
Parameters
strthe string to be scrubbed
replthe replacement character
Returns
If given string is invalid, returns a new string. Otherwise, returns Qnil.

Definition at line 9638 of file string.c.

References STR_ENC_GET.

◆ rb_str_set_len()

void rb_str_set_len ( VALUE  str,
long  len 
)

◆ rb_str_setter()

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

Definition at line 9469 of file string.c.

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

◆ rb_str_shared_replace()

void rb_str_shared_replace ( VALUE  str,
VALUE  str2 
)

Definition at line 1358 of file string.c.

◆ rb_str_split()

VALUE rb_str_split ( VALUE  str,
const char *  sep0 
)

Definition at line 7602 of file string.c.

References rb_str_new_cstr(), and StringValue.

◆ rb_str_strlen()

long rb_str_strlen ( VALUE  str)

Definition at line 1789 of file string.c.

◆ rb_str_sublen()

long rb_str_sublen ( VALUE  str,
long  pos 
)

Definition at line 2395 of file string.c.

Referenced by rb_reg_match2().

◆ rb_str_subpos()

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

Definition at line 2430 of file string.c.

References RSTRING_LEN, RSTRING_PTR, and STR_ENC_GET.

◆ rb_str_subseq()

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

◆ rb_str_substr()

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

Definition at line 2517 of file string.c.

◆ rb_str_succ()

VALUE rb_str_succ ( VALUE  orig)

Definition at line 4030 of file string.c.

References rb_str_new_with_class(), RSTRING_LEN, and RSTRING_PTR.

◆ rb_str_symname_p()

int rb_str_symname_p ( VALUE  sym)

◆ rb_str_times()

VALUE rb_str_times ( VALUE  str,
VALUE  times 
)

Definition at line 1896 of file string.c.

References INT2FIX, len, and rb_str_dup().

◆ rb_str_tmp_frozen_acquire()

VALUE rb_str_tmp_frozen_acquire ( VALUE  orig)

Definition at line 1170 of file string.c.

References OBJ_FROZEN_RAW.

◆ rb_str_tmp_frozen_release()

void rb_str_tmp_frozen_release ( VALUE  orig,
VALUE  tmp 
)

◆ rb_str_tmp_new()

VALUE rb_str_tmp_new ( long  len)

Definition at line 1310 of file string.c.

Referenced by VpAlloc().

◆ rb_str_to_cstr()

char* rb_str_to_cstr ( VALUE  str)

Definition at line 2216 of file string.c.

◆ rb_str_to_str()

VALUE rb_str_to_str ( VALUE  str)

Definition at line 1349 of file string.c.

References rb_convert_type_with_id(), and T_STRING.

Referenced by rb_string_value().

◆ rb_str_unlocktmp()

VALUE rb_str_unlocktmp ( VALUE  str)

Definition at line 2610 of file string.c.

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

Referenced by rb_str_locktmp_ensure().

◆ rb_str_update()

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

Definition at line 4545 of file string.c.

◆ rb_string_value()

VALUE rb_string_value ( volatile VALUE ptr)

Definition at line 2107 of file string.c.

References RString::ptr, rb_str_to_str(), RB_TYPE_P, and T_STRING.

Referenced by rb_string_value_cstr(), and rb_string_value_ptr().

◆ rb_string_value_cstr()

char* rb_string_value_cstr ( volatile VALUE ptr)

Definition at line 2223 of file string.c.

References rb_string_value().

◆ rb_string_value_ptr()

char* rb_string_value_ptr ( volatile VALUE ptr)

Definition at line 2118 of file string.c.

References rb_string_value(), and RSTRING_PTR.

◆ rb_sym_proc_call()

VALUE rb_sym_proc_call ( ID  mid,
int  argc,
const VALUE argv,
VALUE  passed_proc 
)

Definition at line 10206 of file string.c.

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

◆ rb_sym_to_s()

VALUE rb_sym_to_s ( VALUE  sym)

Definition at line 10183 of file string.c.

◆ rb_tainted_str_new()

VALUE rb_tainted_str_new ( const char *  ptr,
long  len 
)

Definition at line 854 of file string.c.

References OBJ_TAINT, and rb_str_new().

◆ rb_tainted_str_new_cstr()

VALUE rb_tainted_str_new_cstr ( const char *  ptr)

Definition at line 872 of file string.c.

References OBJ_TAINT, and rb_str_new_cstr().

◆ rb_to_id()

ID rb_to_id ( VALUE  name)

Definition at line 10496 of file string.c.

References SYM2ID, and SYMBOL_P.

Referenced by rb_f_trace_var().

◆ rb_to_symbol()

VALUE rb_to_symbol ( VALUE  name)

Definition at line 10506 of file string.c.

References name, and SYMBOL_P.

◆ rb_usascii_str_new()

VALUE rb_usascii_str_new ( const char *  ptr,
long  len 
)

Definition at line 743 of file string.c.

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

Referenced by rb_fix2str(), and rb_str_ellipsize().

◆ rb_usascii_str_new_cstr()

VALUE rb_usascii_str_new_cstr ( const char *  ptr)

◆ rb_usascii_str_new_static()

VALUE rb_usascii_str_new_static ( const char *  ptr,
long  len 
)

Definition at line 836 of file string.c.

◆ rb_utf8_str_new()

VALUE rb_utf8_str_new ( const char *  ptr,
long  len 
)

Definition at line 751 of file string.c.

Referenced by ruby_init_loadpath_safe().

◆ rb_utf8_str_new_cstr()

VALUE rb_utf8_str_new_cstr ( const char *  ptr)

Definition at line 786 of file string.c.

References rb_enc_associate_index(), rb_str_new_cstr(), and rb_utf8_encindex().

◆ rb_utf8_str_new_static()

VALUE rb_utf8_str_new_static ( const char *  ptr,
long  len 
)

Definition at line 842 of file string.c.

◆ RUBY_ALIAS_FUNCTION() [1/2]

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

Definition at line 2596 of file string.c.

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

◆ RUBY_ALIAS_FUNCTION() [2/2]

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

Variable Documentation

◆ rb_cString

VALUE rb_cString

Definition at line 66 of file string.c.

Referenced by Init_String().

◆ rb_cSymbol

VALUE rb_cSymbol

Definition at line 67 of file string.c.

◆ rb_fs

VALUE rb_fs

Definition at line 436 of file string.c.

◆ rb_fstring_hash_type

const struct st_hash_type rb_fstring_hash_type
Initial value:
= {
fstring_cmp,
}
st_index_t rb_str_hash(VALUE str)
Definition: string.c:3094

Definition at line 254 of file string.c.