diff options
Diffstat (limited to 'lib/wrappers/linenoise/linenoise.nim')
-rw-r--r-- | lib/wrappers/linenoise/linenoise.nim | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/wrappers/linenoise/linenoise.nim b/lib/wrappers/linenoise/linenoise.nim new file mode 100644 index 000000000..a6260eb12 --- /dev/null +++ b/lib/wrappers/linenoise/linenoise.nim @@ -0,0 +1,34 @@ +# +# +# Nim's Runtime Library +# (c) Copyright 2015 Andreas Rumpf +# +# See the file "copying.txt", included in this +# distribution, for details about the copyright. +# + +type + Completions* = object + len*: csize + cvec*: cstringArray + + CompletionCallback* = proc (a2: cstring; a3: ptr Completions) {.cdecl.} + +{.compile: "linenoise.c".} + +proc setCompletionCallback*(a2: ptr CompletionCallback) {. + importc: "linenoiseSetCompletionCallback".} +proc addCompletion*(a2: ptr Completions; a3: cstring) {. + importc: "linenoiseAddCompletion".} +proc readLine*(prompt: cstring): cstring {.importc: "linenoise".} +proc historyAdd*(line: cstring): cint {.importc: "linenoiseHistoryAdd", + discardable.} +proc historySetMaxLen*(len: cint): cint {.importc: "linenoiseHistorySetMaxLen".} +proc historySave*(filename: cstring): cint {.importc: "linenoiseHistorySave".} +proc historyLoad*(filename: cstring): cint {.importc: "linenoiseHistoryLoad".} +proc clearScreen*() {.importc: "linenoiseClearScreen".} +proc setMultiLine*(ml: cint) {.importc: "linenoiseSetMultiLine".} +proc printKeyCodes*() {.importc: "linenoisePrintKeyCodes".} + +proc free*(s: cstring) {.importc: "free", header: "<stdlib.h>".} + |