diff options
author | havardjohn <havard.mjaavatten@outlook.com> | 2022-09-11 22:51:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-11 16:51:39 -0400 |
commit | 68f92af17c4d38bdca348ae956447b2571b74198 (patch) | |
tree | 07b8d47210f380cfba658ade6f6ba766db34019d /doc | |
parent | 088487f652638a745e8e7e440a8a3b381239597b (diff) | |
download | Nim-68f92af17c4d38bdca348ae956447b2571b74198.tar.gz |
Fix cannot create Windows directory in root (#20311)
* Fix cannot create Windows directory in root Fixes #20306, a regression bug with `createDir` caused by `23e0160af283bb0bb573a86145e6c1c792780d49`. The issue is that, if the path consists only of a drive and a single directory (e.g. "Y:\nimcache2" in the original issue), then no directories will be created. This works fine if there are multiple directories (e.g. "Y:\nimcache2\test"). In the case of "Y:\nimcache2", `omitNext` in `createDir` is `false` on the last condition in `createDir`. This means that the "nimcache2" directory will not be created, and no exception will be raised. Fixed by refactoring to use `parentDirs` iterator instead of iterating over the string characters. Motivation is reduced code complexity. Will not test the specific "C:\test" `createDir` case, since there is no standard Windows drive with write permissions in the root. Creating a custom drive-mapping to Windows Temp is a non-option. That could mess up some users running the test. Added `parentDirs` tests since they are lacking on for POSIX paths. * Fix `createDir("")` causing error The change to `createDir` caused `createDir("")` to raise an error, where it previously didn't. Fixed so `createDir("")` does not fail, and added test case.
Diffstat (limited to 'doc')
0 files changed, 0 insertions, 0 deletions