diff --git a/chicken_h.patch b/chicken_h.patch new file mode 100644 index 0000000..68f3199 --- /dev/null +++ b/chicken_h.patch @@ -0,0 +1,26 @@ +diff --git a/chicken.h b/chicken.h +index d75fe04f..ad3ba9da 100644 +--- a/chicken.h ++++ b/chicken.h +@@ -1487,17 +1487,17 @@ typedef void (C_ccall *C_proc)(C_word, C_word *) C_noret; + #ifdef C_BIG_ENDIAN + # ifdef C_SIXTY_FOUR + # define C_lihdr(x, y, z) ((C_LAMBDA_INFO_TYPE >> 56) & 0xff), \ +- 0, 0, 0, 0, (x), (y), (z) ++ 0, 0, 0, 0, (x), (y), ((C_char)(z)) + # else + # define C_lihdr(x, y, z) ((C_LAMBDA_INFO_TYPE >> 24) & 0xff), \ +- (x), (y), (z) ++ (x), (y), ((C_char)(z)) + # endif + #else + # ifdef C_SIXTY_FOUR +-# define C_lihdr(x, y, z) (z), (y), (x), 0, 0, 0, 0, \ ++# define C_lihdr(x, y, z) ((C_char)(z)), (y), (x), 0, 0, 0, 0, \ + ((C_LAMBDA_INFO_TYPE >> 56) & 0xff) + # else +-# define C_lihdr(x, y, z) (z), (y), (x), \ ++# define C_lihdr(x, y, z) ((C_char)(z)), (y), (x), \ + ((C_LAMBDA_INFO_TYPE >> 24) & 0xff) + # endif + #endif diff --git a/qml.scm b/qml.scm index 9eabaa4..8cf3afa 100644 --- a/qml.scm +++ b/qml.scm @@ -378,7 +378,6 @@ "C_return(dos_qvariant_toQObject(vptr));")) ;; QMetaObject - ;; This is broken... (define dos_qmetaobject_create (foreign-lambda* (c-pointer DosQMetaObject) (((c-pointer DosQMetaObject) superClassMetaObject) (c-string className) @@ -395,16 +394,21 @@ (c-pointer data) (DosQtConnectionType connection_type)) "C_return(dos_qmetaobject_invoke_method(context, callback, data, connection_type));")) + + ;; QAbstractListModel (define dos_qabstractlistmodel_qmetaobject (foreign-lambda* (c-pointer DosQMetaObject) () "C_return(dos_qabstractlistmodel_qmetaobject());")) - - ;; This, too, is broken - ;; QAbstractListModel - ;; (define dos_qabstractlistmodel_create - ;; (foreign-lambda* (c-pointer DosQAbstractListModel) (((function void (void)) callbackObject) - ;; ((c-pointer DosQMetaObject) metaObject) - ;; (DObjectCallback dObjectCallback) - ;; ((c-pointer DosQAbstractItemModelCallbacks) callbacks)) - ;; "C_return(dos_qabstractlistmodel_create(callbackObject, metaObject, dObjectCallback, callbacks));")) + (define dos_qabstractlistmodel_create + (foreign-lambda* (c-pointer DosQAbstractListModel) (((c-pointer (function void ())) callbackObject) + ((c-pointer DosQMetaObject) metaObject) + (DObjectCallback dObjectCallback) + ((c-pointer DosQAbstractItemModelCallbacks) callbacks)) + "C_return(dos_qabstractlistmodel_create(callbackObject, metaObject, dObjectCallback, callbacks));")) + ;; (define dos_qabstractlistmodel_index + ;; (foreign-lambda* (c-pointer DosQModelIndex) (((c-pointer DosQAbstractListModel) vptr) + ;; (int row) + ;; (int column) + ;; ((c-pointer DosQModelIndex) parent)) + ;; "C_return(dos_qabstractlistmodel_index(vptr, row, column, parent));")) ))