/* dbusbind.c -- Elisp bindings for D-Bus. */
/*
- * Time-stamp: <Wednesday Jan 25, 2012 13:32:16 steve>
+ * Time-stamp: <Wednesday Jan 25, 2012 14:23:45 steve>
* Created: <2012-01-03>
* Maintainer: Steve Youngs <steve@sxemacs.org>
* Homepage: http://www.sxemacs.org/
CHECK_STRING (path);
CHECK_STRING (interface);
CHECK_STRING (method);
- if (!NILP (handler) && !FUNCTIONP (handler))
- wrong_type_argument (Qinvalid_function, handler);
+ if (!NILP (handler)) {
+ CHECK_FUNCTION(handler);
+ }
GCPRO6 (bus, service, path, interface, method, handler);
XD_DEBUG_MESSAGE ("%s %s %s %s",
INTERFACE, SIGNAL and HANDLER must not be nil. Example:
-\(defun my-signal-handler (device)
-(message "Device %s added" device))
+\(defun my-signal-handler \(device)
+\(message "Device %s added" device))
\(dbus-register-signal
:system "org.freedesktop.Hal" "/org/freedesktop/Hal/Manager"
"org.freedesktop.Hal.Manager" "DeviceAdded" 'my-signal-handler)
-=> ((:system "org.freedesktop.Hal.Manager" "DeviceAdded")
-("org.freedesktop.Hal" "/org/freedesktop/Hal/Manager" my-signal-handler))
+=> \(\(:system "org.freedesktop.Hal.Manager" "DeviceAdded")
+\("org.freedesktop.Hal" "/org/freedesktop/Hal/Manager" my-signal-handler))
`dbus-register-signal' returns an object, which can be used in
`dbus-unregister-object' for removing the registration.
-usage: (dbus-register-signal BUS SERVICE PATH INTERFACE SIGNAL HANDLER &rest ARGS)
+usage: \(dbus-register-signal BUS SERVICE PATH INTERFACE SIGNAL HANDLER &rest ARGS)
*/
(int nargs, Lisp_Object *args))
{
if (!NILP (path)) CHECK_STRING (path);
CHECK_STRING (interface);
CHECK_STRING (signal);
- if (!FUNCTIONP (handler))
- wrong_type_argument (Qinvalid_function, handler);
+ CHECK_FUNCTION(handler);
GCPRO6 (bus, service, path, interface, signal, handler);
/* Retrieve unique name of service. If service is a known name, we
CHECK_STRING (path);
CHECK_STRING (interface);
CHECK_STRING (method);
- if (!FUNCTIONP (handler))
- wrong_type_argument (Qinvalid_function, handler);
+ CHECK_FUNCTION(handler);
/* TODO: We must check for a valid service name, otherwise there is
a segmentation fault. */
Fput (Qdbus_error, Qerror_conditions,
list2 (Qdbus_error, Qerror));
Fput (Qdbus_error, Qerror_message,
- make_pure_c_string ("D-Bus error"));
+ build_string ("D-Bus error"));
defsymbol(&QCdbus_system_bus, ":system");
defsymbol(&QCdbus_session_bus, ":session");
*/
/*
- * Time-stamp: <Monday Jan 23, 2012 02:10:12 steve>
+ * Time-stamp: <Wednesday Jan 25, 2012 14:15:31 steve>
* Created: <2012-01-22>
* Author: Steve Youngs <steve@sxemacs.org>
* Maintainer: Steve Youngs <steve@sxemacs.org>
#define SREF(string, index) (SDATA (string)[index] + 0)
#define SSET(string, index, new) (SDATA (string)[index] = (new))
#define SCHARS(string) (XSTRING (string)->size + 0)
-#define SBYTES(string) (STRING_BYTES (XSTRING (string)) + 0)
+#define SBYTES(string) (XSTRING_LENGTH (XSTRING (string)) + 0)
/* Avoid "differ in sign" warnings. */
#define SSDATA(x) ((char *) SDATA (x))