/var/www/vhosts/ihelp.ro/httpdocs/vendor/psy/psysh/src/Readline/Hoa
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/psy/psysh/src/Readline/Hoa/Ustring.php (5130B)
$c || (0x7F <= $c && $c < 0xA0)) {
return -1;
}
// Non-spacing characters.
if (0xAD !== $c &&
0 !== \preg_match('#^[\p{Mn}\p{Me}\p{Cf}\x{1160}-\x{11ff}\x{200b}]#u', $char)) {
return 0;
}
// If we arrive here, $c is not a combining C0/C1 control character.
return 1 +
(0x1100 <= $c &&
(0x115F >= $c || // Hangul Jamo init. consonants
0x2329 === $c || 0x232A === $c ||
(0x2E80 <= $c && 0xA4CF >= $c &&
0x303F !== $c) || // CJK…Yi
(0xAC00 <= $c && 0xD7A3 >= $c) || // Hangul Syllables
(0xF900 <= $c && 0xFAFF >= $c) || // CJK Compatibility Ideographs
(0xFE10 <= $c && 0xFE19 >= $c) || // Vertical forms
(0xFE30 <= $c && 0xFE6F >= $c) || // CJK Compatibility Forms
(0xFF00 <= $c && 0xFF60 >= $c) || // Fullwidth Forms
(0xFFE0 <= $c && 0xFFE6 >= $c) ||
(0x20000 <= $c && 0x2FFFD >= $c) ||
(0x30000 <= $c && 0x3FFFD >= $c)));
}
/**
* Check whether the character is printable or not.
*/
public static function isCharPrintable(string $char): bool
{
return 1 <= static::getCharWidth($char);
}
/**
* Get a decimal code representation of a specific character.
*/
public static function toCode(string $char): int
{
$char = (string) $char;
$code = \ord($char[0]);
$bytes = 1;
if (!($code & 0x80)) { // 0xxxxxxx
return $code;
}
if (($code & 0xE0) === 0xC0) { // 110xxxxx
$bytes = 2;
$code = $code & ~0xC0;
} elseif (($code & 0xF0) === 0xE0) { // 1110xxxx
$bytes = 3;
$code = $code & ~0xE0;
} elseif (($code & 0xF8) === 0xF0) { // 11110xxx
$bytes = 4;
$code = $code & ~0xF0;
}
for ($i = 2; $i <= $bytes; $i++) { // 10xxxxxx
$code = ($code << 6) + (\ord($char[$i - 1]) & ~0x80);
}
return $code;
}
}