view fix-casts.sh @ 29519:18667ce1f55d

The current behavior of libpurple reports completions of a file transfer too soon. The -completed signal is emitted before the sent bytes counter is updated which means anything relaying on that will get confused (the file transfer is indeed completed) but the number of transferred bytes will be incorrect at the moment of the signal emission. This patch aims to correct that. Fixes #10119. committer: John Bailey <rekkanoryo@rekkanoryo.org>
author foufou33@gmail.com
date Mon, 12 Oct 2009 18:48:19 +0000
parents c3ca613ab550
children
line wrap: on
line source

#!/bin/sh

if [ $# -eq 0 ]; then
	echo "Usage: `basename "$0"` PurpleFoo..."
	echo
	echo "This script searches the *current working directory* and replaces casts"
	echo "with GObject-style type checking and casting macros."
	echo 'For example, "(PurpleBuddy *)b" becomes "PURPLE_BUDDY(b)".'
	exit 0
fi

for struct in $* ; do
	cast=`echo $struct | sed "s|[A-Z]|_\0|g" | tr "a-z" "A-Z" | sed "s|^_||"`
	for file in `grep -rl "([[:space:]]*$struct[[:space:]]*\*[[:space:]]*)" . --include=*.c --exclude=purple-client-bindings.c` ; do
		sed -i "s|([[:space:]]*$struct[[:space:]]*\*[[:space:]]*)[[:space:]]*(|$cast(|g" $file
		sed -i "s|([[:space:]]*$struct[[:space:]]*\*[[:space:]]*)[[:space:]]*\([^(][^,);]*\)|$cast(\1)|g" $file
	done
done