Also look in the next-highest directory when detecting VCS; add SVN
[interchange.git] / code / UI_Tag / cp.coretag
1 # Copyright 2002-2007 Interchange Development Group and others
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.  See the LICENSE file for details.
7
8 UserTag cp Order      from to
9 UserTag cp addAttr
10 UserTag cp Version    1.5
11 UserTag cp Routine    <<EOR
12 require File::Copy;
13 sub {
14         my ($from, $to, $opt) = @_;
15 #Debug("cp from=$from to=$to umask=$opt->{umask}");
16         my $save_mask;
17         if($opt->{umask}) {
18                 $opt->{umask} = oct($opt->{umask});
19                 $save_mask = umask($opt->{umask});
20         }
21         my $status = File::Copy::copy($from, $to);
22
23         if ($opt->{preserve_times}) {
24                 my ($atime, $mtime);
25
26                 ($atime, $mtime) = (stat $from)[8,9];
27
28                 if ($atime) {
29                         $status = utime($atime, $mtime, $from);
30                 }
31                 else {
32                         $status = 0;
33                 }
34         }
35
36         umask($save_mask) if defined $save_mask;
37         return '' if $opt->{hide};
38         return $status;
39 }
40 EOR