Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
StringScanner#scan_base16_integer
scan_base16_integer
ext/strscan/strscan.c
View on GitHub ↗
static VALUE
strscan_scan_base16_integer(VALUE self)
{
char *ptr;
long len = 0;
struct strscanner *p;
GET_SCANNER(self, p);
CLEAR_MATCH_STATUS(p);
strscan_must_ascii_compat(p->str);
ptr = CURPTR(p);
long remaining_len = S_RESTLEN(p);
if (remaining_len <= 0) {
return Qnil;
}
if (ptr[len] == '-' || ptr[len] == '+') {
len++;
}
if ((remaining_len >= (len + 2)) && ptr[len] == '0' && ptr[len + 1] == 'x') {
len += 2;
}
if (len >= remaining_len || !rb_isxdigit(ptr[len])) {
return Qnil;
}
MATCHED(p);
p->prev = p->curr;
while (len < remaining_len && rb_isxdigit(ptr[len])) {
len++;
}
return strscan_parse_integer(p, 16, len);
}
No documentation available