mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
string.c: add mrb_strcasecmp_p for case-insensitive comparison
Move casecmp_p from mruby-string-ext and mruby-encoding to core as mrb_strcasecmp_p (predicate function returning mrb_bool). Add MRB_STR_CASECMP_P macro to internal.h for comparing mrb_value strings with literal strings. This eliminates code duplication and avoids static function name collision for future amalgamation support. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -163,6 +163,9 @@ mrb_value mrb_str_inspect(mrb_state *mrb, mrb_value str);
|
||||
mrb_bool mrb_str_beg_len(mrb_int str_len, mrb_int *begp, mrb_int *lenp);
|
||||
mrb_value mrb_str_byte_subseq(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len);
|
||||
mrb_value mrb_str_aref(mrb_state *mrb, mrb_value str, mrb_value idx, mrb_value len);
|
||||
mrb_bool mrb_strcasecmp_p(const char *s1, mrb_int len1, const char *s2, mrb_int len2);
|
||||
#define MRB_STR_CASECMP_P(str, lit) \
|
||||
mrb_strcasecmp_p(RSTRING_PTR(str), RSTRING_LEN(str), lit, sizeof(lit"")-1)
|
||||
uint32_t mrb_byte_hash(const uint8_t*, mrb_int);
|
||||
uint32_t mrb_byte_hash_step(const uint8_t*, mrb_int, uint32_t);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user