* Revision update for 2.1.0beta2.
[BackupPC.git] / lib / BackupPC / CGI / Restore.pm
index 2c1a285..c627712 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 2.1.0beta0, released 20 Mar 2004.
+# Version 2.1.0beta2, released 23 May 2004.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -87,9 +87,6 @@ EOF
     if ( $badFileCnt ) {
         ErrorExit($Lang->{Nice_try__but_you_can_t_put});
     }
-    if ( @fileList == 1 ) {
-       $pathHdr =~ s/(.*)\/.*/$1/;
-    }
     $pathHdr = "/" if ( $pathHdr eq "" );
     if ( $In{type} != 0 && @fileList == $In{fcbMax} ) {
        #
@@ -104,7 +101,7 @@ EOF
        #
        my $hostDestSel;
         my @hosts;
-       foreach my $h ( GetUserHosts() ) {
+       foreach my $h ( GetUserHosts(1) ) {
            my $sel = " selected" if ( $h eq $In{host} );
            $hostDestSel .= "<option value=\"$h\"$sel>${EscHTML($h)}</option>";
             push(@hosts, $h);
@@ -265,7 +262,8 @@ EOF
             my $targetFile = $f;
            (my $strippedShare = $share) =~ s/^\///;
            (my $strippedShareDest = $In{shareDest}) =~ s/^\///;
-            substr($targetFile, 0, length($pathHdr)) = $In{pathHdr};
+            substr($targetFile, 0, length($pathHdr)) = "/$In{pathHdr}/";
+           $targetFile =~ s{//+}{/}g;
             $fileListStr .= <<EOF;
 <tr><td>$host:/$strippedShare$f</td><td>$In{hostDest}:/$strippedShareDest$targetFile</td></tr>
 EOF
@@ -293,6 +291,9 @@ EOF
             $reqFileName = "restoreReq.$$.$i";
             last if ( !-f "$TopDir/pc/$hostDest/$reqFileName" );
         }
+       my $inPathHdr = $In{pathHdr};
+       $inPathHdr = "/$inPathHdr" if ( $inPathHdr !~ m{^/} );
+       $inPathHdr = "$inPathHdr/" if ( $inPathHdr !~ m{/$} );
         my %restoreReq = (
            # source of restore is hostSrc, #num, path shareSrc/pathHdrSrc
             num         => $In{num},
@@ -303,7 +304,7 @@ EOF
            # destination of restore is hostDest:shareDest/pathHdrDest
             hostDest    => $hostDest,
             shareDest   => $In{shareDest},
-            pathHdrDest => $In{pathHdr},
+            pathHdrDest => $inPathHdr,
 
            # list of files to restore
             fileList    => \@fileList,