platform/upstream/dbus.git
17 years ago* configure.in: Released 1.0 RC 2(0.94) dbus-0.94
John (J5) Palmieri [Sat, 14 Oct 2006 17:38:56 +0000 (17:38 +0000)]
* configure.in: Released 1.0 RC 2(0.94)
  Add check for -fPIC and enable it if available

17 years ago* doc/TODO: Remove the check TODO item
John (J5) Palmieri [Sat, 14 Oct 2006 16:25:53 +0000 (16:25 +0000)]
* doc/TODO: Remove the check TODO item

17 years ago* dbus-transport-socket.c (exchange_credentials):
John (J5) Palmieri [Fri, 13 Oct 2006 21:12:24 +0000 (21:12 +0000)]
* dbus-transport-socket.c (exchange_credentials):
  Print out more detailed errors if reading or sending
  credentials fail (Patch from Julio M. Merino Vidal
  <jmmv at NetBSD dot org>)

17 years ago* configure.in: when checking for posix getpwnam_r assume true
John (J5) Palmieri [Fri, 13 Oct 2006 20:32:48 +0000 (20:32 +0000)]
* configure.in: when checking for posix getpwnam_r assume true
  for cross compiles

17 years ago* configure.in: Check for gethostbyname first before we check for it
John (J5) Palmieri [Fri, 13 Oct 2006 20:01:16 +0000 (20:01 +0000)]
* configure.in: Check for gethostbyname first before we check for it
  in libnsl.  On gnu systems it is implemeneted

17 years ago2006-10-13 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Fri, 13 Oct 2006 16:26:47 +0000 (16:26 +0000)]
2006-10-13  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-connection.c
(dbus_connection_send_with_reply_and_block): fix to handle closed
connections, from Tambet Ingo bug #8631

17 years ago* configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
John (J5) Palmieri [Thu, 12 Oct 2006 01:05:16 +0000 (01:05 +0000)]
* configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN

17 years ago* test/name-test/Makefile.am: don't link against both libdbus and
John (J5) Palmieri [Wed, 11 Oct 2006 17:30:58 +0000 (17:30 +0000)]
* test/name-test/Makefile.am: don't link against both libdbus and
  libdbus-convenience

17 years ago* configure.in: check for dirfd even if it is a macro
John (J5) Palmieri [Wed, 11 Oct 2006 17:29:01 +0000 (17:29 +0000)]
* configure.in: check for dirfd even if it is a macro
  (Patch from Timothy Redaelli <drizzt at gufi dot org>)

17 years ago* configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
John (J5) Palmieri [Sun, 8 Oct 2006 16:56:50 +0000 (16:56 +0000)]
* configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
  avoid using dirfd on systems that don't have dirfd
  (Patch by Brian Cameron <brian dot cameron at sun dot com>)

17 years ago* dbus/dbus-sysdeps.c (_dbus_abort): Remove from
John (J5) Palmieri [Mon, 2 Oct 2006 18:45:27 +0000 (18:45 +0000)]
* dbus/dbus-sysdeps.c (_dbus_abort): Remove from
  #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck

* dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
  #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
  macro because _dbus_abort calls it

* tools/Makefile.am: Add dbus-launch.h to the source list so distcheck works

17 years ago* dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
John (J5) Palmieri [Mon, 2 Oct 2006 15:43:48 +0000 (15:43 +0000)]
* dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
  MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)

17 years ago * tools/dbus-launch.c (main): make it complain and abort
Thiago Macieira [Sun, 1 Oct 2006 22:21:30 +0000 (22:21 +0000)]
* tools/dbus-launch.c (main): make it complain and abort
execution in case an unknown option is given. Also, process
the '--' argument as the end of arguments.

17 years ago2006-10-01 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 1 Oct 2006 20:05:39 +0000 (20:05 +0000)]
2006-10-01  Havoc Pennington  <hp@redhat.com>

* tools/dbus-launch.c (print_variables): if no syntax is given,
don't print something that's sort-of-half-sh-syntax, just print
a plain key-value pairs thing.

* tools/dbus-launch-x11.c: use machine ID rather than hostname for
the local machine representation (but still have the hostname in
the display). Remove the hostname from the display if it is
localhost. Change session files to be named
~/.dbus/session-bus/machine-display. Change X atoms to be
underscore-prefixed so nobody whines about ICCCM compliance.
Otherwise name them the same as the env variables.
Change session file format to include key-value pairs and an
explanatory comment. Keys are the same as the env variables.
(set_address_in_x11): X property format can't depend on
sizeof(pid_t) on a particular machine, fix to always be 32 bits

* tools/dbus-launch.c: make --autolaunch take a machine id
argument. If --autolaunch is used with a program to run, complain
for now (but add a FIXME). Also, don't look for existing bus if
there's a program to run (but add a FIXME).

* dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
just to get this, and avoids duplicating uuid-reading code).

* tools/dbus-launch.1: clarify various things

17 years ago2006-10-01 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 1 Oct 2006 17:21:03 +0000 (17:21 +0000)]
2006-10-01  Havoc Pennington  <hp@redhat.com>

* test/test-service.c (path_message_func): remove broken extra
unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c

* test/test-shell-service.c (path_message_func): same fix

