--- loncom/interface/londocs.pm	2013/01/09 04:31:57	1.529
+++ loncom/interface/londocs.pm	2013/01/14 20:32:04	1.532
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.529 2013/01/09 04:31:57 raeburn Exp $
+# $Id: londocs.pm,v 1.532 2013/01/14 20:32:04 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -152,7 +152,7 @@ sub dumpcourse {
             $r->print(&endContentScreen());
             return '';
         }
-	my ($ca,$cd)=split(/\@/,$env{'form.authorspace'});
+	my ($ca,$cd)=split(/\:/,$env{'form.authorspace'});
 	$r->print('<h3>'.&mt('Copying Files').'</h3>');
 	my $title=$env{'form.authorfolder'};
 	$title=&clean($title);
@@ -337,7 +337,7 @@ sub group_import {
                       );
         &apply_fixups($folder,1,$coursedom,$coursenum,\%import_errors,\%updated);
         if (keys(%import_errors) > 0) {
-            $fixuperrors = 
+            $fixuperrors =
                 '<p span class="LC_warning">'."\n".
                 &mt('The following files are either dependencies of a web page or references within a folder and/or composite page for which errors occurred during import:')."\n".
                 '<ul>'."\n";
@@ -1066,7 +1066,7 @@ sub do_paste_from_buffer {
                    copies   => \%copies,
                    docmoves => \%docmoves,
                    mapmoves => \%mapmoves,
-                );  
+                );
     $result =
         &apply_fixups($folder,$is_map,$coursedom,$coursenum,$errors,
                       \%updated,\%info,\%moves,$prefixchg,$oldurl,$url,'paste');
