Re: Total bidi regression

2007-09-26 Thread Shachar Shemesh
Maarten Lankhorst wrote:
>
> I may have slightly misunderstood those flags then. I was under the
> impression that the FORCE flags would be similar to LRO/RLO.
The only thing that behaves like LRO and RLO are LRO and RLO. Believe
you me, no one was more surprised than me when I found out that Windows
actually respected them - they are as far away from an end user's
experience as you might get (though useful, if you know about them).

The Unicode algorithm keeps talking about setting the paragraph
direction based on the first strong direction character in the paragraph
(P2). As nice as that may have sound to the people drafting it, it only
sort of works in real life. Either way, Window's BiDi doesn't work that
way. The paragraph direction is set explicitly by the calling program
(or, failing that, by the HDC, or, failing that, by an EXT_STYLE in the
Window, you get the picture). This means the end of section 3.3.1,
instructing implementors to ignore P2 and P3 in case of "higher-level
protocol" apply here. Instead, the paragraph direction is explicitly
passed to BIDI_Reorder through the "dwWineGCP_Flags" argument.
>  Instead
> they are probably more like LRE/RLE.
It's better to say that LRE and RLE allows one to switch paragraph
direction for a specific part of the paragraph. In other words, LRE/RLE
are like the paragraph direction, not vice versa.
>  If that is a real problem I will
> send in a patch.
If?
>  I would still rather prefer a real bidi implementation,
> so that selecting and deleting characters would work properly.
Lost you there completely. What do you mean by "selecting and deleting"?
If you mean a BiDi editor, I think you have the tasks confused.
Reordering characters in order to get them out on screen for printing
has very little to do with string editing. It's one minor small step to
start with. Bidi editing is a lot more complex.
>  To my
> defense, there was no real clarification for them in the source.
>   
The comments in the code used the same terminology used by Annex 9. The
parameters were passed almost directly from the inputs in BIDI_Reorder
to ICU's input functions, where they are documented in the ICU
documentation. These parameters were also received, pretty directly,
from ExtTextOut, again, where they are documented in MSDN. To my eyes,
this is the level of documentation any Wine hacker should need. I don't
believe code comments should start explaining algorithms, particularly
algorithms implemented by a library and documented in an international
standard.

And I should warn you that edit control is several magnitudes more
complicated. Questions such as cursor position when the cursor is
between two letters that are, after reordering (i.e. - on display) not
adjacent, what happens if a given cursor location is clicked which has
two possible logical locations, and what to do if the user then clicks
"del" or types a letter in an RTL or an LTR language. Editing is
COMPLEX, and the road is not paved and documented. Matti Alluche wrote a
document once that gives specifications for BiDi editing, but after
Mozilla implemented it, I whole heartedly recommend that you avoid it.
Your best course of action is to find out what Windows does for its edit
control and copy that.
> Cheers,
> Maarten
>   

Shachar




Re: [5/5] WineD3D: Add sincos support to arb shaders

2007-09-26 Thread Stefan Dösinger
Am Donnerstag, 27. September 2007 02:57:01 schrieb Ivan Gyurdiev:
> Aren't most of these 2.0 and 3.0 instructions ?
> What's the goal of adding them to ARB - you won't be able to implement
> full 2.0/3.0 support in ARB.
We can implement 2.0(but not 2.a/b). Whenever it's easy to do, I'm adding 
3.0-Specific behavior too. The reason is that GLSL is a bloody pain on MacOS, 
with ARB I can bypass many abstraction layers that have a huge number of 
software fallback pitfalls.


signature.asc
Description: This is a digitally signed message part.



Re: DInput mouse - where to go from here?

2007-09-26 Thread Christoph Frick
On Thu, Sep 27, 2007 at 04:48:23AM +, L. Rahyen wrote:

> On Thursday September 27 2007 04:07, Vitaliy Margolen wrote:
> > The point I'm trying to make is: can we once put our "right ways of
> > doing things" aside and fix something that never worked before? And
> > fix it _for good_!
> I strongly agree here with Vitaliy.  Personally I think that using
> evdev for this purpose IS the "right way". Yes it will not work with
> remote X but Windows doesn't support this too (as far as I know at
> least). WINE purpose is to conform with Windows behavior.  Therefore
> use of evdev will be correct.  Even if above isn't true (I think it
> is) full support of remote X by dinput component isn't something
> useful for about 100% of users anyway.  Of course everything above is
> just my opinion.

