aboutsummaryrefslogtreecommitdiff
path: root/util/su-filter.pl
diff options
context:
space:
mode:
Diffstat (limited to 'util/su-filter.pl')
-rwxr-xr-xutil/su-filter.pl260
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;
-}