Port GNU/Emacs dbusbind.c to SXEmacs -- Fix most errors.
authorSteve Youngs <steve@sxemacs.org>
Sat, 21 Jan 2012 16:06:16 +0000 (02:06 +1000)
committerSteve Youngs <steve@sxemacs.org>
Sat, 21 Jan 2012 16:06:16 +0000 (02:06 +1000)
This changeset continues the work in porting GNU/Emacs' dbusbind.c.  It is
still not finished.  The build is still badly broken.

* src/elhash.c: Make Q_test not static.

* modules/dbus/dbusbind.c (CHECK_DBUS_SERIAL_GET_SERIAL): We call
`MOST_POSITIVE_FIXNUM' a `EMACS_INT_MAX'.

* modules/dbus/dbusbind.c (xd_signature_cat): ptrdiff_t's -> int's

* modules/dbus/dbusbind.c (Fdbus_call_method): Ditto.

* modules/dbus/dbusbind.c (Fdbus_call_method_asynchronously): Ditto.

* modules/dbus/dbusbind.c (Fdbus_method_return_internal): Ditto.

* modules/dbus/dbusbind.c (Fdbus_method_error_internal): Ditto.

* modules/dbus/dbusbind.c (Fdbus_send_signal): Ditto.

* modules/dbus/dbusbind.c (Fdbus_register_service): Ditto.

* modules/dbus/dbusbind.c (Fdbus_register_signal): Ditto.

* modules/dbus/dbusbind.c (xd_read_queued_messages): Add missing
arg to internal_catch().

* modules/dbus/dbusbind.c (syms_of_dbusbind): Change GNU DEFSYM's
and defsubr's to our defsymbol and DEFSUBR respectively.

* modules/dbus/dbusbind.c (syms_of_dbusbind): SXEmacs-erise the
Fprovide().

Signed-off-by: Steve Youngs <steve@sxemacs.org>
modules/dbus/dbusbind.c
src/elhash.c

index 05ad415..fac7a91 100644 (file)
@@ -77,6 +77,9 @@ static Lisp_Object QCdbus_type_unix_fd;
 #endif
 static Lisp_Object QCdbus_type_array, QCdbus_type_variant;
 static Lisp_Object QCdbus_type_struct, QCdbus_type_dict_entry;
 #endif
 static Lisp_Object QCdbus_type_array, QCdbus_type_variant;
 static Lisp_Object QCdbus_type_struct, QCdbus_type_dict_entry;
+static Lisp_Object Vdbus_debug, Vdbus_registered_buses;
+static Lisp_Object Vdbus_registered_objects_table;
+Lisp_Object Q_test;
 
 /* Whether we are reading a D-Bus event.  */
 static int xd_in_read_queued_messages = 0;
 
 /* Whether we are reading a D-Bus event.  */
 static int xd_in_read_queued_messages = 0;
@@ -252,7 +255,7 @@ xd_symbol_to_dbus_type (Lisp_Object object)
                dbus_uint32_t DBUS_SERIAL_MAX = -1;                     \
                if (NATNUMP (x) && XINT (x) <= DBUS_SERIAL_MAX)         \
                        serial = XINT (x);                              \
                dbus_uint32_t DBUS_SERIAL_MAX = -1;                     \
                if (NATNUMP (x) && XINT (x) <= DBUS_SERIAL_MAX)         \
                        serial = XINT (x);                              \
-               else if (MOST_POSITIVE_FIXNUM < DBUS_SERIAL_MAX         \
+               else if (EMACS_INT_MAX < DBUS_SERIAL_MAX                \
                         && FLOATP (x)                                  \
                         && 0 <= XFLOAT_DATA (x)                        \
                         && XFLOAT_DATA (x) <= DBUS_SERIAL_MAX)         \
                         && FLOATP (x)                                  \
                         && 0 <= XFLOAT_DATA (x)                        \
                         && XFLOAT_DATA (x) <= DBUS_SERIAL_MAX)         \
