mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
(based on cipherCOM's repo commit d3d8934) Signed-off-by: VladimirMangos <vladimir@getmangos.com>
50 lines
2.7 KiB
Bash
Executable file
50 lines
2.7 KiB
Bash
Executable file
#! /bin/sh
|
|
|
|
# =============================================================================
|
|
#
|
|
# @file ACE-casts-convert
|
|
#
|
|
# $Id: ACE-casts-convert 80826 2008-03-04 14:51:23Z wotte $
|
|
#
|
|
# Script to convert all ACE cast macro calls (e.g.
|
|
# ACE_static_cast (foo, bar)) to their standard C++ counterparts (e.g.
|
|
# static_cast<foo> (bar)).
|
|
#
|
|
# Use this script at your own risk. It appears to work correctly for
|
|
# most cases, but verify the results "just in case".
|
|
#
|
|
# @note Wildcards may be supplied as the "FILE" arguments to this
|
|
# script since the shell should expand the wildcards before
|
|
# executing the script.
|
|
#
|
|
# @bug The sed program used in this script may loop indefinitely on
|
|
# ACE casts with arguments split across multiple lines
|
|
# containing patterns it doesn't recognize.
|
|
#
|
|
# @author Ossama Othman
|
|
#
|
|
# =============================================================================
|
|
|
|
|
|
if test "$#" -eq 0; then
|
|
echo "Usage: $0 FILE [FILE2] ..."
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "Converting ACE cast macro calls to standard C++ syntax in:"
|
|
|
|
while test "$#" -gt 0
|
|
do
|
|
arg="$1"
|
|
shift
|
|
|
|
if grep "ACE_\(static\|dynamic\|const\|reinterpret\)_cast" $arg > /dev/null 2>&1; then
|
|
echo " $arg"
|
|
sed -e :a -e 's/ACE_\(const\|static\|reinterpret\|dynamic\)_cast[ \t]*([ \t]*\([^,]*\)[ \t]*,[ \t]*\([^ \t].*\)/\1_cast<\2> (\3/g; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast[ \t]*([ \t]*\([^,]*\)[ \t]*,[ \t]*$/{N;s/\n//;ba;}; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast[ \t]*([ \t]*$/{N;s/\n//;ba;}; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast[ \t]*$/{N;s/\n//;ba;}; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast[ \t]*(/ba' \
|
|
-e :aa -e 's/ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ref[ \t]*([ \t]*\([^,]*\)[ \t]*,\(.*\),[ \t]*\([^,]*\)/\1_cast<\2<\3> \&> (\4/g; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ref[ \t]*([ \t]*\([^,]*\)[ \t]*,[ \t]*$/{N;s/\n//;baa;}; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ref[ \t]*([ \t]*$/{N;s/\n//;baa;}; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ref[ \t]*$/{N;s/\n//;baa;}; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ref[ \t]*(/baa' \
|
|
-e :aaa -e 's/ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ptr[ \t]*([ \t]*\([^,]*\)[ \t]*,\(.*\),[ \t]*\([^,]*\)/\1_cast<\2<\3> \*> (\4/g; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ptr[ \t]*([ \t]*\([^,]*\)[ \t]*,[ \t]*$/{N;s/\n//;baaa;}; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ptr[ \t]*([ \t]*$/{N;s/\n//;baaa;}; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ptr[ \t]*$/{N;s/\n//;baaa;}; /ACE_\(const\|static\|reinterpret\|dynamic\)_cast_[1-5]_ptr[ \t]*(/baaa' $arg > ${arg}.new
|
|
mv ${arg}.new $arg
|
|
fi
|
|
done
|