about summary refs log tree commit diff stats
path: root/src/bindings/termcap.nim
blob: 4cc3241ba581353760251264a17407efa1aba793 (plain) (blame)
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