Re: winex11: use XkbKeycodeToKeysym instead of (deprecated) XKeycodeToKeysym (see http://bugs.freedesktop.org/show_bug.cgi?id=5349)

2010-04-20 Thread Dmitry Timoshkov
Alexandre Goujon  wrote:

> -if (!(keysym = XKeycodeToKeysym (display, keyc, i))) continue;
> +if (!(keysym = XkbKeycodeToKeysym (display, keyc, 0, i))) continue;

Not every X11 implementation has the XKB extenstion. You may want to take
into account 'use_xkb' and 'HAVE_XKB'.

-- 
Dmitry.




Re: [1/2] include/wine: add option to specify the unittest target via environment variable

2010-04-20 Thread Stefan Leichter
Am Tuesday 20 April 2010 20:57:41 schrieb Paul Vriens:
> On 04/20/2010 08:37 PM, Stefan Leichter wrote:
> > Am Tuesday 20 April 2010 07:59:22 schrieb Paul Vriens:
> >> On 04/19/2010 11:44 PM, Stefan Leichter wrote:
> >>> ---
> >>>include/wine/test.h |6 +-
> >>>1 files changed, 5 insertions(+), 1 deletions(-)
> >>
> >> Hi Stefan,
> >>
> >> What's the idea/thought behind this (or what problem are you trying to
> >> solve)?
> >
> > Hi Paul,
> >
> > the problem is the "command line parsing" of ShellExecuteEx, see bug19666
> > (http://bugs.winehq.org/show_bug.cgi?id=19666#c3).
> >
> > When a directory contains two executables where the name of the first,
> > without extension, is the leading part of the name of the second and the
> > second file have a blank at the position where the first file has the
> > dot, wine implementation of ShellExecuteEx starts the first executable
> > when the name of the second given to ShellExecuteEx.
> >
> > If a unittest call the second executable via ShellExecuteEx, the first
> > executable is started and the test target is the trailing part of the
> > filename including the extension. This causes a test failure because the
> > test target does not exist.
> >
> > Example:
> > test file.exe
> > test file two.exe
> >
> > Builtin ShellExecuteEx starts always "test file.exe". If "test file
> > two.exe" was passed as name to be ShellExecuteEx argv[1] will be
> > "two.exe".
> >
> > To get around this problem and make a valid unittest without fixing the
> > problem, i looked for another way to pass the test target to the
> > executable.
>
> This statement classifies this patch as a hack, not?

What is your suggestion about my last point, which you removed silently?

-- 
Bye Stefan




Re: Writing test programs for dlls/krnl386.exe16

2010-04-20 Thread Dmitry Timoshkov
Morten Rønne  wrote:

> I can't see what I should have missed in Makefile.in for this to fail. I would
> expect the needed rules would be made automatically when creating the final
> Makefile with make depend.
> 
> I can run tests in kernel32 just fine.

1. You went in the wrong direction by choosing to write the tests in asm.
2. It should be acceptable to add the tests in kernel32 (you won't be able
to call 16-bit APIs directly or link to 16-bit libraries anyway).

-- 
Dmitry.




Re: Adding translation for wineprefixcreate manpage

2010-04-20 Thread Alexandre Julliard
Frédéric Delanoy  writes:

> In the process, I also added the wineprefixcreate En manpage in the "install 
> install-dev". Is that problematic?
>
> Could so please tell me what I did wrong so I can fix and resubmit the patch?

I don't think there's much point in adding translations for
wineprefixcreate, it's deprecated and should probably be removed.

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




Adding translation for wineprefixcreate manpage

2010-04-20 Thread Frédéric Delanoy
Hi folks,

A couple of days ago, I submitted a patch to add French manpage of 
wineprefixcreate, which was discarded (see attachment).

I modeled it after German winemaker addition (SHA 
d53e75af1474d0bd9c8b8660827baaf8fe708f4c) by adding
- entries in tools/Makefile.in
- a .gitignore entry for the generated manpage
- actual translated manpage

I guess the patch was refused because of problems in tools/Makefile.in.

Basically what I added was
- entry in MANPAGES
- french dir in INSTALLDIRS
- entries in "install install-lib" and "install install-dev"
- uninstall entry

In the process, I also added the wineprefixcreate En manpage in the "install 
install-dev". Is that problematic?

Could so please tell me what I did wrong so I can fix and resubmit the patch?

Thanks in advance.

Frédéric
>From 14e26ada32e07f2772120aa5a1d9fbf5216b69d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delanoy?= 
Date: Mon, 12 Apr 2010 22:27:11 +0200
Subject: tools: Add French translation of wineprefixcreate manpage

---
 .gitignore   |1 +
 tools/Makefile.in|   11 -
 tools/wineprefixcreate.fr.man.in |   81 ++
 3 files changed, 90 insertions(+), 3 deletions(-)
 create mode 100644 tools/wineprefixcreate.fr.man.in

diff --git a/.gitignore b/.gitignore
index d2ba32b..9287fb7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -280,6 +280,7 @@ tools/winegcc/winegcc.man
 tools/winemaker.de.man
 tools/winemaker.man
 tools/wineprefixcreate
+tools/wineprefixcreate.fr.man
 tools/wineprefixcreate.man
 tools/wmc/mcy.tab.c
 tools/wmc/mcy.tab.h
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 526ac1b..5dd5370 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -21,7 +21,8 @@ PROGRAMS = \
 MANPAGES = \
winemaker.man \
winemaker.de.man \
-   wineprefixcreate.man
+   wineprefixcreate.man \
+   wineprefixcreate.fr.man
 
 C_SRCS = \
fnt2bdf.c \
@@ -38,7 +39,8 @@ INSTALLDIRS = \
$(DESTDIR)$(datadir)/applications \
$(DESTDIR)$(datadir)/wine \
$(DESTDIR)$(mandir)/man$(prog_manext) \
-   $(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext)
+   $(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext) \
+   $(DESTDIR)$(mandir)/fr.UTF-8/man$(prog_manext)
 
 UPDATE_DESKTOP_DATABASE = update-desktop-database
 
@@ -79,15 +81,18 @@ install install-lib:: wine.inf wineprefixcreate 
$(INSTALLDIRS)
$(INSTALL_DATA) wine.inf $(DESTDIR)$(datadir)/wine/wine.inf
$(INSTALL_DATA) $(SRCDIR)/wine.desktop 
$(DESTDIR)$(datadir)/applications/wine.desktop
$(INSTALL_DATA) wineprefixcreate.man 
$(DESTDIR)$(mandir)/man$(prog_manext)/wineprefixcreate.$(prog_manext)
+   $(INSTALL_DATA) wineprefixcreate.fr.man 
$(DESTDIR)$(mandir)/fr.UTF-8/man$(prog_manext)/wineprefixcreate.$(prog_manext)
-$(UPDATE_DESKTOP_DATABASE)
 
 install install-dev:: $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man$(prog_manext)
$(INSTALL_SCRIPT) $(SRCDIR)/winemaker $(DESTDIR)$(bindir)/winemaker
$(INSTALL_DATA) winemaker.man 
$(DESTDIR)$(mandir)/man$(prog_manext)/winemaker.$(prog_manext)
$(INSTALL_DATA) winemaker.de.man 
$(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext)/winemaker.$(prog_manext)
+   $(INSTALL_DATA) wineprefixcreate.man 
$(DESTDIR)$(mandir)/man$(prog_manext)/wineprefixcreate.$(prog_manext)
+   $(INSTALL_DATA) wineprefixcreate.fr.man 
$(DESTDIR)$(mandir)/fr.UTF-8/man$(prog_manext)/wineprefixcreate.$(prog_manext)
 
 uninstall::
-   $(RM) $(DESTDIR)$(bindir)/winemaker 
$(DESTDIR)$(bindir)/wineprefixcreate 
$(DESTDIR)$(mandir)/man$(prog_manext)/winemaker.$(prog_manext) 
$(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext)/winemaker.$(prog_manext) 
$(DESTDIR)$(mandir)/man$(prog_manext)/wineprefixcreate.$(prog_manext) 
$(DESTDIR)$(datadir)/wine/wine.inf 
$(DESTDIR)$(datadir)/applications/wine.desktop
+   $(RM) $(DESTDIR)$(bindir)/winemaker 
$(DESTDIR)$(bindir)/wineprefixcreate 
$(DESTDIR)$(mandir)/man$(prog_manext)/winemaker.$(prog_manext) 
$(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext)/winemaker.$(prog_manext) 
$(DESTDIR)$(mandir)/man$(prog_manext)/wineprefixcreate.$(prog_manext) 
$(DESTDIR)$(mandir)/fr.UTF-8/man$(prog_manext)/wineprefixcreate.$(prog_manext) 
$(DESTDIR)$(datadir)/wine/wine.inf 
$(DESTDIR)$(datadir)/applications/wine.desktop
-$(UPDATE_DESKTOP_DATABASE)
 
 depend: makedep$(EXEEXT)
diff --git a/tools/wineprefixcreate.fr.man.in b/tools/wineprefixcreate.fr.man.in
new file mode 100644
index 000..97db584
--- /dev/null
+++ b/tools/wineprefixcreate.fr.man.in
@@ -0,0 +1,81 @@
+.\" -*- nroff -*-
+.TH WINEPREFIXCREATE 1 "avril 2010" "@PACKAGE_STRING@" "Windows sur Unix"
+.SH NOM
+wineprefixcreate \- créer ou mettre à jour la configuration de Wine
+.SH SYNOPSIS
+.BI wineprefixcreate\  [options]
+.SH DESCRIPTION
+.B wineprefixcreate
+crée ou met à jour un répertoire de configuration de Wine. Quand Wine
+s'exécute, le nom de base du répertoire de configuration est 

Re: Writing test programs for dlls/krnl386.exe16

2010-04-20 Thread Morten Rønne




Hi

Thank you for the pointers Dmitry.
But it seems none of these projects made any progress since no tests
have turned up in the git tree. :)

Also none of these really answers any of the question I asked in any
detail.

So I have tried to follow the description on how to add a new test, but
I can't get the test to run.
The "make test" ends by saying "No rule to make .dll.so needed by .ok".

I can't see what I should have missed in Makefile.in for this to fail.
I would expect the needed rules would be made automatically when
creating the final Makefile with make depend.

I can run tests in kernel32 just fine.

So I am attaching the Makefile.in and the only c-source that should be
needed to create something that should able to run but do no tests, in
the hope that someone can point out what obvious thing I have missed.

Best Regards
Morten Rønne



Dmitry Timoshkov wrote:

  Morten Rønne  wrote:

  
  
I would like to write some tests for the krnl386.exe16 part of wine, or 
more precisely the DOS parts of that.

  
  
Archives should have enough asnwers to question like this one, one of
the attemps is here:

http://www.winehq.org/pipermail/wine-devel/2009-January/072560.html

  




TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../../..
SRCDIR= @srcdir@
VPATH = @srcdir@
TESTDLL   = krnl386.dll
IMPORTS   = user32 kernel32

ASM = 

C_SRCS = \
krnl386.c

# Rule for making 16 bit sources if assembler is available
ifdef ASM
ASM_SRCS = \
int21.asm

$(TESTDLL) : $(ASM_SRCS)

.com.asm:
-$(ASM) -f bin -w+orphan-labels -o $@ $<
endif

@MAKE_TEST_RULES@


/*
 * Copyright 2010 Morten Rønne
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "wine/test.h"
#include 

static DWORD pos, end;
char   buffer[8192];

static int read_line (HANDLE *file, char *text)
{
DWORD  o;

o = 0;
if(pos == end) {
ReadFile(file, buffer, 8192, &end, NULL);
pos = 0;
}
while(pos < end) {
if(buffer[pos] == '\n') {
text[o++] = '\n';
text[o++] = '\0';
pos++;
return 1;
}
if(o < 510)
text[o++] = buffer[pos];
pos++;
if(pos == end) {
ReadFile(file, buffer, 8192, &end, NULL);
pos = 0;
}
}
return 0;
}

static int read_test_file(char *name) {
HANDLE file;
char   line[512];

file = CreateFileA("test.rep", GENERIC_READ, 0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
ok(file != INVALID_HANDLE_VALUE, "CreateFile failed for test.rep: %08x\n",
GetLastError());
if(file == INVALID_HANDLE_VALUE)
return 0;

pos = 0;
end = 0;

/* Read each line and make report */
while(read_line(file, line)) {
if(line[1] == ':' && line[2] == ' ') {
if(line[0] == 't') {
todo_wine {
ok(FALSE, "%s: %s", name, &line[3]);
}
} else {
ok(FALSE, "%s: %s", name, &line[3]);
}
}
}

CloseHandle(file);
return 1;
}

static int run_program(char *name)
{
STARTUPINFOA si;
PROCESS_INFORMATION pi;

/* The file is not found, then tests are not run, so we return TRUE */
if(GetFileAttributes(name) == INVALID_FILE_ATTRIBUTES)
return TRUE;
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
if (CreateProcessA(NULL, name, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
if(read_test_file(name))
return TRUE;
}
return FALSE;
}


START_TEST(krnl386)
{
/*
 *  We are testing DOS functions which requires 16 bit mode.
 *  But this program runs in 32 bit mode.
 *  So we load a 16 bit test program to do the actual testing.
 *  After that reports are gathered and tested based on file created
 *  by the run program.
 *  So to affect todo's, change the 16 bit program not this.
 */

 /* First test int 21 which are required by all the others */
 ok(run_program("int21.com") == TRUE,
 "Failed to run int 21 tests. Last Error: 0x%04x", GetLastError());

 /* Test int 10, graphics card */

 /* Test int 2f */

 /* Test int 31, ems */
}




Graphics Driver Interface Standardization

2010-04-20 Thread Charles Davis
Hi,

I'm getting ready to implement the Quartz Driver. For those of you who
don't know, this is a special graphics driver that only works on Mac OS
X, and uses its native Core Graphics (aka, Quartz) system to draw.

But before I can do this, there are two things that need to be done:

1. Wine currently assumes that the current graphics driver is the X11
driver. It directly GetModuleHandle()'s winex11.drv in order to call
driver functions. This needs to be fixed.
2. The driver interface needs to be standardized.

I can fix the first problem by adding a Wine-specific export to GDI32,
then updating all the winex11 clients to call this function, but the
second problem will make writing a non-X11 driver problematic. The GDI
and USER interfaces are already somewhat standardized, but the reason
many clients call winex11.drv directly is to call the "Thread-Safe X11"
locking routines. Also, Explorer calls winex11 to create the desktop and
notification area ("systray") windows.

Therefore, I propose this interface. It's largely based off of winex11,
but with some small modifications. It's attached to this mail. What do
you think of this?

And don't tell me that we need a DIB engine before I get started on
winequartz. I intend to use Mac OS X native APIs (like Core Image) to
accelerate DIBs, in much the same way winex11 uses Xrender.

Chip
# GDI driver

@ cdecl AlphaBlend(ptr long long long long ptr long long long long long) 
@ cdecl Arc(ptr long long long long long long long long) 
@ cdecl ChoosePixelFormat(ptr ptr) 
@ cdecl Chord(ptr long long long long long long long long) 
@ cdecl CreateBitmap(ptr long ptr) 
@ cdecl CreateDC(long ptr wstr wstr wstr ptr) 
@ cdecl CreateDIBSection(ptr long ptr long) 
@ cdecl DeleteBitmap(long) 
@ cdecl DeleteDC(ptr) 
@ cdecl DescribePixelFormat(ptr long long ptr) 
@ cdecl Ellipse(ptr long long long long) 
@ cdecl EnumDeviceFonts(ptr ptr ptr long) 
@ cdecl ExtEscape(ptr long long ptr long ptr) 
@ cdecl ExtFloodFill(ptr long long long long) 
@ cdecl ExtTextOut(ptr long long long ptr ptr long ptr) 
@ cdecl GetBitmapBits(long ptr long) 
@ cdecl GetCharWidth(ptr long long ptr) 
@ cdecl GetDCOrgEx(ptr ptr) 
@ cdecl GetDIBits(ptr long long long ptr ptr long) 
@ cdecl GetDeviceCaps(ptr long) 
@ cdecl GetDeviceGammaRamp(ptr ptr) 
@ cdecl GetICMProfile(ptr ptr ptr) 
@ cdecl GetNearestColor(ptr long) 
@ cdecl GetPixel(ptr long long) 
@ cdecl GetPixelFormat(ptr) 
@ cdecl GetSystemPaletteEntries(ptr long long ptr) 
@ cdecl GetTextExtentExPoint(ptr ptr long long ptr ptr ptr) 
@ cdecl GetTextMetrics(ptr ptr) 
@ cdecl LineTo(ptr long long) 
@ cdecl PaintRgn(ptr long) 
@ cdecl Pie(ptr long long long long long long long long) 
@ cdecl PolyPolygon(ptr ptr ptr long) 
@ cdecl PolyPolyline(ptr ptr ptr long) 
@ cdecl Polygon(ptr ptr long) 
@ cdecl Polyline(ptr ptr long) 
@ cdecl RealizeDefaultPalette(ptr) 
@ cdecl RealizePalette(ptr long long) 
@ cdecl Rectangle(ptr long long long long) 
@ cdecl RoundRect(ptr long long long long long long) 
@ cdecl SelectBitmap(ptr long) 
@ cdecl SelectBrush(ptr long) 
@ cdecl SelectFont(ptr long long) 
@ cdecl SelectPen(ptr long) 
@ cdecl SetBitmapBits(long ptr long) 
@ cdecl SetBkColor(ptr long) 
@ cdecl SetDCBrushColor(ptr long) 
@ cdecl SetDCPenColor(ptr long) 
@ cdecl SetDIBColorTable(ptr long long ptr) 
@ cdecl SetDIBits(ptr long long long ptr ptr long) 
@ cdecl SetDIBitsToDevice(ptr long long long long long long long long ptr ptr 
long) 
@ cdecl SetDeviceClipping(ptr long long) 
@ cdecl SetDeviceGammaRamp(ptr ptr) 
@ cdecl SetPixel(ptr long long long) 
@ cdecl SetPixelFormat(ptr long ptr) 
@ cdecl SetTextColor(ptr long) 
@ cdecl StretchBlt(ptr long long long long ptr long long long long long) 
@ cdecl SwapBuffers(ptr) 
@ cdecl UnrealizePalette(long) 

# USER driver

@ cdecl ActivateKeyboardLayout(long long) 
@ cdecl Beep() 
@ cdecl GetAsyncKeyState(long) 
@ cdecl GetKeyNameText(long ptr long) 
@ cdecl GetKeyboardLayout(long) 
@ cdecl GetKeyboardLayoutName(ptr) 
@ cdecl LoadKeyboardLayout(wstr long) 
@ cdecl MapVirtualKeyEx(long long long) 
@ cdecl SendInput(long ptr long) 
@ cdecl ToUnicodeEx(long long ptr ptr long long long) 
@ cdecl UnloadKeyboardLayout(long) 
@ cdecl VkKeyScanEx(long long) 
@ cdecl SetCursor(ptr) 
@ cdecl GetCursorPos(ptr) 
@ cdecl SetCursorPos(long long) 
@ cdecl ClipCursor(ptr) 
@ cdecl GetScreenSaveActive() 
@ cdecl SetScreenSaveActive(long) 
@ cdecl ChangeDisplaySettingsEx(ptr ptr long long long) 
@ cdecl EnumDisplayMonitors(long ptr ptr long) 
@ cdecl EnumDisplaySettingsEx(ptr long ptr long) 
@ cdecl GetMonitorInfo(long ptr) 
@ cdecl AcquireClipboard(long) 
@ cdecl CountClipboardFormats() 
@ cdecl CreateDesktopWindow(long) 
@ cdecl CreateWindow(long) 
@ cdecl DestroyWindow(long) 
@ cdecl EmptyClipboard(long) 
@ cdecl EndClipboardUpdate() 
@ cdecl EnumClipboardFormats(long) 
@ cdecl GetClipboardData(long) 
@ cdecl GetClipboardFormatName(long ptr long) 
@ cdecl GetDC(long long long ptr ptr long) 
@ cdecl IsClipboardFormatAvailable(long) 
@ c

Re: [PATCH 4/6] [WineGcc]: when specifying -m32, force i386 cpu when compiling on x86_64 boxes

2010-04-20 Thread Eric Pouech

André Hentschel a écrit :

Hi Eric,
That will not be enough as it will still just find the 64-bit libs.
Maybe we should implement a check in utils.c if it is a ELF32 or ELF64 lib 
which we try to import.

  

AFAICS it's not worse than when we use -b i386-elf
when building for wow64, we use winegcc for linking either 32bit or 
64bit execs (with the --sysroot switch)
not use what you propose will help... it'll prevent an error later on in 
gcc (or ld), but if winegcc is passed directories with wrong libraries, 
it should, IMO, fail and not try to find the right lib


A+

--
Eric Pouech
"The problem with designing something completely foolproof is to underestimate the 
ingenuity of a complete idiot." (Douglas Adams)







Re: Winebuild b0rken on Mac OS X?

2010-04-20 Thread Charles Davis
On 4/20/10 1:26 PM, eric lanz wrote:
> I've seen this error using the os 4.0 beta 1 sdk, using the GM 3.2 sdk I
> don't get this error -- so the last couple weeks I've been switching
> sdk's back and forth to get around the problem.  I'm downloading os 4.0
> beta 2 right now to see if apple fixed it.
Hey, now that you mention it, I did just install the beta 1 SDK. I think
you're on to something.

Is beta 2 out already? Wow, that was fast. Let's see if they fixed this
in beta 2.

Chip




Re: Winebuild b0rken on Mac OS X?

2010-04-20 Thread eric lanz
I've seen this error using the os 4.0 beta 1 sdk, using the GM 3.2 sdk I don't 
get this error -- so the last couple weeks I've been switching sdk's back and 
forth to get around the problem.  I'm downloading os 4.0 beta 2 right now to 
see if apple fixed it. 

--- On Tue, 4/20/10, Charles Davis  wrote:

From: Charles Davis 
Subject: Winebuild b0rken on Mac OS X?
To: "wine-devel" 
Date: Tuesday, April 20, 2010, 12:21 PM

While building Wine (latest git) on Mac OS X, I noticed this:

/usr/bin/nm: object: amstream_test.MDsdpi.o malformed object (LC_SEGMENT
command 0 filesize field greater than vmsize field)
Undefined symbols:
  "_GetDesktopWindow", referenced from:
      _func_amstream in amstream.o
  "_TlsGetValue", referenced from:
      _get_tls_data in testlist.o
  "_MultiByteToWideChar", referenced from:
      _func_amstream in amstream.o
      _func_amstream in amstream.o
  "_CloseHandle", referenced from:
      _func_amstream in amstream.o
  "_TlsSetValue", referenced from:
      _get_tls_data in testlist.o
  "_DirectDrawCreate", referenced from:
      _func_amstream in amstream.o
  "_CoCreateInstance", referenced from:
      _create_ammultimediastream in amstream.o
  "_WaitForSingleObject", referenced from:
      _winetest_wait_child_process in testlist.o
  "_CoInitializeEx", referenced from:
      _func_amstream in amstream.o
  "_HeapAlloc", referenced from:
      _get_tls_data in testlist.o
  "_CoUninitialize", referenced from:
      _func_amstream in amstream.o
      _func_amstream in amstream.o
  "_GetExitCodeProcess", referenced from:
      _winetest_wait_child_process in testlist.o
  "_GetEnvironmentVariableA", referenced from:
      _main in testlist.o
      _main in testlist.o
      _main in testlist.o
      _main in testlist.o
  "_ExitProcess", referenced from:
      _exit_process in testlist.o
      ___wine_spec_exe_entry in libwinecrt0.a(exe_entry.o)
  "_CreateFileA", referenced from:
      _func_amstream in amstream.o
      _func_amstream in amstream.o
  "_TlsAlloc", referenced from:
      _run_test in testlist.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
winegcc: gcc failed
make[1]: *** [amstream_test.exe.so] Error 2
make: *** [dlls/amstream/tests] Error 2

Something's gone horribly wrong. Winebuild shouldn't be generating
b0rken Mach-O files. What gives?





  


Re: [1/2] include/wine: add option to specify the unittest target via environment variable

2010-04-20 Thread Paul Vriens

On 04/20/2010 09:04 PM, Juan Lang wrote:

To get around this problem and make a valid unittest without fixing the
problem, i looked for another way to pass the test target to the
executable.


This statement classifies this patch as a hack, not?


Perhaps, but there's a chicken and egg problem:  fixing the problem
without a valid unit test doesn't seem likely to happen.
--Juan


But a statement just before that says it 'just' causes a test failure. 
Is there no other way around this?


If we only want to have a test case to prove how Windows works I'd find 
a hack to skip the test on Wine a little bit better.


And why couldn't we fix the problem before submitting tests? This 
happens all the time. If people really want to see proof before changing 
the implementation we can use our testbot to show the tests are correct 
(just give the tests patch to the testbot and run it on all platforms).


--
Cheers,

Paul.




Winebuild b0rken on Mac OS X?

2010-04-20 Thread Charles Davis
While building Wine (latest git) on Mac OS X, I noticed this:

/usr/bin/nm: object: amstream_test.MDsdpi.o malformed object (LC_SEGMENT
command 0 filesize field greater than vmsize field)
Undefined symbols:
  "_GetDesktopWindow", referenced from:
  _func_amstream in amstream.o
  "_TlsGetValue", referenced from:
  _get_tls_data in testlist.o
  "_MultiByteToWideChar", referenced from:
  _func_amstream in amstream.o
  _func_amstream in amstream.o
  "_CloseHandle", referenced from:
  _func_amstream in amstream.o
  "_TlsSetValue", referenced from:
  _get_tls_data in testlist.o
  "_DirectDrawCreate", referenced from:
  _func_amstream in amstream.o
  "_CoCreateInstance", referenced from:
  _create_ammultimediastream in amstream.o
  "_WaitForSingleObject", referenced from:
  _winetest_wait_child_process in testlist.o
  "_CoInitializeEx", referenced from:
  _func_amstream in amstream.o
  "_HeapAlloc", referenced from:
  _get_tls_data in testlist.o
  "_CoUninitialize", referenced from:
  _func_amstream in amstream.o
  _func_amstream in amstream.o
  "_GetExitCodeProcess", referenced from:
  _winetest_wait_child_process in testlist.o
  "_GetEnvironmentVariableA", referenced from:
  _main in testlist.o
  _main in testlist.o
  _main in testlist.o
  _main in testlist.o
  "_ExitProcess", referenced from:
  _exit_process in testlist.o
  ___wine_spec_exe_entry in libwinecrt0.a(exe_entry.o)
  "_CreateFileA", referenced from:
  _func_amstream in amstream.o
  _func_amstream in amstream.o
  "_TlsAlloc", referenced from:
  _run_test in testlist.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
winegcc: gcc failed
make[1]: *** [amstream_test.exe.so] Error 2
make: *** [dlls/amstream/tests] Error 2

Something's gone horribly wrong. Winebuild shouldn't be generating
b0rken Mach-O files. What gives?




Re: [PATCH] d3dx9_36: Implement D3DXCheckTextureRequirements + tests

2010-04-20 Thread Christian Costa



Yeah, I was refering to this particular error. I just saw I didn't
commit the remaining code to my public git repo (... because it's a bit
ugly), this ( http://tonwas.freefronthost.com/gsocwork.tar.gz ... early
snapshot of my work, which I vastly cleaned up lateron) tarball provides
the remaining code at snapshot/texture.c.
What this code does is if the requested format is not supported, try to
find some other format which hopefully won't reduce image quality.
This is done by using some heuristics, i.e. rules (some of which are
more important than others). Generally speaking, FourCC and 24-bit
formats are avoided unless directly requested. Also we won't change
format _types_, e.g. no ARGB to DXT conversion.
Then, we try to not remove any color component channel; then we try to
not reduce the number of bits per requested channel; then (of the few
remaining formats) we pick the one with the lowest INCREASE in number of
bits per channel (i.e. the best would be the same bpc); the last
heuristic is the increase in number of channels, which ofc should be
kept to a minimum.
btw note that the heuristics given on the MSDN site of this function
aren't the real ones; they have similiarity with the real ones, but my
version of them is closer to actual native behavior. I've thoroughly
tested this code and it works in almost 99% of all possible cases for
ARGB/QWVU/Paletted/Luminance (i.e. "simple" uncompressed formats)) and
in the very few cases it doesn't copy native behavior it at least
returns a usuable fallback format.

Anyway, I strongly advise you to add this stuff in a later patch and
replace it with a FIXME message or some comment for now.

  


I was thinking about something like this. I put a FIXME if 
CheckDeviceFormat fails until

there is a real implementation.







Re: [1/2] include/wine: add option to specify the unittest target via environment variable

2010-04-20 Thread Juan Lang
>> To get around this problem and make a valid unittest without fixing the
>> problem, i looked for another way to pass the test target to the
>> executable.
>
> This statement classifies this patch as a hack, not?

Perhaps, but there's a chicken and egg problem:  fixing the problem
without a valid unit test doesn't seem likely to happen.
--Juan




Re: [1/2] include/wine: add option to specify the unittest target via environment variable

2010-04-20 Thread Paul Vriens

On 04/20/2010 08:37 PM, Stefan Leichter wrote:

Am Tuesday 20 April 2010 07:59:22 schrieb Paul Vriens:

On 04/19/2010 11:44 PM, Stefan Leichter wrote:

---
   include/wine/test.h |6 +-
   1 files changed, 5 insertions(+), 1 deletions(-)


Hi Stefan,

What's the idea/thought behind this (or what problem are you trying to
solve)?


Hi Paul,

the problem is the "command line parsing" of ShellExecuteEx, see bug19666
(http://bugs.winehq.org/show_bug.cgi?id=19666#c3).

When a directory contains two executables where the name of the first, without
extension, is the leading part of the name of the second and the second file
have a blank at the position where the first file has the dot, wine
implementation of ShellExecuteEx starts the first executable when the name of
the second given to ShellExecuteEx.

If a unittest call the second executable via ShellExecuteEx, the first
executable is started and the test target is the trailing part of the
filename including the extension. This causes a test failure because the test
target does not exist.

Example:
test file.exe
test file two.exe

Builtin ShellExecuteEx starts always "test file.exe". If "test file two.exe"
was passed as name to be ShellExecuteEx argv[1] will be "two.exe".

To get around this problem and make a valid unittest without fixing the
problem, i looked for another way to pass the test target to the executable.


This statement classifies this patch as a hack, not?

--
Cheers,

Paul.




ImageCapture Wine TWAIN plug-in

2010-04-20 Thread C.W. Betts
Anybody else up for the idea of an ImageCapture (Mac OS X) plug-in for Wine's 
TWAIN? It would fit the role of sane.ds and gphoto.ds, as it can both scan and 
access cameras.  ImageCapture can also use Mac OS X TWAIN drivers.


Re: [1/2] include/wine: add option to specify the unittest target via environment variable

2010-04-20 Thread Stefan Leichter
Am Tuesday 20 April 2010 07:59:22 schrieb Paul Vriens:
> On 04/19/2010 11:44 PM, Stefan Leichter wrote:
> > ---
> >   include/wine/test.h |6 +-
> >   1 files changed, 5 insertions(+), 1 deletions(-)
>
> Hi Stefan,
>
> What's the idea/thought behind this (or what problem are you trying to
> solve)?

Hi Paul,

the problem is the "command line parsing" of ShellExecuteEx, see bug19666 
(http://bugs.winehq.org/show_bug.cgi?id=19666#c3).

When a directory contains two executables where the name of the first, without 
extension, is the leading part of the name of the second and the second file 
have a blank at the position where the first file has the dot, wine 
implementation of ShellExecuteEx starts the first executable when the name of 
the second given to ShellExecuteEx.

If a unittest call the second executable via ShellExecuteEx, the first 
executable is started and the test target is the trailing part of the 
filename including the extension. This causes a test failure because the test 
target does not exist.

Example:
test file.exe 
test file two.exe

Builtin ShellExecuteEx starts always "test file.exe". If "test file two.exe" 
was passed as name to be ShellExecuteEx argv[1] will be "two.exe".

To get around this problem and make a valid unittest without fixing the 
problem, i looked for another way to pass the test target to the executable. 

Finaly to perform the same flow as the program in bug 19666 does, 
ShellExecuteEx needs to be called without any parameter.

-- 
Bye Stefan




Re: imm32: rework storage of thread default contexts

2010-04-20 Thread Aric Stewart

I think for threadproc function it should be WINAPI or CALLBACK.

DWORD WINAPI ThreadProc(
  __in  LPVOID lpParameter
);


yes. I should set the test to be static.

-aric

André Hentschel wrote:

Hi Aric,
You should have a second look at the Function heads in the tests (imm32.c).
I doubt WINAPI should be used and the functions should be static.





Re: imm32: rework storage of thread default contexts

2010-04-20 Thread André Hentschel
Hi Aric,
You should have a second look at the Function heads in the tests (imm32.c).
I doubt WINAPI should be used and the functions should be static.
-- 

Best Regards, André Hentschel




Re: [PATCH 4/6] [WineGcc]: when specifying -m32, force i386 cpu when compiling on x86_64 boxes

2010-04-20 Thread André Hentschel
Hi Eric,
That will not be enough as it will still just find the 64-bit libs.
Maybe we should implement a check in utils.c if it is a ELF32 or ELF64 lib 
which we try to import.

-- 

Best Regards, André Hentschel




Re: [PATCH] d3dx9_36: Implement D3DXCheckTextureRequirements + tests

2010-04-20 Thread Tony Wasserka
Am 19.04.2010 20:48, schrieb Christian Costa:
> Well, it's your code, correct ?
> I suggest to simply remove these checks. There does not bring any
> added values.
It's my own code, but I noticed this flaw some time after GSoC was over,
it can be quite disturbing.
Additionally, the checks might not be useful in this case, but when/if
D3DXCreateTexture gets implemented it'll make it easier to spot subtle
memory leaks (like not Release()ing some buffer surface the function
might use internally) which otherwise would go unnoticed.

> Could you be more specific on what's need to be implemented ?
> The if statement catches several errors. Maybe you want to catch an
> error on CheckDeviceFormat, correct ? 
Yeah, I was refering to this particular error. I just saw I didn't
commit the remaining code to my public git repo (... because it's a bit
ugly), this ( http://tonwas.freefronthost.com/gsocwork.tar.gz ... early
snapshot of my work, which I vastly cleaned up lateron) tarball provides
the remaining code at snapshot/texture.c.
What this code does is if the requested format is not supported, try to
find some other format which hopefully won't reduce image quality.
This is done by using some heuristics, i.e. rules (some of which are
more important than others). Generally speaking, FourCC and 24-bit
formats are avoided unless directly requested. Also we won't change
format _types_, e.g. no ARGB to DXT conversion.
Then, we try to not remove any color component channel; then we try to
not reduce the number of bits per requested channel; then (of the few
remaining formats) we pick the one with the lowest INCREASE in number of
bits per channel (i.e. the best would be the same bpc); the last
heuristic is the increase in number of channels, which ofc should be
kept to a minimum.
btw note that the heuristics given on the MSDN site of this function
aren't the real ones; they have similiarity with the real ones, but my
version of them is closer to actual native behavior. I've thoroughly
tested this code and it works in almost 99% of all possible cases for
ARGB/QWVU/Paletted/Luminance (i.e. "simple" uncompressed formats)) and
in the very few cases it doesn't copy native behavior it at least
returns a usuable fallback format.

Anyway, I strongly advise you to add this stuff in a later patch and
replace it with a FIXME message or some comment for now.

>  
> BTW, you are reviewing your own patch (albeit slighty modified) ;-) ,
> does that mean you plan to make your work
> go into mainline ?
I'm glad someone picks up my patches, so I try to support this work as
far as I can. I just have no time on working on this stuff myself
anymore, i.e. no (direct) further work on this planned...


By the way, IMO the function documentation is pretty useful, at least
description and the stuff about the return values (and additional
NOTES), since it kind of verifies that the behavior is intended and not
the result of some ugly coding..





Re: [2/2] dlls/shell32/tests: add some tests for ShellExecuteEx

2010-04-20 Thread Greg Geldorp
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=1612

Your paranoid android.


=== WNT4WSSP6 (NT4 Workstation SP6 (English, IE2)) ===
Timeout

=== W7PROX64 (Windows 7 Professional 64 bit) ===
shlexec.c:1662: Test failed: ShellExecuteEx(null, 
"C:\Users\winetest\AppData\Local\Temp\wt6C9.tmp\test file.sde", null, null) 
failed: rc=29 err=2
shlexec.c:1662: Test failed: ShellExecuteEx(null, 
"C:\Users\winetest\AppData\Local\Temp\wt6C9.tmp\test file.sde", null, null) 
failed: rc=29 err=2
shlexec.c:1662: Test failed: ShellExecuteEx(null, 
"C:\Users\winetest\AppData\Local\Temp\wt6C9.tmp\test file.sde", null, null) 
failed: rc=29 err=2
shlexec.c:1662: Test failed: ShellExecuteEx(null, 
"C:\Users\winetest\AppData\Local\Temp\wt6C9.tmp\test file.sde", null, null) 
failed: rc=29 err=2
shlexec.c:1662: Test failed: ShellExecuteEx(null, 
"C:\Users\winetest\AppData\Local\Temp\wt6C9.tmp\test file.sde", null, null) 
failed: rc=29 err=2