More Darwine news (was Re: New Darwine Binary Released)

2004-08-21 Thread Jim White
Sanjay Connare wrote:
Hey All, I am proud and happy to announce the release of a new binary
labeled Darwine 20040820 DP.  This binary is based upon the 20040813
wine release.
...
Thought I would post a follow-up as Sanjay neglected to include a link 
to the new binary:

http://darwine.opendarwin.org/
http://sourceforge.net/projects/darwine/
Other Darwine news is that there was an interview with moi on osViews:
the article(s) are posted
Text:
http://www.osviews.com/modules.php?op=modload&name=News&file=article&sid=2046
Broadcast:
http://www.osviews.com/modules.php?op=modload&name=News&file=article&sid=2047
Thank you for your help and support. It is greatly appreciated. I
hope this helps bring about increased awareness for the Darwine project.
--
Kelly McNeill
OSV
And perhaps the most interesting news is that Darwine's lead developer 
Pierre d'Herbemont has sucessfully ported QEMU (fast X86 emulator) to 
Mac OS X:

QEMU on Mac OS X
by Pierre d'Herbemont
2004-07-04 at 11:07:13
I am proud to announce that QEMU is now working on Mac OS X.
• Original announcement on the qemu-devel list
• Download the installer for Mac OS X
• Screenshots of QEMU running on Mac OS X
• The FreeOSZoo, to download ready-to-run images of QEMU virtual
computers, pre-installed with a Free Operating System and a set of
popular free software.
I would like to thanks Matt Reda for its collaboration.
http://www.freeoszoo.org/download.php
Jim White



Re: Wrong call convention for SHAllocShared & co?

2004-08-21 Thread Ivan Leo Puoti
>Hence my confusion and my call for help.
The solution that comes in mind is write a test program and find out.

Ivan.





Re: Wrong call convention for SHAllocShared & co?

2004-08-21 Thread Francois Gouget
On Sun, 22 Aug 2004, Ivan Leo Puoti wrote:

> > So who's right? The platform SDK that says this is a cdecl function or
> > Wine's headers?
> If the SDK is wrong and is diffrent from the windows implementation, then
> programs calling that function will have
> problems bacause of imcompatible headers between the ones used to build windows
> and the SDK ones used to build the program, no?

Yes and that would seem to indicate that the Platform SDK is correct.

However if Wine's implementation is wrong then Windows applications that
call this API should crash and we should have noticed, no? So that seems
to indicate that Wine's implementation must be correct.

Hence my confusion and my call for help.


-- 
Francois Gouget [EMAIL PROTECTED]http://fgouget.free.fr/
 Stolen from an Internet user:
  "f u cn rd ths, u cn gt a gd jb n cmptr prgrmmng !"



Re: Wrong call convention for SHAllocShared & co?

2004-08-21 Thread Ivan Leo Puoti
> So who's right? The platform SDK that says this is a cdecl function or
> Wine's headers?
If the SDK is wrong and is diffrent from the windows implementation, then
programs calling that function will have
problems bacause of imcompatible headers between the ones used to build windows
and the SDK ones used to build the program, no?

Ivan.





Re: Wrong call convention for SHAllocShared & co?

2004-08-21 Thread Francois Gouget

Still looking in undocshell.h, I see we have:

BOOL WINAPI GetFileNameFromBrowse(
HWND hwndOwner,
LPSTR lpstrFile,
DWORD nMaxFile,
LPCSTR lpstrInitialDir,
LPCSTR lpstrDefExt,
LPCSTR lpstrFilter,
LPCSTR lpstrTitle);

But in the Platform SDK's the prototype is:

SHSTDAPI_(BOOL) GetFileNameFromBrowse(HWND hwnd, LPWSTR pszFilePath,
 UINT cbFilePath,LPCWSTR pszWorkingDir, LPCWSTR pszDefExt,
 LPCWSTR pszFilters, LPCWSTR pszTitle);

So is this an Ansi or a Unicode function? Or maybe it's one of these AW
Ansi/Unicode functions? In that case the implementation is wrong because
it definitely expects to receive Ansi strings.

Same question for PickIconDlg().

-- 
Francois Gouget [EMAIL PROTECTED]http://fgouget.free.fr/
1 + e ^ ( i * pi ) = 0



