Re: Wine's Registry

2005-06-20 Thread Martin Fuchs
2005/6/19, James Liggett [EMAIL PROTECTED]:
 Hi Brad,
 I've been following you discussion about wine's registry format, and I
 find it interesting. I gave it some thought, I have have an idea. Have
 you thought about using XML as a potential format? Since the registry is
 a non-relational tree database, this seems to fit quite well. Plus,
 there's a few libraries that would do the dirty work for us (libxml,
 expat, many others, name your pick). It could even be possible to
 modularize the registry using technologies like XInclude or XLink. Just
 thought I'd offer my two cents.

Sure, the tree format would match. But this would not really make
things better. You would also have to read the registry at once at
startup time. The best solution would be to use native Windows
registry format. This way you could use real Windows registry files,
and can read and update registry piecewise. It's organized like a
little file system - or database if you want to see it this way. It's
not documented. But you could have a look at the ReactOS
implementation, which claimes to be compatible to NT4.

Regards,

Martin




Re: Crashes due to OGL

2005-06-20 Thread Raphael
On Monday 20 June 2005 04:18, Robert Lunnon wrote:
 I see the following X error (After fixing a bug in utah GLX)

 trace:ddraw:initialize enabling DirectDraw HAL
 trace:ddraw:d3ddevice_init_at_startup Initializing GL...
 @@Created GLX Context..
 X Error of failed request:  BadValue (integer parameter out of range for
 operation)
   Major opcode of failed request:  143 (GLX)
   Minor opcode of failed request:  3 (X_GLXCreateContext)
   Value in failed request:  0x21
   Serial number of failed request:  7282
   Current serial number in output stream:  7283
 send_thread_signal 15

 According to my GL log this request looks for visual 33 (IE vid=33) this is
 a non GL visual since utah GLX is allocating visuals 55 up on my system. I
 don't exactly know why wine should be trying to Create a GL context from a
 non GL visual but there you are...


 Bob

Hi,

seems more a ddraw problem on way how glx context is created :)
can you try d3d8 games to see if it works better ?

Regards,
Raphael


pgpUGGIInObl9.pgp
Description: PGP signature


Re: World of Warcraft

2005-06-20 Thread Raphael
Hi,

On Friday 17 June 2005 16:12, Mike Hearn wrote:
 On Thu, 16 Jun 2005 09:44:34 +0200, Raphael wrote:
  Well cedega seems to have the same problem (google) and they fixed it
  using specific memory layout for WoW (mmap begins at 0x1000) Seems
  more a WoW bug than wine/cedega bug :)

 Yes, it's a WoW bug, some Windows users are affected too. Unfortunately it
 seems very few Windows users hit the problem but all Linux/Wine users see
 it.

Yes seems a strange WoW optimization :)

  I don't want to do ugly hack to ovveride memory layout so if any wine
  memory layout expert can look why it happened (Alexandre ?)

 There's something else going on here, the Cedega fix doesn't seem to work
 for everybody.

 Well, I don't think Alexandre has a WoW account or copy and there isn't
 enough information here to see what's going on. It's odd that seems VM
 layout related though. 

as me, i haven't a WoW account 
but seems that WoW do some checks using presumption on VM layout (and wine VM 
layout is really different)

 The issue looks like it's in OpenGL though, their 
 1.5 patch hotfix is a replacement of the opengl32 DLL.

1.5.O WoW patch used to work (with my openGL patces to get 1.4.1 working)
we are speaking about 1.5.1 problem

 thanks -mike

Regards,
Raphael


pgp6C187YQDdD.pgp
Description: PGP signature


Re: World of Warcraft

2005-06-20 Thread Raphael
Hi,

 Hopefully somebody will figure this one out. If not maybe a trip to the
 local games shop is in order :)

lol
what about asking blizzard support :)

 thanks -mike

Regards,
Raphael


pgpPMvZ8VJLuB.pgp
Description: PGP signature


Re: World of Warcraft

2005-06-20 Thread Andreas Mohr
Hi,

On Mon, Jun 20, 2005 at 09:34:52AM +0200, Raphael wrote:
 Hi,
 
  Hopefully somebody will figure this one out. If not maybe a trip to the
  local games shop is in order :)
 
 lol
 what about asking blizzard support :)
I'd really recommend doing exactly that.
Those game publishers'd better get used to us having issues with their
 awkward patches all the time ;)
That way they might go as far as testing it on Wine themselves before release
or mailing it to interested Wine people beforehand.

We need to get on the radar of those companies...

Andreas Mohr



