os: fix os.mv edge case and Windows style paths (#6302)

pull/6297/head^2
Larpon 2020-09-06 13:12:07 +02:00 committed by GitHub
parent 9fbea31f47
commit 51d7d7cfae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 9 deletions

View File

@ -60,10 +60,12 @@ pub fn file_size(path string) int {
pub fn mv(src, dst string) {
mut rdst := dst
if is_dir(rdst) {
rdst = join_path(rdst,file_name(src.trim_right(path_separator)))
rdst = join_path(rdst.trim_right(path_separator),file_name(src.trim_right(path_separator)))
}
$if windows {
C._wrename(src.to_wide(), rdst.to_wide())
w_src := src.replace('/', '\\')
w_dst := rdst.replace('/', '\\')
C._wrename(w_src.to_wide(), w_dst.to_wide())
} $else {
C.rename(charptr(src.str), charptr(rdst.str))
}

View File

@ -186,13 +186,9 @@ fn test_cp() {
os.rm(new_file_name)
}
/*
fn test_mv() {
work_dir := os.join_path(os.temp_dir(),'v','mv_test')
if os.exists(work_dir) {
os.rmdir_all(work_dir)
}
mkdir_all(work_dir)
work_dir := os.join_path(os.getwd(),'mv_test')
os.mkdir_all(work_dir)
// Setup test files
tfile1 := os.join_path(work_dir,'file')
tfile2 := os.join_path(work_dir,'file.test')
@ -230,7 +226,6 @@ fn test_mv() {
expected = tfile3
assert os.exists(expected) && !is_dir(expected) == true
}
*/
fn test_cp_r() {
// fileX -> dir/fileX