summaryrefslogtreecommitdiffstats
path: root/glib/make-dbus-glib-error-switch.sh
diff options
context:
space:
mode:
Diffstat (limited to 'glib/make-dbus-glib-error-switch.sh')
-rwxr-xr-xglib/make-dbus-glib-error-switch.sh29
1 files changed, 29 insertions, 0 deletions
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"