on the other hand what is the use of playing a game over a remote
machine? or are there apps, that suffer from this too? i can only figure
out two things:

- running a game server (unlikely one uses a direct X session - maybe
  only for games that need a client to configure the server)

- play multiplayer games on one machine exporting it to the network
  (i doubt many do this - excepcially with windows games; it is more
  likely the other way around: host a linux game to a buddy with a
  windows notebook)

one other concern i have is compatibility with other platforms. wine
runs more or less fine at least on freebsd and osx - and others.  so we
keep the "old" code around, right?

in general i would like to point out, that we have already similar stuff
going on with the joystick drivers. the /dev/js joystick was/is(?) not
useable for serious sims, due to its dead zone coming from somewhere in
the kernel. so the /dev/input option is there - linux only i asume -
which works great.

so if the "evdev" path is a choice one can choose at compile time or
even by config: go for it! even if unofficial - the gamers out there are
used to hack stuff into wine to make their favourite games work
_at_once_ after patches or after release - no matter if they break
windows comptibility or other in their wine instance.

-- 
cu


pgp9k6fetU7tY.pgp
Description: PGP signature



Re: DInput mouse - where to go from here?

2007-09-26 Thread L. Rahyen
On Thursday September 27 2007 04:07, Vitaliy Margolen wrote:
> The point I'm trying to make is: can we once put our "right ways of doing
> things" aside and fix something that never worked before? And fix it _for
> good_!

I strongly agree here with Vitaliy.
Personally I think that using evdev for this purpose IS the "right 
way". Yes 
it will not work with remote X but Windows doesn't support this too (as far 
as I know at least). WINE purpose is to conform with Windows behavior. 
Therefore use of evdev will be correct.
Even if above isn't true (I think it is) full support of remote X by 
dinput 
component isn't something useful for about 100% of users anyway.
Of course everything above is just my opinion.




DInput mouse - where to go from here?

2007-09-26 Thread Vitaliy Margolen
As many of you know, Wine have number of serious problems when it comes down 
to games when using mouse. In fact big number of games suffer one or more of 
the following problems:
1. Mouse pointer escapes game window (for windowed programs) or confined to 
arbitrary rectangle (for full-screen) - bug 6971.
2. Mouse is being constantly re-centered (number of bugs).
3. Mouse lags, moves wrong direction or doesn't move at all (number of bugs).
4. Mouse is not smooth with high graphics/system load.

There are lots of reasons for these bugs:
a) Wine does not grab pointer (doesn't lock it to one particular window).
b) Wine's dinput still doing mouse warping while it should not
c) Wine relies on an application to process messages so new input events 
could be received.
d) Wine's x11drv is not fine grained - it has only one lock that everything 
uses, d3d and wgl included.
e) The path from x11drv to dinput for input events is long with big overhead.
f) X events come from Wine windows for the current process only not whole 
screen.
g) Motion events Wine receives are absolute not relative.

Here is what me and others tried but failed:
i) XEvIE - buggy, disabled by default, requires server round trip.
ii) XInput - does not allow opening of keyboard or mouse devices.
iii) Event Device (EvDev) - works perfectly, solves (a,b,c,d,e,f,g) but it's 
a client only solution (will not work on remote X, because it will try to 
open remote mouse, not local).
iv) Virtualizing mouse pointer in x11drv - depends on (a) moves (b) from 
dinput into x11drv while same issues remain.
v) Writing new X extension - last I've heard about this, it didn't get 
anywhere past initial proposals.

Anything else I missed? Are there are any better ways to solve these 
problems? Any other ways at all?


As you see there are not much options available to solve mouse problems. 
However I personally do not want to turn this into another "child opengl 
saga". We ether solving it now, or putting a big red X on any game that's 
using dinput mouse, that's not already working.


The point I'm trying to make is: can we once put our "right ways of doing 
things" aside and fix something that never worked before? And fix it _for 
good_! Yes it's a limited fix it will work only for 99% of users who play 
games on their PC, and not remotely.


Vitaliy Margolen.




Re: [5/5] WineD3D: Add sincos support to arb shaders

2007-09-26 Thread Ivan Gyurdiev
Aren't most of these 2.0 and 3.0 instructions ?
What's the goal of adding them to ARB - you won't be able to implement 
full 2.0/3.0 support in ARB.

I think most of these were left unimplemented on purpose.

Ivan





I need help, please

2007-09-26 Thread David Outteridge
Hello All,

I am new to Wine.  I need to use corelDRAW for non-central reasons that I will
explain if asked.  I prefer to host on *nix (currently Mandriva 2007.0), but I
can host on MS XP as a backup.  I bought the latest and greatest corelDRAW X3
(version 13) and now have spent about a week learning Wine and trying to get
corelDRAW working.  There are some problems with installation, not completely
solved yet; but I am hopeful that execution will be successful since earlier
versions are reported in the Wine application database as running well.

I have reached a point where I am beginning to understand what is going on
with the hosting, and, also, I am getting a glimmer of *how* Wine works.  But,
as everyone knows, Wine needs a lot of study to get any siginificant grasp of
*what* is happening, and I am very aware of how little I know.  I need help
and guidance to go further, otherwise I shall have to revert to MS XP.  I
should like very much to use Wine, but I am concerned that to get it going,
without help, I shall have to resort to hacks that will be of no use to anyone
in the long term, or become engulfed in a never-ending sea of detail.  So,
here I describe what has happened, and I invite anyone to point me in the
right direction, etc., for further work.

I am a programmer of many years, but I have not used C for a long time, my
preference is for another language.  I have no knowledge of Windows internals,
and not much about using it except at a fairly remote C++ application
programming level when I used Visual Dev Studio (name?) in the past.  I have
downloaded the Wine source, and have learnt how to manipulate trace messages
to see what is happening.


The first problem, with corelDRAW out of the box, with Wine 0.9.45 from rpm,
or with my downloaded/compiled code, is summarized like this:

fixme:msi:ACTION_PerformAction unhandled msi action L"InstallIEFullUI"
err:msi:ITERATE_Actions Execution halted, action L"_InstallIE" returned 1602

Notice that there is a leading "_" on one of these actions, and that part of
the other is FullUI, which seems to relate very well with one of the MS User
Interface Levels.  Can anyone tell me the significance of the leading "_", in
particular, where does it come from?  Also any help on how InstallIEFullUI is
split up (my assumption) into _InstallIE and FullUI would be helpful.

After much stirring around, hacking at everything in sight, what I have done
to deal with this error is cut-and-paste ACTION_InstallInitialize code in
msi/actions.c, and modify it suitably, to satisfy InstallIEFullUI and
_InstallIE.  And this gets me past the err:msg above; which may or may not
enable me, ultimately, to install corelDRAW.  This do-nothing-really is
something of a cop-out, of course.  I would make the effort to do something
useful, rather than simply returning a deceptive value, but there are two
reasons for not doing so.  One is that I do not know enough about Wine
code/structure/policy, etc., and I could see simply producing garbage, albeit
working, code through ignorance.  The second reason is that, I read on the
Wine website, one should not try to install IE.  What is more, Wine (from the
rpm) puts a copy of iexplore.exe in my .wine directory anyway.  So the
question here is: what should I do wrt IE and InstallIEFullUI to follow Wine
policy?


The second problem seems to me to be rather far-reaching; I think I have run
into the problem in three different ways, the last occurrence turns out to be
the next fatal step for corelDRAW installation.

The first run-in: I have run the distribution iexplore, also I have installed
three other IEs, using ies4linux.  All of these behave in the same way: they
come up properly, and the right-click/wineicon menu that closes the
application, moves it to different desktops, etc., also works, so exiting the
application is done properly, too.  My guess is that this is all done by the
window manager, however.  The problem is that IE displays no toolbar, so it is
quite useless as a browser; it is, indeed, a software boat-anchor.

The second run-in: When I ran winecfg, irfanview, regedit, etc.. under the rpm
distribution they worked well enough, although the font used was, well,
horrible, and almost unreadable.  When I moved to the source version of Wine,
the apps worked somewhat like iexplore above, except that the menus were
available, but contained MangleFont - totally unreadable, with lots of Xs in
the text.  I posted to comp.emulators.ms-windows.wine and some kind sole
suggested loading the MS core fonts, which I had never heard of; but, bingo!,
not only did this - utterly magically - solve the problem, but the font(s)
used is nice and readable.

