diff options
Diffstat (limited to 'glib/make-dbus-glib-error-switch.sh')
-rwxr-xr-x | glib/make-dbus-glib-error-switch.sh | 29 |
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" |