Alright, this is what I got working for the posix stuff: {.passL: "-lutil".} var SIGWINCH* {.importc, header: "<signal.h>".}: cint var TIOCGWINSZ* {.importc, header: "<termios.h>".}: cuint var TIOCSWINSZ* {.importc, header: "<termios.h>".}: cuint proc openpty (amaster, aslave : ptr int, mustBeNil : pointer, termp, winp : ptr Termios) : cint {.importc, noDecl, header: "<pty.h>".} proc forkpty (amaster: ptr int, mustBeNil : pointer, termp, winp : ptr Termios) : cint {.importc, noDecl, header: "<pty.h>".}
I need to the put what will make **{.passL: "-lutil".}** happen in the importc pragmas for openpty and forkpty, but I'm not sure how to do that. dynlib did not do it. With the above I was able to port the remaining C functions to Nim. As far as **SigVal** not having **sival_int** an only having **sival_ptr**, here was my workaround: # for inserting: var si_value:SigVal si_value.sival_ptr = cast[pointer](myvar) let rc = pid.sigqueue (SIGUSR2, si_value) # for extracting: proc handler (signal:cint, si: var SigInfo, context:pointer) {.noconv.} = let myvar = cast[mytype](si.si_value.sival_ptr) Where **mytype** objects are pointer sized or smaller, in my case I'm using an enum type. I guess because of that, I don't really see the need to support sival_int directly in Nim. Should something like this be included in the PR? Here is what is says currently: SigVal* {.importc: "union sigval", header: "<signal.h>", final, pure.} = object ## struct sigval sival_ptr*: pointer ## pointer signal value; ## integer signal value not defined! On a different note, why were these renamed? * **cfmakeraw** to _cfMakeRaw_ * **tcsetattr** to _tcSetAttr_ * **tcgetattr** to _tcGetAttr_ Due to case insensitivity they worked without the camelcase. The reason I initially thought they were missing was I could not find the in the documentation. readlink was not renamed to readLink, setgid to setGid, etc, so I don't really see a point in renaming the aforementioned. So, when I do a PR, I'll need to add the proper docstrings, for the new ones above as well.