The third run-in: The corelDRAW installation popups (dialogs?) do not display
well, in particular they appear not to refresh when appropriate.  The fatal
part comes with the license agreement box, where, in addition to most of the
popup content not displaying (mouse intervention brings up *some* thing

Re: Total bidi regression

2007-09-26 Thread Maarten Lankhorst
Shachar Shemesh schreef:
> Maarten Lankhorst wrote:
>   
>> Shachar Shemesh schreef:
>>   
>> 
>>> Maarten Lankhorst wrote:
>>>   
>>> 
>>>   
 If you want it back try replacing this in font.c:
 WINE_GCPW_FORCE_RTL:WINE_GCPW_FORCE_LTR
 change FORCE to LOOSE, it should work then.
 
   
 
>>> I'm not sure what you are suggesting.
>>>
>>> WINE_GCPW_FORCE_RTL only appear on line 1089 of bidi.c, which reads
>>> 
>>>   
case WINE_GCPW_FORCE_RTL: forcedir = R; baselevel = 1; break;
 
   
 
>>> I'm not sure what you are suggesting I do with it.
>>>
>>> Either way, the change you are suggesting will only affect (if I
>>> understand the code correctly) the paragraph direction setting, where as
>>> I'm experiencing total lack of BiDi reordering of any kind.
>>>   
>>> 
>>>   
>> Before arguing, you should really give it a try, it helps. ;-)
>> 
> Sure thing. Just what, exactly, is "it"? What do you suggest I change,
> and what to? I am really asking you to be less ambiguous.
>
> If you mean to change the "FORCE" to "LOOSE", then things are slightly
> better in that same direction runs are at least now being reordered, but
> things are still at a huge regression. Neutrals (at least some neutrals,
> like space) seem to be incorrectly handled in mixed paragraphs (I'm not
> sure, as this could be a font problem as well). Also, and this is
> confirmed, there is now no way to request a right to left paragraph, at
> all. Numbers I haven't checked.
>
> Again, I may have misunderstood what change you meant for me to try. If
> you don't want to be misunderstood, try just sending a patch. I'm more
> than willing to help, but not if it means trying to decrypt what code
> changes you are suggesting, or where in the 1200 lines file they are
> meant to be.
>   
>> forcedir means basically force every not-control character to that
>> direction.
>> 
> Which doesn't ring a bell as far as the Annex 9. I don't recall any such
> thing there. They had a notion of "paragraph direction", which did
> affect NEUTRALS, and only if they were placed on the border between
> conflicting direction runs (and also the initial nesting level, of
> course). The ONLY thing I recall that could cause a hard RTL or hard LTR
> character to be rendered in the opposite direction was an LRO/RLO, which
> was never used here. Thus, I say again, the change you offer seem out of
> place in relation to the place you offer it, and it seems to me that
> there is an error in your implementation of Annex 9.
>   
I may have slightly misunderstood those flags then. I was under the
impression that the FORCE flags would be similar to LRO/RLO. Instead
they are probably more like LRE/RLE. If that is a real problem I will
send in a patch. I would still rather prefer a real bidi implementation,
so that selecting and deleting characters would work properly. To my
defense, there was no real clarification for them in the source.

Cheers,
Maarten




Re: Total bidi regression

2007-09-26 Thread Shachar Shemesh
Maarten Lankhorst wrote:
> Shachar Shemesh schreef:
>   
>> Maarten Lankhorst wrote:
>>   
>> 
>>> If you want it back try replacing this in font.c:
>>> WINE_GCPW_FORCE_RTL:WINE_GCPW_FORCE_LTR
>>> change FORCE to LOOSE, it should work then.
>>> 
>>>   
>> I'm not sure what you are suggesting.
>>
>> WINE_GCPW_FORCE_RTL only appear on line 1089 of bidi.c, which reads
>> 
>>>case WINE_GCPW_FORCE_RTL: forcedir = R; baselevel = 1; break;
>>> 
>>>   
>> I'm not sure what you are suggesting I do with it.
>>
>> Either way, the change you are suggesting will only affect (if I
>> understand the code correctly) the paragraph direction setting, where as
>> I'm experiencing total lack of BiDi reordering of any kind.
>>   
>> 
> Before arguing, you should really give it a try, it helps. ;-)
>   
Sure thing. Just what, exactly, is "it"? What do you suggest I change,
and what to? I am really asking you to be less ambiguous.

