dbus ChangeLog,1.1246,1.1247 dbus-win.patch,1.8,1.9

Ralf Habacker rhabacker at kemper.freedesktop.org
Thu Mar 8 12:33:33 PST 2007


Update of /cvs/dbus/dbus
In directory kemper:/tmp/cvs-serv26608

Modified Files:
	ChangeLog dbus-win.patch 
Log Message:
* dbus-win.patch: removed _dbus_write_pipe() patch, it is now committed.

Index: ChangeLog
===================================================================
RCS file: /cvs/dbus/dbus/ChangeLog,v
retrieving revision 1.1246
retrieving revision 1.1247
diff -u -d -r1.1246 -r1.1247
--- ChangeLog	8 Mar 2007 20:25:15 -0000	1.1246
+++ ChangeLog	8 Mar 2007 20:33:31 -0000	1.1247
@@ -1,5 +1,10 @@
 2007-03-08  Ralf Habacker  <ralf.habacker at freenet.de>
 
+	* dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
+	committed.
+
+2007-03-08  Ralf Habacker  <ralf.habacker at freenet.de>
+
 	* bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
 	rename pipe related write() function calls to _dbus_write_pipe().
 

Index: dbus-win.patch
===================================================================
RCS file: /cvs/dbus/dbus/dbus-win.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- dbus-win.patch	8 Mar 2007 20:14:52 -0000	1.8
+++ dbus-win.patch	8 Mar 2007 20:33:31 -0000	1.9
@@ -1,965 +1,881 @@
---- dbus/dbus-connection.c Wed Nov 15 04:07:59 2006
-+++ dbus/dbus-connection.c Thu Mar 08 14:22:09 2007
-@@ -4790,14 +4790,6 @@
-   _dbus_return_val_if_fail (connection != NULL, FALSE);
-   _dbus_return_val_if_fail (uid != NULL, FALSE);
- 
--#ifdef DBUS_WIN
--  /* FIXME this should be done at a lower level, but it's kind of hard,
--   * just want to be sure we don't ship with this API returning
--   * some weird internal fake uid for 1.0
--   */
--  return FALSE;
--#endif
--  
-   CONNECTION_LOCK (connection);
- 
-   if (!_dbus_transport_get_is_authenticated (connection->transport))
-@@ -4829,14 +4821,6 @@
-   _dbus_return_val_if_fail (connection != NULL, FALSE);
-   _dbus_return_val_if_fail (pid != NULL, FALSE);
- 
--#ifdef DBUS_WIN
--  /* FIXME this should be done at a lower level, but it's kind of hard,
--   * just want to be sure we don't ship with this API returning
--   * some weird internal fake uid for 1.0
--   */
--  return FALSE;
--#endif
--  
-   CONNECTION_LOCK (connection);
- 
-   if (!_dbus_transport_get_is_authenticated (connection->transport))
-Index: bus/bus.c
-===================================================================
-RCS file: /cvs/dbus/dbus/bus/bus.c,v
-retrieving revision 1.74
-diff -u -3 -p -B -r1.74 bus.c
---- bus/bus.c	20 Dec 2006 06:18:19 -0000	1.74
-+++ bus/bus.c	6 Mar 2007 20:54:30 -0000
-@@ -625,7 +625,7 @@ bus_context_new (const DBusString *confi
-         }
- 
-       bytes = _dbus_string_get_length (&addr);
--      if (_dbus_write_socket (print_addr_fd, &addr, 0, bytes) != bytes)
-+      if (_dbus_write_pipe (print_addr_fd, &addr, 0, bytes) != bytes)
-         {
-           dbus_set_error (error, DBUS_ERROR_FAILED,
-                           "Printing message bus address: %s\n",
-@@ -726,7 +726,7 @@ bus_context_new (const DBusString *confi
-         }
- 
-       bytes = _dbus_string_get_length (&pid);
--      if (_dbus_write_socket (print_pid_fd, &pid, 0, bytes) != bytes)
-+      if (_dbus_write_pipe (print_pid_fd, &pid, 0, bytes) != bytes)
-         {
-           dbus_set_error (error, DBUS_ERROR_FAILED,
-                           "Printing message bus PID: %s\n",
-Index: bus/config-loader-libxml.c
-===================================================================
-RCS file: /cvs/dbus/dbus/bus/config-loader-libxml.c,v
-retrieving revision 1.8
-diff -u -3 -p -B -r1.8 config-loader-libxml.c
---- bus/config-loader-libxml.c	10 Aug 2004 03:06:59 -0000	1.8
-+++ bus/config-loader-libxml.c	6 Mar 2007 20:54:31 -0000
-@@ -134,6 +134,9 @@ xml_text_reader_error (void *arg, xmlErr
-     }
- }
- 
-+#ifdef DBUS_WIN
-+  DBusString *_dbus_get_working_dir(void);
-+#endif
- 
- BusConfigParser*
- bus_config_load (const DBusString      *file,
-@@ -147,7 +150,9 @@ bus_config_load (const DBusString      *
-   DBusString dirname, data;
-   DBusError tmp_error;
-   int ret;
--  
-+#ifdef DBUS_WIN
-+  DBusString *dbusdir;
-+#endif
-   _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-   
-   parser = NULL;
-@@ -177,13 +182,19 @@ bus_config_load (const DBusString      *
-       xmlSetGenericErrorFunc (NULL, xml_shut_up);
-     }
- 
-+#ifdef DBUS_WIN
-+  dbusdir = _dbus_get_working_dir();
-+  if (dbusdir)
-+     parser = bus_config_parser_new (dbusdir, is_toplevel, parent);
-+  else  
-+#endif
-   if (!_dbus_string_get_dirname (file, &dirname))
-     {
-       _DBUS_SET_OOM (error);
-       goto failed;
-     }
--  
-   parser = bus_config_parser_new (&dirname, is_toplevel, parent);
-+  
-   if (parser == NULL)
-     {
-       _DBUS_SET_OOM (error);
-Index: bus/config-parser.c
-===================================================================
-RCS file: /cvs/dbus/dbus/bus/config-parser.c,v
-retrieving revision 1.47
-diff -u -3 -p -B -r1.47 config-parser.c
---- bus/config-parser.c	26 Jan 2007 16:10:09 -0000	1.47
-+++ bus/config-parser.c	6 Mar 2007 20:54:31 -0000
-@@ -27,6 +27,7 @@
- #include "selinux.h"
- #include <dbus/dbus-list.h>
- #include <dbus/dbus-internals.h>
-+#include <dbus/dbus-userdb.h>
- #include <string.h>
- 
- typedef enum
-@@ -3070,10 +3071,15 @@ process_test_equiv_subdir (const DBusStr
- 
- static const char *test_service_dir_matches[] = 
-         {
-+#ifdef DBUS_WIN
-+         DBUS_DATADIR"/dbus-1/services",
-+         NULL,
-+#else
-          "/testusr/testlocal/testshare/dbus-1/services",
-          "/testusr/testshare/dbus-1/services",
-          DBUS_DATADIR"/dbus-1/services",
-          "/testhome/foo/.testlocal/testshare/dbus-1/services",         
-+#endif 
-          NULL
-         };
- 
-@@ -3082,11 +3088,32 @@ test_default_session_servicedirs (void)
- {
-   DBusList *dirs;
-   DBusList *link;
-+  DBusString progs;
-+  const char *common_progs;
-   int i;
- 
-+  common_progs = _dbus_getenv ("CommonProgramFiles");
-+  if (common_progs) 
-+    {
-+      if (!_dbus_string_init (&progs))
-+        return FALSE;
-+
-+      if (!_dbus_string_append (&progs, common_progs)) 
-+        {
-+          _dbus_string_free (&progs);
-+          return FALSE;
-+        }
-+
-+      if (!_dbus_string_append (&progs, "/dbus-1/services")) 
-+        {
-+          _dbus_string_free (&progs);
-+          return FALSE;
-+        }
-+      test_service_dir_matches[1] = _dbus_string_get_const_data(&progs);
-+    }
-   dirs = NULL;
- 
--  printf ("Testing retriving the default session service directories\n");
-+  printf ("Testing retrieving the default session service directories\n");
-   if (!_dbus_get_standard_session_servicedirs (&dirs))
-     _dbus_assert_not_reached ("couldn't get stardard dirs");
- 
-@@ -3097,7 +3124,7 @@ test_default_session_servicedirs (void)
-       
-       printf ("    default service dir: %s\n", (char *)link->data);
-       _dbus_string_init_const (&path, (char *)link->data);
--      if (!_dbus_string_ends_with_c_str (&path, "share/dbus-1/services"))
-+      if (!_dbus_string_ends_with_c_str (&path, "dbus-1/services"))
-         {
-           printf ("error with default session service directories\n");
-           return FALSE;
-@@ -3150,6 +3177,7 @@ test_default_session_servicedirs (void)
-       return FALSE;
-     }
-     
-+  _dbus_string_free (&progs);
-   return TRUE;
- }
- 			   
-Index: bus/main.c
-===================================================================
-RCS file: /cvs/dbus/dbus/bus/main.c,v
-retrieving revision 1.36
-diff -u -3 -p -B -r1.36 main.c
---- bus/main.c	20 Dec 2006 06:18:19 -0000	1.36
-+++ bus/main.c	6 Mar 2007 20:54:33 -0000
-@@ -254,6 +254,12 @@ main (int argc, char **argv)
-   dbus_bool_t print_pid;
-   int force_fork;
- 
-+#ifdef _WIN32
-+	extern int _dbus_init_working_dir(char *s);
-+	if (!_dbus_init_working_dir(argv[0]))
-+		return 1;
-+#endif
-+
-   if (!_dbus_string_init (&config_file))
-     return 1;
- 
-Index: bus/policy.c
-===================================================================
-RCS file: /cvs/dbus/dbus/bus/policy.c,v
-retrieving revision 1.24
-diff -u -3 -p -B -r1.24 policy.c
---- bus/policy.c	12 Dec 2006 21:24:07 -0000	1.24
-+++ bus/policy.c	6 Mar 2007 20:54:33 -0000
-@@ -324,9 +324,13 @@ bus_policy_create_client_policy (BusPoli
- 
-   if (!dbus_connection_get_unix_user (connection, &uid))
-     {
-+#ifdef DBUS_WIN
-+		_dbus_verbose ("policy.c: dbus_connection_get_unix_user check disabled under windows\n");
-+#else
-       dbus_set_error (error, DBUS_ERROR_FAILED,
-                       "No user ID known for connection, cannot determine security policy\n");
-       goto failed;
-+#endif
-     }
- 
-   if (_dbus_hash_table_get_n_entries (policy->rules_by_uid) > 0)
-Index: dbus/dbus-bus.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-bus.c,v
-retrieving revision 1.64
-diff -u -3 -p -B -r1.64 dbus-bus.c
---- dbus/dbus-bus.c	28 Oct 2006 01:41:37 -0000	1.64
-+++ dbus/dbus-bus.c	6 Mar 2007 20:54:33 -0000
-@@ -350,8 +350,10 @@ _dbus_bus_notify_shared_connection_disco
- {
-   int i;
-   
-+#if !defined(DBUS_WIN) && !defined(DBUS_WINCE)
-+   // qt example pong says "QMutex::lock: Deadlock detected"
-   _DBUS_LOCK (bus);
--
-+#endif
-   /* We are expecting to have the connection saved in only one of these
-    * slots, but someone could in a pathological case set system and session
-    * bus to the same bus or something. Or set one of them to the starter
-@@ -366,7 +368,9 @@ _dbus_bus_notify_shared_connection_disco
-         }
-     }
- 
-+#if !defined(DBUS_WIN) && !defined(DBUS_WINCE)
-   _DBUS_UNLOCK (bus);
-+#endif
- }
- 
- static DBusConnection *
-Index: dbus/dbus-connection.h
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-connection.h,v
-retrieving revision 1.49
-diff -u -3 -p -B -r1.49 dbus-connection.h
---- dbus/dbus-connection.h	15 Nov 2006 03:07:59 -0000	1.49
-+++ dbus/dbus-connection.h	6 Mar 2007 20:54:40 -0000
-@@ -330,6 +330,9 @@ dbus_bool_t dbus_connection_get_socket  
-  */
- 
- int          dbus_watch_get_fd      (DBusWatch        *watch);
-+#if defined (DBUS_COMPILATION)
-+int          dbus_watch_get_handle  (DBusWatch        *watch);
-+#endif
- unsigned int dbus_watch_get_flags   (DBusWatch        *watch);
- void*        dbus_watch_get_data    (DBusWatch        *watch);
- void         dbus_watch_set_data    (DBusWatch        *watch,
-Index: dbus/dbus-internals.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-internals.c,v
-retrieving revision 1.55
-diff -u -3 -p -B -r1.55 dbus-internals.c
---- dbus/dbus-internals.c	15 Nov 2006 01:52:01 -0000	1.55
-+++ dbus/dbus-internals.c	6 Mar 2007 20:54:40 -0000
-@@ -295,7 +295,7 @@ static dbus_bool_t verbose = TRUE;
- #include <pthread.h>
- #endif
- 
--static inline void
-+static void
- _dbus_verbose_init (void)
- {
-   if (!verbose_initted)
-Index: dbus/dbus-mainloop.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-mainloop.c,v
-retrieving revision 1.19
-diff -u -3 -p -B -r1.19 dbus-mainloop.c
---- dbus/dbus-mainloop.c	20 Oct 2006 03:04:59 -0000	1.19
-+++ dbus/dbus-mainloop.c	6 Mar 2007 20:54:40 -0000
-@@ -90,8 +90,8 @@ typedef struct
-   Callback callback;
-   DBusTimeout *timeout;
-   DBusTimeoutFunction function;
--  unsigned long last_tv_sec;
--  unsigned long last_tv_usec;
-+  long last_tv_sec;
-+  long last_tv_usec;
- } TimeoutCallback;
- 
- #define WATCH_CALLBACK(callback)   ((WatchCallback*)callback)
-@@ -598,7 +598,7 @@ _dbus_loop_iterate (DBusLoop     *loop,
- 
- #if MAINLOOP_SPEW
-               _dbus_verbose ("  skipping watch on fd %d as it was out of memory last time\n",
--                             dbus_watch_get_fd (wcb->watch));
-+                             dbus_watch_get_handle (wcb->watch));
- #endif
-             }
-           else if (dbus_watch_get_enabled (wcb->watch))
-@@ -609,7 +609,7 @@ _dbus_loop_iterate (DBusLoop     *loop,
-                   
-               flags = dbus_watch_get_flags (wcb->watch);
-                   
--              fds[n_fds].fd = dbus_watch_get_fd (wcb->watch);
-+              fds[n_fds].fd = dbus_watch_get_handle (wcb->watch);
-               fds[n_fds].revents = 0;
-               fds[n_fds].events = 0;
-               if (flags & DBUS_WATCH_READABLE)
-@@ -628,7 +628,7 @@ _dbus_loop_iterate (DBusLoop     *loop,
-             {
- #if MAINLOOP_SPEW
-               _dbus_verbose ("  skipping disabled watch on fd %d  %s\n",
--                             dbus_watch_get_fd (wcb->watch),
-+                             dbus_watch_get_handle (wcb->watch),
-                              watch_flags_to_string (dbus_watch_get_flags (wcb->watch)));
- #endif
-             }
-@@ -640,8 +640,8 @@ _dbus_loop_iterate (DBusLoop     *loop,
-   timeout = -1;
-   if (loop->timeout_count > 0)
-     {
--      unsigned long tv_sec;
--      unsigned long tv_usec;
-+      long tv_sec;
-+      long tv_usec;
-       
-       _dbus_get_current_time (&tv_sec, &tv_usec);
-           
-@@ -710,8 +710,8 @@ _dbus_loop_iterate (DBusLoop     *loop,
- 
-   if (loop->timeout_count > 0)
-     {
--      unsigned long tv_sec;
--      unsigned long tv_usec;
-+      long tv_sec;
-+      long tv_usec;
- 
-       _dbus_get_current_time (&tv_sec, &tv_usec);
- 
-@@ -883,6 +883,8 @@ _dbus_loop_quit (DBusLoop *loop)
-   
-   loop->depth -= 1;
- 
-+ _dbus_daemon_release ();
-+
-   _dbus_verbose ("Quit main loop, depth %d -> %d\n",
-                  loop->depth + 1, loop->depth);
- }
-Index: dbus/dbus-server-socket.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-server-socket.c,v
-retrieving revision 1.3
-diff -u -3 -p -B -r1.3 dbus-server-socket.c
---- dbus/dbus-server-socket.c	1 Oct 2006 15:36:18 -0000	1.3
-+++ dbus/dbus-server-socket.c	6 Mar 2007 20:54:42 -0000
-@@ -161,7 +161,7 @@ socket_handle_watch (DBusWatch    *watch
-       int client_fd;
-       int listen_fd;
-       
--      listen_fd = dbus_watch_get_fd (watch);
-+      listen_fd = dbus_watch_get_handle (watch);
- 
-       client_fd = _dbus_accept (listen_fd);
-       
-@@ -393,15 +393,19 @@ _dbus_server_listen_socket (DBusAddressE
-           
-       if (port == NULL)
-         {
-+#if defined(DBUS_WIN) || defined(DBUS_WINCE)
-+          port = "0";
-+#else
-           _dbus_set_bad_address(error, "tcp", "port", NULL);
-           return DBUS_SERVER_LISTEN_BAD_ADDRESS;
-+#endif
-         }
- 
-       _dbus_string_init_const (&str, port);
-       sresult = _dbus_string_parse_int (&str, 0, &lport, NULL);
-       _dbus_string_free (&str);
-           
--      if (sresult == FALSE || lport <= 0 || lport > 65535)
-+      if (sresult == FALSE || lport < 0 || lport > 65535)
-         {
-           _dbus_set_bad_address(error, NULL, NULL, 
-                                 "Port is not an integer between 0 and 65535");
-Index: dbus/dbus-server.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-server.c,v
-retrieving revision 1.54
-diff -u -3 -p -B -r1.54 dbus-server.c
---- dbus/dbus-server.c	21 Oct 2006 23:09:18 -0000	1.54
-+++ dbus/dbus-server.c	6 Mar 2007 20:54:42 -0000
-@@ -509,8 +509,10 @@ static const struct {
-                                    DBusServer      **server_p,
-                                    DBusError        *error);
- } listen_funcs[] = {
--  { _dbus_server_listen_socket },
--  { _dbus_server_listen_platform_specific }
-+  { _dbus_server_listen_socket }
-+#ifndef DBUS_WIN
-+  , { _dbus_server_listen_platform_specific }
-+#endif
- #ifdef DBUS_BUILD_TESTS
-   , { _dbus_server_listen_debug_pipe }
- #endif
-@@ -1114,6 +1116,13 @@ dbus_server_get_data (DBusServer   *serv
- dbus_bool_t
- _dbus_server_test (void)
- {
-+#if defined(DBUS_WIN) || defined(DBUS_WINCE)
-+  const char *valid_addresses[] = {
-+    "tcp:port=1234",
-+    "tcp:host=localhost,port=1234",
-+    "tcp:host=localhost,port=1234;tcp:port=5678",
-+  };
-+#else
-   const char *valid_addresses[] = {
-     "tcp:port=1234",
-     "unix:path=./boogie",
-@@ -1121,7 +1130,7 @@ _dbus_server_test (void)
-     "tcp:host=localhost,port=1234;tcp:port=5678",
-     "tcp:port=1234;unix:path=./boogie",
-   };
--
-+#endif
-   DBusServer *server;
-   int i;
-   
-Index: dbus/dbus-spawn.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-spawn.c,v
-retrieving revision 1.25
-diff -u -3 -p -B -r1.25 dbus-spawn.c
---- dbus/dbus-spawn.c	4 Mar 2007 19:14:03 -0000	1.25
-+++ dbus/dbus-spawn.c	6 Mar 2007 20:54:43 -0000
-@@ -720,7 +720,7 @@ handle_watch (DBusWatch       *watch,
-   if (condition & DBUS_WATCH_HANGUP)
-     revents |= _DBUS_POLLHUP;
- 
--  fd = dbus_watch_get_fd (watch);
-+  fd = dbus_watch_get_handle (watch);
- 
-   if (fd == sitter->error_pipe_from_child)
-     handle_error_pipe (sitter, revents);
-Index: dbus/dbus-sysdeps-unix.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-sysdeps-unix.c,v
-retrieving revision 1.19
-diff -u -3 -p -B -r1.19 dbus-sysdeps-unix.c
---- dbus/dbus-sysdeps-unix.c	3 Mar 2007 10:36:45 -0000	1.19
-+++ dbus/dbus-sysdeps-unix.c	6 Mar 2007 20:54:43 -0000
-@@ -169,6 +169,15 @@ _dbus_write_socket (int               fd
-   return _dbus_write (fd, buffer, start, len);
- }
- 
-+int
-+_dbus_write_pipe (DBusPipe         pipe,
-+                  const DBusString *buffer,
-+                  int               start,
-+                  int               len)
-+{
-+	return _dbus_write (pipe, buffer, start, len);
-+}
-+
- /**
-  * Like _dbus_write_two() but only works on sockets and is thus
-  * available on Windows.
-@@ -2840,4 +2896,9 @@ _dbus_get_standard_session_servicedirs (
-   return FALSE;
- }
- 
-+// non empty implementation in the Windows code
-+void _dbus_daemon_release()
-+{
-+}
-+
- /* tests in dbus-sysdeps-util.c */
-Index: dbus/dbus-sysdeps-util.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-sysdeps-util.c,v
-retrieving revision 1.10
-diff -u -3 -p -B -r1.10 dbus-sysdeps-util.c
---- dbus/dbus-sysdeps-util.c	13 Dec 2006 01:18:07 -0000	1.10
-+++ dbus/dbus-sysdeps-util.c	6 Mar 2007 20:54:43 -0000
-@@ -82,7 +82,7 @@ _dbus_sysdeps_test (void)
-   double val;
-   int pos;
- 
--#ifdef DBUS_WIN
-+#if defined(DBUS_WIN) || defined(DBUS_WINCE)
-   check_dirname ("foo\\bar", "foo");
-   check_dirname ("foo\\\\bar", "foo");
-   check_dirname ("foo/\\/bar", "foo");
-@@ -141,6 +141,7 @@ _dbus_sysdeps_test (void)
-       exit (1);
-     }
- 
-+#ifndef DBUS_WIN_FIXME
-   _dbus_string_init_const (&str, "0xff");
-   if (!_dbus_string_parse_double (&str,
- 				  0, &val, &pos))
-@@ -158,6 +159,8 @@ _dbus_sysdeps_test (void)
-       _dbus_warn ("_dbus_string_parse_double of \"0xff\" returned wrong position %d", pos);
-       exit (1);
-     }
-+#endif
-+
- #ifdef DBUS_WIN
-   check_path_absolute ("c:/", TRUE);
-   check_path_absolute ("c:/foo", TRUE);
-Index: dbus/dbus-sysdeps.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-sysdeps.c,v
-retrieving revision 1.120
-diff -u -3 -p -B -r1.120 dbus-sysdeps.c
---- dbus/dbus-sysdeps.c	1 Jan 2007 21:29:59 -0000	1.120
-+++ dbus/dbus-sysdeps.c	6 Mar 2007 20:54:43 -0000
-@@ -119,11 +119,14 @@ _dbus_setenv (const char *varname,
-        * will get upset about.
-        */
-       
--      putenv_value = malloc (len + 1);
-+      putenv_value = malloc (len + 2);
-       if (putenv_value == NULL)
-         return FALSE;
- 
-       strcpy (putenv_value, varname);
-+#if defined(DBUS_WIN) || defined(DBUS_WINCE)
-+      strcat (putenv_value, "=");
-+#endif
-       
-       return (putenv (putenv_value) == 0);
- #endif
-@@ -413,6 +416,10 @@ static double
- ascii_strtod (const char *nptr,
- 	      char      **endptr)
- {
-+  /* FIXME: The Win32 C library's strtod() doesn't handle hex.
-+   * Presumably many Unixes don't either.
-+   */
-+
-   char *fail_pos;
-   double val;
-   struct lconv *locale_data;
-Index: dbus/dbus-sysdeps.h
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-sysdeps.h,v
-retrieving revision 1.68
-diff -u -3 -p -B -r1.68 dbus-sysdeps.h
---- dbus/dbus-sysdeps.h	31 Dec 2006 12:16:04 -0000	1.68
-+++ dbus/dbus-sysdeps.h	6 Mar 2007 20:54:43 -0000
-@@ -119,6 +119,7 @@ typedef unsigned long dbus_gid_t;
-  * 
-  */
- 
-+void        _dbus_daemon_release   (void);
- dbus_bool_t _dbus_open_tcp_socket  (int              *fd,
-                                     DBusError        *error);
- dbus_bool_t _dbus_close_socket     (int               fd,
-@@ -302,6 +303,12 @@ dbus_bool_t _dbus_path_is_absolute    (c
- 
- dbus_bool_t _dbus_get_standard_session_servicedirs (DBusList **dirs);
- 
-+typedef int DBusPipe;
-+int _dbus_write_pipe (DBusPipe          pipe,
-+                      const DBusString *buffer,
-+                      int               start,
-+                      int               len);
-+
- /** Opaque type for reading a directory listing */
- typedef struct DBusDirIter DBusDirIter;
- 
-Index: dbus/dbus-test.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-test.c,v
-retrieving revision 1.44
-diff -u -3 -p -B -r1.44 dbus-test.c
---- dbus/dbus-test.c	15 Nov 2006 03:07:59 -0000	1.44
-+++ dbus/dbus-test.c	6 Mar 2007 20:54:43 -0000
-@@ -156,7 +156,9 @@ dbus_internal_do_not_use_run_tests (cons
-   
-   run_test ("hash", specific_test, _dbus_hash_test);
- 
-+#if !defined(DBUS_WINCE)
-   run_data_test ("spawn", specific_test, _dbus_spawn_test, test_data_dir);
-+#endif
-   
-   run_data_test ("userdb", specific_test, _dbus_userdb_test, test_data_dir);
-   
-Index: dbus/dbus-threads.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-threads.c,v
-retrieving revision 1.36
-diff -u -3 -p -B -r1.36 dbus-threads.c
---- dbus/dbus-threads.c	28 Oct 2006 01:41:37 -0000	1.36
-+++ dbus/dbus-threads.c	6 Mar 2007 20:54:44 -0000
-@@ -810,7 +810,11 @@ dbus_fake_condvar_wake_all (DBusCondVar 
- dbus_bool_t
- _dbus_threads_init_debug (void)
- {
-+#if defined(DBUS_WIN)
-+  return _dbus_threads_init_platform_specific();
-+#else
-   return dbus_threads_init (&fake_functions);
-+#endif
- }
- 
- #endif /* DBUS_BUILD_TESTS */
-Index: dbus/dbus-transport-socket.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-transport-socket.c,v
-retrieving revision 1.4
-diff -u -3 -p -B -r1.4 dbus-transport-socket.c
---- dbus/dbus-transport-socket.c	20 Oct 2006 03:05:00 -0000	1.4
-+++ dbus/dbus-transport-socket.c	6 Mar 2007 20:54:44 -0000
-@@ -873,7 +873,7 @@ socket_handle_watch (DBusTransport *tran
-                        flags);
-       else
-         _dbus_verbose ("asked to handle watch %p on fd %d that we don't recognize\n",
--                       watch, dbus_watch_get_fd (watch));
-+                       watch, dbus_watch_get_handle (watch));
-     }
- #endif /* DBUS_ENABLE_VERBOSE_MODE */
- 
-@@ -1286,15 +1286,19 @@ _dbus_transport_open_socket(DBusAddressE
-           
-       if (port == NULL)
-         {
-+#if defined(DBUS_WIN)
-+          port = "0";
-+#else
-           _dbus_set_bad_address (error, "tcp", "port", NULL);
-           return DBUS_TRANSPORT_OPEN_BAD_ADDRESS;
-+#endif
-         }
- 
-       _dbus_string_init_const (&str, port);
-       sresult = _dbus_string_parse_int (&str, 0, &lport, NULL);
-       _dbus_string_free (&str);
-           
--      if (sresult == FALSE || lport <= 0 || lport > 65535)
-+      if (sresult == FALSE || lport < 0 || lport > 65535)
-         {
-           _dbus_set_bad_address (error, NULL, NULL,
-                                  "Port is not an integer between 0 and 65535");
-Index: dbus/dbus-transport-socket.h
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-transport-socket.h,v
-retrieving revision 1.2
-diff -u -3 -p -B -r1.2 dbus-transport-socket.h
---- dbus/dbus-transport-socket.h	16 Sep 2006 19:24:08 -0000	1.2
-+++ dbus/dbus-transport-socket.h	6 Mar 2007 20:54:44 -0000
-@@ -25,6 +25,10 @@
- 
- #include <dbus/dbus-transport-protected.h>
- 
-+#if defined(DBUS_WIN)
-+#include <dbus/dbus-sockets-win.h>
-+#endif
-+
- DBUS_BEGIN_DECLS
- 
- DBusTransport*          _dbus_transport_new_for_socket     (int                fd,
-Index: dbus/dbus-transport.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-transport.c,v
-retrieving revision 1.54
-diff -u -3 -p -B -r1.54 dbus-transport.c
---- dbus/dbus-transport.c	17 Oct 2006 20:52:13 -0000	1.54
-+++ dbus/dbus-transport.c	6 Mar 2007 20:54:45 -0000
-@@ -310,9 +310,11 @@ static const struct {
-                                     DBusTransport   **transport_p,
-                                     DBusError        *error);
- } open_funcs[] = {
--  { _dbus_transport_open_socket },
--  { _dbus_transport_open_platform_specific },
--  { _dbus_transport_open_autolaunch }
-+  { _dbus_transport_open_socket }
-+#ifndef DBUS_WIN
-+  , { _dbus_transport_open_platform_specific }
-+#endif
-+  , { _dbus_transport_open_autolaunch }
- #ifdef DBUS_BUILD_TESTS
-   , { _dbus_transport_open_debug_pipe }
- #endif
-@@ -674,7 +676,7 @@ _dbus_transport_handle_watch (DBusTransp
-   if (transport->disconnected)
-     return TRUE;
- 
--  if (dbus_watch_get_fd (watch) < 0)
-+  if (dbus_watch_get_handle (watch) < 0)
-     {
-       _dbus_warn_check_failed ("Tried to handle an invalidated watch; this watch should have been removed\n");
-       return TRUE;
-Index: dbus/dbus-watch.c
-===================================================================
-RCS file: /cvs/dbus/dbus/dbus/dbus-watch.c,v
-retrieving revision 1.22
-diff -u -3 -p -B -r1.22 dbus-watch.c
---- dbus/dbus-watch.c	21 Oct 2006 21:57:31 -0000	1.22
-+++ dbus/dbus-watch.c	6 Mar 2007 20:54:45 -0000
-@@ -286,7 +286,7 @@ _dbus_watch_list_set_functions (DBusWatc
-             
-             _dbus_verbose ("Adding a %s watch on fd %d using newly-set add watch function\n",
-                            watch_type,
--                           dbus_watch_get_fd (link->data));
-+                           dbus_watch_get_handle (link->data));
-           }
- #endif /* DBUS_ENABLE_VERBOSE_MODE */
-           
-@@ -302,7 +302,7 @@ _dbus_watch_list_set_functions (DBusWatc
-                                                              link2);
-                   
-                   _dbus_verbose ("Removing watch on fd %d using newly-set remove function because initial add failed\n",
--                                 dbus_watch_get_fd (link2->data));
-+                                 dbus_watch_get_handle (link2->data));
-                   
-                   (* remove_function) (link2->data, data);
-                   
-@@ -359,7 +359,7 @@ _dbus_watch_list_add_watch (DBusWatchLis
-   if (watch_list->add_watch_function != NULL)
-     {
-       _dbus_verbose ("Adding watch on fd %d\n",
--                     dbus_watch_get_fd (watch));
-+                     dbus_watch_get_handle (watch));
-       
-       if (!(* watch_list->add_watch_function) (watch,
-                                                watch_list->watch_data))
-@@ -390,7 +390,7 @@ _dbus_watch_list_remove_watch  (DBusWatc
-   if (watch_list->remove_watch_function != NULL)
-     {
-       _dbus_verbose ("Removing watch on fd %d\n",
--                     dbus_watch_get_fd (watch));
-+                     dbus_watch_get_handle (watch));
-       
-       (* watch_list->remove_watch_function) (watch,
-                                              watch_list->watch_data);
-@@ -422,7 +422,7 @@ _dbus_watch_list_toggle_watch (DBusWatch
-   if (watch_list->watch_toggled_function != NULL)
-     {
-       _dbus_verbose ("Toggling watch %p on fd %d to %d\n",
--                     watch, dbus_watch_get_fd (watch), watch->enabled);
-+                     watch, dbus_watch_get_handle (watch), watch->enabled);
-       
-       (* watch_list->watch_toggled_function) (watch,
-                                               watch_list->watch_data);
-@@ -490,10 +490,32 @@ _dbus_watch_set_handler (DBusWatch      
-  * @returns the file descriptor to watch.
-  */
- int
-+dbus_watch_get_handle (DBusWatch *watch)
-+{
-+  return watch->fd;
-+}
-+
-+#if defined(DBUS_WIN)
-+// never used by the dbus code
-+#include "dbus-sysdeps-win.h"
-+int 
-+dbus_watch_get_fd (DBusWatch *watch)
-+{
-+	DBusSocket *p;
-+	if (watch->fd != -1) {
-+	    _dbus_handle_to_socket(watch->fd,&p);
-+	    return p->fd;
-+	}
-+	else
-+		return -1;
-+}
-+#else
-+int
- dbus_watch_get_fd (DBusWatch *watch)
- {
-   return watch->fd;
- }
-+#endif
- 
- /**
-  * Gets flags from DBusWatchFlags indicating
-@@ -546,7 +568,7 @@ dbus_watch_set_data (DBusWatch        *w
-                      DBusFreeFunction  free_data_function)
- {
-   _dbus_verbose ("Setting watch fd %d data to data = %p function = %p from data = %p function = %p\n",
--                 dbus_watch_get_fd (watch),
-+                 dbus_watch_get_handle (watch),
-                  data, free_data_function, watch->data, watch->free_data_function);
-   
-   if (watch->free_data_function != NULL)
-Index: bus/dispatch.c
-===================================================================
-RCS file: /cvs/dbus/dbus/bus/dispatch.c,v
-retrieving revision 1.79
-diff -u -r1.79 dispatch.c
---- bus/dispatch.c	8 Mar 2007 08:30:17 -0000	1.79
-+++ bus/dispatch.c	8 Mar 2007 19:37:34 -0000
-@@ -428,6 +428,11 @@
-     }
- }
- 
-+#ifdef DBUS_WIN
-+#include <tools/dbus-print-message.h>
-+#include <tools/dbus-print-message.c>
-+#endif
-+
- static void
- spin_connection_until_authenticated (BusContext     *context,
-                                      DBusConnection *connection)
-@@ -439,6 +444,19 @@
-       bus_test_run_bus_loop (context, FALSE);
-       bus_test_run_clients_loop (FALSE);
-     }
-+#ifdef DBUS_WIN
-+  if ( dbus_connection_get_dispatch_status(connection) != DBUS_DISPATCH_COMPLETE)
-+    {
-+      DBusMessage *message;
-+	  message = dbus_connection_pop_message (connection);
-+	  printf ("spin_connection_until_authenticated failed,\n");
-+	  printf ("because of a non dispatched message:\n");
-+	  print_message(message, FALSE);
-+	  printf ("\n");	 
-+	  _dbus_assert_not_reached ("spin_connection_until_authenticated failed\n ");
-+    }
-+#endif
-+
-   _dbus_verbose (" ... done spinning to auth connection %p\n", connection);
- }
- 
-@@ -2699,9 +2717,12 @@
-         }
-       else
-         {
-+/* no DBUS_ERROR_NO_MEMORY on windows (no have_fork_errnum)*/
-+#ifndef DBUS_WIN_FIXME
-           warn_unexpected (connection, message, "not this error");
- 
-           goto out;
-+#endif
-         }
-     }
-   else
-@@ -4064,29 +4085,36 @@
-       _dbus_assert_not_reached ("initial connection setup failed");
-     }
-   
-+#ifdef DBUS_WIN_FIXME
-+  _dbus_warn("TODO: dispatch.c create_and_hello test\n");
-+#else
-   check1_try_iterations (context, "create_and_hello",
-                          check_hello_connection);
-+#endif
-   
-   check2_try_iterations (context, foo, "nonexistent_service_no_auto_start",
-                          check_nonexistent_service_no_auto_start);
- 
--#ifdef DBUS_WIN_FIXME
-+#ifdef DBUS_WIN_FIXME
-   _dbus_warn("TODO: dispatch.c segfault_service_no_auto_start test\n");
- #else
-   check2_try_iterations (context, foo, "segfault_service_no_auto_start",
-                          check_segfault_service_no_auto_start);
- #endif
-   
-+#ifdef DBUS_WIN_FIXME
-+  _dbus_warn("TODO: dispatch.c existent_service_no_auto_start\n");
-+#else
-   check2_try_iterations (context, foo, "existent_service_no_auto_start",
-                          check_existent_service_no_auto_start);
-   
-   check2_try_iterations (context, foo, "nonexistent_service_auto_start",
-                          check_nonexistent_service_auto_start);
--  
-+#endif
- 
- #ifdef DBUS_WIN_FIXME    
-   _dbus_warn("TODO: dispatch.c segfault_service_auto_start test\n");
--#else
-+#else
-   check2_try_iterations (context, foo, "segfault_service_auto_start",
-                          check_segfault_service_auto_start);
- #endif
-@@ -4106,8 +4134,12 @@
-   if (!check_existent_service_auto_start (context, foo))
-     _dbus_assert_not_reached ("existent service auto start failed");
- 
-+#ifdef DBUS_WIN_FIXME  
-+  _dbus_warn("TODO: dispatch.c check_shell_service_success_auto_start test\n");
-+#else
-   if (!check_shell_service_success_auto_start (context, foo))
-     _dbus_assert_not_reached ("shell success service auto start failed");
-+#endif
- 
-   _dbus_verbose ("Disconnecting foo, bar, and baz\n");
- 
-@@ -4158,8 +4190,12 @@
-       _dbus_assert_not_reached ("initial connection setup failed");
-     }
-   
-+#ifdef DBUS_WIN_FIXME  
-+  _dbus_warn("TODO: dispatch.c: create_and_hello_sha1 test\n");
-+#else
-   check1_try_iterations (context, "create_and_hello_sha1",
-                          check_hello_connection);
-+#endif
- 
-   kill_client_connection_unchecked (foo);
- 
-Index: bus/config-loader-expat.c
-===================================================================
-RCS file: /cvs/dbus/dbus/bus/config-loader-expat.c,v
-retrieving revision 1.10
-diff -u -r1.10 config-loader-expat.c
---- bus/config-loader-expat.c	10 Aug 2004 03:06:59 -0000	1.10
-+++ bus/config-loader-expat.c	8 Mar 2007 19:00:25 -0000
-@@ -161,6 +161,9 @@
-     }
- }
- 
-+#ifdef DBUS_WIN
-+DBusString *_dbus_get_working_dir(void);
-+#endif
- 
- BusConfigParser*
- bus_config_load (const DBusString      *file,
-@@ -171,6 +174,9 @@
-   XML_Parser expat;
-   const char *filename;
-   BusConfigParser *parser;
-+#ifdef DBUS_WIN
-+  DBusString *dbusdir;
-+#endif
-   ExpatParseContext context;
-   DBusString dirname;
-   
-@@ -209,6 +215,12 @@
-       goto failed;
-     }
-   
-+#ifdef DBUS_WIN
-+  dbusdir = _dbus_get_working_dir();
-+  if (dbusdir)
-+     parser = bus_config_parser_new (dbusdir, is_toplevel, parent);
-+  else  
-+#endif
-   parser = bus_config_parser_new (&dirname, is_toplevel, parent);
-   if (parser == NULL)
-     {
+? doc/Thumbs.db
+Index: bus/config-loader-expat.c
+===================================================================
+RCS file: /cvs/dbus/dbus/bus/config-loader-expat.c,v
+retrieving revision 1.10
+diff -u -r1.10 config-loader-expat.c
+--- bus/config-loader-expat.c	10 Aug 2004 03:06:59 -0000	1.10
++++ bus/config-loader-expat.c	8 Mar 2007 20:25:42 -0000
+@@ -161,6 +161,9 @@
+     }
+ }
+ 
++#ifdef DBUS_WIN
++DBusString *_dbus_get_working_dir(void);
++#endif
+ 
+ BusConfigParser*
+ bus_config_load (const DBusString      *file,
+@@ -171,6 +174,9 @@
+   XML_Parser expat;
+   const char *filename;
+   BusConfigParser *parser;
++#ifdef DBUS_WIN
++  DBusString *dbusdir;
++#endif
+   ExpatParseContext context;
+   DBusString dirname;
+   
+@@ -209,6 +215,12 @@
+       goto failed;
+     }
+   
++#ifdef DBUS_WIN
++  dbusdir = _dbus_get_working_dir();
++  if (dbusdir)
++     parser = bus_config_parser_new (dbusdir, is_toplevel, parent);
++  else  
++#endif
+   parser = bus_config_parser_new (&dirname, is_toplevel, parent);
+   if (parser == NULL)
+     {
+Index: bus/config-loader-libxml.c
+===================================================================
+RCS file: /cvs/dbus/dbus/bus/config-loader-libxml.c,v
+retrieving revision 1.8
+diff -u -r1.8 config-loader-libxml.c
+--- bus/config-loader-libxml.c	10 Aug 2004 03:06:59 -0000	1.8
++++ bus/config-loader-libxml.c	8 Mar 2007 20:25:40 -0000
+@@ -134,6 +134,9 @@
+     }
+ }
+ 
++#ifdef DBUS_WIN
++  DBusString *_dbus_get_working_dir(void);
++#endif
+ 
+ BusConfigParser*
+ bus_config_load (const DBusString      *file,
+@@ -147,7 +150,9 @@
+   DBusString dirname, data;
+   DBusError tmp_error;
+   int ret;
+-  
++#ifdef DBUS_WIN
++  DBusString *dbusdir;
++#endif
+   _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+   
+   parser = NULL;
+@@ -177,13 +182,19 @@
+       xmlSetGenericErrorFunc (NULL, xml_shut_up);
+     }
+ 
++#ifdef DBUS_WIN
++  dbusdir = _dbus_get_working_dir();
++  if (dbusdir)
++     parser = bus_config_parser_new (dbusdir, is_toplevel, parent);
++  else  
++#endif
+   if (!_dbus_string_get_dirname (file, &dirname))
+     {
+       _DBUS_SET_OOM (error);
+       goto failed;
+     }
+-  
+   parser = bus_config_parser_new (&dirname, is_toplevel, parent);
++  
+   if (parser == NULL)
+     {
+       _DBUS_SET_OOM (error);
+Index: bus/config-parser.c
+===================================================================
+RCS file: /cvs/dbus/dbus/bus/config-parser.c,v
+retrieving revision 1.47
+diff -u -r1.47 config-parser.c
+--- bus/config-parser.c	26 Jan 2007 16:10:09 -0000	1.47
++++ bus/config-parser.c	8 Mar 2007 20:25:40 -0000
+@@ -27,6 +27,7 @@
+ #include "selinux.h"
+ #include <dbus/dbus-list.h>
+ #include <dbus/dbus-internals.h>
++#include <dbus/dbus-userdb.h>
+ #include <string.h>
+ 
+ typedef enum
+@@ -3070,10 +3071,15 @@
+ 
+ static const char *test_service_dir_matches[] = 
+         {
++#ifdef DBUS_WIN
++         DBUS_DATADIR"/dbus-1/services",
++         NULL,
++#else
+          "/testusr/testlocal/testshare/dbus-1/services",
+          "/testusr/testshare/dbus-1/services",
+          DBUS_DATADIR"/dbus-1/services",
+          "/testhome/foo/.testlocal/testshare/dbus-1/services",         
++#endif 
+          NULL
+         };
+ 
+@@ -3082,11 +3088,32 @@
+ {
+   DBusList *dirs;
+   DBusList *link;
++  DBusString progs;
++  const char *common_progs;
+   int i;
+ 
++  common_progs = _dbus_getenv ("CommonProgramFiles");
++  if (common_progs) 
++    {
++      if (!_dbus_string_init (&progs))
++        return FALSE;
++
++      if (!_dbus_string_append (&progs, common_progs)) 
++        {
++          _dbus_string_free (&progs);
++          return FALSE;
++        }
++
++      if (!_dbus_string_append (&progs, "/dbus-1/services")) 
++        {
++          _dbus_string_free (&progs);
++          return FALSE;
++        }
++      test_service_dir_matches[1] = _dbus_string_get_const_data(&progs);
++    }
+   dirs = NULL;
+ 
+-  printf ("Testing retriving the default session service directories\n");
++  printf ("Testing retrieving the default session service directories\n");
+   if (!_dbus_get_standard_session_servicedirs (&dirs))
+     _dbus_assert_not_reached ("couldn't get stardard dirs");
+ 
+@@ -3097,7 +3124,7 @@
+       
+       printf ("    default service dir: %s\n", (char *)link->data);
+       _dbus_string_init_const (&path, (char *)link->data);
+-      if (!_dbus_string_ends_with_c_str (&path, "share/dbus-1/services"))
++      if (!_dbus_string_ends_with_c_str (&path, "dbus-1/services"))
+         {
+           printf ("error with default session service directories\n");
+           return FALSE;
+@@ -3150,6 +3177,7 @@
+       return FALSE;
+     }
+     
++  _dbus_string_free (&progs);
+   return TRUE;
+ }
+ 			   
+Index: bus/dispatch.c
+===================================================================
+RCS file: /cvs/dbus/dbus/bus/dispatch.c,v
+retrieving revision 1.79
+diff -u -r1.79 dispatch.c
+--- bus/dispatch.c	8 Mar 2007 08:30:17 -0000	1.79
++++ bus/dispatch.c	8 Mar 2007 20:25:42 -0000
+@@ -34,7 +34,7 @@
+ #include "test.h"
+ #include <dbus/dbus-internals.h>
+ #include <string.h>
+-
++
+ static dbus_bool_t
+ send_one_message (DBusConnection *connection,
+                   BusContext     *context,
+@@ -428,6 +428,11 @@
+     }
+ }
+ 
++#ifdef DBUS_WIN
++#include <tools/dbus-print-message.h>
++#include <tools/dbus-print-message.c>
++#endif
++
+ static void
+ spin_connection_until_authenticated (BusContext     *context,
+                                      DBusConnection *connection)
+@@ -439,6 +444,19 @@
+       bus_test_run_bus_loop (context, FALSE);
+       bus_test_run_clients_loop (FALSE);
+     }
++#ifdef DBUS_WIN
++  if ( dbus_connection_get_dispatch_status(connection) != DBUS_DISPATCH_COMPLETE)
++    {
++      DBusMessage *message;
++	  message = dbus_connection_pop_message (connection);
++	  printf ("spin_connection_until_authenticated failed,\n");
++	  printf ("because of a non dispatched message:\n");
++	  print_message(message, FALSE);
++	  printf ("\n");	 
++	  _dbus_assert_not_reached ("spin_connection_until_authenticated failed\n ");
++    }
++#endif
++
+   _dbus_verbose (" ... done spinning to auth connection %p\n", connection);
+ }
+ 
+@@ -2699,9 +2717,12 @@
+         }
+       else
+         {
++/* no DBUS_ERROR_NO_MEMORY on windows (no have_fork_errnum)*/
++#ifndef DBUS_WIN_FIXME
+           warn_unexpected (connection, message, "not this error");
+ 
+           goto out;
++#endif
+         }
+     }
+   else
+@@ -2812,7 +2833,7 @@
+   return retval;
+ }
+ #endif
+-
++
+ #define TEST_ECHO_MESSAGE "Test echo message"
+ #define TEST_RUN_HELLO_FROM_SELF_MESSAGE "Test sending message to self"
+ 
+@@ -4064,29 +4085,36 @@
+       _dbus_assert_not_reached ("initial connection setup failed");
+     }
+   
++#ifdef DBUS_WIN_FIXME
++  _dbus_warn("TODO: dispatch.c create_and_hello test\n");
++#else
+   check1_try_iterations (context, "create_and_hello",
+                          check_hello_connection);
++#endif
+   
+   check2_try_iterations (context, foo, "nonexistent_service_no_auto_start",
+                          check_nonexistent_service_no_auto_start);
+ 
+-#ifdef DBUS_WIN_FIXME
++#ifdef DBUS_WIN_FIXME
+   _dbus_warn("TODO: dispatch.c segfault_service_no_auto_start test\n");
+ #else
+   check2_try_iterations (context, foo, "segfault_service_no_auto_start",
+                          check_segfault_service_no_auto_start);
+ #endif
+   
++#ifdef DBUS_WIN_FIXME
++  _dbus_warn("TODO: dispatch.c existent_service_no_auto_start\n");
++#else
+   check2_try_iterations (context, foo, "existent_service_no_auto_start",
+                          check_existent_service_no_auto_start);
+   
+   check2_try_iterations (context, foo, "nonexistent_service_auto_start",
+                          check_nonexistent_service_auto_start);
+-  
++#endif
+ 
+ #ifdef DBUS_WIN_FIXME    
+   _dbus_warn("TODO: dispatch.c segfault_service_auto_start test\n");
+-#else
++#else
+   check2_try_iterations (context, foo, "segfault_service_auto_start",
+                          check_segfault_service_auto_start);
+ #endif
+@@ -4106,8 +4134,12 @@
+   if (!check_existent_service_auto_start (context, foo))
+     _dbus_assert_not_reached ("existent service auto start failed");
+ 
++#ifdef DBUS_WIN_FIXME  
++  _dbus_warn("TODO: dispatch.c check_shell_service_success_auto_start test\n");
++#else
+   if (!check_shell_service_success_auto_start (context, foo))
+     _dbus_assert_not_reached ("shell success service auto start failed");
++#endif
+ 
+   _dbus_verbose ("Disconnecting foo, bar, and baz\n");
+ 
+@@ -4158,8 +4190,12 @@
+       _dbus_assert_not_reached ("initial connection setup failed");
+     }
+   
++#ifdef DBUS_WIN_FIXME  
++  _dbus_warn("TODO: dispatch.c: create_and_hello_sha1 test\n");
++#else
+   check1_try_iterations (context, "create_and_hello_sha1",
+                          check_hello_connection);
++#endif
+ 
+   kill_client_connection_unchecked (foo);
+ 
+Index: bus/main.c
+===================================================================
+RCS file: /cvs/dbus/dbus/bus/main.c,v
+retrieving revision 1.36
+diff -u -r1.36 main.c
+--- bus/main.c	20 Dec 2006 06:18:19 -0000	1.36
++++ bus/main.c	8 Mar 2007 20:25:40 -0000
+@@ -254,6 +254,12 @@
+   dbus_bool_t print_pid;
+   int force_fork;
+ 
++#ifdef _WIN32
++	extern int _dbus_init_working_dir(char *s);
++	if (!_dbus_init_working_dir(argv[0]))
++		return 1;
++#endif
++
+   if (!_dbus_string_init (&config_file))
+     return 1;
+ 
+Index: bus/policy.c
+===================================================================
+RCS file: /cvs/dbus/dbus/bus/policy.c,v
+retrieving revision 1.24
+diff -u -r1.24 policy.c
+--- bus/policy.c	12 Dec 2006 21:24:07 -0000	1.24
++++ bus/policy.c	8 Mar 2007 20:25:40 -0000
+@@ -324,9 +324,13 @@
+ 
+   if (!dbus_connection_get_unix_user (connection, &uid))
+     {
++#ifdef DBUS_WIN
++		_dbus_verbose ("policy.c: dbus_connection_get_unix_user check disabled under windows\n");
++#else
+       dbus_set_error (error, DBUS_ERROR_FAILED,
+                       "No user ID known for connection, cannot determine security policy\n");
+       goto failed;
++#endif
+     }
+ 
+   if (_dbus_hash_table_get_n_entries (policy->rules_by_uid) > 0)
+Index: dbus/dbus-bus.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-bus.c,v
+retrieving revision 1.64
+diff -u -r1.64 dbus-bus.c
+--- dbus/dbus-bus.c	28 Oct 2006 01:41:37 -0000	1.64
++++ dbus/dbus-bus.c	8 Mar 2007 20:25:40 -0000
+@@ -350,8 +350,10 @@
+ {
+   int i;
+   
++#if !defined(DBUS_WIN) && !defined(DBUS_WINCE)
++   // qt example pong says "QMutex::lock: Deadlock detected"
+   _DBUS_LOCK (bus);
+-
++#endif
+   /* We are expecting to have the connection saved in only one of these
+    * slots, but someone could in a pathological case set system and session
+    * bus to the same bus or something. Or set one of them to the starter
+@@ -366,7 +368,9 @@
+         }
+     }
+ 
++#if !defined(DBUS_WIN) && !defined(DBUS_WINCE)
+   _DBUS_UNLOCK (bus);
++#endif
+ }
+ 
+ static DBusConnection *
+Index: dbus/dbus-connection.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-connection.c,v
+retrieving revision 1.154
+diff -u -r1.154 dbus-connection.c
+--- dbus/dbus-connection.c	15 Nov 2006 03:07:59 -0000	1.154
++++ dbus/dbus-connection.c	8 Mar 2007 20:25:37 -0000
+@@ -4790,14 +4790,6 @@
+   _dbus_return_val_if_fail (connection != NULL, FALSE);
+   _dbus_return_val_if_fail (uid != NULL, FALSE);
+ 
+-#ifdef DBUS_WIN
+-  /* FIXME this should be done at a lower level, but it's kind of hard,
+-   * just want to be sure we don't ship with this API returning
+-   * some weird internal fake uid for 1.0
+-   */
+-  return FALSE;
+-#endif
+-  
+   CONNECTION_LOCK (connection);
+ 
+   if (!_dbus_transport_get_is_authenticated (connection->transport))
+@@ -4829,14 +4821,6 @@
+   _dbus_return_val_if_fail (connection != NULL, FALSE);
+   _dbus_return_val_if_fail (pid != NULL, FALSE);
+ 
+-#ifdef DBUS_WIN
+-  /* FIXME this should be done at a lower level, but it's kind of hard,
+-   * just want to be sure we don't ship with this API returning
+-   * some weird internal fake uid for 1.0
+-   */
+-  return FALSE;
+-#endif
+-  
+   CONNECTION_LOCK (connection);
+ 
+   if (!_dbus_transport_get_is_authenticated (connection->transport))
+Index: dbus/dbus-connection.h
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-connection.h,v
+retrieving revision 1.49
+diff -u -r1.49 dbus-connection.h
+--- dbus/dbus-connection.h	15 Nov 2006 03:07:59 -0000	1.49
++++ dbus/dbus-connection.h	8 Mar 2007 20:25:40 -0000
+@@ -330,6 +330,9 @@
+  */
+ 
+ int          dbus_watch_get_fd      (DBusWatch        *watch);
++#if defined (DBUS_COMPILATION)
++int          dbus_watch_get_handle  (DBusWatch        *watch);
++#endif
+ unsigned int dbus_watch_get_flags   (DBusWatch        *watch);
+ void*        dbus_watch_get_data    (DBusWatch        *watch);
+ void         dbus_watch_set_data    (DBusWatch        *watch,
+Index: dbus/dbus-internals.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-internals.c,v
+retrieving revision 1.55
+diff -u -r1.55 dbus-internals.c
+--- dbus/dbus-internals.c	15 Nov 2006 01:52:01 -0000	1.55
++++ dbus/dbus-internals.c	8 Mar 2007 20:25:40 -0000
+@@ -295,7 +295,7 @@
+ #include <pthread.h>
+ #endif
+ 
+-static inline void
++static void
+ _dbus_verbose_init (void)
+ {
+   if (!verbose_initted)
+Index: dbus/dbus-mainloop.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-mainloop.c,v
+retrieving revision 1.19
+diff -u -r1.19 dbus-mainloop.c
+--- dbus/dbus-mainloop.c	20 Oct 2006 03:04:59 -0000	1.19
++++ dbus/dbus-mainloop.c	8 Mar 2007 20:25:40 -0000
+@@ -90,8 +90,8 @@
+   Callback callback;
+   DBusTimeout *timeout;
+   DBusTimeoutFunction function;
+-  unsigned long last_tv_sec;
+-  unsigned long last_tv_usec;
++  long last_tv_sec;
++  long last_tv_usec;
+ } TimeoutCallback;
+ 
+ #define WATCH_CALLBACK(callback)   ((WatchCallback*)callback)
+@@ -598,7 +598,7 @@
+ 
+ #if MAINLOOP_SPEW
+               _dbus_verbose ("  skipping watch on fd %d as it was out of memory last time\n",
+-                             dbus_watch_get_fd (wcb->watch));
++                             dbus_watch_get_handle (wcb->watch));
+ #endif
+             }
+           else if (dbus_watch_get_enabled (wcb->watch))
+@@ -609,7 +609,7 @@
+                   
+               flags = dbus_watch_get_flags (wcb->watch);
+                   
+-              fds[n_fds].fd = dbus_watch_get_fd (wcb->watch);
++              fds[n_fds].fd = dbus_watch_get_handle (wcb->watch);
+               fds[n_fds].revents = 0;
+               fds[n_fds].events = 0;
+               if (flags & DBUS_WATCH_READABLE)
+@@ -628,7 +628,7 @@
+             {
+ #if MAINLOOP_SPEW
+               _dbus_verbose ("  skipping disabled watch on fd %d  %s\n",
+-                             dbus_watch_get_fd (wcb->watch),
++                             dbus_watch_get_handle (wcb->watch),
+                              watch_flags_to_string (dbus_watch_get_flags (wcb->watch)));
+ #endif
+             }
+@@ -640,8 +640,8 @@
+   timeout = -1;
+   if (loop->timeout_count > 0)
+     {
+-      unsigned long tv_sec;
+-      unsigned long tv_usec;
++      long tv_sec;
++      long tv_usec;
+       
+       _dbus_get_current_time (&tv_sec, &tv_usec);
+           
+@@ -710,8 +710,8 @@
+ 
+   if (loop->timeout_count > 0)
+     {
+-      unsigned long tv_sec;
+-      unsigned long tv_usec;
++      long tv_sec;
++      long tv_usec;
+ 
+       _dbus_get_current_time (&tv_sec, &tv_usec);
+ 
+@@ -883,6 +883,8 @@
+   
+   loop->depth -= 1;
+ 
++ _dbus_daemon_release ();
++
+   _dbus_verbose ("Quit main loop, depth %d -> %d\n",
+                  loop->depth + 1, loop->depth);
+ }
+Index: dbus/dbus-server-socket.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-server-socket.c,v
+retrieving revision 1.3
+diff -u -r1.3 dbus-server-socket.c
+--- dbus/dbus-server-socket.c	1 Oct 2006 15:36:18 -0000	1.3
++++ dbus/dbus-server-socket.c	8 Mar 2007 20:25:40 -0000
+@@ -161,7 +161,7 @@
+       int client_fd;
+       int listen_fd;
+       
+-      listen_fd = dbus_watch_get_fd (watch);
++      listen_fd = dbus_watch_get_handle (watch);
+ 
+       client_fd = _dbus_accept (listen_fd);
+       
+@@ -393,15 +393,19 @@
+           
+       if (port == NULL)
+         {
++#if defined(DBUS_WIN) || defined(DBUS_WINCE)
++          port = "0";
++#else
+           _dbus_set_bad_address(error, "tcp", "port", NULL);
+           return DBUS_SERVER_LISTEN_BAD_ADDRESS;
++#endif
+         }
+ 
+       _dbus_string_init_const (&str, port);
+       sresult = _dbus_string_parse_int (&str, 0, &lport, NULL);
+       _dbus_string_free (&str);
+           
+-      if (sresult == FALSE || lport <= 0 || lport > 65535)
++      if (sresult == FALSE || lport < 0 || lport > 65535)
+         {
+           _dbus_set_bad_address(error, NULL, NULL, 
+                                 "Port is not an integer between 0 and 65535");
+Index: dbus/dbus-server.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-server.c,v
+retrieving revision 1.54
+diff -u -r1.54 dbus-server.c
+--- dbus/dbus-server.c	21 Oct 2006 23:09:18 -0000	1.54
++++ dbus/dbus-server.c	8 Mar 2007 20:25:40 -0000
+@@ -509,8 +509,10 @@
+                                    DBusServer      **server_p,
+                                    DBusError        *error);
+ } listen_funcs[] = {
+-  { _dbus_server_listen_socket },
+-  { _dbus_server_listen_platform_specific }
++  { _dbus_server_listen_socket }
++#ifndef DBUS_WIN
++  , { _dbus_server_listen_platform_specific }
++#endif
+ #ifdef DBUS_BUILD_TESTS
+   , { _dbus_server_listen_debug_pipe }
+ #endif
+@@ -1114,6 +1116,13 @@
+ dbus_bool_t
+ _dbus_server_test (void)
+ {
++#if defined(DBUS_WIN) || defined(DBUS_WINCE)
++  const char *valid_addresses[] = {
++    "tcp:port=1234",
++    "tcp:host=localhost,port=1234",
++    "tcp:host=localhost,port=1234;tcp:port=5678",
++  };
++#else
+   const char *valid_addresses[] = {
+     "tcp:port=1234",
+     "unix:path=./boogie",
+@@ -1121,7 +1130,7 @@
+     "tcp:host=localhost,port=1234;tcp:port=5678",
+     "tcp:port=1234;unix:path=./boogie",
+   };
+-
++#endif
+   DBusServer *server;
+   int i;
+   
+Index: dbus/dbus-spawn.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-spawn.c,v
+retrieving revision 1.25
+diff -u -r1.25 dbus-spawn.c
+--- dbus/dbus-spawn.c	4 Mar 2007 19:14:03 -0000	1.25
++++ dbus/dbus-spawn.c	8 Mar 2007 20:25:40 -0000
+@@ -720,7 +720,7 @@
+   if (condition & DBUS_WATCH_HANGUP)
+     revents |= _DBUS_POLLHUP;
+ 
+-  fd = dbus_watch_get_fd (watch);
++  fd = dbus_watch_get_handle (watch);
+ 
+   if (fd == sitter->error_pipe_from_child)
+     handle_error_pipe (sitter, revents);
+Index: dbus/dbus-sysdeps-util.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-sysdeps-util.c,v
+retrieving revision 1.10
+diff -u -r1.10 dbus-sysdeps-util.c
+--- dbus/dbus-sysdeps-util.c	13 Dec 2006 01:18:07 -0000	1.10
++++ dbus/dbus-sysdeps-util.c	8 Mar 2007 20:25:41 -0000
+@@ -82,7 +82,7 @@
+   double val;
+   int pos;
+ 
+-#ifdef DBUS_WIN
++#if defined(DBUS_WIN) || defined(DBUS_WINCE)
+   check_dirname ("foo\\bar", "foo");
+   check_dirname ("foo\\\\bar", "foo");
+   check_dirname ("foo/\\/bar", "foo");
+@@ -141,6 +141,7 @@
+       exit (1);
+     }
+ 
++#ifndef DBUS_WIN_FIXME
+   _dbus_string_init_const (&str, "0xff");
+   if (!_dbus_string_parse_double (&str,
+ 				  0, &val, &pos))
+@@ -158,6 +159,8 @@
+       _dbus_warn ("_dbus_string_parse_double of \"0xff\" returned wrong position %d", pos);
+       exit (1);
+     }
++#endif
++
+ #ifdef DBUS_WIN
+   check_path_absolute ("c:/", TRUE);
+   check_path_absolute ("c:/foo", TRUE);
+Index: dbus/dbus-sysdeps.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-sysdeps.c,v
+retrieving revision 1.120
+diff -u -r1.120 dbus-sysdeps.c
+--- dbus/dbus-sysdeps.c	1 Jan 2007 21:29:59 -0000	1.120
++++ dbus/dbus-sysdeps.c	8 Mar 2007 20:25:41 -0000
+@@ -119,11 +119,14 @@
+        * will get upset about.
+        */
+       
+-      putenv_value = malloc (len + 1);
++      putenv_value = malloc (len + 2);
+       if (putenv_value == NULL)
+         return FALSE;
+ 
+       strcpy (putenv_value, varname);
++#if defined(DBUS_WIN)
++      strcat (putenv_value, "=");
++#endif
+       
+       return (putenv (putenv_value) == 0);
+ #endif
+@@ -413,6 +416,10 @@
+ ascii_strtod (const char *nptr,
+ 	      char      **endptr)
+ {
++  /* FIXME: The Win32 C library's strtod() doesn't handle hex.
++   * Presumably many Unixes don't either.
++   */
++
+   char *fail_pos;
+   double val;
+   struct lconv *locale_data;
+Index: dbus/dbus-sysdeps.h
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-sysdeps.h,v
+retrieving revision 1.69
+diff -u -r1.69 dbus-sysdeps.h
+--- dbus/dbus-sysdeps.h	8 Mar 2007 20:25:15 -0000	1.69
++++ dbus/dbus-sysdeps.h	8 Mar 2007 20:25:41 -0000
+@@ -119,6 +119,7 @@
+  * 
+  */
+ 
++void        _dbus_daemon_release   (void);
+ dbus_bool_t _dbus_open_tcp_socket  (int              *fd,
+                                     DBusError        *error);
+ dbus_bool_t _dbus_close_socket     (int               fd,
+Index: dbus/dbus-test.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-test.c,v
+retrieving revision 1.44
+diff -u -r1.44 dbus-test.c
+--- dbus/dbus-test.c	15 Nov 2006 03:07:59 -0000	1.44
++++ dbus/dbus-test.c	8 Mar 2007 20:25:41 -0000
+@@ -156,7 +156,9 @@
+   
+   run_test ("hash", specific_test, _dbus_hash_test);
+ 
++#if !defined(DBUS_WINCE)
+   run_data_test ("spawn", specific_test, _dbus_spawn_test, test_data_dir);
++#endif
+   
+   run_data_test ("userdb", specific_test, _dbus_userdb_test, test_data_dir);
+   
+Index: dbus/dbus-threads.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-threads.c,v
+retrieving revision 1.36
+diff -u -r1.36 dbus-threads.c
+--- dbus/dbus-threads.c	28 Oct 2006 01:41:37 -0000	1.36
++++ dbus/dbus-threads.c	8 Mar 2007 20:25:41 -0000
+@@ -810,7 +810,11 @@
+ dbus_bool_t
+ _dbus_threads_init_debug (void)
+ {
++#if defined(DBUS_WIN)
++  return _dbus_threads_init_platform_specific();
++#else
+   return dbus_threads_init (&fake_functions);
++#endif
+ }
+ 
+ #endif /* DBUS_BUILD_TESTS */
+Index: dbus/dbus-transport-socket.h
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-transport-socket.h,v
+retrieving revision 1.2
+diff -u -r1.2 dbus-transport-socket.h
+--- dbus/dbus-transport-socket.h	16 Sep 2006 19:24:08 -0000	1.2
++++ dbus/dbus-transport-socket.h	8 Mar 2007 20:25:42 -0000
+@@ -25,6 +25,10 @@
+ 
+ #include <dbus/dbus-transport-protected.h>
+ 
++#if defined(DBUS_WIN)
++#include <dbus/dbus-sockets-win.h>
++#endif
++
+ DBUS_BEGIN_DECLS
+ 
+ DBusTransport*          _dbus_transport_new_for_socket     (int                fd,
+Index: dbus/dbus-transport.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-transport.c,v
+retrieving revision 1.54
+diff -u -r1.54 dbus-transport.c
+--- dbus/dbus-transport.c	17 Oct 2006 20:52:13 -0000	1.54
++++ dbus/dbus-transport.c	8 Mar 2007 20:25:42 -0000
+@@ -310,9 +310,11 @@
+                                     DBusTransport   **transport_p,
+                                     DBusError        *error);
+ } open_funcs[] = {
+-  { _dbus_transport_open_socket },
+-  { _dbus_transport_open_platform_specific },
+-  { _dbus_transport_open_autolaunch }
++  { _dbus_transport_open_socket }
++#ifndef DBUS_WIN
++  , { _dbus_transport_open_platform_specific }
++#endif
++  , { _dbus_transport_open_autolaunch }
+ #ifdef DBUS_BUILD_TESTS
+   , { _dbus_transport_open_debug_pipe }
+ #endif
+@@ -674,7 +676,7 @@
+   if (transport->disconnected)
+     return TRUE;
+ 
+-  if (dbus_watch_get_fd (watch) < 0)
++  if (dbus_watch_get_handle (watch) < 0)
+     {
+       _dbus_warn_check_failed ("Tried to handle an invalidated watch; this watch should have been removed\n");
+       return TRUE;
+Index: dbus/dbus-watch.c
+===================================================================
+RCS file: /cvs/dbus/dbus/dbus/dbus-watch.c,v
+retrieving revision 1.22
+diff -u -r1.22 dbus-watch.c
+--- dbus/dbus-watch.c	21 Oct 2006 21:57:31 -0000	1.22
++++ dbus/dbus-watch.c	8 Mar 2007 20:25:42 -0000
+@@ -286,7 +286,7 @@
+             
+             _dbus_verbose ("Adding a %s watch on fd %d using newly-set add watch function\n",
+                            watch_type,
+-                           dbus_watch_get_fd (link->data));
++                           dbus_watch_get_handle (link->data));
+           }
+ #endif /* DBUS_ENABLE_VERBOSE_MODE */
+           
+@@ -302,7 +302,7 @@
+                                                              link2);
+                   
+                   _dbus_verbose ("Removing watch on fd %d using newly-set remove function because initial add failed\n",
+-                                 dbus_watch_get_fd (link2->data));
++                                 dbus_watch_get_handle (link2->data));
+                   
+                   (* remove_function) (link2->data, data);
+                   
+@@ -359,7 +359,7 @@
+   if (watch_list->add_watch_function != NULL)
+     {
+       _dbus_verbose ("Adding watch on fd %d\n",
+-                     dbus_watch_get_fd (watch));
++                     dbus_watch_get_handle (watch));
+       
+       if (!(* watch_list->add_watch_function) (watch,
+                                                watch_list->watch_data))
+@@ -390,7 +390,7 @@
+   if (watch_list->remove_watch_function != NULL)
+     {
+       _dbus_verbose ("Removing watch on fd %d\n",
+-                     dbus_watch_get_fd (watch));
++                     dbus_watch_get_handle (watch));
+       
+       (* watch_list->remove_watch_function) (watch,
+                                              watch_list->watch_data);
+@@ -422,7 +422,7 @@
+   if (watch_list->watch_toggled_function != NULL)
+     {
+       _dbus_verbose ("Toggling watch %p on fd %d to %d\n",
+-                     watch, dbus_watch_get_fd (watch), watch->enabled);
++                     watch, dbus_watch_get_handle (watch), watch->enabled);
+       
+       (* watch_list->watch_toggled_function) (watch,
+                                               watch_list->watch_data);
+@@ -490,10 +490,32 @@
+  * @returns the file descriptor to watch.
+  */
+ int
++dbus_watch_get_handle (DBusWatch *watch)
++{
++  return watch->fd;
++}
++
++#if defined(DBUS_WIN)
++// never used by the dbus code
++#include "dbus-sysdeps-win.h"
++int 
++dbus_watch_get_fd (DBusWatch *watch)
++{
++	DBusSocket *p;
++	if (watch->fd != -1) {
++	    _dbus_handle_to_socket(watch->fd,&p);
++	    return p->fd;
++	}
++	else
++		return -1;
++}
++#else
++int
+ dbus_watch_get_fd (DBusWatch *watch)
+ {
+   return watch->fd;
+ }
++#endif
+ 
+ /**
+  * Gets flags from DBusWatchFlags indicating
+@@ -546,7 +568,7 @@
+                      DBusFreeFunction  free_data_function)
+ {
+   _dbus_verbose ("Setting watch fd %d data to data = %p function = %p from data = %p function = %p\n",
+-                 dbus_watch_get_fd (watch),
++                 dbus_watch_get_handle (watch),
+                  data, free_data_function, watch->data, watch->free_data_function);
+   
+   if (watch->free_data_function != NULL)



More information about the dbus-commit mailing list