]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has started
authorMichael Albinus <michael.albinus@gmx.de>
Mon, 12 Jun 2023 10:45:38 +0000 (12:45 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Mon, 12 Jun 2023 10:45:38 +0000 (12:45 +0200)
* doc/misc/dbus.texi (Alternative Buses): Explain using
$DBUS_SESSION_BUS_ADDRESS after Emacs has started.

* src/dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Use egetenv.

doc/misc/dbus.texi
src/dbusbind.c

index 97a0f39ea13c69471e9e97a3e93a210316096dde..2bd6b9556c8f6f95195f5030ec17998c810b4b0e 100644 (file)
@@ -1847,8 +1847,24 @@ This function establishes the connection to D-Bus @var{bus}.
 corresponding bus.  For the system and session buses, this function is
 called when loading @file{dbus.el}, there is no need to call it again.
 
-The function returns the number of connections this Emacs session has
-established to the @var{bus} under the same unique name
+If Emacs was invoked when there was no D-Bus session bus available
+yet, you can set the environment variable
+@env{DBUS_SESSION_BUS_ADDRESS} once the session bus daemon is running
+and offering the address.  Calling @code{dbus-init-bus} initializes
+the connection to the session bus.
+
+@lisp
+(setenv "DBUS_SESSION_BUS_ADDRESS" "unix:path=/run/user/1000/bus")
+
+@result{} "unix:path=/run/user/1000/bus"
+
+(dbus-init-bus :session)
+
+@result{} 2
+@end lisp
+
+@code{dbus-init-bus} returns the number of connections this Emacs
+session has established to the @var{bus} under the same unique name
 (@pxref{dbus-get-unique-name}).  It depends on the libraries Emacs is
 linked with, and on the environment Emacs is running.  For example, if
 Emacs is linked with the GTK+ toolkit, and it runs in a GTK+-aware
index d96b735c79a65ec81fdeaf44e117c643869d84ef..97094e407d70365155afd64e101b32dc3df93ea2 100644 (file)
@@ -276,7 +276,7 @@ XD_OBJECT_TO_STRING (Lisp_Object object)
 
 #define XD_DBUS_VALIDATE_BUS_ADDRESS(bus)                              \
   do {                                                                 \
-    char const *session_bus_address = getenv ("DBUS_SESSION_BUS_ADDRESS"); \
+    char const *session_bus_address = egetenv ("DBUS_SESSION_BUS_ADDRESS"); \
     if (STRINGP (bus))                                                 \
       {                                                                        \
        DBusAddressEntry **entries;                                     \