From df901b528bc1e1edd96e9e91b94c9c9b795b8ffd Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Sun, 26 Jun 2005 17:02:09 +0000 Subject: 2005-06-26 Colin Walters * glib/dbus-glib.c (dbus_set_g_error): Delete. (dbus_g_error_set): New public function from its ashes; used by both service-side method implementation and GLib bindings internals. (dbus_g_error_has_name, dbus_g_error_get_name): New function. (_dbus_glib_test): Add some tests. * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name. * test/glib/test-service-glib.c (my_object_throw_error): Use dbus_g_error_set. * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle errors thrown by dbus_g_error_set. * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set. * glib/dbus-gparser.c (validate_signature): Ditto. * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) (dbus_g_proxy_end_call_internal): Ditto. * glib/Makefile.am: Generate dbus-glib-error-switch.h, which converts DBUS_ERROR_x to DBUS_GERROR_x. (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it. * doc/TODO: Remove error TODO. * doc/dbus-tutorial.xml: Update with documentation about error handling. * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION. --- glib/make-dbus-glib-error-switch.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 glib/make-dbus-glib-error-switch.sh (limited to 'glib/make-dbus-glib-error-switch.sh') diff --git a/glib/make-dbus-glib-error-switch.sh b/glib/make-dbus-glib-error-switch.sh new file mode 100755 index 00000000..602cf990 --- /dev/null +++ b/glib/make-dbus-glib-error-switch.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +SRC=$1 +DEST=$2 + +die() +{ + echo $1 1>&2 + /bin/rm $DEST.tmp + exit 1 +} + +echo 'static gint' > $DEST.tmp +echo 'dbus_error_to_gerror_code (const char *derr)' >> $DEST.tmp +echo '{' >> $DEST.tmp +echo ' if (0) ; ' >> $DEST.tmp + +cat $SRC | grep '#define DBUS_ERROR' | sed -e 's/#define //g' | \ + sed -e 's/".*//g' | \ + (while read line; do \ + echo ' else if (!strcmp (derr, ' "$line" ' )) '; \ + echo ' return ' `echo $line | sed -e 's/DBUS_ERROR/DBUS_GERROR/g'` ';'; \ + done; \ + ) >> $DEST.tmp +echo ' else' >> $DEST.tmp +echo ' return DBUS_GERROR_REMOTE_EXCEPTION;' >> $DEST.tmp +echo '}' >> $DEST.tmp + +mv $DEST.tmp $DEST || die "could not move $DEST.tmp to $DEST" -- cgit