Bugfix: Always release the Win16Lock in TASK_Reschedule.
[wine] / tools / winapi-check
1 #!/bin/sh
2 # This quick and dirty script prints the names of functions that don't have a
3 # WINAPI in its header declaration or don't appear in any .c file at all.
4 # I don't think it's very intelligent to use it when having < 64 MB ;)
5 # FIXME: This script skips .spec function entries that occupy two or more
6 # .spec lines !
7
8 if [ ! -e ./ChangeLog ] ; then
9   echo You are not in Wine main directory !
10   exit
11 fi
12 echo crtdll.spec, ntdll.spec and wsock32.spec will be mentioned many times,
13 echo as they use original UNIX functions that don\'t exist in Wine .c code.
14 echo
15 FIND_LIST="`find . -name "*.c"`"
16 for i in if1632/*.spec relay32/*.spec
17 do
18 # skip wprocs.spec, as it contains many funcs that don't need a WINAPI
19   if [ $i = "if1632/wprocs.spec" ] ; then
20     continue
21   fi
22   LINE="`egrep "stdcall|cdecl|pascal|register" $i|grep -v "^#"|tr -d " "|tr "\n" " "`"
23   for j in $LINE
24   do
25     if [ -n "`echo "$j"|grep \)`" ] ; then
26       FUNC="`echo $j|cut -f2 -d\)|cut -f1 -d'#'`"
27       if [ -n "$FUNC" ] ; then
28         if [ -z "`grep -B 1 $FUNC $FIND_LIST|egrep "WINAPI|__cdecl|VFWAPI|DC_GET_VAL|DC_SET_MODE|REGS_ENTRYPOINT"`" ] ; then
29           case $FUNC in         # "black list"
30            "GetBrushOrgEx16" ) ;;
31            "GetCurrentPositionEx16" ) ;;
32            "GetViewportExtEx16" ) ;;
33            "GetViewportOrgEx16" ) ;;
34            "GetWindowExtEx16" ) ;;
35            "GetWindowOrgEx16" ) ;;
36
37            "GetBrushOrgEx32" ) ;;
38            "GetCurrentPositionEx32" ) ;;
39            "GetViewportExtEx32" ) ;;
40            "GetViewportOrgEx32" ) ;;
41            "GetWindowExtEx32" ) ;;
42            "GetWindowOrgEx32" ) ;;
43            * ) echo "$i: $FUNC" ;;
44           esac
45         fi
46       fi
47     fi 
48   done
49 done