ruby/enc/us_ascii.c
K.Takata 85a7171b41
[k-takata/Onigmo] Add USE_CASE_MAP_API config
The case_map API is mainly (only?) used in Ruby.
Make it possible to disable the API.

https://github.com/k-takata/Onigmo/commit/80e289d6bb
2026-01-12 20:01:42 +09:00

46 lines
1.2 KiB
C

#include "regenc.h"
#ifdef RUBY
# include "encindex.h"
#endif
#ifndef ENCINDEX_US_ASCII
# define ENCINDEX_US_ASCII 0
#endif
static int
us_ascii_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc)
{
if (*p & 0x80)
return ONIGENC_CONSTRUCT_MBCLEN_INVALID();
return ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1);
}
OnigEncodingDefine(us_ascii, US_ASCII) = {
us_ascii_mbc_enc_len,
"US-ASCII",/* name */
1, /* max byte length */
1, /* min byte length */
onigenc_is_mbc_newline_0x0a,
onigenc_single_byte_mbc_to_code,
onigenc_single_byte_code_to_mbclen,
onigenc_single_byte_code_to_mbc,
onigenc_ascii_mbc_case_fold,
onigenc_ascii_apply_all_case_fold,
onigenc_ascii_get_case_fold_codes_by_str,
onigenc_minimum_property_name_to_ctype,
onigenc_ascii_is_code_ctype,
onigenc_not_support_get_ctype_code_range,
onigenc_single_byte_left_adjust_char_head,
onigenc_always_true_is_allowed_reverse_match,
#ifdef USE_CASE_MAP_API
onigenc_single_byte_ascii_only_case_map,
#else
NULL,
#endif
ENCINDEX_US_ASCII,
ONIGENC_FLAG_NONE,
};
ENC_ALIAS("ASCII", "US-ASCII")
ENC_ALIAS("ANSI_X3.4-1968", "US-ASCII")
ENC_ALIAS("646", "US-ASCII")