If you mean to change the "FORCE" to "LOOSE", then things are slightly
better in that same direction runs are at least now being reordered, but
things are still at a huge regression. Neutrals (at least some neutrals,
like space) seem to be incorrectly handled in mixed paragraphs (I'm not
sure, as this could be a font problem as well). Also, and this is
confirmed, there is now no way to request a right to left paragraph, at
all. Numbers I haven't checked.

Again, I may have misunderstood what change you meant for me to try. If
you don't want to be misunderstood, try just sending a patch. I'm more
than willing to help, but not if it means trying to decrypt what code
changes you are suggesting, or where in the 1200 lines file they are
meant to be.
> forcedir means basically force every not-control character to that
> direction.
>   
Which doesn't ring a bell as far as the Annex 9. I don't recall any such
thing there. They had a notion of "paragraph direction", which did
affect NEUTRALS, and only if they were placed on the border between
conflicting direction runs (and also the initial nesting level, of
course). The ONLY thing I recall that could cause a hard RTL or hard LTR
character to be rendered in the opposite direction was an LRO/RLO, which
was never used here. Thus, I say again, the change you offer seem out of
place in relation to the place you offer it, and it seems to me that
there is an error in your implementation of Annex 9.
> Cheers,
> Maarten
>   
Shachar




Re: Total bidi regression

2007-09-26 Thread Maarten Lankhorst
Shachar Shemesh schreef:
> Maarten Lankhorst wrote:
>   
>> If you want it back try replacing this in font.c:
>> WINE_GCPW_FORCE_RTL:WINE_GCPW_FORCE_LTR
>> change FORCE to LOOSE, it should work then.
>> 
> I'm not sure what you are suggesting.
>
> WINE_GCPW_FORCE_RTL only appear on line 1089 of bidi.c, which reads
>>case WINE_GCPW_FORCE_RTL: forcedir = R; baselevel = 1; break;
>> 
> I'm not sure what you are suggesting I do with it.
>
> Either way, the change you are suggesting will only affect (if I
> understand the code correctly) the paragraph direction setting, where as
> I'm experiencing total lack of BiDi reordering of any kind.
>   
Before arguing, you should really give it a try, it helps. ;-)
forcedir means basically force every not-control character to that
direction.

Cheers,
Maarten




Re: [PATCH] [2/2] winhttp: stub impl of WinHttpGetIEProxyConfigForCurrentUse

2007-09-26 Thread Peter Oberndorfer
On Wednesday 26 September 2007, Peter Oberndorfer wrote:
> ---
>  dlls/winhttp/main.c   |   25 +
>  dlls/winhttp/winhttp.spec |2 +-
>  2 files changed, 26 insertions(+), 1 deletions(-)
> 

There is a 'r' missing in the patch title. it should be:
winhttp: stub impl of WinHttpGetIEProxyConfigForCurrentUser


Greetings Peter




Re: Total bidi regression

2007-09-26 Thread Shachar Shemesh
Maarten Lankhorst wrote:
>
> If you want it back try replacing this in font.c:
> WINE_GCPW_FORCE_RTL:WINE_GCPW_FORCE_LTR
> change FORCE to LOOSE, it should work then.
>   
I'm not sure what you are suggesting.

WINE_GCPW_FORCE_RTL only appear on line 1089 of bidi.c, which reads:

>case WINE_GCPW_FORCE_RTL: forcedir = R; baselevel = 1; break;

I'm not sure what you are suggesting I do with it.

Either way, the change you are suggesting will only affect (if I
understand the code correctly) the paragraph direction setting, where as
I'm experiencing total lack of BiDi reordering of any kind.

All codes taken from latest git.
> Cheers,
> Maarten
>   
Thanks,
Shachar




Re: [PATCH 2/2] configure: Build wine-kthread on FreeBSD.

2007-09-26 Thread Tijl Coosemans
On Wednesday 26 September 2007 19:24:24 Charlie wrote:

This is me. I guess I called git-format-patch from a terminal where I
was root.




