#!/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]; }