Wrong call convention for SHAllocShared & co?

2004-08-21 Thread Francois Gouget

In the platform SDK's shlobj.h I find:

HANDLE _SHAllocShared(LPCVOID pvData, DWORD dwSize, DWORD dwDestinationProcessId);


Notice the lack of a WINAPI and the leading underscore. So this would
indicate a cdecl API. But in dlls/shell32/undocshell.h I see:

HANDLE WINAPI SHAllocShared(LPVOID pv, ULONG cb, DWORD pid);

This really looks like the same function, just without the underscore.
Furthermore shell32.spec says:

 520 stdcall SHAllocShared (long long long)

So who's right? The platform SDK that says this is a cdecl function or
Wine's headers?

There's the same issue for SHFreeShared, SHLockShared and
SHUnlockShared.

-- 
Francois Gouget [EMAIL PROTECTED]http://fgouget.free.fr/
Linux: It is now safe to turn on your computer.



Re: Re: make CryptSetProviderEx update the provider Name and TypeName to registry

2004-08-21 Thread James Hawkins
I just ran a test programming in windows to see how the registry is
changed by called CryptSetProviderEx with the CRYPT_DELETE_DEFAULT
flag.  When the CRYPT_DELETE_DEFAULT flag is used, the Name value of
the Type XXX key is removed, but not the TypeName, which solves the
problem of not being able to get to the TypeName.  I will rewrite this
patch with the new behavior and send it shortly.

On Fri, 20 Aug 2004 13:11:12 -0700, James Hawkins <[EMAIL PROTECTED]> wrote:
> I'm working on a test app that I hope wil shine some light on how
> windows gets the Name and TypeName values back in the registry after
> they've been deleted.  The problem is that the only instance of the
> Name and TypeName data is in the DllRegisterServer function of the
> provider dll.  I couldn't think of any other way to get to that data
> to get it in the registry, but I will be testing this in windows.
> What im thinking is that windows might not even delete the key at all.
>  If you have any suggestions it would help a lot.
> 
> 
> 
> On Fri, 20 Aug 2004 12:48:07 -0700, Alexandre Julliard
> <[EMAIL PROTECTED]> wrote:
> > James Hawkins <[EMAIL PROTECTED]> writes:
> >
> > >> Changelog
> > >>* Call provider.dll's DllRegisterServer from CryptSetProviderEx to
> > >> update the Name and TypeName values in the registry properly when
> > >> setting the default provider
> >
> > It doesn't seem right to call DllRegisterServer from there, IMO it
> > should only be called when the dll is installed. Do you have evidence
> > that Windows does it this way?
> >
> > --
> > Alexandre Julliard
> > [EMAIL PROTECTED]
> >
> 
> 
> --
> James Hawkins
> 


-- 
James Hawkins



Re: Optimize Critical Section Functions

2004-08-21 Thread Alexandre Julliard
Robert Shearman <[EMAIL PROTECTED]> writes:

> Yes, I agree. In fact the patch actually decreases performance.
> Test: 10,000,000 calls to EnterCriticalSection & LeaveCriticalSection,
> simulating fast path on critical sections.
> Results:
> Win2k - 1000ms
> Wine w/ patch - 1346ms
> Wine w/o patch - 1294ms
>
> I think the best way to improve performance of the critical section
> functions is to rewrite them in assembly and I will submit a patch
> doing so when I have a spare moment.

I don't think that's necessary either, unless you have good evidence
that the critical section non-contention path represents a significant
amount of the total time spent by an application. IMO we have much
bigger performance issues to solve first, before we make the critical
section code unreadable just to save a couple of cycles.

-- 
Alexandre Julliard
[EMAIL PROTECTED]



Re: MS Project 2000 not working in wine.

2004-08-21 Thread Tom
James Courtier-Dutton wrote:
Has anyone got MS Project 2000 working in wine?
James

I tried it a couple times and get about 80%
into the install. It stops at the same spot each
time.
fixme:powermgnt:SetThreadExecutionState (0x0): stub, harmless.
fixme:ntdll:NtAdjustPrivilegesToken 
(0x4c,0x,0x4055e0e8,0x,(nil),(nil)),stub!
I/O operation aborted


Tom



Re: Optimize Critical Section Functions