* dbus/dbus-connection.c
(_dbus_connection_get_dispatch_status_unlocked): break up the
function a little for clarity and fix the notification of
dbus-bus.c to not require dispatch to be complete

* dbus/dbus-connection.c (dbus_connection_unref): improve the
warning when you try to finalize an open connection.

17 years ago2006-10-01 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 1 Oct 2006 16:11:24 +0000 (16:11 +0000)]
2006-10-01  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-bus.c
(internal_bus_get): only weak ref the connection; this means
_dbus_bus_notify_shared_connection_disconnected_unlocked can be
called safely in any context
(_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
unref

* dbus/dbus-connection.c
(_dbus_connection_get_dispatch_status_unlocked): move
_dbus_bus_notify_shared_connection_disconnected_unlocked here
when queuing Disconnected instead of when the Disconnected message
arrives, so dbus_bus_get() won't return closed connections.

17 years ago2006-10-01 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 1 Oct 2006 15:36:19 +0000 (15:36 +0000)]
2006-10-01  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref):
Add a hack to make DBusNewConnectionFunction work right.

* dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
the hack here. Also, fix the todo about refcount leak.

* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
and use the hack here

        * dbus/dbus-connection.c: Kill the "shared" flag vs. the
"shareable" flag; this was completely broken, since it meant
dbus_connection_open() returned a connection of unknown
shared-ness. Now, we always hold a ref on anything opened
as shareable.

Move the call to notify dbus-bus.c into
connection_forget_shared_unlocked, so libdbus consistently forgets
all its knowledge of a connection at once. This exposed numerous
places where things were totally broken if we dropped a ref inside
get_dispatch_status_unlocked where
connection_forget_shared_unlocked was previously, so move
connection_forget_shared_unlocked into
_dbus_connection_update_dispatch_status_and_unlock. Also move the
exit_on_disconnect here.

(shared_connections_shutdown): this assumed weak refs to the
shared connections; since we have strong refs now, the assertion
was failing and stuff was left in the hash. Fix it to close
still-open shared connections.

* bus/dispatch.c: fixup to use dbus_connection_open_private on the
debug pipe connections

* dbus/dbus-connection.c (dbus_connection_dispatch): only notify
dbus-bus.c if the closed connection is in fact shared
(_dbus_connection_close_possibly_shared): rename from
_dbus_connection_close_internal
(dbus_connection_close, dbus_connection_open,
dbus_connection_open_private): Improve docs to explain the deal
with when you should close or unref or both

* dbus/dbus-bus.c
(_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
from _dbus_bus_check_connection_and_unref_unlocked and modify to
loop over all connections

* test/test-utils.c (test_connection_shutdown): don't try to close
shared connections.

* test/name-test/test-threads-init.c (main): fix warnings in here

* dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
env variable to cause blocking waiting for gdb; drop
DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
unconditionally.

* configure.in: add -export-dynamic to libtool flags if assertions enabled
so _dbus_print_backtrace works.

* dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
instead of _dbus_verbose to print the backtrace, and diagnose lack
of -rdynamic/-export-dynamic

17 years ago2006-09-30 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 1 Oct 2006 03:34:21 +0000 (03:34 +0000)]
2006-09-30  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get)
(internal_bus_get): fix screwy code formatting. whoever committed
that was not paying attention!

17 years ago2006-09-30 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 1 Oct 2006 03:18:47 +0000 (03:18 +0000)]
2006-09-30  Havoc Pennington  <hp@redhat.com>

* configure.in (LT_CURRENT, LT_AGE): increment current and age to
reflect addition of interfaces.

* doc/dbus-specification.xml: describe a new
org.freedesktop.DBus.Peer.GetMachineId method

* dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
(_dbus_string_skip_white, _dbus_string_skip_blank): use new
DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
at end of skip_white
(_dbus_string_chop_white): new function

* bus/connection.c (bus_connections_setup_connection): call
dbus_connection_set_route_peer_messages.

* dbus/dbus-connection.c
(_dbus_connection_peer_filter_unlocked_no_update): modify to
support a GetMachineId method.

Also, support a new flag to let the bus pass peer methods through
to apps on the bus, which can be set with
dbus_connection_set_route_peer_messages.

Finally, handle and return an error for anything unknown on the
Peer interface, which will allow us to extend the Peer interface
in the future without fear that we're now intercepting something
apps were wanting to see.

* tools/dbus-uuidgen.c: a thin wrapper around the functions in
dbus/dbus-uuidgen.c

* dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
binary here, since most of the code is already in libdbus

* dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
uuid from the system config file

* dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode)
(_dbus_read_uuid_file_without_creating)
(_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
uuid-related functions, partly factored out from dbus-server.c

* dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
DBUS_ERROR_FILE_EXISTS instead of EEXIST

* dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error

* tools/dbus-cleanup-sockets.1: explain what the point of this
thing is a bit more

* autogen.sh (run_configure): add --config-cache to default
configure args

* dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
error set/clear assertions when DBUS_DISABLE_CHECKS is defined

* tools/dbus-launch.c (main): if xdisplay hasn't been opened,
don't try to save address, fixes crash in make check

17 years ago * configure.in: add DBUS_BINDIR as a #define to C source code.
Thiago Macieira [Sat, 30 Sep 2006 19:38:34 +0000 (19:38 +0000)]
* configure.in: add DBUS_BINDIR as a #define to C source code.

* tools/dbus-launch.c
* tools/dbus-launch.h
* tools/dbus-launch-x11.c:
* tools/dbus-launch.1: Add the --autolaunch option to
dbus-launch, which makes it scan for an existing session
started with --autolaunch. With that option, it also creates
an X11 window and saves the bus address and PID to it.

* dbus/dbus-sysdeps.h:
* dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
a function that runs "dbus-launch --autolaunch" to retrieve
the running D-Bus session address (or start one if none was running)

* dbus/dbus-transport.c: Add the handler for the "autolaunch:"
        address protocol, which tries to get the running session from
        dbus-launch.

* dbus/dbus-bus.c:
* dbus/dbus-internals.h: Make "autolaunch:" be the default
D-Bus session bus address.

* dbus/dbus-connection.c: Fix horrible typo in error message.

17 years ago* tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@
John (J5) Palmieri [Mon, 18 Sep 2006 17:17:41 +0000 (17:17 +0000)]
* tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@

17 years ago2006-09-17 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 17 Sep 2006 17:11:31 +0000 (17:11 +0000)]
2006-09-17  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
fix so that if unix_user_function is set on windows, we still
do the default check that the auth identity matches the bus identity

17 years ago2006-09-16 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sat, 16 Sep 2006 19:24:08 +0000 (19:24 +0000)]
2006-09-16  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
to _dbus_transport_open_platform_specific,
_dbus_transport_open_socket,
and _dbus_transport_open_debug_pipe

* dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific

17 years ago2006-09-16 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sat, 16 Sep 2006 18:46:48 +0000 (18:46 +0000)]
2006-09-16  Havoc Pennington  <hp@redhat.com>

        Attempt auditing public API to remove all cases where a Unix
function returns weird emulated goo to Windows. This probably
breaks the bus daemon on Windows, to fix it again we may
need to stop processing unix-specific config options on Windows,
and may need to add Windows-specific public API or config options.

* configure.in (LT_CURRENT, LT_AGE): increment current and age,
to reflect added interfaces; should not break soname.

* dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
not invoke unix user function on Windows. Kind of a hacky fix, but
we don't want a "unix uid" leaking out on Windows.

* dbus/dbus-connection.c (dbus_connection_get_socket): add new API
to get the socket fd on Windows or UNIX
(dbus_connection_get_unix_fd): make this always fail on Windows

17 years agovoc Pennington <hp@redhat.com>
Havoc Pennington [Sat, 16 Sep 2006 17:38:24 +0000 (17:38 +0000)]
voc Pennington  <hp@redhat.com>

* dbus/dbus-server.c (dbus_server_listen): change how this works
to be able to delegate to a set of handlers that can succeed,
fail, or choose not to handle. Allows us to have
dbus_server_listen_platform_specific.

* dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
factor out the tcp socket stuff to be used on windows, leaving
unix domain socket only in dbus-socket-unix.c

* dbus/dbus-transport-socket.c
(_dbus_transport_new_for_tcp_socket): factor out the tcp socket
stuff to be used on windows, leaving unix domain socket only
in dbus-transport-unix.c

* dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
temporary hack to be sure this fails on windows
(dbus_connection_get_unix_process_id): ditto

17 years agoadd forgotten dbus-sydeps-unix.h
Havoc Pennington [Sat, 16 Sep 2006 15:53:30 +0000 (15:53 +0000)]
add forgotten dbus-sydeps-unix.h

17 years ago2006-09-16 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sat, 16 Sep 2006 15:49:27 +0000 (15:49 +0000)]
2006-09-16  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket)
(_dbus_open_unix_socket, _dbus_open_socket): change API for
_dbus_open_socket so the domain/type/protocol from system headers
are not required. This is kind of pointless though unless we move
part of _dbus_connect_tcp_socket into sysdeps.c instead of
sysdeps-unix.c, which would mean adding a wrapper around
bind/listen/etc.
Also, add DBusError to the socket-opening functions so they
don't require use of errno.

17 years ago2006-09-16 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sat, 16 Sep 2006 15:34:34 +0000 (15:34 +0000)]
2006-09-16  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.

* dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter
Kümmel bug #8249 to make the sysdeps.h read/write/open/close
functions specifically for sockets only, and move generic
read/write/open/close into unix-specific code.

17 years ago2006-09-14 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Thu, 14 Sep 2006 13:53:16 +0000 (13:53 +0000)]
2006-09-14  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
complaint about accessing revents when poll returns 0, from Julian Seward.

17 years ago* bump to 0.94
John (J5) Palmieri [Thu, 14 Sep 2006 05:48:35 +0000 (05:48 +0000)]
* bump to 0.94

17 years ago* Released 1.0 RC 1 (0.93) dbus-0.93
John (J5) Palmieri [Thu, 14 Sep 2006 05:46:22 +0000 (05:46 +0000)]
* Released 1.0 RC 1 (0.93)

