mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-01-02 14:30:14 +01:00
* bus/activation.c: (bus_activation_init), (child_setup), (bus_activation_activate_service): * bus/activation.h: * bus/main.c: (main): Set DBUS_ADDRESS environment variable. * dbus/dbus-errors.c: (dbus_set_error): Don't use va_copy since that's a C99 feature. * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec), (_dbus_spawn_async): * dbus/dbus-sysdeps.h: Add child_setup_func to _dbus_spawn_async. * doc/dbus-specification.sgml: Update specification. * test/spawn-test.c: (setup_func), (main): Fix test.
40 lines
758 B
C
40 lines
758 B
C
#include <dbus/dbus.h>
|
|
|
|
#define DBUS_COMPILATION /* cheat and use dbus-sysdeps */
|
|
#include <dbus/dbus-sysdeps.h>
|
|
#undef DBUS_COMPILATION
|
|
#include <stdio.h>
|
|
|
|
static void
|
|
setup_func (void *data)
|
|
{
|
|
printf ("entering setup func.\n");
|
|
}
|
|
|
|
int
|
|
main (int argc, char **argv)
|
|
{
|
|
char **argv_copy;
|
|
int i;
|
|
DBusError error;
|
|
|
|
if (argc < 2)
|
|
{
|
|
fprintf (stderr, "You need to specify a program to launch.\n");
|
|
|
|
return -1;
|
|
}
|
|
|
|
argv_copy = dbus_new (char *, argc);
|
|
for (i = 0; i < argc - 1; i++)
|
|
argv_copy [i] = argv[i + 1];
|
|
argv_copy[argc - 1] = NULL;
|
|
|
|
if (!_dbus_spawn_async (argv_copy, setup_func, NULL, &error))
|
|
{
|
|
fprintf (stderr, "Could not launch application: \"%s\"\n",
|
|
error.message);
|
|
}
|
|
|
|
return 0;
|
|
}
|