aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog8
-rw-r--r--src/dbusbind.c22
2 files changed, 21 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 2f46ea446e4..d1507f7edde 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
12007-12-05 Michael Albinus <michael.albinus@gmx.de>
2
3 * dbusbind.c (xd_read_message): Return value is a Lisp_Object.
4 Move check for Vdbus_registered_functions_table to
5 xd_read_queued_messages.
6 (xd_read_queued_messages): Protect xd_read_message calls by
7 internal_condition_case_1.
8
12007-12-04 Michael Albinus <michael.albinus@gmx.de> 92007-12-04 Michael Albinus <michael.albinus@gmx.de>
2 10
3 * dbusbind.c (QCdbus_system_bus, QCdbus_session_bus): Renamed from 11 * dbusbind.c (QCdbus_system_bus, QCdbus_session_bus): Renamed from
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 581b5ffd541..07fc24243d7 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -538,7 +538,7 @@ usage: (dbus-send-signal BUS SIGNAL SERVICE PATH INTERFACE &rest ARGS) */)
538 538
539/* Read queued incoming message of the D-Bus BUS. BUS is a Lisp 539/* Read queued incoming message of the D-Bus BUS. BUS is a Lisp
540 symbol, either :system or :session. */ 540 symbol, either :system or :session. */
541void 541Lisp_Object
542xd_read_message (bus) 542xd_read_message (bus)
543 Lisp_Object bus; 543 Lisp_Object bus;
544{ 544{
@@ -551,12 +551,6 @@ xd_read_message (bus)
551 uint dtype; 551 uint dtype;
552 char service[1024], path[1024], interface[1024], member[1024]; 552 char service[1024], path[1024], interface[1024], member[1024];
553 553
554 /* Vdbus_registered_functions_table will be made as hash table in
555 dbus.el. When it isn't loaded yet, it doesn't make sense to
556 handle D-Bus messages. */
557 if (!HASH_TABLE_P (Vdbus_registered_functions_table))
558 return;
559
560 /* Open a connection to the bus. */ 554 /* Open a connection to the bus. */
561 connection = xd_initialize (bus); 555 connection = xd_initialize (bus);
562 556
@@ -635,8 +629,18 @@ xd_read_message (bus)
635void 629void
636xd_read_queued_messages () 630xd_read_queued_messages ()
637{ 631{
638 xd_read_message (QCdbus_system_bus); 632
639 xd_read_message (QCdbus_session_bus); 633 /* Vdbus_registered_functions_table will be made as hash table in
634 dbus.el. When it isn't loaded yet, it doesn't make sense to
635 handle D-Bus messages. Furthermore, we ignore all Lisp errors
636 during the call. */
637 if (HASH_TABLE_P (Vdbus_registered_functions_table))
638 {
639 internal_condition_case_1 (xd_read_message, QCdbus_system_bus,
640 Qerror, Fidentity);
641 internal_condition_case_1 (xd_read_message, QCdbus_session_bus,
642 Qerror, Fidentity);
643 }
640} 644}
641 645
642DEFUN ("dbus-register-signal", Fdbus_register_signal, Sdbus_register_signal, 646DEFUN ("dbus-register-signal", Fdbus_register_signal, Sdbus_register_signal,