Francois Gouget wrote:
So if noone objects I'll send a patch that stops 'ok' from appending this '\n', and adds a '\n' to all calls to ok. Actually, I would be pretty happy if someone could come up with a perl script doing the latter...
I came up with a perl script that does what you want. It may not be perfect though so use it with caution.
Enjoy, Glen Kaukola
#!/usr/bin/perl sub fix_oks { my $c_file = $_[0];
open(FILE_HANDLE, "<$c_file") or die("Error opening file $c_file\n"); my @contents = <FILE_HANDLE>; close(FILE_HANDLE);
#add a new line to the end of any ok calls we find s/(.*)(\bok(.*)([^"])(^"*)(")(.*)/$1$2$3$4\n$5$6/g for @contents;
open(FILE_HANDLE, ">$c_file"); print(FILE_HANDLE @contents); close(FILE_HANDLE); }
sub do_current_dir { my $i = 0;
#get the current directory's listing opendir(DIR_HANDLE, ".") or die("Error opening $directory\n"); my @dir_listing = grep { !/^..?/ } readdir(DIR_HANDLE); closedir(DIR_HANDLE);
#for each file in the directory while($dir_listing[$i]) { #if a directory is found then do that one too if(-d $dir_listing[$i]) { chdir $dir_listing[$i]; do_current_dir(); chdir ".."; }
#if it's a c file then fix the calls to ok if($dir_listing[$i] =~ /.c$/) { fix_oks($dir_listing[$i]); }
$i++; } }
do_current_dir();