apheleia/test/formatters/samplecode/perltidy/out.pl
Ed Slocomb f884d1d611
Bump test environment to Ubuntu 22.04 (#242)
This also fixes a few test installers:

- rustfmt is available via apt-get in 22.04, use that instead of tarball
that's no longer available
- brittany now installs cleanly in the default haskell ghc/cabal in
22.04, so just use that
- perltidy in 22.04 has slightly different output
- nixfmt download url changed (now includes OS/arch). There was
initially no binary available when nixfmt was updated,
but the devs there were kind enough to provide one:
https://github.com/serokell/nixfmt/issues/139

This runs a full `make fmt-build` without errors, though it takes a
while ;). All tests pass, too.
2023-11-11 16:24:28 -08:00

32 lines
1 KiB
Raku

# Taken from https://stackoverflow.com/q/30848816
while ( read +STDIN, $_, 2048 ) {
$a = 29;
$b = 73;
$c = 142;
$t = 255;
@t = map {
$_ % 16
or $t ^= $c ^=
( $m = ( 11, 10, 116, 100, 11, 122, 20, 100 )[ $_ / 16 % 8 ] ) & 110;
$t ^= (
72,
@z = ( 64, 72, $a ^= 12 * ( $_ % 16 - 2 ? 0 : $m & 17 ) ),
$b ^= $_ % 64 ? 12 : 0, @z
)[ $_ % 8 ]
} ( 16 .. 271 );
if ( ( @a = unx "C*", $_ )[20] & 48 ) {
$h = 5;
$_ = unxb24, join "",
@b = map { xB8, unxb8, chr( $_ ^ $a[ --$h + 84 ] ) } @ARGV;
s/...$/1$&/;
$d = unxV, xb25, $_;
$e = 256 | ( ord $b[4] ) << 9 | ord $b[3];
$d = $d >> 8 ^ ( $f = $t & ( $d >> 12 ^ $d >> 4 ^ $d ^ $d / 8 ) ) << 17,
$e =
$e
>> 8 ^ ( $t & ( $g = ( $q = $e >> 14 & 7 ^ $e ) ^ $q * 8 ^ $q << 6 ) )
<< 9, $_ = $t[$_] ^ ( ( $h >>= 8 ) += $f + ( ~$g & $t ) )
for @a[ 128 .. $#a ];
}
print +x "C*", @a;
}