diff options
author | 2023-05-31 16:07:52 -0300 | |
---|---|---|
committer | 2023-05-31 12:07:52 -0700 | |
commit | 58fcb60831f346a7f07a258f67bdf40e55e094d2 (patch) | |
tree | 5894a003bcde916f3857985917de4b36c4b1294c /src/bun.js | |
parent | 557aac6a34bcd06bba98060f67bb7295d6c462d9 (diff) | |
download | bun-58fcb60831f346a7f07a258f67bdf40e55e094d2.tar.gz bun-58fcb60831f346a7f07a258f67bdf40e55e094d2.tar.zst bun-58fcb60831f346a7f07a258f67bdf40e55e094d2.zip |
fix(path) fix parse behavior (#3134)
Diffstat (limited to 'src/bun.js')
-rw-r--r-- | src/bun.js/node/types.zig | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index bbe2ea654..063e6bd8e 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -1776,14 +1776,17 @@ pub const Path = struct { defer path_slice.deinit(); var path = path_slice.slice(); var path_name = Fs.PathName.init(path); - var root = JSC.ZigString.init(path_name.dir); - const is_absolute = (isWindows and isZigStringAbsoluteWindows(root)) or (!isWindows and path_name.dir.len > 0 and path_name.dir[0] == '/'); - var dir = JSC.ZigString.init(path_name.dir); + const is_absolute = (isWindows and isZigStringAbsoluteWindows(dir)) or (!isWindows and path.len > 0 and path[0] == '/'); + + // if its not absolute root must be empty + var root = JSC.ZigString.Empty; if (is_absolute) { - root = JSC.ZigString.Empty; - if (path_name.dir.len == 0) - dir = JSC.ZigString.init(if (isWindows) std.fs.path.sep_str_windows else std.fs.path.sep_str_posix); + root = JSC.ZigString.init(if (isWindows) std.fs.path.sep_str_windows else std.fs.path.sep_str_posix); + // if is absolute and dir is empty, then dir = root + if (path_name.dir.len == 0) { + dir = root; + } } var base = JSC.ZigString.init(path_name.base); |