mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-03 10:24:44 +00:00
follow up #22380
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user