inputor

Evdev remapping utility in lua
git clone https://git.neptards.moe/u3shit/inputor.git
Log | Files | Refs

errno.lua (567B)


      1 local ffi = require("ffi")
      2 
      3 local error = error
      4 local ffi_c, ffi_errno, ffi_string = ffi.C, ffi.errno, ffi.string
      5 
      6 ffi.cdef("char* strerror(int num);")
      7 
      8 local module = {}
      9 local function errno_error(name, errno, level)
     10   errno = errno or ffi_errno()
     11   local str = ffi_c.strerror(errno)
     12   if not level then level = 1 end
     13   error(name..": "..errno..": "..ffi_string(str), level+1)
     14 end
     15 module.error = errno_error
     16 
     17 function module.assert(name, expr, level)
     18   if not expr then
     19     if not level then level = 1 end
     20     errno_error(name, nil, level+1)
     21   end
     22 end
     23 return module