PK
qhYξΆJίF ίF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Notice: ob_end_clean(): Failed to delete buffer. No buffer to delete in /home/foruwedy/public_html/57dae0/index.php on line 8
| Dir : /home/foruwedy/public_html/vendor/psy/psysh/src/Util/ |
| Server: Linux premium227.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64 IP: 66.29.146.38 |
| Dir : /home/foruwedy/public_html/vendor/psy/psysh/src/Util/Str.php |
<?php
/*
* This file is part of Psy Shell.
*
* (c) 2012-2023 Justin Hileman
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Psy\Util;
/**
* String utility methods.
*
* @author ju1ius
*/
class Str
{
const UNVIS_RX = <<<'EOS'
/
\\(?:
((?:040)|s)
| (240)
| (?: M-(.) )
| (?: M\^(.) )
| (?: \^(.) )
)
/xS
EOS;
/**
* Decodes a string encoded by libsd's strvis.
*
* From `man 3 vis`:
*
* Use an βMβ to represent meta characters (characters with the 8th bit set),
* and use a caret β^β to represent control characters (see iscntrl(3)).
* The following formats are used:
*
* \040 Represents ASCII space.
*
* \240 Represents Meta-space (  in HTML).
*
* \M-C Represents character βCβ with the 8th bit set.
* Spans characters β\241β through β\376β.
*
* \M^C Represents control character βCβ with the 8th bit set.
* Spans characters β\200β through β\237β, and β\377β (as β\M^?β).
*
* \^C Represents the control character βCβ.
* Spans characters β\000β through β\037β, and β\177β (as β\^?β).
*
* The other formats are supported by PHP's stripcslashes,
* except for the \s sequence (ASCII space).
*
* @param string $input The string to decode
*/
public static function unvis(string $input): string
{
$output = \preg_replace_callback(self::UNVIS_RX, [self::class, 'unvisReplace'], $input);
// other escapes & octal are handled by stripcslashes
return \stripcslashes($output);
}
/**
* Callback for Str::unvis.
*
* @param array $match The matches passed by preg_replace_callback
*/
protected static function unvisReplace(array $match): string
{
// \040, \s
if (!empty($match[1])) {
return "\x20";
}
// \240
if (!empty($match[2])) {
return "\xa0";
}
// \M-(.)
if (isset($match[3]) && $match[3] !== '') {
$chr = $match[3];
// unvis S_META1
$cp = 0200;
$cp |= \ord($chr);
return \chr($cp);
}
// \M^(.)
if (isset($match[4]) && $match[4] !== '') {
$chr = $match[4];
// unvis S_META | S_CTRL
$cp = 0200;
$cp |= ($chr === '?') ? 0177 : \ord($chr) & 037;
return \chr($cp);
}
// \^(.)
if (isset($match[5]) && $match[5] !== '') {
$chr = $match[5];
// unvis S_CTRL
$cp = 0;
$cp |= ($chr === '?') ? 0177 : \ord($chr) & 037;
return \chr($cp);
}
}
}