17 years ago* dbus/dbus-sysdeps-util-unix.c: Forgot to pass NULL as the second
John (J5) Palmieri [Thu, 14 Sep 2006 05:41:20 +0000 (05:41 +0000)]
* dbus/dbus-sysdeps-util-unix.c: Forgot to pass NULL as the second
  parameter to  _dbus_close

17 years ago* dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
John (J5) Palmieri [Thu, 14 Sep 2006 05:20:12 +0000 (05:20 +0000)]
* dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
  use _dbus_close instead of close

17 years ago* dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
John (J5) Palmieri [Thu, 14 Sep 2006 05:07:11 +0000 (05:07 +0000)]
* dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
  credentials.  Fixes "external" authentication under e.g. NetBSD
  which does not support any other socket credentials mechanism.
  (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)

17 years ago* dbus/dbus-server.c: remove a todo item
John (J5) Palmieri [Thu, 14 Sep 2006 04:31:31 +0000 (04:31 +0000)]
* dbus/dbus-server.c: remove a todo item

17 years ago* dbus/dbus-threads.c: Allow recursive mutex's to be passed into
John (J5) Palmieri [Thu, 14 Sep 2006 04:26:00 +0000 (04:26 +0000)]
* dbus/dbus-threads.c: Allow recursive mutex's to be passed into
  dbus_threads_init and be used by the dbus mutex functions to
  avoid deadlocks.

* doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item

17 years ago* dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
John (J5) Palmieri [Wed, 13 Sep 2006 19:13:17 +0000 (19:13 +0000)]
* dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
  use threadsafe readdir_r instead of readdir

17 years ago* dbus-threads.c (dbus_threads_init_default): New method for
John (J5) Palmieri [Wed, 13 Sep 2006 19:09:45 +0000 (19:09 +0000)]
* dbus-threads.c (dbus_threads_init_default): New method for
  initializing the internal thread implementation (Patch from
  Alexander Larsson <alexl at redhat dot com>)

17 years ago* remove a bunch of todo items from the 1.0 list
John (J5) Palmieri [Mon, 11 Sep 2006 17:41:21 +0000 (17:41 +0000)]
* remove a bunch of todo items from the 1.0 list

17 years ago* bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
John (J5) Palmieri [Mon, 11 Sep 2006 15:24:10 +0000 (15:24 +0000)]
* bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
  key not found

17 years ago* dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
John (J5) Palmieri [Mon, 11 Sep 2006 15:05:21 +0000 (15:05 +0000)]
* dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
  complex debugging code

* dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
  between the test suite ifdefs
  (_dbus_verbose_bytes): return if verbosity is not enabled

17 years ago* dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
John (J5) Palmieri [Mon, 11 Sep 2006 14:42:48 +0000 (14:42 +0000)]
* dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
  remove DBusMark

17 years ago2006-09-10 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 10 Sep 2006 21:37:10 +0000 (21:37 +0000)]
2006-09-10  Havoc Pennington  <hp@redhat.com>

       patch mostly by Peter Kümmel, bug #8211

* dbus/dbus-sysdeps-unix.c: new file, which splits out
unix-specific stuff in dbus-sysdeps.c

* dbus/dbus-sysdeps.c: don't include any UNIX-only headers,
and move unix-specific stuff to dbus-sysdeps-unix.c

* configure.in: check HAVE_ERRNO_H

17 years ago* bus/test-main.c (main): Initialize threading during tests
John (J5) Palmieri [Fri, 8 Sep 2006 17:21:37 +0000 (17:21 +0000)]
* bus/test-main.c (main): Initialize threading during tests

* dbus/dbus-connection.c (_dbus_connection_new_for_transport):
  Unlock connection on error
  (generate_local_error_message): static method for generating
  an error message when we don't have a message to reply to
  (_dbus_connection_block_pending_call): Send a disconnect error
  instead of just a timeout (NULL) when the bus gets disconnected
  while blocking for a reply.

17 years ago* dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
John (J5) Palmieri [Fri, 8 Sep 2006 15:23:50 +0000 (15:23 +0000)]
* dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
 filters (Patch from Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)

17 years ago* dbus/dbus-connection-internal.h: Add prototype for
John (J5) Palmieri [Thu, 7 Sep 2006 19:02:22 +0000 (19:02 +0000)]
* dbus/dbus-connection-internal.h: Add prototype for
  _dbus_connection_test_get_locks to remove warning

17 years ago* dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
John (J5) Palmieri [Thu, 7 Sep 2006 18:28:13 +0000 (18:28 +0000)]
* dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
  close child_err_report_pipe[WRITE_END] on exec (Patch from
  Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)

