diff options
Diffstat (limited to 'src/3rd_party/dbus-1.7.8/tools/dbus-launch-win.c')
-rw-r--r-- | src/3rd_party/dbus-1.7.8/tools/dbus-launch-win.c | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/src/3rd_party/dbus-1.7.8/tools/dbus-launch-win.c b/src/3rd_party/dbus-1.7.8/tools/dbus-launch-win.c deleted file mode 100644 index d899010a55..0000000000 --- a/src/3rd_party/dbus-1.7.8/tools/dbus-launch-win.c +++ /dev/null @@ -1,171 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ -/* dbus-launch-win.c dbus-launch utility - * - * Copyright (C) 2007 Ralf Habacker <ralf.habacker@freenet.de> - * - * Licensed under the Academic Free License version 2.1 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#include <config.h> -#ifndef UNICODE -#define UNICODE 1 -#endif -#include <windows.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> - -/* Save string functions. Instead of figuring out the exact _MSC_VER - that work, override for everybody. */ - -#define errno_t int -#define wcscat_s my_wcscat_s -#define wcscpy_s my_wcscpy_s - -static errno_t -wcscat_s (wchar_t *dest, size_t size, wchar_t *src) -{ - assert (sizeof (wchar_t) * (wcslen (dest) + wcslen (src) + 1) <= size); - wcscat (dest, src); - return 0; -} - - -static errno_t -wcscpy_s (wchar_t *dest, size_t size, wchar_t *src) -{ - assert (sizeof (wchar_t) * (wcslen (src) + 1) <= size); - wcscpy (dest, src); - return 0; -} - -/* TODO (tl): This Windows version of dbus-launch is curretly rather - * pointless as it doesn't take the same command-line options as the - * UNIX dbus-launch does. A main point of the dbus-launch command is - * to pass it for instance a --config-file option to make the started - * dbus-daemon use that config file. - * - * This version also doesn't print out any information, which is a - * main point of the UNIX one. It should at least support the - * --sh-syntax option, and maybe also a --cmd-syntax to print out the - * variable settings in cmd.exe syntax? - * - * NOTE (rh): The main task of dbus-launch is (from the man page) to start - * a session bus and this is archieved by the current implemention. - * - * Additional on windows the session bus starting in not integrated - * into the logon process, so there is no need for any --syntax option. - * In fact (at least for kde on windows) the session bus is autostarted - * with the first application requesting a session bus. - * - */ - -#define AUTO_ACTIVATE_CONSOLE_WHEN_VERBOSE_MODE 1 - -#define DIM(x) (sizeof(x) / sizeof(x[0])) -#define WCSTRINGIFY_(x) L ## x -#define WCSTRINGIFY(x) WCSTRINGIFY_(x) - -int -main (int argc, char **argv) -{ - wchar_t dbusDaemonPath[MAX_PATH * 2 + 1]; - wchar_t command[MAX_PATH * 2 + 1]; - wchar_t *p; - wchar_t *daemon_name; - int result; - int showConsole = 0; -#ifdef DBUS_WINCE - char *s = NULL; -#else - char *s = getenv("DBUS_VERBOSE"); -#endif - int verbose = s && *s != '\0' ? 1 : 0; - - PROCESS_INFORMATION pi; - STARTUPINFOW si; - BOOL inherit = TRUE; - DWORD flags = 0; - -#ifdef AUTO_ACTIVATE_CONSOLE_WHEN_VERBOSE_MODE - if (verbose) - showConsole = 1; -#endif - GetModuleFileNameW (NULL, dbusDaemonPath, DIM (dbusDaemonPath)); - - daemon_name = WCSTRINGIFY(DBUS_DAEMON_NAME) L".exe"; - - if ((p = wcsrchr (dbusDaemonPath, L'\\'))) - { - p[1] = L'\0'; - wcscat_s (dbusDaemonPath, sizeof (dbusDaemonPath), daemon_name); - } - else - { - if (verbose) - fprintf (stderr, "error: could not extract path from current " - "applications module filename\n"); - return 1; - } - -#ifdef DBUS_WINCE - /* Windows CE has a different interpretation of cmdline: Start with argv[1]. */ - wcscpy_s (command, sizeof (command), L"--session"); - if (verbose) - fprintf (stderr, "%ls %ls\n", dbusDaemonPath, command); -#else - command[0] = L'\0'; - /* Windows cmdline starts with path, which can contain spaces. */ - wcscpy_s (command, sizeof (command), L"\""); - wcscat_s (command, sizeof (command), dbusDaemonPath); - wcscat_s (command, sizeof (command), L"\" --session"); - if (verbose) - fprintf (stderr, "%ls\n", command); -#endif - - memset (&si, 0, sizeof (si)); - memset (&pi, 0, sizeof (pi)); - si.cb = sizeof (si); - - if (verbose) - flags |= CREATE_NEW_CONSOLE; - -#ifdef DBUS_WINCE - inherit = FALSE; -#else - flags |= NORMAL_PRIORITY_CLASS; - if (!verbose) - flags |= DETACHED_PROCESS; -#endif - - result = CreateProcessW (dbusDaemonPath, command, 0, 0, - inherit, flags, 0, 0, &si, &pi); - - if (result == 0) - { - if (verbose) - fprintf (stderr, "Could not start " DBUS_DAEMON_NAME ". error=%u\n", - (unsigned)GetLastError ()); - return 4; - } - - CloseHandle (pi.hProcess); - CloseHandle (pi.hThread); - - return 0; -} |