Hi!

ioctl() requires `request' parameter to be of type `int'. CFFI
processes constants as they are of type (u)int64_t. This malforms some
requests, for example Video4Linux2 VIDIOC_* requests.

This patch adds type :int to constant groveller to solve such
problems.

--- grovel/grovel.lisp~ 2009-06-16 18:20:08.000000000 +0200
+++ grovel/grovel.lisp  2009-12-21 12:15:14.612484158 +0100
@@ -468,6 +468,8 @@ char* print_double_for_lisp(double n)
     (c-print-symbol out lisp-name t)
     (c-format out " ")
     (ecase type
+      (:int
+       (format out "~&  fprintf(output, \"%i\", (int32_t) ~A);" c-name))
       (integer
        (format out "~&  if(SIGNED64P(~A))~%" c-name)
        (format out "    fprintf(output, \"%lli\", (int64_t) ~A);" c-name)

-- 
wbr, Vitaly

_______________________________________________
cffi-devel mailing list
cffi-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel

Reply via email to