view fix-casts.sh @ 31563:80db1ca54fb6

"Bug Master" really isn't all that appropriate title for me anymore, considering that I don't actually do a whole lot with bug triaging and assignment. My main function these days seems to be planning releases and nagging about impending release deadlines, followed closely by committing patches because no one else does. I'm not sure that function really fits a specific title. Yes, that's a long-winded way of saying I'm removing the label "bug master" from the list of shown in Help->Developer Information.
author John Bailey <rekkanoryo@rekkanoryo.org>
date Sun, 09 Jan 2011 06:28:35 +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