17 years ago* Clean up close calls to use _dbus_close (Patch from
John (J5) Palmieri [Thu, 7 Sep 2006 18:24:11 +0000 (18:24 +0000)]
* Clean up close calls to use _dbus_close (Patch from
  Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)

17 years ago* doc/TODO:
John (J5) Palmieri [Wed, 6 Sep 2006 22:00:07 +0000 (22:00 +0000)]
* doc/TODO:
- Remove pending call locking todo item
- dbus_connection_open now holds hard ref.  Remove todo item
- do proper locking on _dbus_bus_check_connection_and_unref
  and handle DBUS_BUS_STARTER. Remove todo item
- Warn on closing of a shared connection.  Remove todo item

* bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
  dbus/dbus-connection.c: Use the dbus_connection_close_internal
  so we don't get the warning when closing shared connections

* test/test-service.c, test/test-shell-service.c: Applications
  don't close shared connections themselves so we unref instead of
  close

* test/test-utils.c (test_connection_shutdown): Close the connection

* dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
  _dbus_bus_check_connection_and_unref_unlocked since we only call this
  method on a locked connection.
  Make sure we call _dbus_connection_unref_unlocked instead of
  dbus_connection_unref also.
  Handle DBUS_BUS_STARTER correctly

* dbus/dbus-connection.c (connection_record_shared_unlocked):
  Mark as shared and hard ref the connection
  (connection_forget_shared_unlocked): Remove the hard ref from the
  connection
  (_dbus_connection_close_internal_and_unlock):  New internal function
  which takes a locked connection and unlocks it after closing it
  (_dbus_connection_close_internal): New internal function which acts
  like the origonal dbus_connection_close method by grabbing a connection
  lock and calling _dbus_connection_close_internal_and_unlock
  (dbus_connection_close): Public close method, warns when the app
  trys to close a shared connection

17 years ago* bus/driver.c:
John (J5) Palmieri [Wed, 6 Sep 2006 21:16:12 +0000 (21:16 +0000)]
* bus/driver.c:
  (bus_driver_generate_introspect_string): New method for populating
  a DBusString with the introspect data
  (bus_driver_handle_introspect): Move introspect generation code to
  bus_driver_generate_introspect_string

* bus/main.c:
  (introspect): New function which prints out the intropect data and
  exits
  (main): Add a --introspect switch

17 years ago* doc/TODO: Removed dtd publishing item.
John (J5) Palmieri [Wed, 6 Sep 2006 19:40:54 +0000 (19:40 +0000)]
* doc/TODO: Removed dtd publishing item.
  It seems the dtd has already been added at
  http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd

17 years ago* doc/TODO, various source files: Audited todo's and FIXME's and
John (J5) Palmieri [Wed, 6 Sep 2006 00:14:06 +0000 (00:14 +0000)]
* doc/TODO, various source files: Audited todo's and FIXME's and
  prepended the ones we should be looking at with 1.0.  Those
  prepended with 1.0? need clerification or might not be needed
  for 1.0

17 years ago* dbus/dbus-pending-call.c: Add some checks so we don't crash on
John (J5) Palmieri [Tue, 5 Sep 2006 22:05:12 +0000 (22:05 +0000)]
* dbus/dbus-pending-call.c: Add some checks so we don't crash on
  NULL in the public API (Patch from Kimmo Hämäläinen
  <kimmo dot hamalainen at nokia dot com>)

17 years ago* configure.in: Fix for OS-X compile time endian issues (patch from
John (J5) Palmieri [Tue, 5 Sep 2006 21:56:20 +0000 (21:56 +0000)]
* configure.in: Fix for OS-X compile time endian issues (patch from
  Benjamin Reed <ranger at befunk dot com>)

17 years ago* configure.in: Check for no-common compiler flag (OS-X fix from
John (J5) Palmieri [Tue, 5 Sep 2006 21:51:58 +0000 (21:51 +0000)]
* configure.in: Check for no-common compiler flag (OS-X fix from
  Benjamin Reed <ranger at befunk dot com>)

17 years ago* tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
John (J5) Palmieri [Fri, 1 Sep 2006 20:47:09 +0000 (20:47 +0000)]
* tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
  <fcrozat at mandriva dot com>)

17 years ago2006-08-29 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Wed, 30 Aug 2006 01:27:44 +0000 (01:27 +0000)]
2006-08-29  Havoc Pennington  <hp@redhat.com>

* test/test-service.c (path_message_func): fix lack of return value

* dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
formatting, remove #ifdef, and fix docs. #ifdef doesn't make
any more sense than on anything else in this file.
(_dbus_get_tmpdir): add const to return value, and keep the
results of the various getenv around in a static variable.

17 years ago2006-08-29 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Wed, 30 Aug 2006 01:06:28 +0000 (01:06 +0000)]
2006-08-29  Havoc Pennington  <hp@redhat.com>

* dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
from Ralf Habacker to move UNIX-specific sysdeps into a separate file.

17 years ago* test/Makefile.am: change find to use syntax that works with non
John (J5) Palmieri [Fri, 25 Aug 2006 19:59:49 +0000 (19:59 +0000)]
* test/Makefile.am: change find to use syntax that works with non
  gnu versions of find

17 years ago* dbus/dbus-transport.c: fix invalid deref when checking if
John (J5) Palmieri [Fri, 25 Aug 2006 19:56:00 +0000 (19:56 +0000)]
* dbus/dbus-transport.c: fix invalid deref when checking if
  a vtable method exists (Patch from Christian Ehrlicher
  <ch dot ehrlicher at gmx dot de>)

17 years ago* configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
John (J5) Palmieri [Fri, 25 Aug 2006 19:50:16 +0000 (19:50 +0000)]
* configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
  test/name-test/Makefile.am: Fixed some issues with getting get dbus
  to build with builddir != srcdir (Taken from a patch by Bernard Leak
  <bernard at brenda-arkle dot demon dot co dot uk>)

