Re: Wine packaging - part 2 - what RPM/DEBs do

2000-10-27 Thread David . Goodenough

You could also view the global config as the values with which to
initialise the local config when a user first uses wine.  You might also
want to have a process that would refresh those values should it be
necessary to change something for all users, but that presupposes multi
user, and as I recall someone suggested that that should 1.1.





Alexandre Julliard <[EMAIL PROTECTED]> on 26-10-2000 10:29:21 PM

To:   Jeremy White <[EMAIL PROTECTED]>
cc:   Marcus Meissner <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
  (bcc: David Goodenough/DGA/GB)
Subject:  Re: Wine packaging - part 2 - what RPM/DEBs do




Jeremy White <[EMAIL PROTECTED]> writes:

> Hmm.  I had not seriously considered simply adding
> an 'inherit' ability.  A cursory look at the
> .winerc suggests, for most things, it would be pretty easy.
> It would make winecfg harder (or much
> harder to do well, IMO).

It would also make it much harder for users to figure out what's going
wrong (not to mention that they'll have to post both their config and
the global one to get any useful support).

> I think if we simplify the presentation
> of Wine, and discuss *only* the ~/.wine/config
> file, we'd make life easier for most Wine users.

Agreed; Wine should only try to load the user config file. If someone
really wants a global config, it is always possible to make the user
config a symlink to some central file.

--
Alexandre Julliard
[EMAIL PROTECTED]











Re: Forwarded Message From Claus Fischer re Packaging

2000-10-27 Thread David Elliott

Alexandre Julliard wrote:

> David Elliott <[EMAIL PROTECTED]> writes:
>
> > I didn't mean switching between different compiled versions of wine, I meant
> > just switching config files and registry hives.
>
> That's exactly what WINEPREFIX is for. It switches to a different set
> of config file/registry files/server socket.
>

Well then, I stand corrected, I guess I'll use that!
-Dave






New Windows API functions

2000-10-27 Thread David Elliott

Changelog:
* Added basic working stubs of new Windows 2000 API functions.

This patch provides working stubs for some of the new Windows 2000 API calls
as follows:

Terminal Server functions:
* RegOpenCurrentUser has been implemented by opening HKEY_CURRENT_USER  Both
dlls/advapi32/registry.c and memory/registry.c have been changed.  I used ""
as the path to open under HKEY_CURRENT_USER, should that be "\\" or is ""
okay?
* GetSystemWindowsDirectory[AW] calls GetWindowsDirectory[AW].  I chose to
stub out the function rather than forward because it may be usefull when
packaging wine for this to be a different directory, see MSDN documentation
on this function for details.
* ProcessIdToSessionId returns 0 in all cases per MSDN docs.

CriticalSection:
* InitializeCriticalSectionAndSpinCount - Calls
RtlInitializeCriticalSectionAndSpinCount function like
InitializeCriticalSection.  Returns TRUE if no error occured, false if an
error occured.  Since no errors can possibly occur at this time it will
always return TRUE.
* SetCriticalSectionSpinCount - Sets crit->SpinCount
* RtlInitializeCriticalSectionAndSpinCount - Sets crit->SpinCount then calls
RtlInitializeCriticalSection.
The above functions are related to SMP.  On a uniprocessor windows sytem,
the spincount is always zero.  For now these functions will actually set the
spincount, but since it's not used by anything in the wine core, they
basically do nothing.  They print FIXME's when used with spincounts other
than 0.

User32:
* GetClipboardSequenceNumber - This is a stub returning 0 per MSDN docs.
This deserves a real implementation at some point, but is not a
high-priority thing.
* AllowSetForegroundWindow - This is a stub returning TRUE.  This function
relates to the changes in focus behavior for Win98/win2k.  The new focus
behavior requires certain conditions to be met for a process to grab the
foreground focus with SetForegroundWindow.  This function allows a program
that is running in the foreground to give another process the ability to set
the foreground window like would have been allowed in older versions of
windows.
* LockSetForegroundWindow - Ditto except this function disallows all other
programs to grab the foreground with SetForegroundWindow until the user
switches away from the window for the program that called this function.

Other
* _ultow - Added @ stub entry to ntdll.spec
* strtol - Added @ cdecl entry using libc's strtol to ntdll.spec

-Dave


Index: dlls/advapi32/advapi32.spec
===
RCS file: /home/wine/wine/dlls/advapi32/advapi32.spec,v
retrieving revision 1.12
diff -u -r1.12 advapi32.spec
--- dlls/advapi32/advapi32.spec 2000/10/24 01:39:29 1.12
+++ dlls/advapi32/advapi32.spec 2000/10/27 10:13:55
@@ -191,6 +191,7 @@
 @ stdcall RegLoadKeyA(long str str) RegLoadKeyA
 @ stdcall RegLoadKeyW(long wstr wstr) RegLoadKeyW
 @ stdcall RegNotifyChangeKeyValue(long long long long long) RegNotifyChangeKeyValue
+@ stdcall RegOpenCurrentUser(long ptr) RegOpenCurrentUser
 @ stdcall RegOpenKeyA(long str ptr) RegOpenKeyA
 @ stdcall RegOpenKeyExA(long str long long ptr) RegOpenKeyExA
 @ stdcall RegOpenKeyExW(long wstr long long ptr) RegOpenKeyExW
Index: dlls/advapi32/registry.c
===
RCS file: /home/wine/wine/dlls/advapi32/registry.c,v
retrieving revision 1.15
diff -u -r1.15 registry.c
--- dlls/advapi32/registry.c2000/10/15 00:40:25 1.15
+++ dlls/advapi32/registry.c2000/10/27 10:13:58
@@ -248,6 +248,19 @@
 }
 
 
+/**
+ *   RegOpenCurrentUser   [ADVAPI32]
+ * FIXME: This function is supposed to retrieve a handle to the
+ * HKEY_CURRENT_USER for the user the current thread is impersonating.
+ * Since Wine does not currently allow threads to impersonate other users,
+ * this stub should work fine.
+ */
+DWORD WINAPI RegOpenCurrentUser( REGSAM access, PHKEY retkey )
+{
+return RegOpenKeyExA( HKEY_CURRENT_USER, "", 0, access, retkey );
+}
+
+
 
 /**
  *   RegEnumKeyExW   [ADVAPI32.139]
Index: dlls/kernel/kernel32.spec
===
RCS file: /home/wine/wine/dlls/kernel/kernel32.spec,v
retrieving revision 1.14
diff -u -r1.14 kernel32.spec
--- dlls/kernel/kernel32.spec   2000/10/23 21:39:39 1.14
+++ dlls/kernel/kernel32.spec   2000/10/27 10:14:02
@@ -928,3 +928,10 @@
 
 #1599 wrong ordinal (249 in Win32s's W32SCOMB.DLL) !
 1599 stdcall Get16DLLAddress(long str) Get16DLLAddress
+
+# Windows 2000, Terminal Server 4.0 SP4 functions
+@ stdcall GetSystemWindowsDirectoryA(ptr long) GetSystemWindowsDirectoryA
+@ stdcall GetSystemWindowsDirectoryW(ptr long) GetSystemWindowsDirectoryW
+@ stdcall InitializeCriticalSectionAndSpinCount(ptr long) 
+InitializeCriticalSectionAndSpinCount
+@ stdcall SetCriticalS

Netscape 4.7 painting problem is a font problem

2000-10-27 Thread Mike McCormack


Hi All,

i've tracked down the source of the Netscape 4.7 painting problem i've
been looking at... but i'm not sure how to fix it.

The problem is that the stock varible font as fetched by
GetStockObject(STOCK_ANSI_VAR_FONT) changes. Initially it is MS Sans
Serif, but later changes to helvetica. Netscape seems to like
helvetica better :-/

The patch below makes the problem go away, but doesn't fix the source
of the problem... i'll investigate more tommorrow.

Mike



>On Fri, 20 Oct 2000, Mike McCormack wrote:
>
> When netscape first loads, it has problems painting all types of
> controls (buttons, combos, etc) and some text on web pages. As more
> pages are loaded, the problems disappear... ie. things that were
> previously were not drawn are drawn correctly.
> 


--
mailto:[EMAIL PROTECTED]
ph +61 2 9427 2196

__
Get your own free web email at http://www.looksmart.com.au
LookSmart Australia

 patch30
 z


IBM HPB patches

2000-10-27 Thread David . Goodenough

I have now divided up the fixes into the four classes, and discarded the
ones that are of no relevance.

This leaves about 30 patches, a few of which really should be grouped
together.

The fixes come into a number of broad headings:-

1) New function
2) Minor fixes, particularly they seem to have hit a number of NULL
pointer/handle problems and provide fixes to stop this causing traps
3) A new mode of operation which they called unmanaged.  This seems to make
ALL windows unmanaged, including the dialogs.  I am not quite sure why they
did this, but they did.
4) A few I can not yet understand or give a purpose to.

Of the new function there is:--

1) Support for BS_MULTILINE in controls/button.c
2) 24 bit graphics support in graphics/x11drv/dib.c
3) In dlls/shell32/shlfileop.c added dialogs to ask for confirmation of
deletes when flags set.  Add SHELL_IsFolderA, SHELL_CopyFolderA, and put
real code into SHFileOperationA
4) Changes to graphics/x11drv/xfont.c to change the maximum font size (from
1000 to 2000), to add a weight of "demi bold" (including the space), to
define serif, cursive, monospace, and fantasy, to ignore fonts with no
weights or width name, to precreate bold and italic fonts, a change to what
happens when looking for fonts with a lower resolution, addition of W3C
Chancery font, change when building font metrics to support fonts [a 0 b c]
in weight field of ltd which caused one of their programs to display a
strange logo if missing.

In the minor fixes class:-

1) Fix to GetFullNamePathA( ) to return the value in lower case (no
explanation given as to why)
2) Check for a NULL value returned in objects/enhmatafile.c
3) Change to windows/x11drv/event.c to show child windows at OnSetFofus -
seen as a workaround for an unspecified problem
4) In objects/gdi.obj change to put out a message when GDI resources run
out (a message box) and exiting preemptoraly, rather than just returning 0.
5) in miscemu/main.c changes to add signal handlers to clean up failed
programs.
6) Change in windows/mdi.c to check child and frame for NULL before trying
to use things pointed to by them
7) Changes to control/menu.c to check for NULL popupmenus before trying to
use them.
8) Safety check on This->sMyPath before being it in
dlls/shell32/shlfolder.c
9) changes to controls/static.c to handle case of no text, and to handle
SS_CENTREIMAGE.
10) Change to dlls/comctl32/tooltops.c for the case of text == "" (rather
than NULL).
11) Changes to dlls/comctl32/trackbar.c to do some calculations as doubles
rather than ints.  Also fix to support TBS_AUTOTICKS.
12) Change to dlls/comctl32/updown.c at a labled FIXME, which claims that
the MSDN specified value for infoPtr->MinVal should be 100 not 0, and for
MaxVal should be 0 not 100.

Changes for unmanged mode:-

1) In windows/x11drv/event.c  change condition for changing focus
2) Changes in control/menu.c to cope with menus in unmanaged dialogs
3) support in windows/message.c and nonclient.c and misc/options.h
4) Changes in windows/win.c to support unmanaged windows

In the non-understood category:-

1) In dlls/commdlg/filedlg.c, filedlg95.c and filedlgbrowser.c changes to
the behaviour when a folder is selected.
2) Changes in dlls/comctl32/header.c, listview.c and include/listview.h.
These talk about adding Drag and Drop support, some of this seems to be
present in the current code, but not all.
3) Added code to misc/options.h to RaiseException at EnterCriticalSection.
I can only presume they were having problems with CriticalSections and this
was a debugging aid, but it is there in there full release.
4) In dlls/shell32/pidl.c they change from using CSIDL_DESKTOPDIRECTORY to
CSIDL_DESKTOP.  Why is unclear.
5) In dlls/comctl32/propsheet.c there are changes to add support for
PSH_WIZARD97, whatever that might be.  I get the impression this might add
multipage wizards, but I am not familiar enough with what a PSH_WIZARD can
do to comment.
6) In dlls/shell32/shellpath.c a variety of changes.  Some to PathIsRootA,
with special changes for references to "My Computer" and to explicit unix
paths.  Also added support for CSIDL_DESKTOP, but does nothing but return
TRUE which is apparently all that is needed.  This is presumably tied in
with 4 above.
7) Some changes in windows/X11drv/wnd.c to stop X_QueryTree: BadWindow
problems.  One of these is fairly straight forward, but the other is in an
area that has been changed substancially since and I am not clear whether
it is still necessary.

Now the next question is, for those that I have renumbered and apply and
compile cleanly, how do you want them.  Do you want them one at a time, so
they can be discussed individually, or for instance in the case of the
safety checks as a single grouped block.

For those in the last class I would also value any input anyone might have
on the need/usefulness of these fixes.  I can send you the individual
fixes, but remember they are quite old when you come to look at them.  Some
I have relocated to 2000

unsubscribe qwerty

2000-10-27 Thread Pierre Rochefort



 


Re: IBM HPB patches

2000-10-27 Thread Juergen Schmied

Can you send me the shell32 and filedlg related parts (or just everything)?
I would like to look at least over the code since I guess from your descriptions
 there might be some application specific hacks in it.
Where to get the whole patch on the web? 

Thanks

Juergen





Re: IShellBrowser window ID

2000-10-27 Thread Juergen Schmied

Hi!

I had a look at geralds patch and he  moving the code whats initializing 
the view after sending some messages.
This should be ok since is not a problem to initialize the shellview as late as
possible to allow other programs to eg. reorder controls or to resize the
hidden listview.
The shellview gets the dimensions from the hidden listview on creation.
If the shellview is created later it should get the right dimensions.
Is there still a problem left? Is there a downloadable program?

juergen





Re: Fix for selected bitmap menu items

2000-10-27 Thread Francois Gouget


   Hi,


On Fri, 27 Oct 2000, Dmitry Timoshkov wrote:

> Hello.
> 
> Changelog:
> Make bitmap menu items look like in windows when selected,
> i.e. hilited and inverted.

   This patch does not seem right to me. I base this on my observations
of the behavior of the grafmenu, a smaple program of the Petzold 95. 
This program creates a menu containing black and white bitmaps and here
is what it looks like: 

 * in Win95
   - the normal display is black text on the regular gray background
   - when an item is selected its background becomes white, the text
stays black
   - except for the checkboxes which become white on the regular gray
background

 * in win98
   - same as Win95 when the window is active and the mouse is not over
the menu bar
   - if the window is inactive then the black parts become dark gray,
i.e. it looks the same as if we had a regular menu
   - when the mouse is over a menu bar item, there's a raised border
drawn around the bitmap (even if the window is inactive)
   - when a menubar item is selected, there is a sunken border drwan
around it and, unlike in Win95, the background remains grey
   - when a menu item is selected, it is highlighted like any other,
i.e. we have the dark blue background. But the bitmap is indeed
displayed kind of inverted. I get dark blue on white. And I also note
that the size of the menu item is calculated so that there is a 1 pixel
dark blue border above and below the bitmap.


   This is pretty complex and differs from what we get in Wine (with or
without your patch).
   I believe one of the problems in Wine lies in the calculation of the
item size: the sunken/raised border is overwritten by the bitmap so that
we don't see it. Then there's all the color and Win95 vs. Win98 aspects. 

   You can have a look at the URL below, it contains a screenshot of
grafmenu in Win95. I'll try to add other screenshots for Win98. 

http://fgouget.free.fr/wine/PrgWin95/Chap10.shtml#grafmenu

--
Francois Gouget [EMAIL PROTECTED]http://fgouget.free.fr/
  Broadcast message : fin du monde dans cinq minutes, repentez vous !






RE: Mail sent to wine-devel

2000-10-27 Thread Patrik Stridvall

> Your mail to 'wine-devel' with the subject:
> 
> RFC: Logical to device translation layer
> 
> Is being held until the list moderator can review it for approval.
> 
> The reason it is being held:
> 
> Message body too long (>40k)
> 
> Either the message will get posted to the list, or you will receive
> notification of the moderator's decision.

Intresting but a little irritating feature of the new mailing list.

I understand it is because some people post to long debug logs
on the list. But it would be nice if people that are regular
posters to the list be removed from the limit or at least have
a larger limit.

PS. If anybody cares my mail included a 85k large patch
plus a quite long message.

PPS. Hmm. Should I wait or should I post it without the patch,
in the meantime. OK, I will wait, but if anybody really want
to read "RFC: Logical to device translation layer" as soon
as possible please mail me in private.





RFC: Logical to device translation layer

2000-10-27 Thread Patrik Stridvall

After the discussion triggered by Mark Dufour's attempt
to optimize X11DRV_LineTo, I sat down I tried to think
through what various people had said and try to find
a solution that would satisfy the worries of different
people including myself. :-)

This resulted in the following solution to the problem
of optimizing the GDI functions that I have implemented
the _infrastructure_ for. A patch that does this is
attached in order to try to move the discussion from
teoretical worries and problems down to the worries and
problems of the real world.

So what I'm I trying to do?

First an observation: The current mapping, to use a
common name for offsets, scale factors, rotations
or other kind of transforms, seldom changes. In fact
it can only change if the application calls one of
the following functions.

SetMapMode
{Set,Modify}WorldTransform
{Set,Offset,Scale}{Viewport,Window}{Ext,Org}Ex

In Wine's implementation, all of these functions
will eventually call the function DC_UpdateXforms
in object/dc.c before returning.

Since all calls to the device driver (X11, printer etc)
goes through the the dc->funcs (DC_FUNCTIONS) jump table,
we could check how advanced the current mapping and
change the jump table accordingly.

This is pretty obvious. As Huw D M Davies said to me
"I know you were going to suggest that". :-)

However if done in a bad way this will lead to a lot
of code duplication and make maintaince more difficult
as Ulrich Weigand pointed out.

So I sat down and though about it some more.

One of the first things I observed is that there are two
different kinds of device drivers. One that works in logical
coordinates since the underlying "system" can or must
use them and the kind the have no real concept of logical
coordinates and always converts them to device coordinates.
The important ones that works with logical coordinates is 
the {,enh}metafile drivers and among the important ones that
works with device coordinates is primarily the X11 driver.

This realization led to the idea that we really should have
two DC_FUNCTIONS jump tables of that takes logical coordinates
and one that takes device coordinates.

Before anybody points it out, I will point out the fact that
many functions are coordinate system independent and that we in
that case should split up DC_FUNCTIONS is two different structures.
This is probably true but this is an almost completly ortogonal
problem, that is easy to solve, so I will not discuss it further.
It doesn't really effect performance, it mainly effects maintainance.

So we will end up with drivers that have device jump table 
mainly empty (metafile) and drivers that will have the logical
jump table mainly empty (X11).

OK, so how are we going to call everything from the device independent
parts. We don't want to the device independ layer to work with
device coordinates that will probably be painful.

So we have the device indendent layer that wants to use logical
coordinates and some device drivers (X11) that wishes to use
device coordinates. That doesn't really mix well together does it?

The answer is a logical to device translation layer.
Will that not be expensive permformancewise and hard to
maintain you ask? No, not at all. See the attached patch.
In fact it will optimize the most important path, the
constant scaling zero offset case, the best. That is, the case
that applications that really cares about performance are
likely to use.

It might be a little hard to see what the patch does so I will
try to explain.

There are 4 different kinds of translations.
1. Full world transform (implemented in graphics/log2dev.c)
2. Scaling (implemented in graphics/scl2dev.c)
3. Offsetting (implemented in graphics/off2dev.c)
4. Nothing (not implemented anywhere since it is not needed)

Each device driver have two DC_FUNCTIONS jump tables, or for logical
coordinates and one for device coordinates.

When we register even device driver we use these 2 jump tables
to generate 4 jump tables for the 4 cases above that uses that
the translation function if needed. The jump table for case 4
is just a direct call to device driver table for device
coordinates so _no_ translation is performed at all.

When the mapping changes (DC_UpdateXforms
in object/dc.c is eventually called) we choose
which of the 4 jump tables which should be used.

Note that this patch currently only implement the
infrastructure for this. If and when applied, however
we can begin the real work of making Wine run faster.

However we have to be really careful when we do this,
there are a few dragons lurking in the forest of
ignorance.

In case 4 no translation is needed, so the translation layer
is not called at all. This which mean that we have to be
really careful _where_ optimizing if-nothing-visible-needs-to-be-
drawn tests and swap-the-parameters-when-"left"-greater-than-
"right" test are performed.

There are three places when such tests can be placed.
(1) Logical (device independent) layer
(2) Logical to Device laye

RE: Mail sent to wine-devel

2000-10-27 Thread Ove Kaaven


On Fri, 27 Oct 2000, Patrik Stridvall wrote:

> > Message body too long (>40k)
> > 
> > Either the message will get posted to the list, or you will receive
> > notification of the moderator's decision.
> 
> Intresting but a little irritating feature of the new mailing list.
> 
> I understand it is because some people post to long debug logs
> on the list. But it would be nice if people that are regular
> posters to the list be removed from the limit or at least have
> a larger limit.
> 
> PS. If anybody cares my mail included a 85k large patch
> plus a quite long message.
> 
> PPS. Hmm. Should I wait or should I post it without the patch,
> in the meantime. OK, I will wait, but if anybody really want
> to read "RFC: Logical to device translation layer" as soon
> as possible please mail me in private.

Okay, I've approved, but it's on your own peril. There is no limit to the
size of postings to wine-patches, but wine-devel, on the other hand, runs
with a 40K limit. This was discussed briefly by web-admin, and nobody
there saw a problem with safety limits on the non-patches lists. Do anyone
else around wish for us to increase the wine-devel limit? Even our
low-bandwidth subscribers?






RE: Mail sent to wine-devel

2000-10-27 Thread Patrik Stridvall

> Okay, I've approved, but it's on your own peril. 

Oh well < 100kb => < 20s with a 56k modem.
I don't expect anybody to be _that_ pissed off.
At least I hope not. :-)

> There is no 
> limit to the
> size of postings to wine-patches, but wine-devel, on the 
> other hand, runs
> with a 40K limit. This was discussed briefly by web-admin, and nobody
> there saw a problem with safety limits on the non-patches 
> lists.

It is not normally a problem. This RFC patch just happend to
be unusually big because of it is quite a lot of cut and
pasting to illustrate an idea.

I don't know. What does other people say?

Should large RFC patches be put on a webserver (WineHQ?)
or is it OK to post them on the list?

> Do anyone
> else around wish for us to increase the wine-devel limit? Even our
> low-bandwidth subscribers?

I do not wish to increase it for casual posters but
people that post a lot do not post large attachment
without a good reason.

Sure I _could_ have, by misstake, attached one (or more)
of 5Mb+ debug logs that was in the same directory so we
probably should have some limit. That probably would
have pissed people off. :-)





Preferred way to get all 'recent' code

2000-10-27 Thread George Boutwell

Sorry if this is covered somewhere and I just missed
it.  What is the preferred way to get wine's source
tree.  Is it acceptable to cvs login and cvs checkout
all of wine, or is there some other more preferrable
way?

Thanks.

George

__
Do You Yahoo!?
Yahoo! Photos - 35mm Quality Prints, Now Get 15 Free!
http://photos.yahoo.com/





Header files that conflict with UNIX headers

2000-10-27 Thread David Elliott

Hi all,

I am starting to work on CRTDLL implementing it on top of Windows calls
instead of UNIX.

As I understand it, Windows executables definitely need a working CRTDLL as
forwarding things like fopen to UNIX would not give the desired behavior.

Are Winelib programs also supposed to use the wine CRTDLL?  If so then it's
necessary to provide headers like stdlib.h and math.h to Winelib programs
and to link the winelib programs against the wine crtdll instead of the
native libc.  The problem I see with this is that it's feasible for a
winelib program to want to use the native libc instead of CRTDLL.  Using the
native libc is the current behavior AFAIK.

It is not possible to put the headers into include/ because other wine code
will use them instead of the UNIX headers.  Should they be placed in
something like include/wincrt?  What directory should they be installed to?
How should we allow wine sourcecode to choose the use of the native files or
the provided files?

Currently things like FILE are defined as CRTDLL_FILE directly in the source
file instead of a seperate header.  It will be desirable to allow the crtdll
source to include both the UNIX libc headers and parts of the Wine crtdll
headers.  How should the wine crtdll headers look?  Should they use some
preprocessor magic to allow them to be used by winelib programs (e.g. with
names like "FILE") and also by the wine source itself (e.g. with names like
"CRTDLL_FILE").

For now I am not providing any headers, just implementing the functions, but
I will if someone can tell me how it should be done.

As far as the CRTDLL implementation goes, I am currently implementing
CRTDLL with all of the functions and structures prefixed with CRTDLL_
(following the current trend).  I am calling native libc functions when it
makes sense to do so (like most math functions).

I vaguely remember this being brought up before and the consensus being
something along the lines of libc functions should be used when available
and we can always create and link against another UNIX library to implement
functions that are not supported on all libcs rather than clutter the code
with tons of #ifdefs.  I also vaguely remember that using the libc functions
is preferred because they are generally the best implementation of the
function.  Obviously this does not hold true for things like fopen and
friends, but for things like math functions this should be fine.

Currently the crtdll.spec directly uses several libc functions, which I also
do not see any reason to change.  If the function is implemented correctly
by the libc then use it.  If wine or this crtdll code is to be ported to a
platform that does not have a libc, the aforementioned creation of another
library should be done to implement the function.  It should be acceptable
for the CRTDLL to link against this library to provide the implementation of
the functions.

One notable concern was the handling of varargs functions.  I believe that
the CRTDLL code should hanlde varargs in the style of the OS it is running
on and that winebuild should create a thunk layer for varargs functions on
platforms that require it.  CRTDLL should not try to handle Windows format
varargs in its code.  From the looks of it, it appears this is how things
are currently done, although Linux does not require this layer as its libc's
varargs handling is the same as Windows just like the other calling
conventions.

So, does my reasoning sound okay?  What should be done with the headers?

-Dave






Re: Preferred way to get all 'recent' code

2000-10-27 Thread Andreas Mohr

On Fri, Oct 27, 2000 at 06:14:35PM -0700, George Boutwell wrote:
> Sorry if this is covered somewhere and I just missed
> it.  What is the preferred way to get wine's source
> tree.  Is it acceptable to cvs login and cvs checkout
> all of wine, or is there some other more preferrable
> way?
Yes, CVS is the most accepted one.

If you're an end-user, you might want to stick with normal releases.
But even for end-users CVS is not too bad ;)

Andreas Mohr





WEP (Windows Entertaiment Pack)

2000-10-27 Thread Dimitrie O. Paun

This is an old, old package of (very) simplistic games that I've found on
one of my old HDs.
It contains games such as "Jezz Ball", "Maxwell", "Ski", "Warhead", etc.

Most of the stuff in there seems to work, which the notable exception of
two VB games.

There were a few display glitches, maily caused by our handling of the
managed mode. The most obvious manifested itself in a few cases (maybe the
game was using a dialog as its main window???) where the window will get
positioned in the left-top corner such as the left and top decorations
will be off the screen. In other words, the window got positioned such as
the top-left corner of the client rectangle would coincide with the
top-left corner of the screen.
If anyone feels like looking into this, I'm game.

Anyway, despite their simplicity, this shows good progress, so I figured
I'll share.

--
Dimi.






Re: GetProcAddress

2000-10-27 Thread Ove Kaaven


On Sat, 28 Oct 2000 [EMAIL PROTECTED] wrote:

> I am trying to make a winelib rundll32, but I can not get GetProcAddress
> to return anything but (nil).  I must be doing something even stupider
> than the stupid errors I have already fixed, but I can't see it.  Maybe
> somebody who is really bored could tell me the error of my
> ways.  Wine-20001026 with wine_win2k.diff, wininet.diff, Rein's little
> timezone patch, and Marcus' OleLoadFromStream and itemmoniker from
> wine-patches.

Apart from that your string handling is somewhat clumsy and bug-ridden
(one of these bugs are likely to leave the space character in the string
you pass to GetProcAddress), I don't see any other obvious misuse of
GetProcAddress here. Perhaps you could also look at regapi, which already
contains a regsrv-like function (registerDLL -> doRegisterDLL())?