os: fix trailing slash in dir() (#7283)

pull/7286/head
yuyi 2020-12-12 17:59:43 +08:00 committed by GitHub
parent d785e22a6e
commit 095327134e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 4 deletions

View File

@ -651,12 +651,9 @@ pub fn dir(path string) string {
if path == '' { if path == '' {
return '.' return '.'
} }
mut pos := path.last_index(path_separator) or { pos := path.last_index(path_separator) or {
return '.' return '.'
} }
if path.ends_with(path_separator) {
pos--
}
return path[..pos] return path[..pos]
} }

View File

@ -440,8 +440,10 @@ fn test_join() {
fn test_dir() { fn test_dir() {
$if windows { $if windows {
assert os.dir('C:\\a\\b\\c') == 'C:\\a\\b' assert os.dir('C:\\a\\b\\c') == 'C:\\a\\b'
assert os.dir('C:\\a\\b\\') == 'C:\\a\\b'
} $else { } $else {
assert os.dir('/var/tmp/foo') == '/var/tmp' assert os.dir('/var/tmp/foo') == '/var/tmp'
assert os.dir('/var/tmp/') == '/var/tmp'
} }
assert os.dir('os') == '.' assert os.dir('os') == '.'
} }