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