* IPv6 text representation according to RFC 5952 * Revert IPv6 text representation according to RFC 5952 * fix #14259 #15621 fix #14259 #15621 * Update lib/system/io.nim * reverted IoHandle removal * adaptation of types for WinAPI Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
This commit is contained in:
parent
b1c232aca1
commit
d15f63a0f2
1 changed files with 11 additions and 4 deletions
|
|
@ -278,7 +278,12 @@ elif defined(posix) and not defined(lwip) and not defined(nimscript):
|
||||||
proc c_fcntl(fd: cint, cmd: cint): cint {.
|
proc c_fcntl(fd: cint, cmd: cint): cint {.
|
||||||
importc: "fcntl", header: "<fcntl.h>", varargs.}
|
importc: "fcntl", header: "<fcntl.h>", varargs.}
|
||||||
elif defined(windows):
|
elif defined(windows):
|
||||||
const HANDLE_FLAG_INHERIT = culong 0x1
|
type
|
||||||
|
WinDWORD = culong
|
||||||
|
WinBOOL = cint
|
||||||
|
|
||||||
|
const HANDLE_FLAG_INHERIT = 1.WinDWORD
|
||||||
|
|
||||||
proc getOsfhandle(fd: cint): int {.
|
proc getOsfhandle(fd: cint): int {.
|
||||||
importc: "_get_osfhandle", header: "<io.h>".}
|
importc: "_get_osfhandle", header: "<io.h>".}
|
||||||
|
|
||||||
|
|
@ -286,8 +291,10 @@ elif defined(windows):
|
||||||
IoHandle = distinct pointer
|
IoHandle = distinct pointer
|
||||||
## Windows' HANDLE type. Defined as an untyped pointer but is **not**
|
## Windows' HANDLE type. Defined as an untyped pointer but is **not**
|
||||||
## one. Named like this to avoid collision with other `system` modules.
|
## one. Named like this to avoid collision with other `system` modules.
|
||||||
proc setHandleInformation(handle: IoHandle, mask, flags: culong): cint {.
|
|
||||||
importc: "SetHandleInformation", header: "<handleapi.h>".}
|
proc setHandleInformation(hObject: IoHandle, dwMask, dwFlags: WinDWORD):
|
||||||
|
WinBOOL {.stdcall, dynlib: "kernel32",
|
||||||
|
importc: "SetHandleInformation".}
|
||||||
|
|
||||||
const
|
const
|
||||||
BufSize = 4000
|
BufSize = 4000
|
||||||
|
|
@ -346,7 +353,7 @@ when defined(nimdoc) or (defined(posix) and not defined(nimscript)) or defined(w
|
||||||
result = c_fcntl(f, F_SETFD, flags) != -1
|
result = c_fcntl(f, F_SETFD, flags) != -1
|
||||||
else:
|
else:
|
||||||
result = setHandleInformation(cast[IoHandle](f), HANDLE_FLAG_INHERIT,
|
result = setHandleInformation(cast[IoHandle](f), HANDLE_FLAG_INHERIT,
|
||||||
culong inheritable) != 0
|
inheritable.WinDWORD) != 0
|
||||||
|
|
||||||
proc readLine*(f: File, line: var TaintedString): bool {.tags: [ReadIOEffect],
|
proc readLine*(f: File, line: var TaintedString): bool {.tags: [ReadIOEffect],
|
||||||
benign.} =
|
benign.} =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue