Re: [PATCH 1/2] msvcp90: Free memory allocated by _get_current_locale function

2012-11-09 Thread Marvin
Hi,

While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
http://testbot.winehq.org/JobDetails.pl?Key=22858

Your paranoid android.


=== WVISTAADM (32 bit misc) ===
misc: unhandled exception c005 at 77496739

=== W2K8SE (32 bit misc) ===
misc: unhandled exception c005 at 778A59C3

=== W7PRO (32 bit misc) ===
misc: unhandled exception c005 at 772D1FFE

=== W7PROX64 (32 bit misc) ===
misc: unhandled exception c005 at 77DFE23E

=== TEST64_W7SP1 (32 bit misc) ===
misc: unhandled exception c005 at 7758E39E

=== W7PROX64 (64 bit misc) ===
Timeout

=== TEST64_W7SP1 (64 bit misc) ===
Timeout




Any advice please... Console input issue

2012-11-09 Thread Ann and Jason Edmeades
Hello,

I've been looking at a patch which sorts out NUL and CON handling in a part
of the command shell, and have stumbled upon a problem I am not sure how to
fix because I really dont understand the underlying console handling, and
would appreciate someone pointing me in a direction.

For simplicity sake I've cut this down to a tiny test program, which works
on windows and fails on wine which does the following:
Opens the device ("\\.\CON") with CreateFile with GENERIC_READ rights
(which internally opens a CONIN$ device with the same access rights)
Reads from the device with ReadFile
- Because its a console device, this drops through to ReadConsoleW, which
creates a CONOUT$ and then waits on a keystroke
- Once the key is pressed (WCEL_Get) the key is 'inserted' into the input
buffer by calling WriteConsoleInputW

The issue is that WriteConsoleInputW requires GENERIC_WRITE access, but the
CON device (\\.\CON) was opened as GENERIC_READ (and in fact fails if I try
to open it with GENERIC_WRITE). CreateFile("CONIN$"...) will let me open in
GENERIC_READ/GENERIC_WRITE mode and the program works on both windows and
wine, but if you open CONIN$ GENERIC_READ only then it fails on wine and
works on windows, with the same issue.

Now on windows, this works... the question is how to make it work on
wine...

My gut feeling, with nothing backing this at all, is that WCEL_Get should
not use WriteConsoleInputW to inject the values into the input buffer,
instead making the server call directly, but passing through to the server
call something to indicate that it is ok to add the data to the buffer, but
I'm fast getting out of my depth!

Thanks for any help!  I'll file a bug with my analysis and testcase, but
would rather fix the thing!

Jason



Missing dependencies on static libraries

2012-11-09 Thread Francois Gouget

strmbase is a static library which is used by amstream, qcap, quartz and 
others. This means functions defined in strmbase end up being included 
in amstream.dll.so and other places.

However modifying the strmbase code does not result in a relink of the 
dlls that depend on it. Note that this is true even if running make from 
the top-level directory. That makes it very painful to work with it.

Note that the same issue could happen with other static libraries like 
dxguid, uuid, etc, though those don't contain code and have little 
reason to change so that that's probably why the problem did not surface 
until now.

How should we fix this?
Having amstream recusively run make in strmbase would break parallel 
builds (the top-level Makefile enforces ordering by having 
__builddeps__ depend on dlls/strmbase).

Would somthing like the patch below be acceptable?
Should it be generalized to all the dependencies on uuid, dxguid, etc?

commit 0a6764918f743912a1f76ca004ec6d9f0d679b2a
Author: Francois Gouget 
Date:   Fri Nov 9 19:45:21 2012 +0100

strmbase: Relink the dlls that depend on the strmbase static library when 
it changes.

diff --git a/dlls/amstream/Makefile.in b/dlls/amstream/Makefile.in
index 35cfae1..5e96f1a 100644
--- a/dlls/amstream/Makefile.in
+++ b/dlls/amstream/Makefile.in
@@ -12,4 +12,8 @@ IDL_R_SRCS = amstream_classes.idl
 
 RC_SRCS = version.rc
 
+$(MODULE).so: $(top_builddir)/dlls/strmbase/libstrmbase.a \
+  $(top_builddir)/dlls/strmiids/libstrmiids.a \
+  $(top_builddir)/dlls/uuid/libuuid.a
+
 @MAKE_DLL_RULES@
diff --git a/dlls/qcap/Makefile.in b/dlls/qcap/Makefile.in
index 3abc295..5f4078d 100644
--- a/dlls/qcap/Makefile.in
+++ b/dlls/qcap/Makefile.in
@@ -11,4 +11,8 @@ C_SRCS = \
 
 RC_SRCS = version.rc
 
+$(MODULE).so: $(top_builddir)/dlls/strmbase/libstrmbase.a \
+  $(top_builddir)/dlls/strmiids/libstrmiids.a \
+  $(top_builddir)/dlls/uuid/libuuid.a
+
 @MAKE_DLL_RULES@
diff --git a/dlls/quartz/Makefile.in b/dlls/quartz/Makefile.in
index 24be02e..2cbcfe6 100644
--- a/dlls/quartz/Makefile.in
+++ b/dlls/quartz/Makefile.in
@@ -36,4 +36,9 @@ IDL_TLB_SRCS = control_tlb.idl
 
 EXTRA_OBJS = dlldata.o
 
+$(MODULE).so: $(top_builddir)/dlls/dxguid/libdxguid.a \
+  $(top_builddir)/dlls/strmbase/libstrmbase.a \
+  $(top_builddir)/dlls/strmiids/libstrmiids.a \
+  $(top_builddir)/dlls/uuid/libuuid.a
+
 @MAKE_DLL_RULES@
diff --git a/dlls/winegstreamer/Makefile.in b/dlls/winegstreamer/Makefile.in
index f6695be..cbf1986 100644
--- a/dlls/winegstreamer/Makefile.in
+++ b/dlls/winegstreamer/Makefile.in
@@ -12,4 +12,8 @@ C_SRCS = \
 RC_SRCS = \
rsrc.rc
 
+$(MODULE).so: $(top_builddir)/dlls/strmbase/libstrmbase.a \
+  $(top_builddir)/dlls/strmiids/libstrmiids.a \
+  $(top_builddir)/dlls/uuid/libuuid.a
+
 @MAKE_DLL_RULES@
diff --git a/dlls/wineqtdecoder/Makefile.in b/dlls/wineqtdecoder/Makefile.in
index 52ee03b..762f837 100644
--- a/dlls/wineqtdecoder/Makefile.in
+++ b/dlls/wineqtdecoder/Makefile.in
@@ -12,4 +12,8 @@ C_SRCS = \
 RC_SRCS = \
rsrc.rc
 
+$(MODULE).so: $(top_builddir)/dlls/strmbase/libstrmbase.a \
+  $(top_builddir)/dlls/strmiids/libstrmiids.a \
+  $(top_builddir)/dlls/uuid/libuuid.a
+
 @MAKE_DLL_RULES@


-- 
Francois Gouget   http://fgouget.free.fr/
  "Utilisateur" (nom commun) :
Mot utilisé par les informaticiens en lieu et place d'"idiot".


Re: The EFF is asking for our help explaining why APIs should not be copyrightable

2012-11-09 Thread GOUJON Alexandre

On 11/09/2012 06:29 PM, Scott Ritchie wrote:
https://www.eff.org/deeplinks/2012/11/no-copyrights-apis-help-us-make-case 



There are court cases pending that are very, very relevant to what we 
do here.  It would help the EFF very much if a few engineers could 
send them a short email statement explaining how Wine's 
reimplementation of the API is good for interoperability and competition.


