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>
#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;
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) \
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);
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. */
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)
{
return build_string (name);
}
return build_string (name);
}
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.
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;
DBusError derror;
unsigned int dtype;
int timeout = -1;
DBusError derror;
unsigned int dtype;
int timeout = -1;
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
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;
unsigned int dtype;
dbus_uint32_t serial;
int timeout = -1;
unsigned int dtype;
dbus_uint32_t serial;
int timeout = -1;
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
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;
DBusMessageIter iter;
dbus_uint32_t serial;
unsigned int ui_serial, dtype;
DBusMessageIter iter;
dbus_uint32_t serial;
unsigned int ui_serial, dtype;
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
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;
DBusMessageIter iter;
dbus_uint32_t serial;
unsigned int ui_serial, dtype;
DBusMessageIter iter;
dbus_uint32_t serial;
unsigned int ui_serial, dtype;
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
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;
DBusMessage *dmessage;
DBusMessageIter iter;
unsigned int dtype;
DBusMessage *dmessage;
DBusMessageIter iter;
unsigned int dtype;
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
char signature[DBUS_MAXIMUM_SIGNATURE_LENGTH];
/* Check parameters. */
/* 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;
}
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;