[ros-bugs] [Bug 3548] Strawberry Perl 5.10.0.1 cannot open perl script due to unknown error 123
ReactOS.Bugzilla at www.reactos.org
ReactOS.Bugzilla at www.reactos.org
Wed Jul 23 02:03:30 CEST 2008
http://www.reactos.org/bugzilla/show_bug.cgi?id=3548
--- Comment #2 from jeanmichel.123 <jeanmichel.123 at free.Fr> 2008-07-23 02:03:30 CET ---
(In reply to comment #1)
> After replacing msvcrt.dll by a compatible one, the bug change:
> it is no more «cannot open perl script due to unknown error 123»
> but: «strxfrm() gets absurd.»
>
> Several hypothesis are possible:
> + it is a random bug
> + the bug depends from a previous action
> + there is two bugs: the error 123 in msvcrt.dll and the strxfrm elsewhere.
The strxfrm issue is more probably an incompatibilty with ReactOS kernel.dll
and ms compatible msvcrt.dll.
relative to one of the following function exported by kernel.dll:
MultiByteToWideChar
WideCharToMultiByte
MultiByteToWideChar
WideCharToMultiByte
GetCPInfo
GetACP
GetOEMCP
LCMapStringA
LCMapStringW
CompareStringA
CompareStringW
LCMapStringA
LCMapStringW
or less probably
FreeEnvironmentStringsA
FreeEnvironmentStringsW
GetEnvironmentStrings
GetEnvironmentStringsW
GetStringTypeA
GetStringTypeW
or less probably
IsValidLocale
GetLocaleInfoA
EnumSystemLocalesA
GetLocaleInfoW
IsValidCodePage
the perl test on which compatible msvcrt.dll fails is (based on perl 5.8):
{
/* 2: at most so many chars ('a', 'b'). */
/* 50: surely no system expands a char more. */
#define XFRMBUFSIZE (2 * 50)
char xbuf[XFRMBUFSIZE];
Size_t fa = strxfrm(xbuf, "a", XFRMBUFSIZE);
Size_t fb = strxfrm(xbuf, "ab", XFRMBUFSIZE);
SSize_t mult = fb - fa;
if (mult < 1)
Perl_croak(aTHX_ "strxfrm() gets absurd");
}
Looking at the ReactOS source code of strxfrm shows it is only planned to work
as posix, but with no localization:
#else
size_t strxfrm( char *dest, const char *src, size_t n )
{
int ret = LCMapStringA(
This probably mean some unimplemented function in LCMapStringA from kernel.dll:
./dll/win32/kernel32/misc/lang.c
* @unimplemented */ int STDCALL LCMapStringA (
--
Configure bugmail: http://www.reactos.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Ros-bugs
mailing list