17 years ago* configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
John (J5) Palmieri [Fri, 25 Aug 2006 19:33:39 +0000 (19:33 +0000)]
* configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
  default case

17 years ago- document --enable-kqueue
John (J5) Palmieri [Fri, 25 Aug 2006 19:20:15 +0000 (19:20 +0000)]
- document --enable-kqueue

17 years ago * configure.ac, bus/Makefile.am: Generalize kqueue support so that
John (J5) Palmieri [Fri, 25 Aug 2006 19:18:52 +0000 (19:18 +0000)]
 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
   it works on any system providing this interface, not only FreeBSD.
   For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)

17 years agoadd some items related to shared connections
Havoc Pennington [Thu, 24 Aug 2006 16:07:25 +0000 (16:07 +0000)]
add some items related to shared connections

17 years ago2006-08-20 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 20 Aug 2006 21:41:42 +0000 (21:41 +0000)]
2006-08-20  Havoc Pennington  <hp@redhat.com>

* doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
the docs

17 years ago- bump release
John (J5) Palmieri [Fri, 18 Aug 2006 20:31:03 +0000 (20:31 +0000)]
- bump release

17 years ago* Released 0.92 dbus-0.92
John (J5) Palmieri [Fri, 18 Aug 2006 20:24:56 +0000 (20:24 +0000)]
* Released 0.92

* dbus/dbus-threads.c (dbus_threads_init): change the documentation
  to reflect the init late change

* bus/bus.c (bus_context_new): Check user before we fork so we can
  print out an error message a user will be able to see

17 years agoPatch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
John (J5) Palmieri [Fri, 18 Aug 2006 15:46:59 +0000 (15:46 +0000)]
Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)

* dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
  Add two more global locks for use on windows platforms.  These are
  unused on non-windows platforms but are not ifdefed out to avoid
  potential bugs (i.e. the few bytes lost does not warrent the extra
  maintanence and complexity that having seperate sets of locks would
  cause)

17 years ago2006-08-17 Alp Toker <alp@atoker.com>
Robert McQueen [Thu, 17 Aug 2006 21:20:13 +0000 (21:20 +0000)]
2006-08-17  Alp Toker  <alp@atoker.com>

* doc/dbus-specification.xml: Fix some minor typos.

17 years ago * configure.in: use instead of
John (J5) Palmieri [Thu, 17 Aug 2006 18:46:00 +0000 (18:46 +0000)]
    * configure.in: use  instead of
        to determine where to store the pid since the init scripts manipulate
        the pid file (patch from Marcelo Ricardo Leitner
        <marcelo dot leitner at terra dot com dot br>.

17 years ago* commit the rest of the ChangeLog
John (J5) Palmieri [Thu, 17 Aug 2006 03:12:44 +0000 (03:12 +0000)]
* commit the rest of the ChangeLog

17 years ago * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
John (J5) Palmieri [Wed, 16 Aug 2006 22:30:15 +0000 (22:30 +0000)]
    * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
        static DBusList *uninitialized_condvar_list to support new late
        initialization threading model.  In this model threads can be initialized
        even after the D-Bus API has been used but still needs to be initialized
        before the second thread has been started.  Mutexes and condvar addresses
        are stored in the two static lists and are replaced with actuall locks
        when threads are initalized.
        (_dbus_mutex_new_at_location): New method for creating a mutex and placing
        the location into the static list
        (_dbus_mutex_free_at_location): New method for removing a mutex location
        from the static list and freeing the mutex
        (_dbus_condvar_new_at_location): New method for creating a conditional
        variable and placing the location into the static list
        (_dbus_condvar_free_at_location): New method for removing a conditional
        variable location from the static list and freeing the conditional variable
        (init_uninitialized_locks): Atomic method which goes through the static
        lists of mutex and condvar location and updates them with actuall locks
        (init_global_locks): changed to init_locks

        * dbus/dbus-connection.c:
        (_dbus_connection_test_get_locks): New method for tests to check connections
        (_dbus_connection_new_for_transport): Use the new at_location mutex and
        condvar API
        (dbus_connection_allocate_data_slot): Pass in the global lock address
        to _dbus_data_slot_allocator_alloc

        * dbus/dbus-dataslot.c:
        (_dbus_data_slot_allocator_alloc): Use the address of the mutex
        instead of the mutex itself

        * dbus/dbus-message.c:
        (dbus_message_allocate_data_slot): Pass in the global lock address
        to _dbus_data_slot_allocator_alloc

        * dbus/dbus-pending-call.c:
        (dbus_pending_call_allocate_data_slot): Pass in the global lock address
        to _dbus_data_slot_allocator_alloc

        * dbus/dbus-server.c:
        (_dbus_server_init_base): Use the new at_location mutex API
        (dbus_server_allocate_data_slot): Pass in the global lock address
        to _dbus_data_slot_allocator_alloc

        * test/name-test/test-threads-init.c: New test case for late thread
        initialization

17 years ago * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
John (J5) Palmieri [Mon, 14 Aug 2006 19:33:20 +0000 (19:33 +0000)]
 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
        Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
        causes compile problems when asserts are turned off
        Keeping _dbus_warn for printing out the message so even if
        asserts are turned off the user gets the messages that something is
        wrong

17 years agoPatches by Kjartan Maraas <kmaraas at gnome dot org>
John (J5) Palmieri [Mon, 14 Aug 2006 19:11:35 +0000 (19:11 +0000)]
Patches by Kjartan Maraas <kmaraas at gnome dot org>

        * bus/services.c (bus_service_list_queued_owners):
        Add a pointer cast to fix compiler warning

        * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
        return a NULL instead of FALSE since the return type
        is not expecting a boolean

        * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
        Remove unused variable

        * dbus/dbus-marshal-recursive-util.c (node_new):
        return a NULL instead of FALSE since the return type
        is not expecting a boolean

        * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
        Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
        because we are expecting a pointer not a boolean

        * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
        add void as the parameter so some compilers
        don't complain

        * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
          _dbus_transport_new_for_tcp_socket):
        Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
        because we are expecting a pointer not a boolean

        * test/shell-test.c (test_command_line):
        cast the second argument to _dbus_list_append to avoid compiler
        warnings

        * test/test-names.c (main): remove unused variable

        * test/test-service.c (check_hello_from_self_reply):
        Initialize echo_message and echo_reply to NULL

        * test/test-shell-service.c (handle_echo):
        Remove unused variable and cast the third parameter passed to
        dbus_connection_get_object_path_data to avoid compiler warrnings

        * test/name-test/test-names.c (clear_message_queue):
        Remove unused function

        * test/name-test/test-pending-call-dispatch.c:
        Fix format string in printf

