follow up #22380; fixes incorrect usages of newWideCString (#23278)

follow up #22380
This commit is contained in:
ringabout
2024-02-05 19:14:21 +08:00
committed by GitHub
parent dd753b3383
commit a1d820367f
4 changed files with 6 additions and 5 deletions

View File

@@ -424,13 +424,13 @@ proc expandFilename*(filename: string): string {.rtl, extern: "nos$1",
when defined(windows):
var bufsize = MAX_PATH.int32
var unused: WideCString = nil
var res = newWideCString("", bufsize)
var res = newWideCString(bufsize)
while true:
var L = getFullPathNameW(newWideCString(filename), bufsize, res, unused)
if L == 0'i32:
raiseOSError(osLastError(), filename)
elif L > bufsize:
res = newWideCString("", L)
res = newWideCString(L)
bufsize = L
else:
result = res$L

View File

@@ -862,13 +862,13 @@ when not defined(nimscript):
raiseAssert "use -d:nodejs to have `getCurrentDir` defined"
elif defined(windows):
var bufsize = MAX_PATH.int32
var res = newWideCString("", bufsize)
var res = newWideCString(bufsize)
while true:
var L = getCurrentDirectoryW(bufsize, res)
if L == 0'i32:
raiseOSError(osLastError())
elif L > bufsize:
res = newWideCString("", L)
res = newWideCString(L)
bufsize = L
else:
result = res$L

View File

@@ -419,7 +419,7 @@ proc readLine*(f: File, line: var string): bool {.tags: [ReadIOEffect],
if f.isatty:
const numberOfCharsToRead = 2048
var numberOfCharsRead = 0'i32
var buffer = newWideCString("", numberOfCharsToRead)
var buffer = newWideCString(numberOfCharsToRead)
if readConsole(getOsFileHandle(f), addr(buffer[0]),
numberOfCharsToRead, addr(numberOfCharsRead), nil) == 0:
var error = getLastError()

View File

@@ -154,6 +154,7 @@ when not (defined(cpu16) or defined(cpu8)):
createWide(result, size * 2 + 2)
proc newWideCString*(source: cstring, L: int): WideCStringObj =
## Warning:: `source` needs to be preallocated with the length `L`
createWide(result, L * 2 + 2)
var d = 0
for ch in runes(source, L):