Re: [PATCH 1/2] loader: Reduce data segment size in wine-pthread/kthread on FreeBSD.

2007-09-26 Thread Tijl Coosemans
On Wednesday 26 September 2007 19:17:44 Charlie wrote:

This is me. I guess I called git-format-patch from a terminal where I
was root.




Re: [5/5] WineD3D: Add sincos support to arb shaders

2007-09-26 Thread H. Verbeet
On 26/09/2007, Stefan Dösinger <[EMAIL PROTECTED]> wrote:
> +/* dst.w = src[0].w * 1 / (src.x^2 + src.y^2 + src.z^2)^(1/2) according 
> to msdn*/
That comment looks a bit out of place for sincos. Copy-paste from nrm?




Re: RICHED20: EM_SETCHARFORMAT must return 0, not assert, on invalid struct size (try 2)

2007-09-26 Thread Alexandre Julliard
[EMAIL PROTECTED] writes:

> I considered doing this at first, but ME_ToCF2W is used in three other
> places beside handling EM_SETCHARFORMAT (all in style.c), and those places
> might get a null-pointer exception instead of an assert if something went
> wrong.

A null-pointer exception serves the same purpose as an assert, and
they both result in a debugger backtrace, so there's no reason to add
more asserts here.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




address space layout

2007-09-26 Thread Tijl Coosemans
Hi all!

I had a user running FreeBSD 6.2, Xorg 7.3, ATI r200 DRI driver report
a problem where running Warcraft3 crashed because it ran out of malloc
heap space. The error was:

Assertion failed: (texObj->DriverData != NULL), function 
r200BindTexture, file r200_tex.c, line 1098.
fixme:ntdll:FILE_GetNtStatus Converting errno 12 to STATUS_UNSUCCESSFUL

This error happens inside the r200 driver, errno 12 means ENOMEM. There
was a bug report with a patch over at
http://bugs.freedesktop.org/show_bug.cgi?id=12184

The patch gets rid of the assertion failure by doing proper error
checking, but it doesn't solve the underlying problem of course,
causing a NULL pointer dereference in Wine somewhat later:

wine: Unhandled page fault on read access to 0x0058 at address 
0x7e99cc84 (thread 0009), starting debugger...

This isn't the first time such a problem appears, especially with games,
so ultimately a solution has to be found.