17 years ago * dbus/dbus-bus.c:
John (J5) Palmieri [Mon, 14 Aug 2006 18:12:20 +0000 (18:12 +0000)]
    * dbus/dbus-bus.c:
        * test/name-test/test-names.c:
        Remove test method dbus_bus_connection_get_unique_name because
        we already have public method dbus_bus_get_unique_name that
        does the exact same thing

17 years ago* fix typos in Julio's previous patch which cause make check to fail
John (J5) Palmieri [Fri, 11 Aug 2006 22:13:34 +0000 (22:13 +0000)]
* fix typos in Julio's previous patch which cause make check to fail

17 years ago* fix mismatching paren typo
John (J5) Palmieri [Fri, 11 Aug 2006 15:37:11 +0000 (15:37 +0000)]
* fix mismatching paren typo

17 years ago* dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
John (J5) Palmieri [Thu, 10 Aug 2006 23:03:29 +0000 (23:03 +0000)]
* dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
  In any case it was wrong since this is a test checking to see if
  address parsing is correct.  There was no need to get the true
  tmp directory.

17 years ago* dbus/dbus-macros.h: Revert the addition of stddef.h
John (J5) Palmieri [Thu, 10 Aug 2006 22:58:05 +0000 (22:58 +0000)]
* dbus/dbus-macros.h: Revert the addition of stddef.h
  as we should not be adding it to library headers

17 years ago* dbus/dbus-signature.c:
John (J5) Palmieri [Thu, 10 Aug 2006 21:50:23 +0000 (21:50 +0000)]
* dbus/dbus-signature.c:
  Fix the unit tests so that they work if assertions are not enabled.
  (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)

17 years ago* tools/run-with-tmp-session-bus.sh:
John (J5) Palmieri [Thu, 10 Aug 2006 21:44:00 +0000 (21:44 +0000)]
* tools/run-with-tmp-session-bus.sh:
* test/name-test/run-test.sh:
  Remove bashisms (patch from Julio M. Merino Vidal
  <jmmv at NetBSD dot org>)

17 years ago- configure.in doesn't seem to like >= 2.6.0 in a warning message
John (J5) Palmieri [Thu, 10 Aug 2006 21:33:06 +0000 (21:33 +0000)]
- configure.in doesn't seem to like >= 2.6.0 in a warning message

17 years ago* configure.in: add a version (>= 2.6.0) check for libxml2
John (J5) Palmieri [Thu, 10 Aug 2006 21:22:33 +0000 (21:22 +0000)]
* configure.in: add a version (>= 2.6.0) check for libxml2

17 years ago* forgot to save the dbus/dbus-macros.h file for a previous checkin
John (J5) Palmieri [Thu, 10 Aug 2006 21:03:00 +0000 (21:03 +0000)]
* forgot to save the dbus/dbus-macros.h file for a previous checkin

17 years ago* configure.in: make sure the compiler supports -Wfloat-equal
John (J5) Palmieri [Thu, 10 Aug 2006 21:00:30 +0000 (21:00 +0000)]
* configure.in: make sure the compiler supports -Wfloat-equal

* bus/dir-watch-dnotify.c: move functional code after
  variable declerations (C99 fix)  (patches from Jens Granseuer
  <jensgr at gmx dot net>

17 years ago* dbus/dbus-macros.h:
John (J5) Palmieri [Thu, 10 Aug 2006 20:31:20 +0000 (20:31 +0000)]
* dbus/dbus-macros.h:
  add #include <stddef.h> so that Sun compilers don't complain about
  the defining NULL

17 years ago* dbus/dbus-sysdeps.c:
John (J5) Palmieri [Thu, 10 Aug 2006 20:09:43 +0000 (20:09 +0000)]
* dbus/dbus-sysdeps.c:
* dbus/dbus-address.c:
* bus/activation.c:
* test/shell-test.c:
  don't hardcode tmp directory (patch from Dave Meikle
  <dmk at davemeikle dot co dot uk>)

