Get rid of the static module list.
diff --git a/tools/winapi_check/modules.dat b/tools/winapi_check/modules.dat
deleted file mode 100644
index 6d2277e..0000000
--- a/tools/winapi_check/modules.dat
+++ /dev/null
@@ -1,711 +0,0 @@
-% dlls/advapi32/advapi32.spec
-
-dlls/advapi32
-misc
-
-% dlls/avicap32/avicap32.spec
-
-dlls/avicap32
-
-% dlls/avifil32/avifil32.spec
-
-dlls/avifil32
-
-% dlls/avifil32/avifile.spec
-
-dlls/avifil32
-
-% dlls/cabinet/cabinet.spec
-
-dlls/cabinet
-
-% dlls/capi2032/capi2032.spec
-
-dlls/capi2032
-
-% dlls/cfgmgr32/cfgmgr32.spec
-
-dlls/cfgmgr32
-
-% dlls/comcat/comcat.spec
-
-dlls/comcat
-
-% dlls/comctl32/comctl32.spec
-
-dlls/comctl32
-
-% dlls/commdlg/comdlg32.spec
-
-dlls/commdlg
-
-% dlls/commdlg/commdlg.spec
-
-dlls/commdlg
-
-% dlls/crtdll/crtdll.spec
-
-dlls/crtdll
-
-% dlls/crypt32/crypt32.spec
-
-dlls/crypt32
-
-% dlls/ctl3d/ctl3d.spec
-
-dlls/ctl3d
-
-% dlls/ctl3d/ctl3d32.spec
-
-dlls/ctl3d
-
-% dlls/ctl3d/ctl3dv2.spec
-
-dlls/ctl3d
-
-% dlls/d3dim/d3dim.spec
-
-dlls/d3dim
-
-% dlls/d3d8/d3d8.spec
-
-dlls/d3d8
-
-% dlls/d3d9/d3d9.spec
-
-dlls/d3d9
-
-% dlls/d3dim/d3dim.spec
-
-dlls/d3dim
-
-% dlls/d3dx8/d3dx8.spec
-
-dlls/d3dx8
-
-% dlls/dciman32/dciman32.spec
-
-dlls/dciman32
-
-% dlls/ddraw/ddraw.spec
-
-dlls/ddraw
-dlls/ddraw/dclipper
-
-% dlls/devenum/devenum.spec
-
-dlls/devenum
-
-% dlls/dinput/dinput.spec
-
-dlls/dinput
-
-% dlls/dinput8/dinput8.spec
-
-dlls/dinput8
-
-% dlls/dmband/dmband.spec
-
-dlls/dmband
-
-% dlls/dmcompos/dmcompos.spec
-
-dlls/dmcompos
-
-% dlls/dmime/dmime.spec
-
-dlls/dmime
-
-% dlls/dmloader/dmloader.spec
-
-dlls/dmloader
-
-% dlls/dmscript/dmscript.spec
-
-dlls/dmscript
-
-% dlls/dmstyle/dmstyle.spec
-
-dlls/dmstyle
-
-% dlls/dmsynth/dmsynth.spec
-
-dlls/dmsynth
-
-% dlls/dmusic/dmusic.spec
-
-dlls/dmusic
-
-% dlls/dmusic32/dmusic32.spec
-
-dlls/dmusic32
-
-% dlls/dplay/dplay.spec
-
-% dlls/dplayx/dplayx.spec
-
-dlls/dplayx
-
-% dlls/dpnhpast/dpnhpast.spec
-
-dlls/dpnhpast
-
-% dlls/dsound/dsound.spec
-
-dlls/dsound
-
-% dlls/gdi/dispdib.spec
-
-graphics
-
-% dlls/gdi/gdi.exe.spec
-
-dlls/gdi
-dlls/gdi/enhmfdrv
-dlls/gdi/mfdrv
-graphics
-objects
-
-% dlls/gdi/gdi32.spec
-
-dlls/gdi
-dlls/gdi/enhmfdrv
-dlls/gdi/mfdrv
-graphics
-objects
-
-% dlls/gdi/wing.spec
-
-dlls/gdi
-
-% dlls/glu32/glu32.spec
-
-dlls/glu32
-
-% dlls/glut32/glut32.spec
-
-dlls/glut32
-
-% dlls/iccvid/iccvid.spec
-
-dlls/iccvid
-
-% dlls/icmp/icmp.spec
-
-dlls/icmp
-
-% dlls/imagehlp/imagehlp.spec
-
-dlls/imagehlp
-
-% dlls/imm32/imm.spec
-
-% dlls/imm32/imm32.spec
-
-dlls/imm32
-
-% dlls/iphlpapi/iphlpapi.spec
-
-dlls/iphlpapi
-
-% dlls/kernel/comm.drv.spec
-
-% dlls/kernel/krnl386.exe.spec
-
-dlls/kernel
-files
-misc
-
-% dlls/kernel/kernel32.spec
-
-dlls/kernel
-files
-misc
-
-% dlls/mapi32/mapi32.spec
-
-dlls/mapi32
-
-% dlls/msimg32/msimg32.spec
-
-dlls/msimg32
-
-% dlls/msisys/msisys.ocx.spec
-
-dlls/msisys
-
-% dlls/msvideo/msrle32/msrle32.spec
-
-dlls/msvideo/msrle32
-
-% dlls/msvcrt/msvcrt.spec
-
-dlls/msvcrt
-
-% dlls/msvcrt20/msvcrt20.spec
-
-dlls/msvcrt20
-
-% dlls/msvcrt40/msvcrt40.spec
-
-dlls/msvcrt40
-
-% dlls/msvcrtd/msvcrtd.spec
-
-dlls/msvcrtd
-
-% dlls/mswsock/mswsock.spec
-
-dlls/mswsock
-
-% dlls/kernel/stress.spec
-
-dlls/kernel
-
-% dlls/kernel/system.drv.spec
-
-misc
-
-% dlls/kernel/toolhelp.spec
-
-dlls/kernel
-
-% dlls/kernel/win87em.spec
-
-dlls/kernel
-
-% dlls/kernel/windebug.spec
-
-dlls/kernel
-
-% dlls/lzexpand/lz32.spec
-
-dlls/lzexpand
-
-% dlls/lzexpand/lzexpand.spec
-
-dlls/lzexpand
-
-% dlls/msdmo/msdmo.spec
-
-dlls/msdmo
-
-% dlls/mpr/mpr.spec
-
-dlls/mpr
-
-% dlls/msacm/msacm.spec
-
-dlls/msacm
-
-% dlls/msacm/msacm32.spec
-
-dlls/msacm
-
-% dlls/msacm/imaadp32/imaadp32.acm.spec
-
-dlls/msacm/imaadp32
-
-% dlls/msacm/msadp32/msadp32.acm.spec
-
-dlls/msacm/msadp32
-
-% dlls/msacm/msg711/msg711.acm.spec
-
-dlls/msacm/msg711
-
-% dlls/msacm/winemp3/winemp3.acm.spec
-
-dlls/msacm/winemp3
-
-% dlls/mshtml/mshtml.spec
-
-dlls/mshtml
-
-% dlls/msi/msi.spec
-
-dlls/msi
-
-% dlls/msnet32/msnet32.spec
-
-dlls/msnet32
-
-% dlls/msvideo/msvfw32.spec
-
-dlls/msvideo
-
-% dlls/msvideo/msvideo.spec
-
-dlls/msvideo
-
-% dlls/netapi32/netapi32.spec
-
-dlls/netapi32
-
-% dlls/newdev/newdev.spec
-
-dlls/newdev
-
-% dlls/ntdll/ntdll.spec
-
-dlls/ntdll
-
-% dlls/odbc32/odbc32.spec
-
-dlls/odbc32
-
-% dlls/ole32/compobj.spec
-
-dlls/ole32
-
-% dlls/ole32/ole2.spec
-
-dlls/ole32
-
-% dlls/ole32/ole32.spec
-
-dlls/ole32
-
-% dlls/ole32/ole2conv.spec
-
-% dlls/ole32/ole2nls.spec
-
-dlls/ole32
-
-% dlls/ole32/ole2prox.spec
-
-% dlls/ole32/ole2thk.spec
-
-% dlls/ole32/storage.spec
-
-dlls/ole32
-
-% dlls/oleacc/oleacc.spec
-
-dlls/oleacc
-
-% dlls/oleaut32/ole2disp.spec
-
-dlls/oleaut32
-
-% dlls/oleaut32/oleaut32.spec
-
-dlls/oleaut32
-
-% dlls/qcap/qcap.spec
-
-dlls/qcap
-
-% dlls/oleaut32/typelib.spec
-
-dlls/oleaut32
-
-% dlls/olecli/olecli.spec
-
-dlls/olecli
-
-% dlls/olecli/olecli32.spec
-
-dlls/olecli
-
-% dlls/oledlg/oledlg.spec
-
-dlls/oledlg
-
-% dlls/olepro32/olepro32.spec
-
-dlls/olepro32
-
-% dlls/olesvr/olesvr.spec
-
-dlls/olesvr
-
-% dlls/olesvr/olesvr32.spec
-
-dlls/olesvr
-
-% dlls/opengl32/opengl32.spec
-
-dlls/opengl32
-
-% dlls/psapi/psapi.spec
-
-dlls/psapi
-
-% dlls/quartz/quartz.spec
-
-dlls/quartz
-
-% dlls/rasapi32/rasapi16.spec
-
-% dlls/rasapi32/rasapi32.spec
-
-dlls/rasapi32
-
-% dlls/richedit/riched32.spec
-
-dlls/richedit
-
-% dlls/rpcrt4/rpcrt4.spec
-
-dlls/rpcrt4
-
-% dlls/serialui/serialui.spec
-
-dlls/serialui
-
-% dlls/setupapi/setupapi.spec
-
-dlls/setupapi
-
-% dlls/setupapi/setupx.spec
-
-dlls/setupapi
-
-% dlls/shell32/shell.spec
-
-dlls/shell32
-misc
-
-% dlls/shell32/shell32.spec
-
-dlls/shell32
-
-% dlls/shdocvw/shdocvw.spec
-
-dlls/shdocvw
-
-% dlls/shfolder/shfolder.spec
-
-% dlls/shlwapi/shlwapi.spec
-
-dlls/shlwapi
-
-% dlls/snmpapi/snmpapi.spec
-
-dlls/snmpapi
-
-% dlls/tapi32/tapi32.spec
-
-dlls/tapi32
-
-% dlls/sti/sti.spec
-
-dlls/sti
-
-% dlls/ttydrv/ttydrv.spec
-
-dlls/ttydrv
-
-% dlls/twain/twain_32.spec
-
-dlls/twain
-
-% dlls/unicows/unicows.spec
-
-dlls/unicows
-
-% dlls/urlmon/urlmon.spec
-
-dlls/urlmon
-
-% dlls/user/ddeml.spec
-
-dlls/user/dde
-
-% dlls/user/display.drv.spec
-
-dlls/user
-objects
-
-% dlls/user/keyboard.drv.spec
-
-dlls/user
-windows
-
-% dlls/user/mouse.drv.spec
-
-dlls/user
-
-% dlls/url/url.spec
-
-dlls/url
-
-% dlls/user/user.exe.spec
-
-controls
-dlls/user
-misc
-windows
-
-% dlls/user/user32.spec
-
-controls
-dlls/user
-dlls/user/dde
-objects
-windows
-
-% dlls/uxtheme/uxtheme.spec
-
-dlls/uxtheme
-
-% dlls/version/ver.spec
-
-dlls/version
-
-% dlls/version/version.spec
-
-dlls/version
-
-% dlls/win32s/w32skrnl.spec
-
-dlls/win32s
-
-% dlls/win32s/w32sys.spec
-
-dlls/win32s
-
-% dlls/win32s/win32s16.spec
-
-dlls/win32s
-
-% dlls/winaspi/winaspi.spec
-
-dlls/winaspi
-
-% dlls/winaspi/wnaspi32.spec
-
-dlls/winaspi
-
-% dlls/wined3d/wined3d.spec
-
-dlls/wined3d
-
-% dlls/winedos/winedos.spec
-
-dlls/winedos
-
-% dlls/wineps/wineps.spec
-
-dlls/wineps
-
-% dlls/wineps/wineps16.drv.spec
-
-dlls/wineps
-
-% dlls/wininet/wininet.spec
-
-dlls/wininet
-
-% dlls/winmm/sound.spec
-
-dlls/winmm
-
-% dlls/winmm/joystick/joystick.drv.spec
-
-dlls/winmm/joystick
-
-% dlls/winmm/mcianim/mcianim.drv.spec
-
-dlls/winmm/mcianim
-
-% dlls/winmm/mciavi/mciavi.drv.spec
-
-dlls/winmm/mciavi
-
-% dlls/winmm/mcicda/mcicda.drv.spec
-
-dlls/winmm/mcicda
-
-% dlls/winmm/mciseq/mciseq.drv.spec
-
-dlls/winmm/mciseq
-
-% dlls/winmm/mciwave/mciwave.drv.spec
-
-dlls/winmm/mciwave
-
-% dlls/winmm/midimap/midimap.drv.spec
-
-dlls/winmm/midimap
-
-% dlls/winmm/wavemap/msacm.drv.spec
-
-dlls/winmm/wavemap
-
-% dlls/winmm/winearts/winearts.drv.spec
-
-dlls/winmm/winearts
-
-% dlls/winmm/winealsa/winealsa.drv.spec
-
-dlls/winmm/winealsa
-
-% dlls/winmm/wineaudioio/wineaudioio.drv.spec
-
-dlls/winmm/wineaudioio
-
-% dlls/winmm/winejack/winejack.drv.spec
-
-dlls/winmm/winejack
-
-% dlls/winmm/winenas/winenas.drv.spec
-
-dlls/winmm/winenas
-
-% dlls/winmm/wineoss/wineoss.drv.spec
-
-dlls/winmm/wineoss
-
-% dlls/winmm/mmsystem.spec
-
-dlls/winmm
-
-% dlls/winmm/winmm.spec
-
-dlls/winmm
-
-% dlls/winnls/winnls.spec
-
-dlls/winnls
-
-% dlls/winnls/winnls32.spec
-
-% dlls/winsock/winsock.spec
-
-dlls/winsock
-
-% dlls/wintab32/wintab.spec
-
-dlls/wintab32
-
-% dlls/wintab32/wintab32.spec
-
-dlls/wintab32
-
-% dlls/winsock/ws2_32.spec
-
-dlls/winsock
-
-% dlls/wsock32/wsock32.spec
-
-dlls/wsock32
-
-% dlls/winedos/wprocs.spec
-
-dlls/winedos
-
-% dlls/winspool/winspool.drv.spec
-
-dlls/winspool
-
-% dlls/wintrust/wintrust.spec
-
-dlls/wintrust
-
-% dlls/wow32/wow32.spec
-
-% dlls/x11drv/x11drv.spec
-
-dlls/x11drv
diff --git a/tools/winapi_check/modules.pm b/tools/winapi_check/modules.pm
index daa91ae..a463f24 100644
--- a/tools/winapi_check/modules.pm
+++ b/tools/winapi_check/modules.pm
@@ -95,54 +95,35 @@
my $self = {};
bless ($self, $class);
- my $spec_file_found = $self->read_module_file();
+ my $spec_file_found = $self->find_spec_files();
$self->read_spec_files($spec_file_found);
return $self;
}
-sub read_module_file {
+sub find_spec_files {
my $self = shift;
my $dir2spec_file = \%{$self->{DIR2SPEC_FILE}};
my $spec_file2dir = \%{$self->{SPEC_FILE2DIR}};
- my $module_file = "$winapi_check_dir/modules.dat";
-
- $output->progress("modules.dat");
+ $output->progress("modules");
my $spec_file_found = {};
my $allowed_dir;
my $spec_file;
- open(IN, "< $module_file");
- local $/ = "\n";
- while(<IN>) {
- s/^\s*?(.*?)\s*$/$1/; # remove whitespace at begining and end of line
- s/^(.*?)\s*#.*$/$1/; # remove comments
- /^$/ && next; # skip empty lines
+ my @spec_files = <{dlls/*/*.spec,dlls/*/*/*.spec}>;
- if(/^%\s+(.*?)$/) {
- $spec_file = $1;
+ foreach $spec_file (@spec_files) {
+ $spec_file =~ /(.*)\/.*\.spec/;
- if(!-f "$wine_dir/$spec_file") {
- $output->write("modules.dat: $spec_file: file ($spec_file) doesn't exist or is no file\n");
- }
+ $allowed_dir = $1;
- $$spec_file_found{$spec_file}++;
- $$spec_file2dir{$spec_file} = {};
- next;
- } else {
- $allowed_dir = $1;
- $$spec_file2dir{$spec_file}{$allowed_dir}++;
- }
- $$dir2spec_file{$allowed_dir}{$spec_file}++;
-
- if(!-d "$wine_dir/$allowed_dir") {
- $output->write("modules.dat: $spec_file: directory ($allowed_dir) doesn't exist or is no directory\n");
- }
+ $$spec_file_found{$spec_file}++;
+ $$spec_file2dir{$spec_file}{$allowed_dir}++;
+ $$dir2spec_file{$allowed_dir}{$spec_file}++;
}
- close(IN);
return $spec_file_found;
}
@@ -192,7 +173,7 @@
foreach my $spec_file (@spec_files) {
if(!$$spec_file_found{$spec_file} && $spec_file !~ m%tests/[^/]+$%) {
- $output->write("modules.dat: $spec_file: exists but is not specified\n");
+ $output->write("modules: $spec_file: exists but is not specified\n");
}
}
}
@@ -359,7 +340,7 @@
foreach my $module ($self->all_modules) {
if(!$$used_module_dirs{$module}{$dir}) {
my $spec_file = $$module2spec_file{$module};
- push @messages, "modules.dat: $spec_file: directory ($dir) is not used\n";
+ push @messages, "modules: $spec_file: directory ($dir) is not used\n";
}
}
}
diff --git a/tools/winapi_check/winapi_global.pm b/tools/winapi_check/winapi_global.pm
index 7a8e82e..bb6314c 100644
--- a/tools/winapi_check/winapi_global.pm
+++ b/tools/winapi_check/winapi_global.pm
@@ -41,9 +41,10 @@
next if $internal_name =~ /\./;
my $function = $functions->{$internal_name};
if(!defined($function) && !$nativeapi->is_function($internal_name) &&
- !($module eq "user" && $internal_name =~
- /^(?:GlobalAddAtomA|GlobalDeleteAtom|GlobalFindAtomA|
- GlobalGetAtomNameA|lstrcmpiA)$/x))
+ # FIXME: remove these when DLL separation is complete
+ !($module eq "user32" || $module eq "gdi32" || $module eq "kernel32" ||
+ $module eq "user.exe" || $module eq "keyboard.drv" || $module eq "ddeml" ||
+ $module eq "gdi.exe" || $module eq "dispdib" || $module eq "krnl386.exe"))
{
$output->write("*.c: $module: $internal_name: " .
"function declared but not implemented or declared external\n");