1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Copyright 2023 The rust-ggstd authors. All rights reserved.
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// //go:build unix || (js && wasm)
// package os
// const (
// PathSeparator = '/' // OS-specific path separator
// PathListSeparator = ':' // OS-specific path list separator
// )
/// is_path_separator reports whether c is a directory separator character.
// // basename removes trailing slashes and the leading directory name from path name.
// fn basename(name string) string {
// i := len(name) - 1
// // Remove trailing slashes
// for ; i > 0 && name[i] == '/'; i-- {
// name = name[:i]
// }
// // Remove leading directory name
// for i--; i >= 0; i-- {
// if name[i] == '/' {
// name = name[i+1:]
// break
// }
// }
// return name
// }
// // splitPath returns the base name and parent directory.
// fn splitPath(path string) (string, string) {
// // if no better parent is found, the path is relative from "here"
// dirname := "."
// // Remove all but one leading slash.
// for len(path) > 1 && path[0] == '/' && path[1] == '/' {
// path = path[1:]
// }
// i := len(path) - 1
// // Remove trailing slashes.
// for ; i > 0 && path[i] == '/'; i-- {
// path = path[:i]
// }
// // if no slashes in path, base is path
// basename := path
// // Remove leading directory path
// for i--; i >= 0; i-- {
// if path[i] == '/' {
// if i == 0 {
// dirname = path[:1]
// } else {
// dirname = path[:i]
// }
// basename = path[i+1:]
// break
// }
// }
// return dirname, basename
// }
// fn fixRootDirectory(p string) string {
// return p
// }