Broken cross-build, again.

Saulius Krasuckas saulius2 at ar.fi.lt
Sat Apr 16 01:57:37 CDT 2005


* On Thu, 14 Apr 2005, Jacek Caban wrote:
> *Saulius Krasuckas wrote:
> >And the second question is: should it go to the "include/wine/test.h"
> >or some separate header like a "include/wine/strings.h".
> 
> wine/test.h doesn't seems to me to be a good place for it. Also, as it's
> used only in tests, wine/strings.h doesn't need this. I think the best
> place is the source of the test.

* On Thu, 14 Apr 2005, Paul Millar wrote:
> I think really we want a separate module that can be linked in as part
> of the build process.  I've always thought (albeit secretly) that having
> functions inside include/wine/test.h is a bit of a hack.

So I see two ways to solve this:

1, writing winetest_atoi() inside a separate file (lets say atoi.c) and
duplicating it across some parts of the Winetest (mlang, ole32).

2, linking dinamycally these Winetest binaries to shlwapi.dll, which
implements StrToIntA() already:

| [s2 at katleriai wine]$ grep -B15 -A1 WINAPI.*StrToIntA dlls/shlwapi/string.c
| /*************************************************************************
|  * StrToIntA    [SHLWAPI.@]
|  *
|  * Read a signed integer from a string.
|  *
|  * PARAMS
|  *  lpszStr [I] String to read integer from
|  *
|  * RETURNS
|  *   The signed integer value represented by the string, or 0 if no integer is
|  *   present.
|  *
|  * NOTES
|  *  No leading space is allowed before the number, although a leading '-' is.
|  */
| int WINAPI StrToIntA(LPCSTR lpszStr)
| {

Is the latter way acceptable, what does the crew think?

>   'fraid your code also doesn't handle text (of any type) after the
> numbers;  c.f.
>   http://www.astro.gla.ac.uk/users/paulm/test_atoi.c

Thanks for the test suite, Paul.

But how come, not all Winetest parts misses this import (NTDLL.DLL:atoi)?
Given the code:

| [s2 at katleriai wine]$ grep -A16 int.*main\( include/wine/test.h 
| int main( int argc, char **argv )
| {
|     char *p;
| 
|     setvbuf (stdout, NULL, _IONBF, 0);
| 
|     winetest_argc = argc;
|     winetest_argv = argv;
| 
|     if ((p = getenv( "WINETEST_PLATFORM" ))) winetest_platform = p;
|     if ((p = getenv( "WINETEST_DEBUG" ))) winetest_debug = atoi(p);
|     if ((p = getenv( "WINETEST_INTERACTIVE" ))) winetest_interactive = atoi(p);
|     if ((p = getenv( "WINETEST_REPORT_SUCCESS"))) report_success = atoi(p);
|     if (!argv[1]) usage( argv[0] );
| 
|     return run_test(argv[1]);
| }

why isn't miss happening in every Winetest part?




More information about the wine-devel mailing list