17 years ago* Change an assert to a detailed warning and abort.
John (J5) Palmieri [Wed, 9 Aug 2006 19:45:24 +0000 (19:45 +0000)]
* Change an assert to a detailed warning and abort.
  When allocator->lock != mutex it indicates that the user has failed
  to initalize threads before using the D-Bus library.  This warning
  helps the user identify the issue and fix their app.

17 years ago* missing semicolon
John (J5) Palmieri [Tue, 8 Aug 2006 23:30:39 +0000 (23:30 +0000)]
* missing semicolon

17 years agoThese are all patches from Kjartan Maraas <kmaraas at gnome dot org>
John (J5) Palmieri [Tue, 8 Aug 2006 23:29:03 +0000 (23:29 +0000)]
These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
with cleanups of bugs found from Coverity reports:

* dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
  close the file on error to avoid a leak

* bus/expirelist.c (bus_expire_list_test):
  Check for NULL on dbus_new0

* bus/activation.c (update_directory):
  remove dead code

* bus/config-parser.c (merge_service_context_hash, start_selinux_child):
  Fix some leaks

* bus/bus.c (process_config_every_time):
  Fixed a leak

* bus/desktop-file.c (parse_key_value):
  Fixed leak

* bus/selinux.c (bus_selinux_id_table_insert):
  Fixed leak

17 years ago* dbus/dbus-object-tree.c (_dbus_object_subtree_new):
John (J5) Palmieri [Tue, 8 Aug 2006 22:43:40 +0000 (22:43 +0000)]
* dbus/dbus-object-tree.c (_dbus_object_subtree_new):
  remove dead code

17 years ago* tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
John (J5) Palmieri [Tue, 8 Aug 2006 22:38:32 +0000 (22:38 +0000)]
* tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
  #!/bin/bash

17 years ago* Doxyfile.in: fix the INPUT line so we can generate docs
John (J5) Palmieri [Tue, 8 Aug 2006 22:17:18 +0000 (22:17 +0000)]
* Doxyfile.in: fix the INPUT line so we can generate docs
  when sourcedir != builddir (patch from Cygwin Ports maintainer
  <yselkowitz at users dot sourceforge dot net>

17 years ago* dbus/dbus-sysdeps.h:
John (J5) Palmieri [Tue, 8 Aug 2006 22:08:39 +0000 (22:08 +0000)]
* dbus/dbus-sysdeps.h:
* dbus/dbus-sysdeps.c:
* dbus/dbus-string.c:
  s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
  GLib's function which does the same thing

* configure.in:
* bus/Makefile.am:
* bus/dir-watch-default.c:
* bus/dir-watch-dnotify.c:
* bus/dir-watch-kqueue.c:
  Add kqueue directory watching for freebsd and split the directory
  watching code into seperate files per method/arch
  (patches from Timothy Redaelli <drizzt at gufi dotorg>)

17 years ago* configure.in:
John (J5) Palmieri [Tue, 8 Aug 2006 21:30:31 +0000 (21:30 +0000)]
* configure.in:
* tools/Makefile.am:
* tools/dbus-launch.c:
* bus/Makefile.am:
  allow --with-dbus-daemondir switch to be used to make the
  daemon install to a seperate bindir like /usr/libexec
  (patch from Brian Cameron <brian dot cameron at sun dot com)

17 years ago* bus/Makefile.am (install-data-hook): removed the slash after
John (J5) Palmieri [Tue, 8 Aug 2006 21:15:56 +0000 (21:15 +0000)]
* bus/Makefile.am (install-data-hook): removed the slash after
  $(DESTDIR) so we don't get the double slash which does not work
  in windows (patch from Andras Porjesz
  <andras dot porjesz at siemens dot com>

17 years ago* dbus/dbus-sysdeps.h:
John (J5) Palmieri [Tue, 8 Aug 2006 20:59:26 +0000 (20:59 +0000)]
* dbus/dbus-sysdeps.h:
* dbus/dbus-sysdeps.c:
  add _dbus_printf_length (patch from Peter Kümmel
  <syntheticpp at gmx dot net>)

17 years ago* dbus/dbus-internals.c: unistd.h is not used
John (J5) Palmieri [Tue, 8 Aug 2006 20:22:14 +0000 (20:22 +0000)]
* dbus/dbus-internals.c: unistd.h is not used
  (_dbus_verbose_real): only enable verbose printing
  if DBUS_VERBOSE environment var is set to '1'
  (patch from Peter Kümmel <syntheticpp at gmx dot net>

17 years ago* confifure.in: add a GCC flag check for -Wdeclaration-after-statement
John (J5) Palmieri [Tue, 8 Aug 2006 15:36:59 +0000 (15:36 +0000)]
* confifure.in: add a GCC flag check for -Wdeclaration-after-statement
  so we still compile on older gcc (patch from Frederic Peters
  <fpeters at 0d dot be>