1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import std/os
const termlib = (proc(): string =
const libs = [
"terminfo", "mytinfo", "termlib", "termcap", "tinfo", "ncurses", "curses"
]
for lib in libs:
let res = staticExec("pkg-config --libs --silence-errors " & lib)
if res != "":
return res
# Apparently on some systems pkg-config will fail to locate ncurses.
const dirs = [
"/lib", "/usr/lib", "/usr/local/lib"
]
for lib in libs:
for dir in dirs:
if fileExists(dir & "/lib" & lib & ".a"):
return "-l" & lib
)()
when termlib != "":
{.passl: termlib.}
{.push importc, cdecl.}
const termcap_found* = true
proc tgetent*(bp: cstring, name: cstring): cint
proc tgetnum*(id: cstring): cint
proc tgetflag*(id: cstring): cint
proc tgetstr*(id: cstring, area: ptr cstring): cstring
proc tgoto*(cap: cstring, x, y: cint): cstring
proc tputs*(str: cstring, len: cint, putc: proc(c: char): cint {.cdecl.}): cint
{.pop.}
else:
const termcap_found* = false
|