2004-08-21 Thread Robert Shearman
Alexandre Julliard wrote:
Michael Stefaniuc <[EMAIL PROTECTED]> writes:
 

Andreas Mohr wrote:
   

Umm, this should go into a global header file, right?
The theory being that it would be useful at many more performance critical
Wine places...
But I have to admit that I don't know which header file this should
be...
 

Like in the Linux kernel (where this seems to come from) in compiler.h
or something like that.
   

No, I don't think we want to do that, it would only encourage people
to sprinkle this stuff all over the place believing they are
"optimizing" the code. This should only be added in places where it
makes a significant difference, demonstrated with benchmark results.
 

Yes, I agree. In fact the patch actually decreases performance.
Test: 10,000,000 calls to EnterCriticalSection & LeaveCriticalSection, 
simulating fast path on critical sections.
Results:
Win2k - 1000ms
Wine w/ patch - 1346ms
Wine w/o patch - 1294ms

I think the best way to improve performance of the critical section 
functions is to rewrite them in assembly and I will submit a patch doing 
so when I have a spare moment.

Rob



Re: MS Visio 2000 not working with wine.

2004-08-21 Thread Tom
James Courtier-Dutton wrote:
Has anyone got MS Visio 2000 working with wine?
James

Yes.
Tom



MS Project 2000 not working in wine.

2004-08-21 Thread James Courtier-Dutton
Has anyone got MS Project 2000 working in wine?
James


MS Visio 2000 not working with wine.

2004-08-21 Thread James Courtier-Dutton
Has anyone got MS Visio 2000 working with wine?
James


Re: Added path settings to winecfg

2004-08-21 Thread Marcelo Duarte
Jacek Caban escreveu:
But what about other languages, which nobody updates as you do?
I have one more question: where can I find this script? I see that 
polish translation is far from complete and I thought I could work 
aroun dit.

Thanks,
Jacek
Sorry for the delay. Atached is the patch to create a trans.sh in in 
wine/tools.
To run in wine directory run tools/trans.sh and it creates 
tools/trans_html/index.html

This is a modified version of the original patch that Vincent Beron send 
in January.


Index: .cvsignore
===
RCS file: /home/wine/wine/tools/.cvsignore,v
retrieving revision 1.11
diff -u -r1.11 .cvsignore
--- .cvsignore	17 Aug 2004 22:33:14 -	1.11
+++ .cvsignore	21 Aug 2004 14:32:10 -
@@ -4,4 +4,6 @@
 fnt2fon
 makedep
 sfnt2fnt
+trans
+trans_html
 wineprefixcreate
Index: Makefile.in
===
RCS file: /home/wine/wine/tools/Makefile.in,v
retrieving revision 1.41
diff -u -r1.41 Makefile.in
--- Makefile.in	17 Aug 2004 22:33:14 -	1.41
+++ Makefile.in	21 Aug 2004 14:32:10 -
@@ -13,6 +13,7 @@
 	fnt2fon \
 	makedep \
 	sfnt2fnt \
+	trans \
 	wineprefixcreate
 
 C_SRCS = \
@@ -21,6 +22,7 @@
 	fnt2fon.c \
 	makedep.c \
 	sfnt2fnt.c \
+	trans.c
 
 SUBDIRS = \
 	widl \
@@ -54,6 +56,9 @@
 
 bin2res: bin2res.o
 	$(CC) $(CFLAGS) -o bin2res bin2res.o $(LIBPORT)
+
+trans: trans.o
+	$(CC) $(CFLAGS) -o trans trans.o $(LIBPORT)
 
 wineprefixcreate: wineprefixcreate.in
 	sed -e 's,@dlldir\@,$(dlldir),g' -e 's,@datadir\@,$(datadir),g' $(SRCDIR)/wineprefixcreate.in >$@ || ($(RM) $@ && false)
