📄 tos-decode-flid
字号:
#!/usr/bin/perl -w
use strict;
sub decode ($$) {
my $a = shift;
my $b = shift;
die if ($a<0 || $a>3);
die if ($b<0 || $b>3);
my $c = ($a << 2) + $b;
my $h = sprintf "%X", $c;
return $h;
}
sub usage() {
print "Usage: tos-decode-flid flid-file flid\n";
exit 2;
}
sub make_flid () {
my $flid = $ARGV[1];
die "expected 8 characters" if (length($flid) != 8);
my $flidstr =
"0x" .
decode(substr($flid,0,1),substr($flid,1,1)) .
decode(substr($flid,2,1),substr($flid,3,1)) .
decode(substr($flid,4,1),substr($flid,5,1)) .
decode(substr($flid,6,1),substr($flid,7,1));
}
usage() if (scalar(@ARGV)!=2);
my $flidstr = make_flid();
my $fn = $ARGV[0];
my $found = 0;
if (defined ($fn)) {
open INF, "<$fn" or die;
while (my $line = <INF>) {
chomp $line;
my @fields = split /\#\#\#/, $line;
foreach (@fields) {
(s/^\s*//g);
(s/\s*$//g);
(s/^\"//g);
(s/\"$//g);
}
if (hex($fields[0]) == hex($flidstr)) {
my $check = $fields[1];
my $text = $fields[2];
my $loc = $fields[3];
my $func = $fields[4];
$found = 1;
print "Deputy error message for flid $flidstr:\n\n";
printf "%s: %s: Assertion failed in %s:\n %s\n",
$loc, $func, $check, $text;
}
}
close INF;
}
else {
usage();
}
if (!$found) {
print "oops -- flid $flidstr not found in file\n";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -