Fix #9126: use splitPath instead of substr

This commit is contained in:
Yasuhiro Horimoto
2018-09-30 23:13:16 +09:00
parent 99a874cc8a
commit aa8249d177
2 changed files with 16 additions and 2 deletions

View File

@@ -1048,7 +1048,7 @@ proc copyDir*(source, dest: string) {.rtl, extern: "nos$1",
## these platforms use `copyDirWithPermissions() <#copyDirWithPermissions>`_.
createDir(dest)
for kind, path in walkDir(source):
var noSource = path.substr(source.len()+1)
var noSource = splitPath(path).tail
case kind
of pcFile:
copyFile(path, dest / noSource)
@@ -1232,7 +1232,7 @@ proc copyDirWithPermissions*(source, dest: string,
if not ignorePermissionErrors:
raise
for kind, path in walkDir(source):
var noSource = path.substr(source.len()+1)
var noSource = splitPath(path).tail
case kind
of pcFile:
copyFileWithPermissions(path, dest / noSource, ignorePermissionErrors)

View File

@@ -43,6 +43,8 @@ true
true
true
true
true
true
'''
"""
@@ -132,6 +134,18 @@ echo fileExists("../dest/a/b/file.txt")
echo fileExists("../dest/a/b/c/fileC.txt")
removeDir("../dest")
# test copyDir:
# if separator at the end of a path
createDir("a/b")
open("a/file.txt", fmWrite).close
copyDir("a/", "../dest/a/")
removeDir("a")
echo dirExists("../dest/a/b")
echo fileExists("../dest/a/file.txt")
removeDir("../dest")
# Test get/set modification times
# Should support at least microsecond resolution
import times