include/ruby/encoding.h File Reference

#include <stdarg.h>
#include "ruby/oniguruma.h"

Go to the source code of this file.

Defines

#define RUBY_ENCODING_H   1
#define ENCODING_INLINE_MAX   1023
#define ENCODING_SHIFT   (FL_USHIFT+10)
#define ENCODING_MASK   (((VALUE)ENCODING_INLINE_MAX)<<ENCODING_SHIFT)
#define ENCODING_SET_INLINED(obj, i)
#define ENCODING_SET(obj, i)
#define ENCODING_GET_INLINED(obj)   (int)((RBASIC(obj)->flags & ENCODING_MASK)>>ENCODING_SHIFT)
#define ENCODING_GET(obj)
#define ENCODING_IS_ASCII8BIT(obj)   (ENCODING_GET_INLINED(obj) == 0)
#define ENCODING_MAXNAMELEN   42
#define ENC_CODERANGE_MASK   ((int)(FL_USER8|FL_USER9))
#define ENC_CODERANGE_UNKNOWN   0
#define ENC_CODERANGE_7BIT   ((int)FL_USER8)
#define ENC_CODERANGE_VALID   ((int)FL_USER9)
#define ENC_CODERANGE_BROKEN   ((int)(FL_USER8|FL_USER9))
#define ENC_CODERANGE(obj)   ((int)RBASIC(obj)->flags & ENC_CODERANGE_MASK)
#define ENC_CODERANGE_ASCIIONLY(obj)   (ENC_CODERANGE(obj) == ENC_CODERANGE_7BIT)
#define ENC_CODERANGE_SET(obj, cr)
#define ENC_CODERANGE_CLEAR(obj)   ENC_CODERANGE_SET((obj),0)
#define ENC_CODERANGE_AND(a, b)
#define ENCODING_CODERANGE_SET(obj, encindex, cr)
#define rb_enc_to_index(enc)   ((enc) ? ENC_TO_ENCINDEX(enc) : 0)
#define rb_enc_name(enc)   (enc)->name
#define rb_enc_mbminlen(enc)   (enc)->min_enc_len
#define rb_enc_mbmaxlen(enc)   (enc)->max_enc_len
#define MBCLEN_CHARFOUND_P(ret)   ONIGENC_MBCLEN_CHARFOUND_P(ret)
#define MBCLEN_CHARFOUND_LEN(ret)   ONIGENC_MBCLEN_CHARFOUND_LEN(ret)
#define MBCLEN_INVALID_P(ret)   ONIGENC_MBCLEN_INVALID_P(ret)
#define MBCLEN_NEEDMORE_P(ret)   ONIGENC_MBCLEN_NEEDMORE_P(ret)
#define MBCLEN_NEEDMORE_LEN(ret)   ONIGENC_MBCLEN_NEEDMORE_LEN(ret)
#define rb_enc_codepoint(p, e, enc)   rb_enc_codepoint_len((p),(e),0,(enc))
#define rb_enc_mbc_to_codepoint(p, e, enc)   ONIGENC_MBC_TO_CODE((enc),(UChar*)(p),(UChar*)(e))
#define rb_enc_mbcput(c, buf, enc)   ONIGENC_CODE_TO_MBC((enc),(c),(UChar*)(buf))
#define rb_enc_prev_char(s, p, e, enc)   ((char *)onigenc_get_prev_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_left_char_head(s, p, e, enc)   ((char *)onigenc_get_left_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_right_char_head(s, p, e, enc)   ((char *)onigenc_get_right_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_step_back(s, p, e, n, enc)   ((char *)onigenc_step_back((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e),(int)(n)))
#define rb_enc_is_newline(p, end, enc)   ONIGENC_IS_MBC_NEWLINE((enc),(UChar*)(p),(UChar*)(end))
#define rb_enc_isctype(c, t, enc)   ONIGENC_IS_CODE_CTYPE((enc),(c),(t))
#define rb_enc_isascii(c, enc)   ONIGENC_IS_CODE_ASCII(c)
#define rb_enc_isalpha(c, enc)   ONIGENC_IS_CODE_ALPHA((enc),(c))
#define rb_enc_islower(c, enc)   ONIGENC_IS_CODE_LOWER((enc),(c))
#define rb_enc_isupper(c, enc)   ONIGENC_IS_CODE_UPPER((enc),(c))
#define rb_enc_ispunct(c, enc)   ONIGENC_IS_CODE_PUNCT((enc),(c))
#define rb_enc_isalnum(c, enc)   ONIGENC_IS_CODE_ALNUM((enc),(c))
#define rb_enc_isprint(c, enc)   ONIGENC_IS_CODE_PRINT((enc),(c))
#define rb_enc_isspace(c, enc)   ONIGENC_IS_CODE_SPACE((enc),(c))
#define rb_enc_isdigit(c, enc)   ONIGENC_IS_CODE_DIGIT((enc),(c))
#define rb_enc_asciicompat(enc)   (rb_enc_mbminlen(enc)==1 && !rb_enc_dummy_p(enc))
#define rb_enc_str_asciicompat_p(str)   rb_enc_asciicompat(rb_enc_get(str))
#define ENC_DUMMY_FLAG   (1<<24)
#define ENC_INDEX_MASK   (~(~0U<<24))
#define ENC_TO_ENCINDEX(enc)   (int)((enc)->ruby_encoding_index & ENC_INDEX_MASK)
#define ENC_DUMMY_P(enc)   ((enc)->ruby_encoding_index & ENC_DUMMY_FLAG)
#define ENC_SET_DUMMY(enc)   ((enc)->ruby_encoding_index |= ENC_DUMMY_FLAG)
#define ECONV_ERROR_HANDLER_MASK   0x000000ff
#define ECONV_INVALID_MASK   0x0000000f
#define ECONV_INVALID_REPLACE   0x00000002
#define ECONV_UNDEF_MASK   0x000000f0
#define ECONV_UNDEF_REPLACE   0x00000020
#define ECONV_UNDEF_HEX_CHARREF   0x00000030
#define ECONV_DECORATOR_MASK   0x0000ff00
#define ECONV_NEWLINE_DECORATOR_MASK   0x00003f00
#define ECONV_NEWLINE_DECORATOR_READ_MASK   0x00000f00
#define ECONV_NEWLINE_DECORATOR_WRITE_MASK   0x00003000
#define ECONV_UNIVERSAL_NEWLINE_DECORATOR   0x00000100
#define ECONV_CRLF_NEWLINE_DECORATOR   0x00001000
#define ECONV_CR_NEWLINE_DECORATOR   0x00002000
#define ECONV_XML_TEXT_DECORATOR   0x00004000
#define ECONV_XML_ATTR_CONTENT_DECORATOR   0x00008000
#define ECONV_STATEFUL_DECORATOR_MASK   0x00f00000
#define ECONV_XML_ATTR_QUOTE_DECORATOR   0x00100000
#define ECONV_DEFAULT_NEWLINE_DECORATOR   0
#define ECONV_PARTIAL_INPUT   0x00010000
#define ECONV_AFTER_OUTPUT   0x00020000