@@ -267,8 +270,8 @@ xd_symbol_to_dbus_type (Lisp_Object object)
 static void
 xd_signature_cat (char *signature, char const *x)
 {
 static void
 xd_signature_cat (char *signature, char const *x)
 {
-       ptrdiff_t siglen = strlen (signature);
-       ptrdiff_t xlen = strlen (x);
+       int siglen = strlen (signature);
+       int xlen = strlen (x);
        if (DBUS_MAXIMUM_SIGNATURE_LENGTH - xlen <= siglen)
                string_overflow ();
        strcat (signature, x);
        if (DBUS_MAXIMUM_SIGNATURE_LENGTH - xlen <= siglen)
                string_overflow ();
        strcat (signature, x);
@@ -459,6 +462,7 @@ xd_signature (char *signature, unsigned int dtype, unsigned int parent_type, Lis
    objects, being arguments of `dbus-call-method' or
    `dbus-send-signal', into corresponding C values appended as
    arguments to a D-Bus message.  */
    objects, being arguments of `dbus-call-method' or
    `dbus-send-signal', into corresponding C values appended as
    arguments to a D-Bus message.  */
+#define pI "l"
 static void
 xd_append_arg (unsigned int dtype, Lisp_Object object, DBusMessageIter *iter)
 {
 static void
 xd_append_arg (unsigned int dtype, Lisp_Object object, DBusMessageIter *iter)
 {
@@ -1030,6 +1034,8 @@ Return the unique name of Emacs registered at D-Bus BUS.
        return build_string (name);
 }
 
        return build_string (name);
 }
 
+#define pD
+
 DEFUN("dbus-call-method", Fdbus_call_method, 5, MANY, 0, /*
 Call METHOD on the D-Bus BUS.
 
 DEFUN("dbus-call-method", Fdbus_call_method, 5, MANY, 0, /*
 Call METHOD on the D-Bus BUS.
 
@@ -1101,7 +1107,7 @@ object is returned instead of a list containing this single Lisp object.
 
 usage: (dbus-call-method BUS SERVICE PATH INTERFACE METHOD &optional :timeout TIMEOUT &rest ARGS)
 */
 
 usage: (dbus-call-method BUS SERVICE PATH INTERFACE METHOD &optional :timeout TIMEOUT &rest ARGS)
 */
-      (ptrdiff_t nargs, Lisp_Object *args))
+      (int nargs, Lisp_Object *args))
 {
        Lisp_Object bus, service, path, interface, method;
        Lisp_Object result;
 {
        Lisp_Object bus, service, path, interface, method;
        Lisp_Object result;
@@ -1113,7 +1119,7 @@ usage: (dbus-call-method BUS SERVICE PATH INTERFACE METHOD &optional :timeout TI
        DBusError derror;
        unsigned int dtype;
        int timeout = -1;
        DBusError derror;
        unsigned int dtype;
        int timeout = -1;
-       ptrdiff_t i = 5;
+       int i = 5;
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
@@ -1284,7 +1290,7 @@ Example:
 
 usage: (dbus-call-method-asynchronously BUS SERVICE PATH INTERFACE METHOD HANDLER &optional :timeout TIMEOUT &rest ARGS)
 */
 
 usage: (dbus-call-method-asynchronously BUS SERVICE PATH INTERFACE METHOD HANDLER &optional :timeout TIMEOUT &rest ARGS)
 */
-      (ptrdiff_t nargs, Lisp_Object *args))
+      (int nargs, Lisp_Object *args))
 {
        Lisp_Object bus, service, path, interface, method, handler;
        Lisp_Object result;
 {
        Lisp_Object bus, service, path, interface, method, handler;
        Lisp_Object result;
@@ -1295,7 +1301,7 @@ usage: (dbus-call-method-asynchronously BUS SERVICE PATH INTERFACE METHOD HANDLE
        unsigned int dtype;
        dbus_uint32_t serial;
        int timeout = -1;
        unsigned int dtype;
        dbus_uint32_t serial;
        int timeout = -1;
-       ptrdiff_t i = 6;
+       int i = 6;
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
@@ -1410,7 +1416,7 @@ This is an internal function, it shall not be used outside dbus.el.
 
 usage: (dbus-method-return-internal BUS SERIAL SERVICE &rest ARGS)
 */
 
 usage: (dbus-method-return-internal BUS SERIAL SERVICE &rest ARGS)
 */
-      (ptrdiff_t nargs, Lisp_Object *args))
+      (int nargs, Lisp_Object *args))
 {
        Lisp_Object bus, service;
        struct gcpro gcpro1, gcpro2;
 {
        Lisp_Object bus, service;
        struct gcpro gcpro1, gcpro2;
@@ -1419,7 +1425,7 @@ usage: (dbus-method-return-internal BUS SERIAL SERVICE &rest ARGS)
        DBusMessageIter iter;
        dbus_uint32_t serial;
        unsigned int ui_serial, dtype;
        DBusMessageIter iter;
        dbus_uint32_t serial;
        unsigned int ui_serial, dtype;
-       ptrdiff_t i;
+       int i;
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
@@ -1499,7 +1505,7 @@ This is an internal function, it shall not be used outside dbus.el.
 
 usage: (dbus-method-error-internal BUS SERIAL SERVICE &rest ARGS)
 */
 
 usage: (dbus-method-error-internal BUS SERIAL SERVICE &rest ARGS)
 */
-      (ptrdiff_t nargs, Lisp_Object *args))
+      (int nargs, Lisp_Object *args))
 {
        Lisp_Object bus, service;
        struct gcpro gcpro1, gcpro2;
 {
        Lisp_Object bus, service;
        struct gcpro gcpro1, gcpro2;
@@ -1508,7 +1514,7 @@ usage: (dbus-method-error-internal BUS SERIAL SERVICE &rest ARGS)
        DBusMessageIter iter;
        dbus_uint32_t serial;
        unsigned int ui_serial, dtype;
        DBusMessageIter iter;
        dbus_uint32_t serial;
        unsigned int ui_serial, dtype;
-       ptrdiff_t i;
+       int i;
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
@@ -1613,7 +1619,7 @@ Example:
 
 usage: (dbus-send-signal BUS SERVICE PATH INTERFACE SIGNAL &rest ARGS)
 */
 
 usage: (dbus-send-signal BUS SERVICE PATH INTERFACE SIGNAL &rest ARGS)
 */
-      (ptrdiff_t nargs, Lisp_Object *args))
+      (int nargs, Lisp_Object *args))
 {
        Lisp_Object bus, service, path, interface, signal;
        struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
 {
        Lisp_Object bus, service, path, interface, signal;
        struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
@@ -1621,7 +1627,7 @@ usage: (dbus-send-signal BUS SERVICE PATH INTERFACE SIGNAL &rest ARGS)
        DBusMessage *dmessage;
        DBusMessageIter iter;
        unsigned int dtype;
        DBusMessage *dmessage;
        DBusMessageIter iter;
        unsigned int dtype;
-       ptrdiff_t i;
+       int i;
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
        char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
 
        /* Check parameters.  */
@@ -1893,7 +1899,7 @@ xd_read_queued_messages (int fd, void *data, int for_read)
 
        /* We ignore all Lisp errors during the call.  */
        xd_in_read_queued_messages = 1;
 
        /* We ignore all Lisp errors during the call.  */
        xd_in_read_queued_messages = 1;
-       internal_catch (Qdbus_error, xd_read_message, bus);
+       internal_catch (Qdbus_error, xd_read_message, bus, 0);
        xd_in_read_queued_messages = 0;
 }
 
        xd_in_read_queued_messages = 0;
 }
 
@@ -1944,11 +1950,11 @@ dbus-service-allow-replacement dbus-service-replace-existing)
 
 usage: (dbus-register-service BUS SERVICE &rest FLAGS)
 */
 
 usage: (dbus-register-service BUS SERVICE &rest FLAGS)
 */
-      (ptrdiff_t nargs, Lisp_Object *args))
+      (int nargs, Lisp_Object *args))
 {
        Lisp_Object bus, service;
        DBusConnection *connection;
 {
        Lisp_Object bus, service;
        DBusConnection *connection;