Re: Guild Wars

2005-06-20 Thread Andreas Mohr
Hi,

On Sun, Jun 19, 2005 at 04:38:25PM -0500, Robert Shearman wrote:
 This is fixed by patch OLE #81a (Part 1) if it gets committed.
 It will then output:
 err:ole:CoGetClassObject class {a65b8071-3bfe-4213-9a5b-491da4461ca7} 
 not registered
Wow, that was FAST! (hmm, or was your patch before my mail? don't remember)

It's only a semi-fix, though, since IMHO it should output something like:
err:ole:CoGetClassObject class {a65b8071-3bfe-4213-9a5b-491da4461ca7}
not registered - try running regsvr32 on the container DLL of this CLSID value!

which:
- mentions regsvr32
- mentions that an unregistered DLL is involved

And thus is an actually useful error message (to clueless endusers, that is).

Andreas Mohr



Wine on LinuxTag 2005

2005-06-20 Thread Michael Stefaniuc
Hello guys,

the LinuxTag 2005 has Wine as featured OSS project
http://www.linuxtag.org/typo3site/projects.html?L=1 (german only).
Does anybody know something about this? Andi?

bye
michael
-- 
Michael Stefaniuc   Tel.: +49-711-96437-199
Sr. Network EngineerFax.: +49-711-96437-111
Red Hat GmbHEmail: [EMAIL PROTECTED]
Hauptstaetterstr. 58http://www.redhat.de/
D-70178 Stuttgart


pgpwnHax5dn4G.pgp
Description: PGP signature


Re: Crashes due to OGL

2005-06-20 Thread Oliver Stieber

--- Raphael [EMAIL PROTECTED] wrote:

 On Monday 20 June 2005 04:18, Robert Lunnon wrote:
  I see the following X error (After fixing a bug in
 utah GLX)
 
  trace:ddraw:initialize enabling DirectDraw HAL
  trace:ddraw:d3ddevice_init_at_startup Initializing
 GL...
  @@Created GLX Context..
  X Error of failed request:  BadValue (integer
 parameter out of range for
  operation)
Major opcode of failed request:  143 (GLX)
Minor opcode of failed request:  3
 (X_GLXCreateContext)
Value in failed request:  0x21
Serial number of failed request:  7282
Current serial number in output stream:  7283
  send_thread_signal 15
 
  According to my GL log this request looks for
 visual 33 (IE vid=33) this is
  a non GL visual since utah GLX is allocating
 visuals 55 up on my system. I
  don't exactly know why wine should be trying to
 Create a GL context from a
  non GL visual but there you are...
 
 
  Bob
 
 Hi,
 
 seems more a ddraw problem on way how glx context
 is created :)
 can you try d3d8 games to see if it works better ?
 

It would be great if you could try the d3d9 patches
too (http://directxwine.sourceforge.net/), I've
changed the way pbuffers are created compared to d3d8


 Regards,
 Raphael
 



___ 
How much free photo storage do you get? Store your holiday 
snaps for FREE with Yahoo! Photos http://uk.photos.yahoo.com



Re: [shell32] Load file context menu from resources [Resent]

2005-06-20 Thread Alexandre Julliard
Tobias Burnus [EMAIL PROTECTED] writes:

 Second try (unchanged). Any suggestions how to improve the patch are
 welcome.
 
 Tobias
 
 Changed file overview:
 - shv_item_cmenu.c: Load from resources (the [currently unused] MENU
 resource already exists)
 - shell32_?.rc: Comment out two items (and a separator) and
 copy text from IDS_SELECT, needed to match the current context menu

You shouldn't comment things out like that. Either the info is needed
and it should be here, or it's not needed and it should be removed
completely. Commenting it out is only creating confusion.

-- 
Alexandre Julliard
[EMAIL PROTECTED]



Re: [Patch] winsock.h inclusion

2005-06-20 Thread Alexandre Julliard
Pierre d'Herbemont [EMAIL PROTECTED] writes:

 Alexandre,
 
 Using the current CVS on Darwin/Mac OS X, there are still compilation
 errors related to winsock.h inclusion. The error was:
 
 ../../../include/winsock.h:414: error: redefinition of 'struct timeval'
 
 My solution is to include wine/test.h after every other header.

You should fix wine/test.h and/or winsock.h to work properly in all
cases. Otherwise the problem will keep coming back.

-- 
Alexandre Julliard
[EMAIL PROTECTED]



Re: Added XEmbed embedder support

2005-06-20 Thread Jacek Caban
Dimi Paun wrote:

On Mon, 2005-06-20 at 00:05 +0200, Jacek Caban wrote:
  

Hello.

This patch adds support for XEmbed embedder
It implements most of it (remaining todos
are listed in comments of xembed.c).



Cool stuff, I'm really excited about this work. 
Not to mention that this might prove useful outside
of the MSHTML context.
  

I will not comment on the fundamentals of
the approach, that's more Alexandre's alley, but
just a few style nits.


  

+struct xembed_list
+{
+struct xembed_list *next;
+HWND hwnd;
+};



What about using the standard list from wine/list.h?
  

AFAIK using standard list lists or not is up to developer.
Personally I don't like Wine's implementation... I don't have
any argument why - I just feel better not using it :-)

  

 /* DIB Section sync state */
