[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: tests: ok(0,"foo") prints a '\n'!
From:       Glen <gkaukola () earthlink ! net>
Date:       2002-12-30 22:00:01
[Download RAW message or body]

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();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic