Re: [PATCH] shell32/tests: add tests for the parser of SHELLEXECUTEINFO.lpFile (resend)

2010-02-12 Thread Paul Vriens

On 02/11/2010 03:37 PM, Ilya Basin wrote:

Hi! This should expose this bug:
http://bugs.winehq.org/show_bug.cgi?id=19385 ( the 'wine start'
launcher does not open MS Office documents that have spaces in their
path ). Although the title is misleading, many other tickets are
marked as duplicates of it.
It's not about spaces. It's about sometimes unneeded parsing of
SHELLEXECUTEINFO.lpFile, trying to extract arguments from it. Why?
Or maybe some other part of wine relies on this behavior?
Tested on 98 se, 2k  xp.

...obvious mistakes become visible only after you hit the send
button. So I apologize beforehand.


Hi Ilya,

As Wine doesn't do the right thing (according to your tests), all 
failing Wine tests should be marked as such. We have a todo_wine 
construct for that.




---
  dlls/shell32/tests/shlexec.c |  106 ++
  1 files changed, 106 insertions(+), 0 deletions(-)

diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c
index c673f0a..fb5e6b7 100644
--- a/dlls/shell32/tests/shlexec.c
+++ b/dlls/shell32/tests/shlexec.c
@@ -797,6 +797,10 @@ static const char* testfiles[]=
  %s\\test file.sde,
  %s\\test file.exe,
  %s\\test2.exe,
+%s\\simple.shlexec,
+%s\\drawback_file.noassoc,
+%s\\drawback_file.noassoc foo.shlexec,
+%s\\drawback_nonexist.noassoc foo.shlexec,
  NULL
  };

@@ -852,6 +856,107 @@ static filename_tests_t noquotes_tests[]=
  {NULL, NULL, 0}
  };