@@ -590,6 +601,8 @@ enum x11drv_atoms
 XATOM_XdndSelection,
 XATOM_XdndTarget,
 XATOM_XdndTypeList,
+XATOM__XEMBED,
+XATOM__XEMBED_INFO,
 XATOM_WCF_DIB,
 XATOM_image_gif,
 XATOM_text_html,
@@ -649,6 +662,10 @@ struct x11drv_win_data
 struct dce *dce;/* DCE for CS_OWNDC or CS_CLASSDC windows */
 HBITMAP hWMIconBitmap;
 HBITMAP hWMIconMask;
+union {
+struct xembed_list *list;
+ULONG_PTR cnt;
+} xembed;
 };



Do we really need the union? We're not that hard pressed for
memory. What about just

@@ -649,6 +662,10 @@ struct x11drv_win_data
 struct dce *dce;/* DCE for CS_OWNDC or CS_CLASSDC windows */
 HBITMAP hWMIconBitmap;
 HBITMAP hWMIconMask;
+struct xembed_list *list;
+ULONG_PTR cnt;
 };
  

I can't see why union is worse... But instead of union it can
always be a list, if we don't care about memory. I didn't do it
this way because it was better for my earlier versions, but now
I may change it.

Also, instead of having explicit tests like these:

  

+if(data-xembed.cnt)



Maybe we can have a 
  BOOL win_has_embedded_children(struct x11drv_win_data *data)

function to make it more explicit what we're testing for.

  

OK, I thought it's clean enough, but I can change it.

Jacek




Problem with wine-cvs on FC4

2005-06-20 Thread Hans Kristian Rosbach
For about a week now I've been able to compile wine-cvs on
FC4 after manually excluding the ddraw-test references.

But I'm yet to see an actual window created by wine.

Even running the built in notepad application does not
produce much meaningful result. In the console it outputs
err:imagelist:ImageList_ReplaceIcon no color! a lot and
then just sits there waiting. No window, no other messages.

After running 'make test' I end up with these errors:
../../../tools/runtest -q -P wine -M comctl32.dll -T ../../.. -p
comctl32_test.exe.so imagelist.c  touch imagelist.ok
imagelist.c:303: Test failed: no hicon1
imagelist.c:305: Test failed: no hicon2
imagelist.c:307: Test failed: no hicon3
imagelist.c:355: Test failed: no hicon1
imagelist.c:357: Test failed: no hicon2
imagelist.c:359: Test failed: no hicon3
imagelist.c:402: Test failed: couldn't get DC
imagelist.c:435: Test failed: DrawIndirect should succeed
imagelist.c:445: Test failed: should succeed
imagelist.c:447: Test failed: should succeed
imagelist.c:449: Test failed: should succeed
imagelist.c:485: Test failed: failed to create hicon1

There are also a few hundreds of the no color error, I can
provide full make test output if wanted.

-HK




Re: Wine's Registry

2005-06-20 Thread Brad DeMorrow

James Liggett wrote:


Being as compatible with Windows as possible would probably be the best
idea. As for looking to ReactOS as a guide, it might be feasible, but
there's a lot of holes in their implementations of things, so this would
take some looking into as to where they stand in that area. But it might
be worth it.

James

On Mon, 2005-06-20 at 08:08 +0200, Martin Fuchs wrote:
 


2005/6/19, James Liggett [EMAIL PROTECTED]:
   


Hi Brad,
I've been following you discussion about wine's registry format, and I
find it interesting. I gave it some thought, I have have an idea. Have
you thought about using XML as a potential format? Since the registry is
a non-relational tree database, this seems to fit quite well. Plus,
there's a few libraries that would do the dirty work for us (libxml,
expat, many others, name your pick). It could even be possible to
modularize the registry using technologies like XInclude or XLink. Just
thought I'd offer my two cents.
 


Sure, the tree format would match. But this would not really make
things better. You would also have to read the registry at once at
startup time. The best solution would be to use native Windows
registry format. This way you could use real Windows registry files,
and can read and update registry piecewise. It's organized like a
little file system - or database if you want to see it this way. It's
not documented. But you could have a look at the ReactOS
implementation, which claimes to be compatible to NT4.

Regards,

   Martin
   




 

   I see a few people piping up and agreeing that Wine could use a new 
registry mechanism, but ultimately, Julliard is going to be the one who 
decides whether or not he's going to commit such a thing to cvs or not. 
. . 
I'd really like to get his approval before I do anything. . .  I know 
you weren't convinced with my first post Alexandre, but has your opinion 
been changed since then?  If it hasn't - I'll drop the whole subject now 
and let things be, but if it has, please let me know so I can begin work.



Thanks,

--Brad DeMorrow



Re: Problem with wine-cvs on FC4

2005-06-20 Thread Andreas Mohr
Hi,

On Mon, Jun 20, 2005 at 10:52:10AM +0200, Hans Kristian Rosbach wrote:
 For about a week now I've been able to compile wine-cvs on
 FC4 after manually excluding the ddraw-test references.
 
 But I'm yet to see an actual window created by wine.
 
 Even running the built in notepad application does not
 produce much meaningful result. In the console it outputs
 err:imagelist:ImageList_ReplaceIcon no color! a lot and
 then just sits there waiting. No window, no other messages.
That sounds a lot like it is using the completely incapable/improper ttydrv
(text mode) in the wine configuration instead of x11drv.
But I could be wrong since I don't know for sure whether it's that kind of
error messages that will appear when using ttydrv...

Andreas Mohr



Re: [PATCH] FCI work for cabinet.dll [cabinet-fci-patch-02c.diff]

2005-06-20 Thread Alexandre Julliard
Gerold J. Wucherpfennig [EMAIL PROTECTED] writes:

 Please apply, it seems to be fine, so far.
 
 There is still some work to be done:
 
 - currently no support for big-endian machines
 - the ERF error structure aren't used on error
 - no real compression yet
 - unknown behaviour if files4GB or cabinet 4GB
 - incorrect status information
 - check if the maximum size for a cabinet is too small to store any data
 - call pfnfcignc on exactly the same position as MS FCIAddFile in every case

You should get rid of all the PFCI_INT macro uses, that's making the
code really ugly and hard to read. You should do the cast once at the
start of the function (preferably as part of the handle validation
routine) and then pass around a pointer of the appropriate type.

-- 
Alexandre Julliard
[EMAIL PROTECTED]



Re: Guild Wars

2005-06-20 Thread Robert Shearman

Andreas Mohr wrote:


Hi,

On Sun, Jun 19, 2005 at 04:38:25PM -0500, Robert Shearman wrote:
 


This is fixed by patch OLE #81a (Part 1) if it gets committed.
It will then output:
err:ole:CoGetClassObject class {a65b8071-3bfe-4213-9a5b-491da4461ca7} 
not registered
   