Define Documentation

#define ECONV_AFTER_OUTPUT   0x00020000
#define ECONV_CR_NEWLINE_DECORATOR   0x00002000
#define ECONV_CRLF_NEWLINE_DECORATOR   0x00001000
#define ECONV_DECORATOR_MASK   0x0000ff00
#define ECONV_DEFAULT_NEWLINE_DECORATOR   0
#define ECONV_ERROR_HANDLER_MASK   0x000000ff

Referenced by make_writeconv(), and rb_econv_open().

#define ECONV_INVALID_MASK   0x0000000f

Referenced by Init_transcode(), and rb_econv_convert().

#define ECONV_INVALID_REPLACE   0x00000002
#define ECONV_NEWLINE_DECORATOR_MASK   0x00003f00
#define ECONV_NEWLINE_DECORATOR_READ_MASK   0x00000f00

Referenced by make_writeconv().

#define ECONV_NEWLINE_DECORATOR_WRITE_MASK   0x00003000

Referenced by make_readconv().

#define ECONV_PARTIAL_INPUT   0x00010000
#define ECONV_STATEFUL_DECORATOR_MASK   0x00f00000

Referenced by make_writeconv().

#define ECONV_UNDEF_HEX_CHARREF   0x00000030
#define ECONV_UNDEF_MASK   0x000000f0

Referenced by Init_transcode(), and rb_econv_convert().