Thanks,
Scott Ritchie
I thought the "Google vs Oracle Java API" case made it clear that API 
are not copyrightable but apparently, that's not the case.
(See 
http://law.justia.com/cases/federal/district-courts/california/candce/3:2010cv03561/231846/1202)


I can't comment further as I'm neither a lawer nor american.
I only hope EFF will definitly close this debate.




The EFF is asking for our help explaining why APIs should not be copyrightable

2012-11-09 Thread Scott Ritchie

https://www.eff.org/deeplinks/2012/11/no-copyrights-apis-help-us-make-case

There are court cases pending that are very, very relevant to what we do 
here.  It would help the EFF very much if a few engineers could send 
them a short email statement explaining how Wine's reimplementation of 
the API is good for interoperability and competition.


Thanks,
Scott Ritchie




[PATCH 1/2] winmm/tests: Add more mmioSeek tests. (try 2)

2012-11-09 Thread Joerg-Cyril.Hoehle
Hi again,

More comments about your tests #2:

+DeleteFileA(test_file);
+[...]
+has_test_file = create_test_file(test_file);
Why do you recreate an identical file between test group 2 and 3?

+has_test_file = create_test_file(test_file);
+ok(has_test_file, "failed to create test file\n");
This is redundant and thus superfluous because your
create_test_file ensures an ok() failure prior to every "return FALSE".
(perhaps add one ok check to CloseHandle?)

It's not always that easy to avoid correlated error messages,
I mean to try and produce only one error message per cause.
This will ease the job of people looking at failures on test.winehq.org.

+char temp_path[MAX_PATH-14];
+ret = GetTempPath(sizeof(temp_path), temp_path);
+ret = GetTempFileName(temp_path, "mmio", 0, temp_file);
This is bogus. I believe you should use:
+char temp_path[MAX_PATH];
+ret = GetTempPath(sizeof(temp_path), temp_path);
+ret = GetTempFileName(temp_path, "mmio", 0, temp_file);
and leave the -14 test to the implementation of GetTempFileName.

Regards,
Jörg Höhle



Re: [PATCH 1/2] gdi32: Ignore contours containing one point in get_glyph_outline function

2012-11-09 Thread Piotr Caban

Please ignore this patches for now, the tests are broken.




Re: [PATCH 2/2] gdi32: Added GetGlyphOutlineW tests on glyph that contains empty contour

2012-11-09 Thread Marvin
Hi,

While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
http://testbot.winehq.org/JobDetails.pl?Key=22852

Your paranoid android.


=== WVISTAADM (32 bit font) ===
Failure running script in VM: The specified guest user must be logged in 
interactively to perform this operation




Re: [PATCH 1/2] user32: Add tests for MapWindowPoints, ClientToScreen and ScreenToClient.

2012-11-09 Thread Alexandre Julliard
Christian Costa  writes:

> 2012/11/9 Alexandre Julliard 
> Testing last error on success is not useful. Also please use
> MAKELONG
> and related macros instead of doing it by hand.
>
> I can't use LOWORD as the signed bit is not propagated with & 0x.

You could always add a cast, but you don't really need it here. Printing
fancy error messages is not useful anyway, they are not supposed to
happen.

-- 
Alexandre Julliard
julli...@winehq.org




Re: [PATCH 1/2] user32: Add tests for MapWindowPoints, ClientToScreen and ScreenToClient.

2012-11-09 Thread Christian Costa
2012/11/9 Alexandre Julliard 

> Christian Costa  writes:
>
> > +SetLastError(0xdeadbeef);
> > +n = MapWindowPoints(wnd, NULL, NULL, 0);
> > +err = GetLastError();
> > +ok(n == ((window_rect.top << 16) | window_rect.left), "Got %x (%d,
> %d), expected %x (%d, %d)\n",
> > +   n, (n << 16) >> 16, n >> 16, window_rect.left, window_rect.top,
> (window_rect.top << 16) | window_rect.left);
> > +ok(err == 0xdeadbeef, "Got %x, expected %x\n", err, 0xdeadbeef);
> > +
> > +SetLastError(0xdeadbeef);
> > +n = MapWindowPoints(NULL, wnd, NULL, 0);
> > +err = GetLastError();
> > +ok(n == ((-window_rect.top << 16) | (-window_rect.left & 0x)),
> "Got %x (%d, %d), expected %x (%d, %d)\n",
> > +   n, (n << 16) >> 16, n >> 16, (-window_rect.top << 16) |
> (-window_rect.left & 0x), -window_rect.left, -window_rect.top);
> > +ok(err == 0xdeadbeef, "Got %x, expected %x\n", err, 0xdeadbeef);
>
> Testing last error on success is not useful. Also please use MAKELONG
> and related macros instead of doing it by hand.
>
>
>
I can't use LOWORD as the signed bit is not propagated with & 0x.



Add data members to interface data structures?

2012-11-09 Thread Max TenEyck Woodbury
Would a patch that allows data members to be hacked into interface data
structures be acceptable?

Specifically, this would add sequences that follow this template:

#ifdef _IFACE_DATA
  _IFACE_DATA
#endif /* _IFACE_DATA defined */

for each inherited interface, in order.




Re: [PATCH 1/2] user32: Add tests for MapWindowPoints, ClientToScreen and ScreenToClient.

2012-11-09 Thread Alexandre Julliard
Christian Costa  writes:

> +SetLastError(0xdeadbeef);
> +n = MapWindowPoints(wnd, NULL, NULL, 0);
> +err = GetLastError();
> +ok(n == ((window_rect.top << 16) | window_rect.left), "Got %x (%d, %d), 
> expected %x (%d, %d)\n",
> +   n, (n << 16) >> 16, n >> 16, window_rect.left, window_rect.top, 
> (window_rect.top << 16) | window_rect.left);
> +ok(err == 0xdeadbeef, "Got %x, expected %x\n", err, 0xdeadbeef);
> +
> +SetLastError(0xdeadbeef);
> +n = MapWindowPoints(NULL, wnd, NULL, 0);
> +err = GetLastError();
> +ok(n == ((-window_rect.top << 16) | (-window_rect.left & 0x)), "Got 
> %x (%d, %d), expected %x (%d, %d)\n",
> +   n, (n << 16) >> 16, n >> 16, (-window_rect.top << 16) | 
> (-window_rect.left & 0x), -window_rect.left, -window_rect.top);
> +ok(err == 0xdeadbeef, "Got %x, expected %x\n", err, 0xdeadbeef);

Testing last error on success is not useful. Also please use MAKELONG
and related macros instead of doing it by hand.

-- 
Alexandre Julliard
julli...@winehq.org




Re: [PATCH 1/3] dmloader: COM cleanup of IDirectMusicLoader object.

2012-11-09 Thread Christian Costa
> >
> >
> > Henri said the other. It seems there is no consensus. ;)
> Of course there is consensus. The consensus is:
> - "It depends on the situation"
> - "There are acceptable naming conventions"
> - "IDirectMusicLoaderImpl_IDirectMusicLoader_QueryInterface is not one
> of the acceptable solutions"
> :)
>
>
>
Yea ! :)

I think I will use IDirectMusicLoaderImpl_Method.