Wow, that was FAST! (hmm, or was your patch before my mail? don't remember)

It's only a semi-fix, though, since IMHO it should output something like:
err:ole:CoGetClassObject class {a65b8071-3bfe-4213-9a5b-491da4461ca7}
not registered - try running regsvr32 on the container DLL of this CLSID value!
 



If they have enough expertise to know that the CLSID is that of a DXDiag 
object then I think they will know that they can register it by using 
regsvr32 and I don't think this is the right place for documenting the 
possible reasons for the error. However, this particular problem was 
that the user didn't re-register all of the DLLs after upgrading. Maybe 
we should have something in the docs that tells the user to do this 
after upgrading to a new version of Wine or have it done automatically 
somehow.


--
Rob Shearman




Re: Guild Wars

2005-06-20 Thread Robert Shearman

Andreas Mohr wrote:


Hi,

On Sun, Jun 19, 2005 at 04:38:25PM -0500, Robert Shearman wrote:
 


This is fixed by patch OLE #81a (Part 1) if it gets committed.
It will then output:
err:ole:CoGetClassObject class {a65b8071-3bfe-4213-9a5b-491da4461ca7} 
not registered
   


Wow, that was FAST! (hmm, or was your patch before my mail? don't remember)

It's only a semi-fix, though, since IMHO it should output something like:
err:ole:CoGetClassObject class {a65b8071-3bfe-4213-9a5b-491da4461ca7}
not registered - try running regsvr32 on the container DLL of this CLSID value!
 



If they have enough expertise to know that the CLSID is that of a DXDiag 
object then I think they will know that they can register it by using 
regsvr32 and I don't think this is the right place for documenting the 
possible reasons for the error. However, this particular problem was 
that the user didn't re-register all of the DLLs after upgrading. Maybe 
we should have something in the docs that tells the user to do this 
after upgrading to a new version of Wine or have it done automatically 
somehow.



--
Rob Shearman




Re: Using SVK and Subversion to manage distributed branches to Wine CVS

2005-06-20 Thread Mike Hearn
On Mon, 20 Jun 2005 11:44:11 +1000, Troy Rollo wrote:
 In the case of Wine, however, with
 the CVS repository being read-only except to Alexandre, the difference
 between read-only CVS and the combination of Subversion and SVK is even
 more dramatic (I would compare it to the difference between chiselling
 documents into stone tablets and using a word processor).

+1

Thanks for doing this Troy, I had intended to set up an SVK gateway months
ago and it never happened. It's great to see that I'm not crazy really ;)

thanks -mike




Re: Change Name of Wine Marlett Font

2005-06-20 Thread Huw D M Davies
On Mon, Jun 20, 2005 at 01:10:11PM -0500, Robert Shearman wrote:
 Changelog:
 The Wine Marlett font needs to be called Marlett for Steam to pick 
 it up.

The font replacement mechanism should make this unnecessary.  Why
doesn't that work in this case?

Huw.



Re: Change Name of Wine Marlett Font

2005-06-20 Thread Robert Shearman

Huw D M Davies wrote:


On Mon, Jun 20, 2005 at 01:10:11PM -0500, Robert Shearman wrote:
 


Changelog:
The Wine Marlett font needs to be called Marlett for Steam to pick 
it up.
   



The font replacement mechanism should make this unnecessary.  Why
doesn't that work in this case?
 



It enumerates the fonts, but Marlett isn't enumerated, only Wine 
Marlett. I tried adding a value in the FontSubstitutes and Fonts 
registry keys and the problem was the same. You can test this very 
easily using notepad's Edit-Font dialog. Steam only started working 
when Marlett was listed as a font in there.


--
Rob Shearman




winecfg's registry convience functions

2005-06-20 Thread Michael Jung
I would like to add a checkbox control (Show host filesystem) to winecfg to 
allow the user to easily (un-)register the unixfs shell namespace extension. 
So winecfg would have to query and create/delete the 
HKLM\Software\Microsoft\CurrentVersion\Explorer\MyComputer\Namespace\{UNIXFS-CLSID}
key. There are helper functions in winecfg.c to cache registry values for 
later application, iff the user clicks Apply or Ok. However, those seem 
to work only for keys rooted at the config key HKCU\Software\Wine.

My question is: Am I doomed to implement the caching on my own for this key, 
should I generalize the helper functions, or do you think this configuration 
option should'nt be in winecfg at all?

Bye,
-- 
Michael Jung
[EMAIL PROTECTED]



Re: Change Name of Wine Marlett Font

2005-06-20 Thread Huw D M Davies
On Mon, Jun 20, 2005 at 01:37:45PM -0500, Robert Shearman wrote:
 Huw D M Davies wrote:
 
 On Mon, Jun 20, 2005 at 01:10:11PM -0500, Robert Shearman wrote:
  
 
 Changelog:
 The Wine Marlett font needs to be called Marlett for Steam to pick 
 it up.

 
 
 The font replacement mechanism should make this unnecessary.  Why
 doesn't that work in this case?
  
 
 
 It enumerates the fonts, but Marlett isn't enumerated, only Wine 
 Marlett. I tried adding a value in the FontSubstitutes and Fonts 
 registry keys and the problem was the same. You can test this very 
 easily using notepad's Edit-Font dialog. Steam only started working 
 when Marlett was listed as a font in there.

Yup, that's the fonts substitutes mechanism which is different from the
replacements oneg  See LoadReplaceList in gdi/freetype.c

You need something like this:

[HKCU\Software\Wine\Fonts\Replacements]
Marlett=Wine Marlett

Huw.



Re: Change Name of Wine Marlett Font

2005-06-20 Thread Robert Shearman

Huw D M Davies wrote:


On Mon, Jun 20, 2005 at 01:37:45PM -0500, Robert Shearman wrote:
 


Huw D M Davies wrote:

   


On Mon, Jun 20, 2005 at 01:10:11PM -0500, Robert Shearman wrote:


 


Changelog:
The Wine Marlett font needs to be called Marlett for Steam to pick 
it up.
 

   


The font replacement mechanism should make this unnecessary.  Why
doesn't that work in this case?


 

It enumerates the fonts, but Marlett isn't enumerated, only Wine 
Marlett. I tried adding a value in the FontSubstitutes and Fonts 
registry keys and the problem was the same. You can test this very 
easily using notepad's Edit-Font dialog. Steam only started working 
when Marlett was listed as a font in there.
   



Yup, that's the fonts substitutes mechanism which is different from the
replacements oneg  See LoadReplaceList in gdi/freetype.c

You need something like this:

[HKCU\Software\Wine\Fonts\Replacements]
Marlett=Wine Marlett
 



Thanks, that works. This patch is unnecessary.

--
Rob Shearman




unicode.h and -Wcast-qual

2005-06-20 Thread Stefan Huehner
Hi,

i am currently trying to fix the -Wcast-qual warnings. In
include/wine/unicode.h there a 4 function:

static inline int strncmpW( const WCHAR *str1, const WCHAR *str2, int n)
static inline WCHAR *strchrW( const WCHAR *str, WCHAR ch )
static inline WCHAR *strrchrW( const WCHAR *str, WCHAR ch )
static inline WCHAR *strpbrkW( const WCHAR *str, const WCHAR *accept )

whose signatures forces us to discard the const of an parameter while
returning it as the function value. Compiling with -Wcast-qual gives
(correctly) this warning:

../../include/wine/unicode.h:218: warning: cast discards qualifiers from
pointer target type

Together these four functions account for a total of 1400 (!) warnings.

In samba_4 sourcecode i discovered the following macros, which are
apparently a hack but silences these warnings:

#define discard_const(ptr) ((void *)((intptr_t)(ptr)))
#define discard_const_p(type, ptr) ((type *)discard_const(ptr))

an crude proof of concept is attached as a patch.

I am not sure how portable this solution is...

Any comments are welcome...

Regards,
Stefan

Index: configure.ac
===
RCS file: /home/wine/wine/configure.ac,v
retrieving revision 1.366
diff -u -r1.366 configure.ac
--- configure.ac20 Jun 2005 15:52:16 -  1.366
+++ configure.ac20 Jun 2005 20:16:14 -
@@ -1276,6 +1276,7 @@
 AC_C_INLINE
 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t, long long, fsblkcnt_t, 
fsfilcnt_t])
 AC_CHECK_TYPES([sigset_t],,,[#include signal.h])
+AC_CHECK_TYPES(intptr_t)
 
 AC_CACHE_CHECK([whether linux/input.h is for real],
wine_cv_linux_input_h,
Index: include/wine/unicode.h
===
RCS file: /home/wine/wine/include/wine/unicode.h,v
retrieving revision 1.32
diff -u -r1.32 unicode.h
--- include/wine/unicode.h  28 Apr 2005 12:01:37 -  1.32
+++ include/wine/unicode.h  20 Jun 2005 20:16:14 -
@@ -31,6 +31,17 @@
 #define WINE_UNICODE_API DECLSPEC_IMPORT
 #endif
 
+#include stdint.h
+#include config.h
+
+#ifdef HAVE_INTPTR_T
+#define discard_const(ptr) ((void *)((intptr_t)(ptr)))
+#else
+#define discard_const(ptr) ((void *)(ptr))
+#endif
+#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
+
+
 /* code page info common to SBCS and DBCS */
 struct cp_info
 {
@@ -215,20 +226,20 @@
 
 static inline WCHAR *strchrW( const WCHAR *str, WCHAR ch )
 {
-for ( ; *str; str++) if (*str == ch) return (WCHAR *)str;
+for ( ; *str; str++) if (*str == ch) return discard_const_p(WCHAR, str);
 return NULL;
 }
 
 static inline WCHAR *strrchrW( const WCHAR *str, WCHAR ch )
 {
 WCHAR *ret = NULL;
-for ( ; *str; str++) if (*str == ch) ret = (WCHAR *)str;
+for ( ; *str; str++) if (*str == ch) ret = discard_const_p(WCHAR, str);
 return ret;
 }
 
 static inline WCHAR *strpbrkW( const WCHAR *str, const WCHAR *accept )
 {
-for ( ; *str; str++) if (strchrW( accept, *str )) return (WCHAR *)str;
+for ( ; *str; str++) if (strchrW( accept, *str )) return 
discard_const_p(WCHAR, str);
 return NULL;
 }
 
@@ -263,7 +274,7 @@
 static inline WCHAR *memchrW( const WCHAR *ptr, WCHAR ch, size_t n )
 {
 const WCHAR *end;
-for (end = ptr + n; ptr  end; ptr++) if (*ptr == ch) return (WCHAR *)ptr;
+for (end = ptr + n; ptr  end; ptr++) if (*ptr == ch) return 
discard_const_p(WCHAR, ptr);
 return NULL;
 }
 
@@ -271,7 +282,7 @@
 {
 const WCHAR *end, *ret = NULL;
 for (end = ptr + n; ptr  end; ptr++) if (*ptr == ch) ret = ptr;
-return (WCHAR *)ret;
+return discard_const_p(WCHAR , ret);
 }
 
 static inline long int atolW( const WCHAR *str )


Re: unicode.h and -Wcast-qual

2005-06-20 Thread Jacek Caban
Stefan Huehner wrote:

I am not sure how portable this solution is...
  

To make it portable you can use ULONG_PTR instead
of intptr_t.

Jacek



Re: Wine's Registry Format

2005-06-20 Thread David Lee Lambert
On Thursday 16 June 2005 11:20 pm, you wrote:
 On Sat, 18 Jun 2005 22:22:56 +0200, Alexandre Julliard wrote:
  Actually the current method is probably the fastest for everything
  except the initial read.

 The only reason that the current method is fast is because we're loading
 the entire registry into memory.  As stated in Bugzilla, this is fine for
 small registries, but the author of the bug has noted wineserver allocated
 up to 30MB when wine initiates JUST for the registry!

How do you propose to keep track of multiple sources of the registry data?  At 
one time Wine supported system-wide registry files as well as per-user ones,  
and some people would like to see that again.

 Using BerkeleyDB to access the registry would provide the kind of
 random-access that we need for such a large amount of information

Samba already uses something called 'TDB', and it's been suggested that the 
two projects could share a case-insensitive-filename layer based on it;  
could you look into using that?

 - It 
 would also provide us with a quicker and easier way to search through the
 registry - so we could finally implement the Find feature in wine's
 regedit without much effort ( Not that it couldn't be done as is, but
 things would definitely be easier ).

This could only be done at the expense of several times increase in on-disk 
storage, and would actually not be used very much.  

A more useful enhancement would be to support PCRE syntax for 
find-and-replace,  or multiple views of data, or version-control of the 
registry... in fact,  there are Windows programs that do all that,  and all 
they require is a good, stable, quick implementation of the registry calls,  
which is what Wine provides.

-- 
DLL

GPG key at http://www.cse.msu.edu/~lamber45/newmail.htm?GPGkey


pgpJtRZJKkxaE.pgp
Description: PGP signature


Re: World of Warcraft

2005-06-20 Thread Raphael
On Monday 20 June 2005 09:40, Raphael wrote:
 Hi,

  To me it looks like an overoptimized geometry problem. As long there is
  only sky and no terrain or building behind the objects, you can klick
  them. This is mostly the case, when you look up. Just like users
  reported.
 
  I just wrote a lousy mmap wrapper which sets start to 0x1000 . This
  works for me with wine 20050601 and the latest from cvs.

 Interesting


After some investigation (using interesting users dumps at 
http://home.gci.net/~slipster5/WowError/ and in many others places)

looks like more an ugly WoW bug

For example seeing this typilical error:

This application has encountered a critical error:

ERROR #132 (0x85100084)
Program:C:\Program Files\World of Warcraft\WoW.exe
Exception:  0xC005 (ACCESS_VIOLATION) at 001B:00650E16

The instruction at 0x00650E16 referenced memory at 0x33991588.
The memory could not be read.


While registers was:

EAX=0001  EBX=13991500  ECX=00A49658  EDX=0003  ESI=1399155C
EDI=  EBP=0012FC58  ESP=0012FC38  EIP=00650E16  FLG=00210202
CS =001B  DS =0023  ES =0023  SS =0023  FS =003B  GS =


The must interesting is that error address was always (EBX + 0x2000) + 
something little (usually between 0x10-0x88). 

for info 0x2000 = 512Mb :)

So who go to blizzard to fix the bug ? :)


Raphael


pgpAZhseGaLeO.pgp
Description: PGP signature


Re: World of Warcraft

2005-06-20 Thread Raphael
Stupid kmail

Sorry
Raphael


pgpcJIYGhghQ6.pgp
Description: PGP signature


Re: Wine's Registry Format

2005-06-20 Thread Brad DeMorrow

David Lee Lambert wrote:


On Thursday 16 June 2005 11:20 pm, you wrote:
 


On Sat, 18 Jun 2005 22:22:56 +0200, Alexandre Julliard wrote:
   


Actually the current method is probably the fastest for everything
except the initial read.
 


The only reason that the current method is fast is because we're loading
the entire registry into memory.  As stated in Bugzilla, this is fine for
small registries, but the author of the bug has noted wineserver allocated
up to 30MB when wine initiates JUST for the registry!
   



How do you propose to keep track of multiple sources of the registry data?  At 
one time Wine supported system-wide registry files as well as per-user ones,  
and some people would like to see that again.
 

  I'm not certain what you mean by multple sources of the registry 
- but if you're clearifying yourself with your second sentence here, I'm 
sure it I could bring back that feature if I get the opportunity to and 
allow system registry files as well as user registry files.


 


Using BerkeleyDB to access the registry would provide the kind of
random-access that we need for such a large amount of information
   



Samba already uses something called 'TDB', and it's been suggested that the 
two projects could share a case-insensitive-filename layer based on it;  
could you look into using that?


 

  I've not heard of this 'TDB' before, nor do I know anything about 
that situation, however, again - given the opportunity - I will look 
into whatever the community wants before I make any decisions about how 
the project will be done.


- It 
would also provide us with a quicker and easier way to search through the

registry - so we could finally implement the Find feature in wine's
regedit without much effort ( Not that it couldn't be done as is, but
things would definitely be easier ).
   



This could only be done at the expense of several times increase in on-disk 
storage, and would actually not be used very much.  
 

  I'm not certain you're correct there, and I've been frustrated 
before when wine's regedit has that menu item disabled when I wanted to 
use it lol :)


  At any rate, again, I'm not saying one way or the other about how 
this is going to work yet (if at all).  I'll look into it.


A more useful enhancement would be to support PCRE syntax for 
find-and-replace,  or multiple views of data, or version-control of the 
registry... in fact,  there are Windows programs that do all that,  and all 
they require is a good, stable, quick implementation of the registry calls,  
which is what Wine provides.
 

  I agree with you there, that would be a nice feature to have - 
especially if the registry goes binary. . . I'm sure there are some 
people that would normally use techniques like that with their current 
registry files. . .


  Again, however, I'm not doing anything except research until 
Alexandre gives me the 'go ahead'. 

Thanks everyone who has been throwing out ideas, they're helpful and 
extremely appreciated.


--Brad DeMorrow




Re: World of Warcraft

2005-06-20 Thread Aric Cyr
  fixme:opengl:wglQueryPbufferARB unsupported WGL_PBUFFER_LOST_ARB
  (need
  glXSelectEvent/GLX_DAMAGED work)
 
 Arg,
 i didn't expect this fixme :(

I don't think we have to worry about this fixme.  We can always return
GL_FALSE, since that is the way the OpenGL surfaces were created.

From http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt:

 If the GLX_PRESERVED_CONTENTS_SGIX attribute is set to False in
attrib_list, then an unpreserved pbuffer is created and the
contents of the pbuffer may be lost at any time. If this attribute
is not specified, or if it is specified as True in attrib_list,
then when a resource conflict occurs the contents of the pbuffer
will be preserved (most likely by swapping out portions of the
buffer to main memory).  In either case, the client can register
to receive a buffer clobber event which is generated when the
pbuffer contents have been preserved or have been damaged. (See
the event description.)

So the fixme should be fixed to always return GL_FALSE I think.


Also, there is an interesting workaround for the clicking problem as well on
the Gentoo forums.  Seems to be working for the majority of people
(including myself).  It seems to reaffirm that the problem is indeed
the memory layout.
http://forums.gentoo.org/viewtopic-p-2509340.html#2509340

-- 
Aric Cyr acyr at alumni dot uwaterloo dot ca(http://acyr.net)
gpg fingerprint: 943A 1549 47AC D766 B7F8  D551 6703 7142 C282 D542



Re: winefile: switch to UNICODE mode

2005-06-20 Thread Martin Fuchs
Hi Marcelo,

2005/6/20, Marcelo Duarte [EMAIL PROTECTED]:
 I don´t understand something or winefile can use Michael Jung´s unixfs
 namespace extension?

The difference is: The unixfs namespace extension is implemented in
shell namespace. This is a quite huge overhead compared to directly
accessing unix file system functions because of all the PIDL
conversions. So you will notice a big difference in performance using
the root filesystem in winefile compared to using the shell
namespace (another option already existing in winefile).

Regards,

Martin