diff options
| author | Yong He <yonghe@outlook.com> | 2023-02-28 15:09:19 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-28 15:09:19 -0800 |
| commit | f7db44a236bb867003395d1a91d6907901653528 (patch) | |
| tree | 84d65caea539337bf19fb4435a1fe6fa5de589fb /source/core/slang-io.cpp | |
| parent | f23e36243e9c59c02f66ec2e18b80ba4ea540f45 (diff) | |
Add `SourceBlobWithPathInfoArtifactRepresentation`. (#2682)
Diffstat (limited to 'source/core/slang-io.cpp')
| -rw-r--r-- | source/core/slang-io.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/source/core/slang-io.cpp b/source/core/slang-io.cpp index f2be44f4f..12cbb9ba8 100644 --- a/source/core/slang-io.cpp +++ b/source/core/slang-io.cpp @@ -286,7 +286,23 @@ namespace Slang // If ioBuilder doesn't end in a delimiter, add one if (!isDelimiter(ioBuilder[ioBuilder.getLength() - 1])) { - ioBuilder.append(kPathDelimiter); + // Determine the preferred delimiter to use based on existing path. + char preferedDelimiter = kOSCanonicalPathDelimiter; + if (kOSAlternativePathDelimiter != preferedDelimiter) + { + // If we found the existing path uses the alternative delimiter, we will + // use that instead of the canonical one. + constexpr Index kMaxDelimiterSearchRange = 32; + for (Index i = 0; i < Math::Min(kMaxDelimiterSearchRange, ioBuilder.getLength()); i++) + { + if (ioBuilder[i] == kOSAlternativePathDelimiter) + { + preferedDelimiter = kOSAlternativePathDelimiter; + break; + } + } + } + ioBuilder.append(preferedDelimiter); } // Check that path doesn't start with a path delimiter SLANG_ASSERT(!isDelimiter(path[0])); |