--- /dev/null	2004-02-23 18:02:56.0 -0300
+++ trans.c	2004-08-21 00:55:19.0 -0300
@@ -0,0 +1,327 @@
+/*
+ * Copyright 2003-2004 Vincent Béron
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include 
+#include 
+#include 
+#include "windef.h"
+
+#define NB_RES_TYPE 21
+#define NB_LANG 0x94
+
+static const char *res_types[] = {
+"cursor",
+"bitmap",
+"icon",
+"menu",
+"dialog",
+"stringtable",
+"fontdir",
+"font",
+"accelerator",
+"rcdata",
+"messagetable",
+"cursor_group",
+"icon_group",
+"versioninfo",
+"ani_cursor",
+"ani_icon",
+"dlginit",
+"toolbar",
+"menuex",
+"dialogex",
+"user"
+};
+
+#define PRETTYPRINTLANG(langid) \
+	if(LANG_##langid == lid) { \
+		return #langid; \
+	}
+
+static const char *get_language_name(int lid) {
+	PRETTYPRINTLANG(NEUTRAL)
+	PRETTYPRINTLANG(AFRIKAANS)
+	PRETTYPRINTLANG(ALBANIAN)
+	PRETTYPRINTLANG(ARABIC)
+	PRETTYPRINTLANG(ARMENIAN)
+	PRETTYPRINTLANG(ASSAMESE)
+	PRETTYPRINTLANG(AZERI)
+	PRETTYPRINTLANG(BASQUE)
+	PRETTYPRINTLANG(BELARUSIAN)
+	PRETTYPRINTLANG(BENGALI)
+	PRETTYPRINTLANG(BULGARIAN)
+	PRETTYPRINTLANG(CATALAN)
+	PRETTYPRINTLANG(CHINESE)
+	PRETTYPRINTLANG(CROATIAN)
+	PRETTYPRINTLANG(CZECH)
+	PRETTYPRINTLANG(DANISH)
+	PRETTYPRINTLANG(DIVEHI)
+	PRETTYPRINTLANG(DUTCH)
+	PRETTYPRINTLANG(ENGLISH)
+	PRETTYPRINTLANG(ESTONIAN)
+	PRETTYPRINTLANG(FAEROESE)
+	PRETTYPRINTLANG(FARSI)
+	PRETTYPRINTLANG(FINNISH)
+	PRETTYPRINTLANG(FRENCH)
+	PRETTYPRINTLANG(GALICIAN)
+	PRETTYPRINTLANG(GEORGIAN)
+	PRETTYPRINTLANG(GERMAN)
+	PRETTYPRINTLANG(GREEK)
+	PRETTYPRINTLANG(GUJARATI)
+	PRETTYPRINTLANG(HEBREW)
+	PRETTYPRINTLANG(HINDI)
+	PRETTYPRINTLANG(HUNGARIAN)
+	PRETTYPRINTLANG(ICELANDIC)
+	PRETTYPRINTLANG(INDONESIAN)
+	PRETTYPRINTLANG(ITALIAN)
+	PRETTYPRINTLANG(JAPANESE)
+	PRETTYPRINTLANG(KANNADA)
+	PRETTYPRINTLANG(KASHMIRI)
+	PRETTYPRINTLANG(KAZAK)
+	PRETTYPRINTLANG(KONKANI)
+	PRETTYPRINTLANG(KOREAN)
+	PRETTYPRINTLANG(KYRGYZ)
+	PRETTYPRINTLANG(LATVIAN)
+	PRETTYPRINTLANG(LITHUANIAN)
+	PRETTYPRINTLANG(MACEDONIAN)
+	PRETTYPRINTLANG(MALAY)
+	PRETTYPRINTLANG(MALAYALAM)
+	PRETTYPRINTLANG(MANIPURI)
+	PRETTYPRINTLANG(MARATHI)
+	PRETTYPRINTLANG(MONGOLIAN)
+	PRETTYPRINTLANG(NEPALI)
+	PRETTYPRINTLANG(NORWEGIAN)
+	PRETTYPRINTLANG(ORIYA)
+	PRETTYPRINTLANG(POLISH)
+	PRETTYPRINTLANG(PORTUGUESE)
+	PRETTYPRINTLANG(PUNJABI)
+	PRETTYPRINTLANG(ROMANIAN)
+	PRETTYPRINTLANG(RUSSIAN)
+	PRETTYPRINTLANG(SANSKRIT)
+	PRETTYPRINTLANG(SERBIAN)
+	PRETTYPRINTLANG(SINDHI)
+	PRETTYPRINTLANG(SLOVAK)
+	PRETTYPRINTLANG(SLOVENIAN)
+	PRETTYPRINTLANG(SPANISH)
+	PRETTYPRINTLANG(SWAHILI)
+	PRETTYPRINTLANG(SWEDISH)
+	PRETTYPRINTLANG(SYRIAC)
+	PRETTYPRINTLANG(TAMIL)
+	PRETTYPRINTLANG(TATAR)
+	PRETTYPRI

[Fwd: Re: [ck] Re: Threading issues? [ck-request@vds.kolivas.org: ck Digest, Vol 3, Issue 16]]

2004-08-21 Thread Mike Hearn
 Forwarded Message 
From: Con Kolivas <[EMAIL PROTECTED]>
To: Mike Hearn <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED]
Subject: Re: [ck] Re: Threading issues? [EMAIL PROTECTED]: ck
Digest, Vol 3, Issue 16]
Date: Sat, 21 Aug 2004 10:39:21 +1000
Mailer: Mozilla Thunderbird 0.7.1 (X11/20040626)
Mike Hearn wrote:
> On Tue, 17 Aug 2004 10:06:46 +0200, Andreas Mohr wrote:
> 
>>Are we doing some big no-nos in the threading area here?
>>(or maybe it's just done the way it is because we cannot do it a
>>different, better way?)
>>
>>For the whole discussion, please see
>>http://bhhdoa.org.au/pipermail/ck/2004-August/000428.html
> 
> 
> Well, apparently we don't use sched_yield, so the problem must
> lie somewhere else. Maybe Con can help us out here? Alexandre says he
> doesn't know what the issue is either and somebody needs to investigate. I
> guess we do need to concern ourselves over the details :)

Interesting. Probably the most valuable information is that it seems to 
work fine if we artificially limit the threads to exactly the same 
timeslice _or_ we put them at such a low priority that they are forced 
to be guaranteed to round robin one task at a time. This is the way 2.4 
used to work which is why with the new 2.6 schedulers which do far more 
out-of-order rescheduling some applications have a problem; particularly 
under load. I suspect it's actually the latter issue. Locking between 
threads should prevent that being a problem, though. You already 
mentioned that you dont use sched_yield() and I couldn't even begin to 
look at the wine code myself so perhaps you know something more.

The other (useful?) bit of information is that one person solved his 
issue with this:

 >I had a similar problem with Cedega. I fixed it by editing the
 >Cedega/WineX config file and specifying that I wanted to use ALSA
 >instead of WineOSS, then disable mmap for ALSA.

I'm not sure if that fixes all the problems but perhaps that helps.

I'm interested in getting this resolved so please keep me informed.

Cheers,
Con

P.S. Sorry I had trouble posting to your newsgroup.




Re: Limit number of DirectDrawClipper_SetClipList FIXMEs

2004-08-21 Thread James Hawkins
> the program starts, but the difference between  this and a regular
> non-static variable is that this static variable holds whatever value
> it contains

That wasnt very clear so I'll try to explain better.  The bottom line
is that the value of the static variable is retained between repeated
function calls to the same function.

See http://www-ee.eng.hawaii.edu/Courses/EE150/Book/chap14/subsection2.1.1.6.html
for more information.

On Sat, 21 Aug 2004 02:52:31 -0700, James Hawkins <[EMAIL PROTECTED]> wrote:
> Tobias wrote:
> > > +if (warned++ < 10 && lprgn != NULL)
> 
> Stefan wrote:
> > for me this looks like
> >
> > if (0 < 10 && lprgn != NULL)
> 
> The variable 'warned' doesn't actually turn out to be zero all of the
> time.  It is a static variable, so it is initialized once to zero when
> the program starts, but the difference between  this and a regular
> non-static variable is that this static variable holds whatever value
> it contains.  If this code snippet runs then warned will increase by
> one each time and this new value will not be set back to zero the next
> time the block runs.
> 
> 
> 
> On Sat, 21 Aug 2004 11:08:09 +0200, Stefan Leichter
> <[EMAIL PROTECTED]> wrote:
> > Am Freitag, 20. August 2004 18:37 schrieb Tobias Burnus:
> > > +
> > >   HRESULT WINAPI Main_DirectDrawClipper_SetClipList(
> > > -LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,DWORD pdwSize
> > > +LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,DWORD pdwFlag
> > >   ) {
> > >   ICOM_THIS(IDirectDrawClipperImpl,iface);
> > > -FIXME("(%p,%p,%ld),stub!\n",This,lprgn,pdwSize);
> > > +static int warned = 0;
> > > +if (warned++ < 10 && lprgn != NULL)
> >  Hello,
> >
> > for me this looks like
> >
> > if (0 < 10 && lprgn != NULL)
> >
> > what is the same like
> >
> > if (lprgn != NULL)
> >
> > I thing you meant something different
> >
> > Bye Stefan
> >
> >
> 
> 
> --
> James Hawkins
> 


-- 
James Hawkins



Re: Limit number of DirectDrawClipper_SetClipList FIXMEs

2004-08-21 Thread James Hawkins
Tobias wrote:
> > +if (warned++ < 10 && lprgn != NULL)

Stefan wrote:
> for me this looks like
> 
> if (0 < 10 && lprgn != NULL)

The variable 'warned' doesn't actually turn out to be zero all of the
time.  It is a static variable, so it is initialized once to zero when
the program starts, but the difference between  this and a regular
non-static variable is that this static variable holds whatever value
it contains.  If this code snippet runs then warned will increase by
one each time and this new value will not be set back to zero the next
time the block runs.

On Sat, 21 Aug 2004 11:08:09 +0200, Stefan Leichter
<[EMAIL PROTECTED]> wrote:
> Am Freitag, 20. August 2004 18:37 schrieb Tobias Burnus:
> > +
> >   HRESULT WINAPI Main_DirectDrawClipper_SetClipList(
> > -LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,DWORD pdwSize
> > +LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,DWORD pdwFlag
> >   ) {
> >   ICOM_THIS(IDirectDrawClipperImpl,iface);
> > -FIXME("(%p,%p,%ld),stub!\n",This,lprgn,pdwSize);
> > +static int warned = 0;
> > +if (warned++ < 10 && lprgn != NULL)
>  Hello,
> 
> for me this looks like
> 
> if (0 < 10 && lprgn != NULL)
> 
> what is the same like
> 
> if (lprgn != NULL)
> 
> I thing you meant something different
> 
> Bye Stefan
> 
> 


-- 
James Hawkins



Re: Limit number of DirectDrawClipper_SetClipList FIXMEs

2004-08-21 Thread Andreas Mohr
Hi,

On Sat, Aug 21, 2004 at 11:08:09AM +0200, Stefan Leichter wrote:
> Am Freitag, 20. August 2004 18:37 schrieb Tobias Burnus:
> > +
> >   HRESULT WINAPI Main_DirectDrawClipper_SetClipList(
> > -LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,DWORD pdwSize
> > +LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,DWORD pdwFlag
> >   ) {
> >   ICOM_THIS(IDirectDrawClipperImpl,iface);
> > -FIXME("(%p,%p,%ld),stub!\n",This,lprgn,pdwSize);
> > +static int warned = 0;
> > +if (warned++ < 10 && lprgn != NULL)
>  Hello,
> 
> for me this looks like
> 
> if (0 < 10 && lprgn != NULL)
> 
> what is the same like 
> 
> if (lprgn != NULL)
> 
> I thing you meant something different
Note that warned is defined to be static.
Maybe go back in your corner and find out what that means? :-)
(or it might just be that you missed the static part)

Andreas Mohr



Re: Limit number of DirectDrawClipper_SetClipList FIXMEs

2004-08-21 Thread Stefan Leichter
Am Freitag, 20. August 2004 18:37 schrieb Tobias Burnus:
> +
>   HRESULT WINAPI Main_DirectDrawClipper_SetClipList(
> -LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,DWORD pdwSize
> +LPDIRECTDRAWCLIPPER iface,LPRGNDATA lprgn,DWORD pdwFlag
>   ) {
>   ICOM_THIS(IDirectDrawClipperImpl,iface);
> -FIXME("(%p,%p,%ld),stub!\n",This,lprgn,pdwSize);
> +static int warned = 0;
> +if (warned++ < 10 && lprgn != NULL)
 Hello,

for me this looks like

if (0 < 10 && lprgn != NULL)

what is the same like 

if (lprgn != NULL)

I thing you meant something different

Bye Stefan