msvcrt incompatibility in Origin 6.0 when saving documents

Uwe Bonnes bon at
Wed Nov 30 11:02:25 CST 2005

>>>>> "Olaf" == Olaf Leidinger <leidola at> writes:


    Olaf> By the way... what is the difference between "retval" and "ret"?
    Olaf> It sounds the same.

ret means the address of the piece of code calling the function
retval is the actual return value of the function returning to the
caller. With a void function (like ftime
time.c: *               _ftime (MSVCRT.@)
time.c:void _ftime(struct MSVCRT__timeb *buf)
it doesn't make sense.

B.t.w., vararg functions (look in msvcrt.spec) don't appear in the relay

    Olaf> There are still some megs in front of me... Perhaps you could
    Olaf> comment my discoveries so far. Personally I think they aren't very
    Olaf> important, but I really don't know much about the win32 api, so I
    Olaf> can't tell...

The difference in the cipow seems of importance (
math.c:double _CIpow(void)
I am not sure about a double as retval. Perhaps you can instrument
dll/msvcrt/math.c with the patch below and run  with (additional or
exclusive) WINEDEBUG=+msvrt and look if the arguments and result look

Happy bughunting
Uwe Bonnes                bon at

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Index: wine/dlls/msvcrt/math.c
RCS file: /home/wine/wine/dlls/msvcrt/math.c,v
retrieving revision 1.24
diff -u -w -r1.24 math.c
--- wine/dlls/msvcrt/math.c	25 Jun 2004 01:19:15 -0000	1.24
+++ wine/dlls/msvcrt/math.c	30 Nov 2005 16:55:52 -0000
@@ -168,8 +168,10 @@
   double z;
+  TRACE("x %f y %f\n", x,y);
   /* FIXME: If x < 0 and y is not integral, set EDOM */
   z = pow(x,y);
+  TRACE("z %f \n", z);
   if (!finite(z)) *MSVCRT__errno() = MSVCRT_EDOM;
   return z;

More information about the wine-devel mailing list