docs now show nimExperimentalX APIs (#18345)

* docs now show nimExperimentalX APIs

* fix for windows
This commit is contained in:
Timothee Cour 2021-06-25 07:47:10 -07:00 • committed by GitHub
commit 8535b26a75
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 8 deletions

View file

@ -32,17 +32,17 @@ proc printKeyCodes*() {.importc: "linenoisePrintKeyCodes".}
proc free*(s: cstring) {.importc: "free", header: "<stdlib.h>".}
when defined nimExperimentalLinenoiseExtra:
when defined(nimExperimentalLinenoiseExtra) and not defined(windows):
# C interface
type linenoiseStatus = enum
type LinenoiseStatus = enum
linenoiseStatus_ctrl_unknown
linenoiseStatus_ctrl_C
linenoiseStatus_ctrl_D
type linenoiseData* = object
status: linenoiseStatus
type LinenoiseData* = object
status: LinenoiseStatus
proc linenoiseExtra(prompt: cstring, data: ptr linenoiseData): cstring {.importc.}
proc linenoiseExtra(prompt: cstring, data: ptr LinenoiseData): cstring {.importc.}
# stable nim interface
type Status* = enum
@ -65,7 +65,7 @@ when defined nimExperimentalLinenoiseExtra:
if ret.line.len > 0: echo ret.line
if ret.status == lnCtrlD: break
echo "exiting"
var data: linenoiseData
var data: LinenoiseData
let buf = linenoiseExtra(prompt, data.addr)
result.line = $buf
free(buf)