Volunteers needed - windows API db script ready
Francois Gouget
fgouget at free.fr
Fri May 2 18:08:02 CDT 2003
On Fri, 2 May 2003, Dave Miller wrote:
[...]
> The script is available at http://home.ptd.net/~compsol. Please make sure
> you get createdb.pl. There is another script, createwinedb.pl which will
> ONLY parse the wine spec files.
>
> To run this you will need winedump, perl, and access to your windows
> directory from within Linux.
I mounted the Win95 filesystem using smbfs and all the files came out in
uppercase. That's when I noticed that the script had trouble with
uppercase filenames. I attached a patch below that should improve
things.
I also noticed it does not give any warning if winedump is not in the
path. It might be nice to do so.
> The cleaner the windows install the
> better. We don't want to clutter the database with info from dlls
> not provided with windows. Usage is as follows:
>
> createdb.pl -d -p <path to windows dir> -o <winver (ex. win98)
I ran it on a clean Win95 system which should be pretty clean (never
been used, nothing installed on it). I ran the script as follows:
./createdb.pl -d -p /home/fgouget/wine/apidb/mnt/WINDOWS -o win95-4.00.950
(the script adds .ref automatically)
And I sent you the resulting file in a separate email.
--- createdb.pl.orig 2003-05-01 21:43:20.000000000 -0700
+++ createdb.pl 2003-05-02 14:46:22.000000000 -0700
@@ -80,7 +80,7 @@
push @dir,$dirs."/".$_;
} else {
- push (@dlllist,"$_ $dirs\n") if /\.dll$/;
+ push (@dlllist,"$_ $dirs\n") if /\.dll$/i;
}
}
@dlllist = sort @dlllist;
@@ -126,10 +126,10 @@
chomp($_);
s/^\s*(.*?)\s*$/$1/;
($a,$b,$c,$d,$e)=split(/\s+/,$_);
- $fullname = $c if ($a =~ /Contents/ & $c =~ /.dll|.DLL/);
+ $fullname = $c if ($a =~ /Contents/ & $c =~ /.dll/i);
($path,$name2)=split(/^.*\//,$fullname);
- if ($c =~ /.dll|.DLL/ & $a =~ /Content/) {
+ if ($c =~ /.dll/i & $a =~ /Content/) {
($name,$junk)=split(/\./,$name2);
}
@@ -187,7 +187,7 @@
chomp($_);
s/^\s*(.*?)\s*$/$1/;
($a,$b,$c,$d,$e)=split(/\s+/,$_);
- $fullname = $c if ($c =~ /.dll$/ & $a =~ /Dump/);
+ $fullname = $c if ($c =~ /.dll$/i & $a =~ /Dump/);
next LINE if (length $a == 0 | length $a == 2 & length $b == 2 & length $c == 2 & length $d == 2);
next LINE if ($b =~ /^[0-9]+$/ & length $c == 0 | $a =~ /TimeDateStamp/);
if ($a eq "Name:") {
--
Francois Gouget fgouget at free.fr http://fgouget.free.fr/
The software said it requires Win95 or better, so I installed Linux.
More information about the wine-devel
mailing list