Mercurial > hg > CbC > CbC_gcc
view contrib/filter_knr2ansi.pl @ 144:8f4e72ab4e11
fix segmentation fault caused by nothing next cur_op to end
author | Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 23 Dec 2018 21:23:56 +0900 |
parents | a06113de4d67 |
children |
line wrap: on
line source
#!/usr/bin/perl # # Goes through the input line by line to find K&R style function # declarations, and replaces them with ANSI style declarations. # @blah = <>; for ($i = 0; $i < @blah; $i++) { if ($blah[$i] =~ /^([a-zA-Z_0-9]+)\s*\([^)]+\)\s*$/) { $name = $1; $funci = $i; $blah[$funci]="$name ("; $i++; $lastline = $i; while ($lastline < @blah && $blah[$lastline] !~ /^{/) { $lastline++; } $lastline--; while ($i < @blah && $blah[$i] !~ /^{/) { $arg = $blah[$i]; if ($i != $lastline) { $arg =~ s/;/,/g; } else { $arg =~ s/;//g; } $blah[$i] = ""; $blah[$funci] = "$blah[$funci]" . "$arg"; $i++; } $blah[$funci] = "$blah[$funci]" . ")\n"; } } for ($i = 0; $i < @blah; $i++) { print $blah[$i]; }