The problem is that the way Wine wants to setup the address space is
really somewhat incompatible with the way FreeBSD mmap and malloc work.
FreeBSD mmap allocates from the end of a process data segment upwards
towards the stack. Linux mmap allocates from the stack downwards.
FreeBSD (<7.x) malloc doesn't fall back to mmap when it runs out of
space in the data segment. Linux malloc does (I've been told).

Because the wine process loads itself at 0x7bf0, this means on
FreeBSD with mmap going up, both the data segment and all shared
objects (like builtin dlls) sit squeezed between that address and
0x8000 since addresses above 0x8000 can't be used for builtin
dlls. It's about 64Mb which is currently split 50/50 between heap space
and shared objects. This works in a lot of cases, but sometimes a 32Mb
heap isn't enough like in the example above, where I assume it's been
taken up by textures and other graphics data.

Linux doesn't have this problem because mmap allocates shared objects
from 0x8000 downwards and can go beyond the address where wine is
loaded if necessary. It can allocate extra heap space this way too when
needed.

Alexandre and I discussed this a couple weeks ago, but didn't really
come up with anything. The problem back then (WoW) has since gone away
(turned out to be a memory leak somewhere) so everything was left the
way it was. Now it has turned up again however with a different program
on a different setup, so it's something that really needs to be looked
at. It could again be a memory leak in some other project's code, but
then that just means the current situation isn't robust enough to deal
with that, since it all does work on Linux.

It appears that the only solution is to locate wine somewhere after
0x8000 instead of at 0x7bf0 and to allow mmap to allocate
memory there. Then the data segment size limit can be set to 256Mb or
something instead of 32Mb. The problem is then that builtin dlls are
mmapped (by the runtime linker) well beyond 0x8000. Now I'm
thinking, would it be possible to load dummy dlls somewhere in the
first 2Gb of address space? Through which API calls can a program
determine a dll is above 0x8000 by the way?




Re: Total bidi regression

2007-09-26 Thread Maarten Lankhorst
Shachar Shemesh schreef:
> Hi Maarten,
>
> It seems that since your last changes to the Bidi implementation, BiDi
> suffered total regression. At least on my system, no BiDi related text
> (neither Hebrew nor Arabic) gets reordered, at all. Placing breakpoints
> suggest that BIDI_Reorder is still getting called, so I can only assume
> that the problem is somewhere inside it (or in the classification)
>
> I haven't traced inside to see where things went wrong, nor do I know
> whether your work on that matter is done. I just wanted to point out
> that Wine, at the moment, performs no BiDi at all as far as the user is
> concerned.
>
> Shachar
>   
If you want it back try replacing this in font.c:
WINE_GCPW_FORCE_RTL:WINE_GCPW_FORCE_LTR
change FORCE to LOOSE, it should work then.

Cheers,
Maarten




Re: Cannot compile wine due to recent changes

2007-09-26 Thread Chris Robinson
Hi.

Thanks, I sent a patch to wine-patches which should fix this. If anyone has an 
older version of XOrg with XComposite and can verify there's no other missing 
functions, that'd be great.




Total bidi regression

2007-09-26 Thread Shachar Shemesh
Hi Maarten,

It seems that since your last changes to the Bidi implementation, BiDi
suffered total regression. At least on my system, no BiDi related text
(neither Hebrew nor Arabic) gets reordered, at all. Placing breakpoints
suggest that BIDI_Reorder is still getting called, so I can only assume
that the problem is somewhere inside it (or in the classification)

I haven't traced inside to see where things went wrong, nor do I know
whether your work on that matter is done. I just wanted to point out
that Wine, at the moment, performs no BiDi at all as far as the user is
concerned.

Shachar




Cannot compile wine due to recent changes

2007-09-26 Thread Kirill K. Smirnov
Hi,
I got the following error message during compile fresh git-current wine:

gcc -c -I../../../dlls/winex11.drv -I. -I../../../include -I../../include 
-I/usr/X11R6/include -D__WINESRC__  -D_REENTRANT -fPIC -Wall -pipe 
-fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings 
-Wpointer-arith  -g -O2  -o 
x11drv_main.o ../../../dlls/winex11.drv/x11drv_main.c
In file included from ../../../dlls/winex11.drv/x11drv_main.c:52:
../../../dlls/winex11.drv/xcomposite.h:40: error: `XCompositeGetOverlayWindow' 
undeclared here (not in a function)
../../../dlls/winex11.drv/xcomposite.h:40: warning: type defaults to `int' in 
declaration of `pXCompositeGetOverlayWindow'
../../../dlls/winex11.drv/xcomposite.h:41: error: 
`XCompositeReleaseOverlayWindow' undeclared here (not in a function)
../../../dlls/winex11.drv/xcomposite.h:41: warning: type defaults to `int' in 
declaration of `pXCompositeReleaseOverlayWindow'
../../../dlls/winex11.drv/x11drv_main.c:389: warning: type defaults to `int' 
in declaration of `pXCompositeGetOverlayWindow'
../../../dlls/winex11.drv/x11drv_main.c:390: warning: type defaults to `int' 
in declaration of `pXCompositeReleaseOverlayWindow'
make[2]: *** [x11drv_main.o] Ошибка 1
make[2]: Leaving directory `/home/lich/wine/wine/build/dlls/winex11.drv'
make[1]: *** [winex11.drv] Ошибка 2
make[1]: Leaving directory `/home/lich/wine/wine/build/dlls'
make: *** [dlls] Ошибка 2


X is Xorg 6.9.0

--
Kirill




Re: services.exe[2/8]: load services list from registry

2007-09-26 Thread Alexandre Julliard
"Mikolaj Zalewski" <[EMAIL PROTECTED]> writes:

> +buf = HeapAlloc(GetProcessHeap(), 0, size + 4);
> +if ((err = RegQueryValueExW(hKey, szValue, 0, &type, (LPBYTE)buf, 
> &size)) != 0)
> +goto failed;
> +buf[size/2] = 0;
> +buf[size/2 + 1] = 0;

Please use sizeof(WCHAR) instead of hardcoding values like 2 and 4.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: [PATCH 4/6] Make ntdll I/O function to generate completion events

2007-09-26 Thread Alexandre Julliard
Andrey Turkin <[EMAIL PROTECTED]> writes:

>   This has to be done in client because server does not
> know about actual operation details (e.g. io.Information),
> and moreover some operations does not use server at all.

The needed information can be sent to the server along with the normal
async status. We shouldn't add yet another server call for this, async
I/O already requires too many server roundtrips.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: [PATCH 2/6] Allow completion object to be attached to a fd object

2007-09-26 Thread Alexandre Julliard
Andrey Turkin <[EMAIL PROTECTED]> writes:

> +struct compl_map *create_completion_map( obj_handle_t handle, unsigned long 
> completion_key )
> +{
> +struct completion *completion;
> +struct compl_map *map;
> +
> +if ((completion = get_completion_obj( current->process, handle, 
> IO_COMPLETION_MODIFY_STATE )) == NULL)
> +return NULL;
> +if ((map = mem_alloc( sizeof(*map) )) == NULL)
> +{
> +release_object( completion );
> +return NULL;
> +}
> +map->completion = completion;
> +map->completion_key = completion_key;
> +return map;
> +}

There doesn't seem to be a need for a separate compl_map type here,
you could just as well store the completion object in the fd structure
directly.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: services.exe/advapi32[5/8]: move QueryServiceConfig to services.exe

2007-09-26 Thread Robert Shearman
Mikolaj Zalewski wrote:
> My QueryServiceConfig is not compatible with Windows one - I haven't
> tried hard but I couldn't tune the parameters to connect with Windows
> services.exe. So I'm not trying to store the structure in the on the
> server side buffer but pass it all through the RPC and put in into the
> buffer in advapi32. As I understand in near future Wine will not be a
> member of Windows domains so on-the-wire compatibility is not very
> important.
>   

You don't need to be a member of a domain to use remote interfaces like 
the one for services or the one for the registry. On-the-wire 
compatibility will be important once we get remote named pipe support, 
but getting the right architecture is the goal at the moment, and your 
patches are a step towards that. I believe that the 
QUERY_SERVICE_CONFIGW parameter should be a byte_count one, but this is 
not implemented yet, both in the RPC runtime and in widl.

-- 
Rob Shearman





Re: mpr: Changes comparison of dwScope in WNetOpenEnum function

2007-09-26 Thread Konstantin Kondratyuk
Hello!

> Your patch should probably fix both of those, then (and please ignore
> my earlier comment.)

I have resent my patch, having added in it the passed corrections.

I have one more question. To add realization of new function, I can add it in 
struct WNetProvider? For example:

typedef struct _WNetProvider
{
HMODULE   hLib;
PWSTR name;
PF_NPGetCaps  getCaps;
DWORD dwSpecVersion;
DWORD dwNetType;
DWORD dwEnumScopes;
PF_NPOpenEnum openEnum;
PF_NPEnumResource enumResource;
PF_NPCloseEnumcloseEnum;
PF_NPGetResourceInformation getResourceInformation; //my added function
} WNetProvider, *PWNetProvider;

It is correct?

-- 
Best regards,
Konstantin Kondratyuk.




Re: RICHED20: EM_SETCHARFORMAT must return 0, not assert, on invalid struct size

2007-09-26 Thread Alexandre Julliard
[EMAIL PROTECTED] writes:

> Changelog:
> * EM_SETCHARFORMAT must not assert on invalid structure size. Instead, it
> should just fail and return 0.

It would be better to do that in ME_ToCF2W since it already has to
check the size, simply make it return NULL on error or something like
that.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: pdh: add tests for XP variant of api call

2007-09-26 Thread Jeff Latimer
Hans Leidekker wrote:
>> I am happy with that though the tests I added relate to the following
>> paragraph where it says that XP requires the buffer parameter as well as
>> the size at all times and testing shows that it returns
>> PDH_INVALID_ARGUMENT.  It also returns PDH_INSUFFICIENT_BUFFER instead
>> of PDH_MORE_DATA.
>> 
> Then I suggest to remove tests with a NULL buffer parameter and
> accept both PDH_INSUFFICIENT_BUFFER and PDH_MORE_DATA in tests where
> the specified buffer size is too small.
>
>   
I will give it a whirl.

Ta
Jeff