diff options
Diffstat (limited to 'util/su-filter.pl')
-rwxr-xr-x | util/su-filter.pl | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/util/su-filter.pl b/util/su-filter.pl deleted file mode 100755 index 8975af64f95c..000000000000 --- a/util/su-filter.pl +++ /dev/null @@ -1,260 +0,0 @@ -#!/usr/bin/env perl -# -# su-filter.pl -# -use strict; - -my $in_su = 0; -my $indent = 0; -my $out; -my $braces = 0; -my $arrcnt; -my $data; -my $tststr; -my $incomm = 0; - -while(<>) { - $tststr = $_; - $incomm++ while $tststr =~ /\/\*/g; - $incomm-- while $tststr =~ /\*\//g; - - if($in_su == 1) { - if(/}(.*);/) { - $out .= $_; - do_output($out); - $in_su = 0; - } elsif(/^ *\} [^\s]+(\[\d*\])* = \{/) { - $tststr = $1; - $arrcnt = 0; - $arrcnt++ while $tststr =~ /\[/g; - $in_su++; - $braces = 1; - /^(.* = \{)(.*)$/; - $data = $2; - $out .= $1."\n"; - } else { - $out .= $_; - } - } elsif($in_su == 2) { - $data .= $_; - if(/};$/) { - #$data = "\n$data"; - $data =~ s/\n */\n/g; - $data =~ s/};\n?//s; - my @strucdata = structureData($data); - $out .= displayData($indent, 0, \@strucdata); - $out .= "\n$indent};\n"; - do_output($out); - $in_su = 0; - } - } elsif($incomm <= 0 && /( *)(static )?(const )?(union|struct) ([^\s]+ )?\{/) { - $in_su = 1; - $indent = $1; - $out = $_; - next; - } else { - do_output($_); - } -} - - -sub structureData { - my $data = $_[0]; - my @datalist = split(/(\{|\}|,|"|#|\n|\/\*|\*\/|\(|\))/, $data); - my $item; - my $dataitem = ""; - my @struclist = (); - my $substruc; - my $inquote = 0; - my $inbrace = 0; - my $preproc = 0; - my $comment = 0; - my $inparen = 0; - - - foreach $item (@datalist) { - if($comment) { - if($item eq "*/") { - $comment = 0; - $dataitem .= "*/"; - push @struclist, $dataitem; - $dataitem = ""; - next; - } - $dataitem .= $item; - next; - } - if($inquote) { - $dataitem .= $item; - if($item eq "\"") { - $inquote--; - } - next; - } - if($preproc) { - if($item eq "\n") { - $preproc = 0; - push @struclist, $dataitem; - $dataitem = ""; - next; - } - $dataitem .= $item; - next; - } - if($inbrace) { - if($item eq "}") { - $inbrace --; - - if(!$inbrace) { - $substruc = structureData($dataitem); - $dataitem = $substruc; - next; - } - } elsif($item eq "{") { - $inbrace++; - } elsif ($item eq "\"") { - $inquote++; - } - $dataitem .= $item; - next; - } - if($inparen) { - if($item eq ")") { - $inparen--; - } - $dataitem .= $item; - next; - } - if($item eq "\n") { - next; - } - if($item eq "#") { - $preproc = 1; - push @struclist, $dataitem; - $dataitem = "#"; - next; - } - if($item eq "/*") { - $comment = 1; - push @struclist, $dataitem; - $dataitem= "/*"; - next; - } - if($item eq "\"") { - $dataitem .= $item; - $inquote++; - next; - } - if($item eq "{") { - $inbrace++; - next; - } - if($item eq ",") { - push @struclist, $dataitem; - $dataitem = ""; - next; - } - if($item eq "(") { - $dataitem .= $item; - $inparen++; - next; - } - if($item =~ /^\s*$/) { - next; - } - if(ref $dataitem eq 'ARRAY') { - push @struclist, $dataitem; - $dataitem = ""; - } - $dataitem .= $item; - } - push @struclist, $dataitem; - return \@struclist; -} - -sub displayData { - my $indent = shift; - my $depth = shift; - my $data = shift; - my $item; - my $out = ""; - my $currline = ""; - my $first = 1; - my $prevpreproc = 0; - my $prevcomment = 0; - - foreach $item (@{$data}) { - if($item =~ /^\/\*/) { - #Comment - $item =~ s/\n/\n$indent/g; - if($out =~ /\n\s*$/s) { - $out .= $item."\n".$indent; - } else { - $out .= "\n".$indent.$item."\n".$indent; - } - $currline = $indent; - $prevcomment = 1; - next; - } - $item =~ s/^\s+//; - if($item =~ /^#/) { - #Pre-processor directive - if($out =~ /\n\s*$/s) { - $out =~ s/\n\s*$/\n/; - $out .= $item."\n".$indent; - } else { - $out .= "\n".$item."\n".$indent; - } - $currline = $indent; - $prevpreproc = 1; - next; - } - if($first) { - $first = 0; - if($depth != 0) { - $out .= $indent; - $currline = $indent; - } - } else { - if(!$prevpreproc && !$prevcomment) { - $out .= ", "; - $currline .= ", "; - if($depth == 1) { - $out .= "\n"; - $currline = ""; - } - if($depth == 1) { - $out .= $indent; - $currline .= $indent; - } - } - - } - $prevpreproc = 0; - $prevcomment = 0; - - if (ref $item eq 'ARRAY') { - if($depth == 0) { - $out .= displayData("$indent ", $depth+1, $item); - } else { - $out .= "{\n".displayData("$indent ", $depth+1, $item)."\n".$indent."}"; - $currline = $indent."}"; - } - } else { - if(length $currline.$item > 79) { - $currline = $indent; - $out .= "\n$indent"; - } - $out .= $item; - $currline .= $item; - } - } - return $out; -} - -sub do_output { - my $out = shift; - # Strip any trailing whitespace - $out =~ s/\s+\n/\n/g; - print $out; -} |