+static void test_lpFile_parsed(void)
+{
+/* basename tmpdir */
+const char* shorttmpdir;
+
+const char *testfile;
+char fileA[MAX_PATH];
+
+int rc;
+int expected;
+
+BOOL iswin9x = FALSE;
+BOOL isreallyNT = FALSE;
+
+/* detect win ver */
+{
+DWORD dwVersion = GetVersion();
+   DWORD dwWindowsMajorVersion =  (DWORD)(LOBYTE(LOWORD(dwVersion)));
+DWORD dwMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
+   DWORD dwBuild;
+
+   if (dwVersion  0x8000)  // Windows NT/2000, 
Whistler


No C++ comments please.


+   dwBuild = (DWORD)(HIWORD(dwVersion));
+   else if (dwWindowsMajorVersion  4)  // Win32s
+   dwBuild = (DWORD)(HIWORD(dwVersion)  ~0x8000);
+   else // Windows 95/98/Me
+   {
+   dwBuild =  0;
+iswin9x = TRUE;
+isreallyNT = NULL != GetModuleHandle(ntdll);
+   }
+}


We generally do not want any real version checking in the tests. Tests 
should decide based on behavior on what platform they are.



+
+GetTempPathA(sizeof(fileA), fileA);
+shorttmpdir = tmpdir + strlen(fileA);
+
+/* ensure tmpdir is in %TEMP% */
+SetEnvironmentVariableA(TEMP, fileA);


Why is this necessary?


+
+#define TEST_LPFILE_PARSED_OK_() (rc==expected || rc32  expected32)
+#define TEST_LPFILE_PARSED_OK() ok(TEST_LPFILE_PARSED_OK_(), expected %s (%d), got %s (%d), lpFile: %s \n, 
expected==33 ? success : failure, expected, rc  32 ? success : failure, rc, 
fileA)
+
+/* existing drawback_file.noassoc prevents finding drawback_file.noassoc 
foo.shlexec on wine */
+testfile = %s\\drawback_file.noassoc foo.shlexec;
+expected = 33; sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+TEST_LPFILE_PARSED_OK();
+
+/* if quoted, existing drawback_file.noassoc not prevents finding 
drawback_file.noassoc foo.shlexec on wine */
+testfile = \%s\\drawback_file.noassoc foo.shlexec\;
+expected = 33; sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+TEST_LPFILE_PARSED_OK();
+
+/* error should be 2, not 31 */
+testfile = \%s\\drawback_file.noassoc\ foo.shlexec;
+expected = 2; sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+TEST_LPFILE_PARSED_OK();
+
+/* command not works on wine (and real win9x and w2k) */
+testfile = \\%s\\drawback_file.noassoc foo.shlexec\\;
+expected = iswin9x  !isreallyNT || dllver.dwMajorVersion= 5 ? 2 : 33; 
sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+TEST_LPFILE_PARSED_OK();
+
+/* nonexisting drawback_nonexist.noassoc not prevents finding 
drawback_nonexist.noassoc foo.shlexec on wine */
+testfile = %s\\drawback_nonexist.noassoc foo.shlexec;
+expected = 33; sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+TEST_LPFILE_PARSED_OK();
+
+/* is SEE_MASK_DOENVSUBST default flag? Should only be when XP emulates 9x 
*/
+{


Any particular reason for this indentation?


--
Cheers,

Paul.




Re: Intercepting GDI calls

2010-02-12 Thread Roderick Colenbrander
On Fri, Feb 12, 2010 at 8:01 AM, Charles Davis cda...@mymail.mines.edu wrote:
 Jui-Hao Chiang wrote:
 Hi, all:

 I am currently starting a project which tries to run a window
 application on one (source) machine, and display on another
 (destination) machine. Of course, the VNC or X11 forwarding technique
 can achieve the same goal, but I am trying to reduce the bandwidth by
 not transferring the video frame buffer but transfer the GDI
 function calls instead.
 Uhhh... That's kinda how X11 works. I mean, sending drawing and
 windowing calls as opposed to transferring the entire FB.

 What do you hope to accomplish with this? Given what I just told you,
 why won't X11 suffice?

 The way I can see is try to intercept all the calls inside gdi32.dll,
 and forward the calls and parameters to remote machine by using some
 RPC library, and then replay the GDI calls on the destination machine.

 However, I have two doubts:
 (1) It seems like the user32.dll is actually handling the window,
 menu, and cursor.
 That's right.
  Does the drawing of menu and cursor depends on
 user-level gdi32.dll?
 Yes it does. But bear in mind that gdi32 doesn't know how to draw menus
 and cursors, and other things. It only draws what you tell it to draw.
 You have to specify what you want to draw in terms of primitive shapes.
 That's what user32 does.
 or other kernel-level dlls?
 What kernel-level DLLs? Wine is entirely user mode. Don't let the
 presence of ntoskrnl.exe fool you; that's done in user mode, too :).
 (2) It seems that there is no corresponding win32k.sys implementation
 in wine, and the user-level GDI calls seems to be forwarded to
 winex11.drv, right?
 That's correct. (In the future, that might change, especially on a
 certain OS made by a company named after fruit. But rest assured,
 there's not going to be a win32k.sys implementation anytime soon.)

 I wander is there any good way or a place inside the source to do this
 kind of interception?
 If you really want to go through with this, what you want to do is write
 your own driver, similar to winex11.drv. In fact, I suggest using it as
 a base. Then you can forward the calls to some other machine (running
 Windows or some other OS) with RPC or some such mechanism.

 Chip


I also agree that you are basically trying to duplicate X11. It is a
lot of work to emulate all gdi32 / user32 calls yourself. Further I
doubt you can achieve similar performance as X11.

I would investigate in better X11 encryption methods. Have you thought
about using NX server? It reduces bandwidth a lot compared to plain
X11.

Roderick




Student Interested in Contributing to Wine

2010-02-12 Thread Michael Griepentrog
Hi,

I'm interested in contributing to Wine, and I'm posting here for guidance on 
how to get started. I'll start off with a bit about myself: I'm currently a 
senior majoring in Computer Science at the University of Wisconsin - Madison 
and will be graduating in May. Most of my upper-level coursework has pertained 
to operating systems and networking, but I also have experience with OpenGL and 
Cocoa/Objective-C. I haven't really contributed to any other projects, so this 
is both new and foreign to me.

I'm primarily interested in improving the Wine experience on OS X. I read pages 
from http://wiki.winehq.org/MacOSX, but I'm not sure how much of that reflects 
the current direction of Wine development on Mac. What are the immediate needs 
for improving Wine on OS X? Off hand, I know Wine doesn't compile on Snow 
Leopard as a 64-bit binary (http://forum.winehq.org/viewtopic.php?p=31321), but 
it seems like this issue isn't limited to OS X. I'm also curious about the 
status of the Quartz driver, and if it's something that is still being pursued. 
Creating a binary distributable also seems like something that should be 
addressed, but I understand that isn't necessarily easy given how applications 
are installed on OS X.

So whatever the current direction is for the OS X port, I would like to get 
involved in making it better. I look forward to hearing what suggestions you 
have for me.

Thanks,
Michael Griepentrog




Re: cmd: Add test for %~dp0 expansion (bug 21382)

2010-02-12 Thread Alexandre Julliard
Dan Kegel d...@kegel.com writes:

 --- /dev/null
 +++ b/programs/cmd/tests/test_dp0.cmd
 @@ -0,0 +1,10 @@
 +...@echo off
 +echo Begin test for bug 21382
 +rem On old wine, ~dp0 was always current directory rather than directory 
 containing batch file
 +echo %~dp0
 +mkdir dummydir
 +cd dummydir
 +echo %~dp0
 +cd ..
 +rmdir dummydir
 +echo End test for bug 21382
 diff --git a/programs/cmd/tests/test_dp0.cmd.out 
 b/programs/cmd/tests/test_dp0.cmd.out
 new file mode 100644
 index 000..8c38153
 --- /dev/null
 +++ b/programs/cmd/tests/test_dp0.cmd.out
 @@ -0,0 +1,4 @@
 +Begin test for bug 21382
 +...@pwd@\
 +...@pwd@\
 +End test for bug 21382

Please don't create new files for every small test, this will become
unmanageable very quickly. Unless there are reasons to split them,
everything should go in a single .cmd file. Also don't use bug numbers,
add some meaningful message instead. The code must be understandable
without reference to bugzilla.

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




Re: rpcrt4: Add tests for multi-dimensional conformant arrays.

2010-02-12 Thread Paul Vriens

On 02/11/2010 05:18 PM, Huw Davies wrote:

+ptr = NdrSimpleStructMarshall(StubMsg, (unsigned char *)memsrc,
+fmtstr_complex_array[32] );


Hi Huw,

This particular test crashes on Win9x, WinMe and NT4.

They all show:

ndr_marshall.c:1973: Test failed: length 96

just before the crash so maybe that would be our means to bail out?

--
Cheers,

Paul.




Re: rpcrt4: Add tests for multi-dimensional conformant arrays.

2010-02-12 Thread Huw Davies
On Fri, Feb 12, 2010 at 11:53:30AM +0100, Paul Vriens wrote:
 On 02/11/2010 05:18 PM, Huw Davies wrote:
 +ptr = NdrSimpleStructMarshall(StubMsg, (unsigned char *)memsrc,
 +fmtstr_complex_array[32] );

 Hi Huw,

 This particular test crashes on Win9x, WinMe and NT4.

 They all show:

 ndr_marshall.c:1973: Test failed: length 96

 just before the crash so maybe that would be our means to bail out?

Hi Paul,

Yes, looks like it's broken on those platforms; the
NdrSimpleStructMarshall call is crashing.  Are you happy to send in a
patch?

Huw.




Re: oldconfig.c: produce DEVICEMAP//SERIALCOMM entries

2010-02-12 Thread Alexandre Julliard
A C Hurst a.hu...@sheffield.ac.uk writes:

 Fixes bug 11811 [http://bugs.winehq.org/show_bug.cgi?id=11811] and its 
 duplicates.
 This patch sent some time back (over a year) was ignored/lost in noise.
 Could someone review please?

It has already been explained that this belongs in mountmgr, and should
be based on the actual devices as reported by HAL. It should also create
the corresponding NT devices and symlinks.

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




Re: [PATCH] shell32/tests: add tests for the parser of SHELLEXECUTEINFO.lpFile (resend)

2010-02-12 Thread Paul Vriens

On 02/12/2010 12:39 PM, Ilya Basin wrote:

Thanks for review. Not sending to wine-patches this time. New patch is
in the bottom. What's better, to attach a generated patch or to use it
as a message body?


Depends on your mail client I guess. I usually attach but there are 
others who inline.



PV  Why is this necessary?
/* ensure tmpdir is in %TEMP%: GetTempPath() can succeed even if TEMP is 
undefined */


But do your tests actually rely on %TEMP% being defined? Not having a 
TEMP (or TMP) will probably makes loads of tests fail and I doubt one 
has a valid config without those.


Also when you sent a newer patch that has changes you should mark it as 
'try x' instead of 'resend'. 'Resend' is used when you think the patch 
has been missed by AJ for example.


--
Cheers,

Paul.




Re: [msi/tests] Fix a test failure on Win9x/WinMe

2010-02-12 Thread Hans Leidekker
On Friday 12 February 2010 12:15:48 Paul Vriens wrote:

 Changelog
Fix a test failure on Win9x/WinMe

Can you find the string msi test font anywhere in the registry after
running that test?

 -Hans




Re: [msi/tests] Fix a test failure on Win9x/WinMe

2010-02-12 Thread Paul Vriens

On 02/12/2010 01:28 PM, Hans Leidekker wrote:

On Friday 12 February 2010 12:15:48 Paul Vriens wrote:


Changelog
Fix a test failure on Win9x/WinMe


Can you find the string msi test font anywhere in the registry after
running that test?

  -Hans


Wait, this is probably because you used W-functions (just spotted). The 
proper fix would probably be to change those 2 in A-ones.


I'll have a look later today.

This patch should be dismissed.

--
Cheers,

Paul.




AppDB: add graphic card info field?

2010-02-12 Thread burp

 Hi,

currently the AppDB test results include (besides the obvious wine related 
fields) only the distribution as distinguishing attribute for a test(er).

Now, my view point is the game(r) perspective. Maybe that's far too narrow, but 
still...

Many times I looked at test results and wished to see which graphic card and 
driver/version was used for the test for obvious reasons:
- Owners of NVidia cards with binary drivers are quite often not seeing the 
same set of bugs as owners of ATI cards with binary drivers
- Owners of the same card are quite often having very different results with 
different driver versions, and it happened multiple times that an older version 
was working where a newer wasn't (though the other way around is naturally more 
common...)

Recently this has become even worse IMO due to people trying to play games with 
the open source stack on ATI cards which is a completely different experience 
angle.


An example for the matter is Runes of Magic:

The game doesn't work on ATI cards at all, on older NVidia cards there's a 
workaround by disabling the GLSL shader, on newer NVidia cards it works also 
with GLSL shader.

Most recent test results are all silver/gold/platinum based on NVidia cards, 
looking at the full history there's a nice spectrum of garbage/bronze (ATI) 
alternating with silver/gold/platinum (NVidia).

As an average user, this tends to be quite confusing if you don't look at the 
details.


This is *not* just a matter of bugs, but also of features: World of Warcraft on 
ATI/Catalyst wasn't showing an indoor map for about 2 years (no pbuffers in ATI 
drivers), while the feature was fine on NVidia, while OpenGL hardware cursor is 
still available on neither card (missing feature of WoW's OpenGL backend).


(TLDR starts here )

How are the chances that a patch to include graphics chip, driver name and 
version into test results would be accepted?

Or would it be more welcome to split affected applications into versions by 
graphic card/driver? (I.e.: Runes of Magic: 2.x on ATI/Catalyst, World of 
Warcraft: 3.3.x on Intel/OpenSource, ...)

Cheers,

   $B1 $28

-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01




Re: rpcrt4: Add tests for multi-dimensional conformant arrays.

2010-02-12 Thread Huw Davies
On Fri, Feb 12, 2010 at 11:27:38AM +, Huw Davies wrote:
 On Fri, Feb 12, 2010 at 11:53:30AM +0100, Paul Vriens wrote:
  On 02/11/2010 05:18 PM, Huw Davies wrote:
  +ptr = NdrSimpleStructMarshall(StubMsg, (unsigned char *)memsrc,
  +fmtstr_complex_array[32] );
 
  Hi Huw,
 
  This particular test crashes on Win9x, WinMe and NT4.
 
  They all show:
 
  ndr_marshall.c:1973: Test failed: length 96
 
  just before the crash so maybe that would be our means to bail out?
 
 Hi Paul,
 
 Yes, looks like it's broken on those platforms; the
 NdrSimpleStructMarshall call is crashing.  Are you happy to send in a
 patch?
 

Btw, I have a fix for the 64 bit failures.  It'll conflict with your
patch, so I'll send it after yours is committed.

Huw.




Re: oldconfig.c: produce DEVICEMAP//SERIALCOMM entries

2010-02-12 Thread James Mckenzie
Alexandre Julliard wrote at Feb 12, 2010 5:00 AM (Arizona Time Zone) about Re: 
oldconfig.c: produce DEVICEMAP//SERIALCOMM entries

A C Hurst a.hu...@sheffield.ac.uk writes:

 Fixes bug 11811 [http://bugs.winehq.org/show_bug.cgi?id=11811] and its 
 duplicates.
 This patch sent some time back (over a year) was ignored/lost in noise.
 Could someone review please?

It has already been explained that this belongs in mountmgr, and should
be based on the actual devices as reported by HAL. It should also create
the corresponding NT devices and symlinks.

Alexandre:

libhal does not work on Macs and I don't think it works on Sparc based 
equipment.  How would this work for MacOSX/Solaris?

James McKenzie




Re: oldconfig.c: produce DEVICEMAP//SERIALCOMM entries

2010-02-12 Thread Alexandre Julliard
James Mckenzie jjmckenzi...@earthlink.net writes:

 Alexandre:

 libhal does not work on Macs and I don't think it works on Sparc based
 equipment.  How would this work for MacOSX/Solaris?

Obviously, using whatever is the equivalent on those platforms, same way
we do for disk devices.

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




Re: New Spanish translations [1/4]: dlls/hhctrl.ocx

2010-02-12 Thread Paul Vriens

On 02/11/2010 02:36 PM, José Manuel Ferrer Ortiz wrote:

As requested, I'll resend these patches, splitting them one message per
module. This way it looks a lot more professional :D

I've also fixed a few things that were wrong or could be better:
- Switched to UTF-8 encoding, and added the required 'pragma'.
- Changed language to SUBLANG_NEUTRAL.

Thank you, Nikolay, for making me aware of these mistakes.

Regards,
José Manuel



Hi José,

Your patches don't apply. See:

http://source.winehq.org/patches/

I've spotted two issues:

1. Patches should be generated from the top-level.
2. As these are new files you also need changes to the corresponding 
Makefile.in file.


--
Cheers,

Paul.




Re: New Spanish translations [1/4]: dlls/hhctrl.ocx

2010-02-12 Thread Paul Vriens

On 02/12/2010 04:41 PM, Paul Vriens wrote:

On 02/11/2010 02:36 PM, José Manuel Ferrer Ortiz wrote:

As requested, I'll resend these patches, splitting them one message per
module. This way it looks a lot more professional :D

I've also fixed a few things that were wrong or could be better:
- Switched to UTF-8 encoding, and added the required 'pragma'.
- Changed language to SUBLANG_NEUTRAL.

Thank you, Nikolay, for making me aware of these mistakes.

Regards,
José Manuel



Hi José,

Your patches don't apply. See:

http://source.winehq.org/patches/

I've spotted two issues:

1. Patches should be generated from the top-level.
2. As these are new files you also need changes to the corresponding
Makefile.in file.



Just saw that your original patches where created from the top-level. I 
guess it's due to the patchwatcher site disliking non Git patches?


--
Cheers,

Paul.




Re: New Spanish translations [1/4]: dlls/hhctrl.ocx

2010-02-12 Thread Alexandre Julliard
Paul Vriens paul.vriens.w...@gmail.com writes:

 Just saw that your original patches where created from the
 top-level. I guess it's due to the patchwatcher site disliking non Git
 patches?

Yes, the filtering script has some issues with non-git patches that only
create new files. I put in some fixes, but using git patches when adding
files is strongly recommended.

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




Re: Student Interested in Contributing to Wine

2010-02-12 Thread Juan Lang
Hi Michael,

On Fri, Feb 12, 2010 at 1:54 AM, Michael Griepentrog
mgriepent...@wisc.edu wrote:
 I'm primarily interested in improving the Wine experience on OS X. I read 
 pages from http://wiki.winehq.org/MacOSX, but I'm not sure how much of that 
 reflects the current direction of Wine development on Mac. What are the 
 immediate needs for improving Wine on OS X? Off hand, I know Wine doesn't 
 compile on Snow Leopard as a 64-bit binary 
 (http://forum.winehq.org/viewtopic.php?p=31321), but it seems like this issue 
 isn't limited to OS X. I'm also curious about the status of the Quartz 
 driver, and if it's something that is still being pursued. Creating a binary 
 distributable also seems like something that should be addressed, but I 
 understand that isn't necessarily easy given how applications are installed 
 on OS X.

A quartz driver is far beyond the scope of a SoC project.  Stay away from that.

Otherwise, you might want to play around with Wine on MacOS yourself
for a while, and get the hang of it.  It becomes pretty clear pretty
quickly that using a Windows app on MacOS doesn't feel much like a
Mac app.  Much of that we can't change, but some of it could be
better.  It looks and behaves more like a UNIX port, which of course
it is, so if you can think of ways to improve it, that'll go some ways
toward a credible application.  There are probably a few open bugs
about Wine on MacOS too, you might have a look at those.

Good luck,
--Juan




Re[2]: [PATCH] shell32/tests: add tests for the parser of SHELLEXECUTEINFO.lpFile (resend)

2010-02-12 Thread Ilya Basin
Thanks for review. Not sending to wine-patches this time. New patch is
in the bottom. What's better, to attach a generated patch or to use it
as a message body?

PV On 02/11/2010 03:37 PM, Ilya Basin wrote:
 Hi! This should expose this bug:
 http://bugs.winehq.org/show_bug.cgi?id=19385 ( the 'wine start'
 launcher does not open MS Office documents that have spaces in their
 path ). Although the title is misleading, many other tickets are
 marked as duplicates of it.
 It's not about spaces. It's about sometimes unneeded parsing of
 SHELLEXECUTEINFO.lpFile, trying to extract arguments from it. Why?
 Or maybe some other part of wine relies on this behavior?
 Tested on 98 se, 2k  xp.

PV Hi Ilya,

PV As Wine doesn't do the right thing (according to your tests), all 
PV failing Wine tests should be marked as such. We have a todo_wine 
PV construct for that.
added 4 todo_wine's

PV We generally do not want any real version checking in the tests. Tests
PV should decide based on behavior on what platform they are.
added GetProcAddress(hkernel32, AttachConsole) to detect XP/2k3
removed special case when XP emulates 9x because can't do it without
using GetVersion().

 +
 +GetTempPathA(sizeof(fileA), fileA);
 +shorttmpdir = tmpdir + strlen(fileA);
 +
 +/* ensure tmpdir is in %TEMP% */
 +SetEnvironmentVariableA(TEMP, fileA);

PV Why is this necessary?
/* ensure tmpdir is in %TEMP%: GetTempPath() can succeed even if TEMP is 
undefined */

 +/* is SEE_MASK_DOENVSUBST default flag? Should only be when XP emulates 
 9x */
 +{

PV Any particular reason for this indentation?
OK

---
 dlls/shell32/tests/shlexec.c |   87 ++
 1 files changed, 87 insertions(+), 0 deletions(-)

diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c
index c673f0a..d575d22 100644
--- a/dlls/shell32/tests/shlexec.c
+++ b/dlls/shell32/tests/shlexec.c
@@ -797,6 +797,10 @@ static const char* testfiles[]=
 %s\\test file.sde,
 %s\\test file.exe,
 %s\\test2.exe,
+%s\\simple.shlexec,
+%s\\drawback_file.noassoc,
+%s\\drawback_file.noassoc foo.shlexec,
+%s\\drawback_nonexist.noassoc foo.shlexec,
 NULL
 };
 
@@ -852,6 +856,88 @@ static filename_tests_t noquotes_tests[]=
 {NULL, NULL, 0}
 };
 
+static void test_lpFile_parsed(void)
+{
+/* basename tmpdir */
+const char* shorttmpdir;
+
+const char *testfile;
+char fileA[MAX_PATH];
+
+int rc;
+int expected;
+
+HMODULE hkernel32 = GetModuleHandle(kernel32);
+BOOL isreallyXP2k3plus = NULL != GetProcAddress(hkernel32, 
AttachConsole);
+
+GetTempPathA(sizeof(fileA), fileA);
+shorttmpdir = tmpdir + strlen(fileA);
+
+/* ensure tmpdir is in %TEMP%: GetTempPath() can succeed even if TEMP is 
undefined */
+SetEnvironmentVariableA(TEMP, fileA);
+
+#define TEST_LPFILE_PARSED_OK_() (rc==expected || rc32  expected32)
+#define TEST_LPFILE_PARSED_OK() ok(TEST_LPFILE_PARSED_OK_(), expected %s 
(%d), got %s (%d), lpFile: %s \n, expected==33 ? success : failure, 
expected, rc  32 ? success : failure, rc, fileA)
+
+/* existing drawback_file.noassoc prevents finding 
drawback_file.noassoc foo.shlexec on wine */
+testfile = %s\\drawback_file.noassoc foo.shlexec;
+expected = 33; sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+todo_wine { TEST_LPFILE_PARSED_OK(); }
+
+/* if quoted, existing drawback_file.noassoc not prevents finding 
drawback_file.noassoc foo.shlexec on wine */
+testfile = \%s\\drawback_file.noassoc foo.shlexec\;
+expected = 33; sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+TEST_LPFILE_PARSED_OK();
+
+/* error should be 2, not 31 */
+testfile = \%s\\drawback_file.noassoc\ foo.shlexec;
+expected = 2; sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+TEST_LPFILE_PARSED_OK();
+
+/* command not works on wine (and real win9x and w2k) */
+if (isreallyXP2k3plus) {
+testfile = \\%s\\simple.shlexec\\;
+expected = 33; sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+todo_wine { TEST_LPFILE_PARSED_OK(); }
+} else {
+win_skip(ShellExecute('\\command\\', ...) only works on XP/2k3 or 
newer\n);
+}
+
+/* nonexisting drawback_nonexist.noassoc not prevents finding 
drawback_nonexist.noassoc foo.shlexec on wine */
+testfile = %s\\drawback_nonexist.noassoc foo.shlexec;
+expected = 33; sprintf(fileA, testfile, tmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+TEST_LPFILE_PARSED_OK();
+
+/* is SEE_MASK_DOENVSUBST default flag? Should only be when XP emulates 9x 
(XP bug or real 95 or ME behavior ?) */
+testfile = %%TEMP%%\\%s\\simple.shlexec;
+expected = 2; sprintf(fileA, testfile, shorttmpdir);
+rc=shell_execute(NULL, fileA, NULL, NULL);
+todo_wine { TEST_LPFILE_PARSED_OK(); }
+
+/* 

Re: wined3d: Add surface conversion function from WINED3DFMT_YUY2 to WINED3DFMT_B8G8R8X8_UNORM (try 2)

2010-02-12 Thread Stefan Dösinger
 +dst_line[x] = 0xff00
 +| cliptobyte((c2 + r2)  8)  16/* red   */
 +| cliptobyte((c2 + g2)  8)  8 /* green */
 +| cliptobyte((c2 + b2)  8); /* blue  */
I'm not sure if 0xff is the correct value for the X channel, but technically it 
shouldn't really matter since the X is ignored. Is there a specific reason why 
you set it to 0xff?

Otherwise the patch looks ok to me, but I think Henri might want to take a look 
at it as well before it is committed.





Re: Re[2]: [PATCH] shell32/tests: add tests for the parser of SHELLEXECUTEINFO.lpFile (resend)

2010-02-12 Thread James Mckenzie
Ilya Basin basini...@gmail.com wrote at Feb 12, 2010 4:39 AM about Re[2]: 
[PATCH] shell32/tests: add tests for the parser of  SHELLEXECUTEINFO.lpFile 
(resend)

Thanks for review. Not sending to wine-patches this time. New patch is
in the bottom. What's better, to attach a generated patch or to use it
as a message body?

Generated patch, if at all possible.  That way we can use git apply to install.

James McKenzie