fix-casts.sh

Tue, 26 Jan 2010 14:16:18 +0000

author
Andrew Victor <andrew.victor@mxit.com>
date
Tue, 26 Jan 2010 14:16:18 +0000
branch
mxit
changeset 29215
794a1a1acd40
parent 24975
7abe1341dc45
permissions
-rwxr-xr-x

The default state on the MXit server when connecting is Available (with no status message),
but Pidgin might be configured to remember the last presence state.
So after login, if the presence is not Available or if a Status message has been set
then we need to send a Status update packet to the MXit servers.

Pidgin also use a HTML-style encoding for the status message. In the situation above they also
need to be de-HTML'ified first.

#!/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

mercurial