wrowe       01/04/06 18:03:15

  Added:       build    cvtdsp.pl
  Removed:     build    cvstodsp5.pl dsp5tocvs.pl
  Log:
    execute from the source tree root (e.g. httpd-2.0 or apr itself) with
    the syntax perl cvsdsp5 -[5|6] to convert to devstudio 5 or 6 dsp format
  
  Revision  Changes    Path
  1.1                  apr/build/cvtdsp.pl
  
  Index: cvtdsp.pl
  ===================================================================
  use IO::File;
  use File::Find;
  
  if ($ARGV[0] == '-6') {
      find(\&tovc6, '.');
  }
  else {
      if ($ARGV[0] == '-5') {
          find(\&tovc5, '.');
      }
      else {
          print "Specify -5 or -6 for Visual Studio 5 or 6 (98) .dsp 
format\n\n";
          die "Missing argument";
      }
  }
  
  sub tovc5 { 
  
      if (m|.dsp$|) {
          $oname = $_;
        $tname = '.#' . $_;
          $verchg = 0;
        $srcfl = new IO::File $oname, "r" || die;
        $dstfl = new IO::File $tname, "w" || die;
        while ($src = <$srcfl>) {
            if ($src =~ s|Format Version 6\.00|Format Version 5\.00|) {
                $verchg = -1;
            }
            if ($src =~ s|^(# ADD CPP .*)/ZI (.*)|$1/Zi $2|) {
                $verchg = -1;
            }
            if ($src =~ s|^(# ADD BASE CPP .*)/ZI (.*)|$1/Zi $2|) {
                $verchg = -1;
            }
            if ($src !~ m|^# PROP AllowPerConfigDependencies|) {
                print $dstfl $src; }
            else {
                $verchg = -1;
  
            }
        }
        undef $srcfl;
        undef $dstfl;
        if ($verchg) {
            unlink $oname || die;
            rename $tname, $oname || die;
            print "Converted VC6 project " . $oname . " to VC5 in " . 
$File::Find::dir . "\n"; 
        }
        else {
            unlink $tname;
        }
      }
  }
  
  sub tovc6 { 
  
      if (m|.dsp$|) {
          $oname = $_;
        $tname = '.#' . $_;
        $verchg = 0;
        $srcfl = new IO::File $_, "r" || die;
        $dstfl = new IO::File $tname, "w" || die;
        while ($src = <$srcfl>) {
            if ($src =~ s|Format Version 5\.00|Format Version 6\.00|) {
                $verchg = -1;
            }
            if ($src =~ s|^(# ADD CPP .*)/Zi (.*)|$1/ZI $2|) {
                $verchg = -1;
            }
            if ($src =~ s|^(# ADD BASE CPP .*)/Zi (.*)|$1/ZI $2|) {
                $verchg = -1;
            }
            if ($src =~ s|^(!MESSAGE .*)\\\n|$1|) {
                $cont = <$srcfl>;
                $src = $src . $cont;
                $verchg = -1;
            }
              print $dstfl $src; 
            if ($verchg && $src =~ m|^# Begin Project|) {
                print $dstfl "# PROP AllowPerConfigDependencies 0\n"; 
            }
        }
        undef $srcfl;
        undef $dstfl;
        if ($verchg) {
            unlink $oname || die;
            rename $tname, $oname || die;
            print "Converted VC5 project " . $oname . " to VC6 in " . 
$File::Find::dir . "\n"; 
        }
        else {
            unlink $tname;
        }
      }
  }
  
  
  

Reply via email to