#define ECONV_UNDEF_REPLACE   0x00000020
#define ECONV_UNIVERSAL_NEWLINE_DECORATOR   0x00000100
#define ECONV_XML_ATTR_CONTENT_DECORATOR   0x00008000
#define ECONV_XML_ATTR_QUOTE_DECORATOR   0x00100000
#define ECONV_XML_TEXT_DECORATOR   0x00004000
#define ENC_CODERANGE ( obj   )     ((int)RBASIC(obj)->flags & ENC_CODERANGE_MASK)
#define ENC_CODERANGE_7BIT   ((int)FL_USER8)
#define ENC_CODERANGE_AND ( a,
 ) 
Value:
((a) == ENC_CODERANGE_7BIT ? (b) : \
     (a) == ENC_CODERANGE_VALID ? ((b) == ENC_CODERANGE_7BIT ? ENC_CODERANGE_VALID : (b)) : \
     ENC_CODERANGE_UNKNOWN)

Referenced by rb_str_justify(), rb_str_plus(), and rb_str_splice().

#define ENC_CODERANGE_ASCIIONLY ( obj   )     (ENC_CODERANGE(obj) == ENC_CODERANGE_7BIT)

Referenced by rb_enc_associate_index().

#define ENC_CODERANGE_BROKEN   ((int)(FL_USER8|FL_USER9))
#define ENC_CODERANGE_CLEAR ( obj   )     ENC_CODERANGE_SET((obj),0)
#define ENC_CODERANGE_MASK   ((int)(FL_USER8|FL_USER9))
#define ENC_CODERANGE_SET ( obj,
cr   ) 
#define ENC_CODERANGE_UNKNOWN   0
#define ENC_CODERANGE_VALID   ((int)FL_USER9)
#define ENC_DUMMY_FLAG   (1<<24)
#define ENC_DUMMY_P ( enc   )     ((enc)->ruby_encoding_index & ENC_DUMMY_FLAG)

Referenced by enc_dummy_p(), and rb_enc_register().

#define ENC_INDEX_MASK   (~(~0U<<24))
#define ENC_SET_DUMMY ( enc   )     ((enc)->ruby_encoding_index |= ENC_DUMMY_FLAG)
#define ENC_TO_ENCINDEX ( enc   )     (int)((enc)->ruby_encoding_index & ENC_INDEX_MASK)
#define ENCODING_CODERANGE_SET ( obj,
encindex,
cr   ) 
Value:
do { \
        VALUE rb_encoding_coderange_obj = (obj); \
        ENCODING_SET(rb_encoding_coderange_obj, (encindex)); \
        ENC_CODERANGE_SET(rb_encoding_coderange_obj, (cr)); \
    } while (0)

Referenced by code_page(), enc_inspect(), pack_pack(), pack_unpack(), rb_enc_cr_str_buf_cat(), rb_str_plus(), rb_usascii_str_new(), and RUBY_ALIAS_FUNCTION().

#define ENCODING_GET ( obj   ) 
#define ENCODING_GET_INLINED ( obj   )     (int)((RBASIC(obj)->flags & ENCODING_MASK)>>ENCODING_SHIFT)

Referenced by rb_enc_get_index().

#define ENCODING_INLINE_MAX   1023

Referenced by enc_set_index(), and rb_enc_get_index().

#define ENCODING_IS_ASCII8BIT ( obj   )     (ENCODING_GET_INLINED(obj) == 0)
#define ENCODING_MASK   (((VALUE)ENCODING_INLINE_MAX)<<ENCODING_SHIFT)
#define ENCODING_MAXNAMELEN   42

Referenced by parse_mode_enc().

#define ENCODING_SET ( obj,
 ) 
Value:
do {\
    VALUE rb_encoding_set_obj = (obj); \
    int encoding_set_enc_index = (i); \
    if (encoding_set_enc_index < ENCODING_INLINE_MAX) \
        ENCODING_SET_INLINED(rb_encoding_set_obj, encoding_set_enc_index); \
    else \
        rb_enc_set_index(rb_encoding_set_obj, encoding_set_enc_index); \
} while (0)

Referenced by reg_fragment_setenc_gen().

#define ENCODING_SET_INLINED ( obj,
 ) 
Value:
do {\
    RBASIC(obj)->flags &= ~ENCODING_MASK;\
    RBASIC(obj)->flags |= (VALUE)(i) << ENCODING_SHIFT;\
} while (0)

Referenced by enc_set_index().

#define ENCODING_SHIFT   (FL_USHIFT+10)
#define MBCLEN_CHARFOUND_LEN ( ret   )     ONIGENC_MBCLEN_CHARFOUND_LEN(ret)
#define MBCLEN_CHARFOUND_P ( ret   )     ONIGENC_MBCLEN_CHARFOUND_P(ret)
#define MBCLEN_INVALID_P ( ret   )     ONIGENC_MBCLEN_INVALID_P(ret)
#define MBCLEN_NEEDMORE_LEN ( ret   )     ONIGENC_MBCLEN_NEEDMORE_LEN(ret)

Referenced by gzreader_charboundary().

#define MBCLEN_NEEDMORE_P ( ret   )     ONIGENC_MBCLEN_NEEDMORE_P(ret)
#define rb_enc_asciicompat ( enc   )     (rb_enc_mbminlen(enc)==1 && !rb_enc_dummy_p(enc))
#define rb_enc_codepoint ( p,
e,
enc   )     rb_enc_codepoint_len((p),(e),0,(enc))
#define rb_enc_is_newline ( p,
end,
enc   )     ONIGENC_IS_MBC_NEWLINE((enc),(UChar*)(p),(UChar*)(end))
#define rb_enc_isalnum ( c,
enc   )     ONIGENC_IS_CODE_ALNUM((enc),(c))

Referenced by parser_yylex().

#define rb_enc_isalpha ( c,
enc   )     ONIGENC_IS_CODE_ALPHA((enc),(c))

Referenced by rb_enc_symname_type().

#define rb_enc_isascii ( c,
enc   )     ONIGENC_IS_CODE_ASCII(c)
#define rb_enc_isctype ( c,
t,
enc   )     ONIGENC_IS_CODE_CTYPE((enc),(c),(t))

Referenced by enc_succ_alnum_char().

#define rb_enc_isdigit ( c,
enc   )     ONIGENC_IS_CODE_DIGIT((enc),(c))
#define rb_enc_islower ( c,
enc   )     ONIGENC_IS_CODE_LOWER((enc),(c))
#define rb_enc_isprint ( c,
enc   )     ONIGENC_IS_CODE_PRINT((enc),(c))
#define rb_enc_ispunct ( c,
enc   )     ONIGENC_IS_CODE_PUNCT((enc),(c))

Referenced by intern_str(), and parser_str_new().

#define rb_enc_isspace ( c,
enc   )     ONIGENC_IS_CODE_SPACE((enc),(c))

Referenced by parser_yylex(), and rb_reg_expr_str().

#define rb_enc_isupper ( c,
enc   )     ONIGENC_IS_CODE_UPPER((enc),(c))
#define rb_enc_left_char_head ( s,
p,
e,
enc   )     ((char *)onigenc_get_left_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_mbc_to_codepoint ( p,
e,
enc   )     ONIGENC_MBC_TO_CODE((enc),(UChar*)(p),(UChar*)(e))
#define rb_enc_mbcput ( c,
buf,
enc   )     ONIGENC_CODE_TO_MBC((enc),(c),(UChar*)(buf))
#define rb_enc_mbmaxlen ( enc   )     (enc)->max_enc_len
#define rb_enc_mbminlen ( enc   )     (enc)->min_enc_len
#define rb_enc_name ( enc   )     (enc)->name
#define rb_enc_prev_char ( s,
p,
e,
enc   )     ((char *)onigenc_get_prev_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_right_char_head ( s,
p,
e,
enc   )     ((char *)onigenc_get_right_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_step_back ( s,
p,
e,
n,
enc   )     ((char *)onigenc_step_back((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e),(int)(n)))

Referenced by rb_str_ellipsize().

#define rb_enc_str_asciicompat_p ( str   )     rb_enc_asciicompat(rb_enc_get(str))
#define rb_enc_to_index ( enc   )     ((enc) ? ENC_TO_ENCINDEX(enc) : 0)
#define RUBY_ENCODING_H   1

Generated on 18 May 2020 for Ruby by  doxygen 1.6.1