let rec mv ?(force=Force) fln_src fln_dst =
let fln_src_abs = make_absolute (pwd ()) fln_src
in
let fln_dst_abs = make_absolute (pwd ()) fln_dst
in
if compare fln_src_abs fln_dst_abs <> 0 then
if test Exists fln_dst_abs then
if doit force fln_dst then
(
rm [fln_dst_abs];
mv fln_src_abs fln_dst_abs
)
else
()
else if test Is_dir fln_dst_abs then
mv ~force:force
fln_src_abs
(make_absolute fln_dst_abs (basename fln_src_abs))
else if test Exists fln_src_abs then
Sys.rename fln_src_abs fln_src_abs
else
raise MvNoSourceFile
else
()