@@ -1282,13 +1282,13 @@ sub url_paste_fixups {
             my $title = $token->[2]->{'title'};
             if ($checktitle) {
                 if ($title =~ m{\d+\Q___&amp;&amp;&amp;___\E$match_username\Q___&amp;&amp;&amp;___\E$match_domain\Q___&amp;&amp;&amp;___\E(.+)$}) {
-                    $retitles->{$oldurl}{$ressrc} = $id;
+                    $retitles->{$oldurl}{$id} = $ressrc;
                 }
             }
             next if ($token->[2]->{'type'} eq 'external');
             if ($token->[2]->{'type'} eq 'zombie') {
                 next if ($skip);  
-                $zombies->{$oldurl}{$ressrc} = $id;
+                $zombies->{$oldurl}{$id} = $ressrc;
                 $changed = 1;
             } elsif ($ressrc =~ m{^/uploaded/($match_domain)/($match_courseid)/(.+)$}) {
                 my $srcdom = $1;
@@ -1321,7 +1321,7 @@ sub url_paste_fixups {
                     ($mapchanges->{$oldurl}) || (($newurl ne '') && ($newurl ne $oldurl))) {
                    
                     if ($rem =~ /^(default|supplemental)(_?\d*).(sequence|page)$/) {
-                        $rewrites->{$oldurl}{$ressrc} = $id;
+                        $rewrites->{$oldurl}{$id} = $ressrc;
                         $mapchanges->{$ressrc} = 1;
                         unless (&url_paste_fixups($ressrc,$folder,$prefixchg,$cdom,$cnum,$allmaps,
                                                   $rewrites,$retitles,$copies,$dbcopies,$zombies,
@@ -1331,7 +1331,7 @@ sub url_paste_fixups {
                         }
                         $changed = 1;
                     } else {
-                        $rewrites->{$oldurl}{$ressrc} = $id;
+                        $rewrites->{$oldurl}{$id} = $ressrc;
                         $copies->{$oldurl}{$ressrc} = $id;
                         $changed = 1;
                     }
@@ -1341,7 +1341,7 @@ sub url_paste_fixups {
                 my $srcdom = $1;
                 my $srcnum = $2;
                 if (($srcdom ne $cdom) || ($srcnum ne $cnum)) {
-                    $rewrites->{$oldurl}{$ressrc} = $id;
+                    $rewrites->{$oldurl}{$id} = $ressrc;
                     $dbcopies->{$oldurl}{$ressrc} = $id;
                     $changed = 1;
                 }
@@ -1350,7 +1350,7 @@ sub url_paste_fixups {
                 my $srcdom = $1;
                 my $srcnum = $2;
                 if (($srcdom ne $cdom) || ($srcnum ne $cnum)) {
-                    $rewrites->{$oldurl}{$ressrc} = $id;
+                    $rewrites->{$oldurl}{$id} = $ressrc;
                     $dbcopies->{$oldurl}{$ressrc} = $id;
                     $changed = 1;
                 }
@@ -1436,7 +1436,7 @@ sub apply_fixups {
         }
         if ($key eq $oldurl) {
             if ((exists($docmoves{$key}))) {
-                unless (grep(/^\Q$oldurl\E/,@allcopies)) {
+                unless (grep(/^\Q$oldurl\E$/,@allcopies)) {
                     push(@allcopies,$oldurl);
                 }
             }
@@ -1458,7 +1458,7 @@ sub apply_fixups {
                                 $storefn =~ s/^\Q$before{'doc'}\E/$after{'doc'}/;
                             }
                             if ($newsubdir{$key}) {
-                                $storefn =~ s#^(docs|supplemental)/\Q$oldsubdir\E/#$1/$newsubdir{$key}#;
+                                $storefn =~ s#^(docs|supplemental)/\Q$oldsubdir\E/#$1/$newsubdir{$key}/#;
                             }
                         }
                         &copy_dependencies($item,$storefn,$relpath,$errors,\$content);
@@ -1545,7 +1545,7 @@ sub apply_fixups {
             for (my $i=0; $i<@LONCAPA::map::zombies; $i++) {
                 if (defined($LONCAPA::map::zombies[$i])) {
                     my ($title,$src,$ext,$type)=split(/\:/,$LONCAPA::map::zombies[$i]);
-                    if ($zombie{$src} eq $i) {
+                    if ($zombie{$i} eq $src) {
                         undef($LONCAPA::map::zombies[$i]);
                     }
                 }
@@ -1565,12 +1565,12 @@ sub apply_fixups {
                         next;
                     }
                     my $origsrc = $src;
-                    if ((exists($toretitle{$src})) && ($toretitle{$src} eq $idx)) {
+                    if ((exists($toretitle{$idx})) && ($toretitle{$idx} eq $src)) {
                         if ($title =~ m{^\d+\Q___&amp;&amp;&amp;___\E$match_username\Q___&amp;&amp;&amp;___\E$match_domain\Q___&amp;&amp;&amp;___\E(.+)$}) {
                             $changed = 1;
                         }
                     }
-                    if ((exists($torewrite{$src})) && ($torewrite{$src} eq $idx)) {
+                    if ((exists($torewrite{$idx})) && ($torewrite{$idx} eq $src)) {
                         $src =~ s{^/(uploaded|adm|public)/$match_domain/$match_courseid/}{/$1/$cdom/$cnum/};
                         if ($origsrc =~ m{^/uploaded/}) {
                             if ($prefixchg && $before{'map'} && $after{'map'}) {
@@ -1580,12 +1580,12 @@ sub apply_fixups {
                                     $src =~ s#^(/uploaded/$match_domain/$match_courseid/)\Q$before{'doc'}\E#$1$after{'doc'}#;
                                 }
                             }
-                            if ($newsubdir{$origsrc}) {
-                                if ($src =~ /\.(page|sequence)$/) {
+                            if ($origsrc =~ /\.(page|sequence)$/) {
+                                if ($newsubdir{$origsrc}) {
                                     $src =~ s#^(/uploaded/$match_domain/$match_courseid/(?:default|supplemental)_)(\d+)#$1$newsubdir{$origsrc}#;
-                                } else {
-                                    $src =~ s#^(/uploaded/$match_domain/$match_courseid/\w+/)(\d+)#$1$newsubdir{$origsrc}#;
                                 }
+                            } elsif ($newsubdir{$key}) {
+                                $src =~ s#^(/uploaded/$match_domain/$match_courseid/\w+/)(\d+)#$1$newsubdir{$key}#;
                             }
                         }
                         $changed = 1;
@@ -1872,7 +1872,7 @@ sub editor {
 		    push(@imports, [$name, $url, $residx]);
 		}
 	    }
-	    ($errtext,$fatal,my $fixuperrors) =
+            ($errtext,$fatal,my $fixuperrors) =
                 &group_import($coursenum, $coursedom, $folder,$container,
                               'londocs',@imports);
 	    return $errtext if ($fatal);
@@ -3305,11 +3305,11 @@ sub handler {
        if ($env{'form.symb'} ne '') {
            $env{'form.folderpath'}=
                &Apache::loncommon::symb_to_docspath($env{'form.symb'});
-           &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => 
+           &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} =>
                $env{'form.command'}.'_'.$env{'form.symb'}});
        } elsif ($env{'form.supppath'} ne '') {
            $env{'form.folderpath'}=$env{'form.supppath'};
-           &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} => 
+           &Apache::lonnet::appenv({'docs.exit.'.$env{'request.course.id'} =>
                $env{'form.command'}.'_'.$env{'form.supppath'}});
        }
    } elsif ($env{'form.command'} eq 'editdocs') {
@@ -4417,8 +4417,8 @@ sub editing_js {
     my $toplevelsupp = &supplemental_base();
 
     my $backtourl;
-    if ($env{'docs.exit.'.$env{'request.course.id'}} =~ /^direct_(.+)$/) {   
-        my $caller = $1; 
+    if ($env{'docs.exit.'.$env{'request.course.id'}} =~ /^direct_(.+)$/) {
+        my $caller = $1;
         if ($caller =~ /^supplemental/) {
             $backtourl = '/adm/supplemental?folderpath='.&escape($caller);
         } else {