| #!/bin/sh | |
| # This quick and dirty script prints the names of functions that don't have a | |
| # WINAPI in its header declaration or don't appear in any .c file at all. | |
| # I don't think it's very intelligent to use it when having < 64 MB ;) | |
| # FIXME: This script skips .spec function entries that occupy two or more | |
| # .spec lines ! | |
| if [ ! -e ./ChangeLog ] ; then | |
| echo You are not in Wine main directory ! | |
| exit | |
| fi | |
| echo crtdll.spec, ntdll.spec and wsock32.spec will be mentioned many times, | |
| echo as they use original UNIX functions that don\'t exist in Wine .c code. | |
| echo | |
| FIND_LIST="`find . -name "*.c"`" | |
| for i in if1632/*.spec relay32/*.spec | |
| do | |
| # skip wprocs.spec, as it contains many funcs that don't need a WINAPI | |
| if [ $i = "if1632/wprocs.spec" ] ; then | |
| continue | |
| fi | |
| LINE="`egrep "stdcall|cdecl|pascal|register" $i|grep -v "^#"|tr -d " "|tr "\n" " "`" | |
| for j in $LINE | |
| do | |
| if [ -n "`echo "$j"|grep \)`" ] ; then | |
| FUNC="`echo $j|cut -f2 -d\)|cut -f1 -d'#'`" | |
| if [ -n "$FUNC" ] ; then | |
| if [ -z "`grep -B 1 $FUNC $FIND_LIST|egrep "WINAPI|__cdecl|DC_GET_VAL|DC_SET_MODE|REGS_ENTRYPOINT"`" ] ; then | |
| case $FUNC in # "black list" | |
| "GetBrushOrgEx16" ) ;; | |
| "GetCurrentPositionEx16" ) ;; | |
| "GetViewportExtEx16" ) ;; | |
| "GetViewportOrgEx16" ) ;; | |
| "GetWindowExtEx16" ) ;; | |
| "GetWindowOrgEx16" ) ;; | |
| "GetBrushOrgEx32" ) ;; | |
| "GetCurrentPositionEx32" ) ;; | |
| "GetViewportExtEx32" ) ;; | |
| "GetViewportOrgEx32" ) ;; | |
| "GetWindowExtEx32" ) ;; | |
| "GetWindowOrgEx32" ) ;; | |
| * ) echo "$i: $FUNC" ;; | |
| esac | |
| fi | |
| fi | |
| fi | |
| done | |
| done |