Ruby
3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
|
Routines to manipulate encodings of symbols. More...
#include "ruby/internal/attr/nonnull.h"
#include "ruby/internal/dllexport.h"
#include "ruby/internal/encoding/encoding.h"
#include "ruby/internal/value.h"
Go to the source code of this file.
Functions | |
ID | rb_intern3 (const char *name, long len, rb_encoding *enc) |
Identical to rb_intern2(), except it additionally takes an encoding. More... | |
int | rb_enc_symname_p (const char *str, rb_encoding *enc) |
Identical to rb_symname_p(), except it additionally takes an encoding. More... | |
int | rb_enc_symname2_p (const char *name, long len, rb_encoding *enc) |
Identical to rb_enc_symname_p(), except it additionally takes the passed string's length. More... | |
ID | rb_check_id_cstr (const char *ptr, long len, rb_encoding *enc) |
Identical to rb_check_id(), except it takes a pointer to a memory region instead of Ruby's string. More... | |
VALUE | rb_check_symbol_cstr (const char *ptr, long len, rb_encoding *enc) |
Identical to rb_check_id_cstr(), except for the return type. More... | |
Routines to manipulate encodings of symbols.
RBIMPL
or rbimpl
are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will. __VA_ARGS__
is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98. Definition in file symbol.h.
ID rb_check_id_cstr | ( | const char * | ptr, |
long | len, | ||
rb_encoding * | enc | ||
) |
Identical to rb_check_id(), except it takes a pointer to a memory region instead of Ruby's string.
[in] | ptr | A pointer to a memory region. |
[in] | len | Number of bytes of ptr . |
[in] | enc | Encoding of ptr . |
rb_eEncodingError | ptr contains non-ASCII according to enc . |
0 | No such id ever existed in the history. |
otherwise | The id that represents the given name. |
Definition at line 1215 of file symbol.c.
Referenced by rb_deprecate_constant(), and rb_iv_get().
VALUE rb_check_symbol_cstr | ( | const char * | ptr, |
long | len, | ||
rb_encoding * | enc | ||
) |
Identical to rb_check_id_cstr(), except for the return type.
It can also be seen as a routine identical to rb_check_symbol(), except it takes a pointer to a memory region instead of Ruby's string.
[in] | ptr | A pointer to a memory region. |
[in] | len | Number of bytes of ptr . |
[in] | enc | Encoding of ptr . |
rb_eEncodingError | ptr contains non-ASCII according to enc . |
RUBY_Qnil | No such id ever existed in the history. |
otherwise | The id that represents the given name. |
Definition at line 1226 of file symbol.c.
Referenced by rb_str_format().
int rb_enc_symname2_p | ( | const char * | name, |
long | len, | ||
rb_encoding * | enc | ||
) |
Identical to rb_enc_symname_p(), except it additionally takes the passed string's length.
This is needed for strings containing NUL bytes, like in case of UTF-32.
[in] | name | A C string to check. |
[in] | len | Number of bytes of str . |
[in] | enc | str 's encoding. |
1 | It is a valid symbol name. |
0 | It is invalid as a symbol name. |
Definition at line 414 of file symbol.c.
Referenced by rb_enc_symname_p().
int rb_enc_symname_p | ( | const char * | str, |
rb_encoding * | enc | ||
) |
Identical to rb_symname_p(), except it additionally takes an encoding.
[in] | str | A C string to check. |
[in] | enc | str 's encoding. |
1 | It is a valid symbol name. |
0 | It is invalid as a symbol name. |
Definition at line 211 of file symbol.c.
Referenced by rb_symname_p().
ID rb_intern3 | ( | const char * | name, |
long | len, | ||
rb_encoding * | enc | ||
) |
Identical to rb_intern2(), except it additionally takes an encoding.
[in] | name | The name of the id. |
[in] | len | Length of name . |
[in] | enc | name 's encoding. |
rb_eRuntimeError | Too many symbols. |
Definition at line 752 of file symbol.c.
Referenced by rb_intern2().