merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4' as 'third_party/git'
This commit is contained in:
commit
7ef0d62730
3629 changed files with 1139935 additions and 0 deletions
55
third_party/git/t/t0019/parse_json.perl
vendored
Normal file
55
third_party/git/t/t0019/parse_json.perl
vendored
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use JSON;
|
||||
|
||||
sub dump_array {
|
||||
my ($label_in, $ary_ref) = @_;
|
||||
my @ary = @$ary_ref;
|
||||
|
||||
for ( my $i = 0; $i <= $#{ $ary_ref }; $i++ )
|
||||
{
|
||||
my $label = "$label_in\[$i\]";
|
||||
dump_item($label, $ary[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
sub dump_hash {
|
||||
my ($label_in, $obj_ref) = @_;
|
||||
my %obj = %$obj_ref;
|
||||
|
||||
foreach my $k (sort keys %obj) {
|
||||
my $label = (length($label_in) > 0) ? "$label_in.$k" : "$k";
|
||||
my $value = $obj{$k};
|
||||
|
||||
dump_item($label, $value);
|
||||
}
|
||||
}
|
||||
|
||||
sub dump_item {
|
||||
my ($label_in, $value) = @_;
|
||||
if (ref($value) eq 'ARRAY') {
|
||||
print "$label_in array\n";
|
||||
dump_array($label_in, $value);
|
||||
} elsif (ref($value) eq 'HASH') {
|
||||
print "$label_in hash\n";
|
||||
dump_hash($label_in, $value);
|
||||
} elsif (ref $value) {
|
||||
my $bool = $value ? 1 : 0;
|
||||
print "$label_in $bool\n";
|
||||
} elsif (defined $value) {
|
||||
print "$label_in $value\n";
|
||||
} else {
|
||||
print "$label_in null\n";
|
||||
}
|
||||
}
|
||||
|
||||
my $row = 0;
|
||||
while (<>) {
|
||||
my $data = decode_json( $_ );
|
||||
my $label = "row[$row]";
|
||||
|
||||
dump_hash($label, $data);
|
||||
$row++;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue