mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 01:39:30 +00:00
The lstr* functions don't reset the last error on an exception. Also they handle more than just access violation exceptions.
This makes us passing (at least) one more sub test of a Wine test (user32_winetest text) Behaviour verified under Windows XP SP2. svn path=/trunk/; revision=33484
This commit is contained in:
parent
858f98f040
commit
abab705b13
1 changed files with 8 additions and 41 deletions
|
@ -10,15 +10,6 @@
|
|||
|
||||
#include <k32.h>
|
||||
|
||||
static _SEH_FILTER(lstr_page_fault)
|
||||
{
|
||||
if (_SEH_GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION)
|
||||
return _SEH_EXECUTE_HANDLER;
|
||||
else
|
||||
return _SEH_CONTINUE_SEARCH;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -98,10 +89,7 @@ lstrcpynA(
|
|||
|
||||
Ret = lpString1;
|
||||
}
|
||||
_SEH_EXCEPT(lstr_page_fault)
|
||||
{
|
||||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
}
|
||||
_SEH_HANDLE
|
||||
_SEH_END;
|
||||
|
||||
return Ret;
|
||||
|
@ -125,10 +113,7 @@ lstrcpyA(
|
|||
memmove(lpString1, lpString2, strlen(lpString2) + 1);
|
||||
Ret = lpString1;
|
||||
}
|
||||
_SEH_EXCEPT(lstr_page_fault)
|
||||
{
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
_SEH_END;
|
||||
|
||||
return Ret;
|
||||
|
@ -151,10 +136,7 @@ lstrcatA(
|
|||
{
|
||||
Ret = strcat(lpString1, lpString2);
|
||||
}
|
||||
_SEH_EXCEPT(lstr_page_fault)
|
||||
{
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
_SEH_END;
|
||||
|
||||
return Ret;
|
||||
|
@ -177,10 +159,7 @@ lstrlenA(
|
|||
{
|
||||
Ret = strlen(lpString);
|
||||
}
|
||||
_SEH_EXCEPT(lstr_page_fault)
|
||||
{
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
_SEH_END;
|
||||
|
||||
return Ret;
|
||||
|
@ -266,10 +245,7 @@ lstrcpynW(
|
|||
|
||||
Ret = lpString1;
|
||||
}
|
||||
_SEH_EXCEPT(lstr_page_fault)
|
||||
{
|
||||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
}
|
||||
_SEH_HANDLE
|
||||
_SEH_END;
|
||||
|
||||
return Ret;
|
||||
|
@ -292,10 +268,7 @@ lstrcpyW(
|
|||
{
|
||||
Ret = wcscpy(lpString1, lpString2);
|
||||
}
|
||||
_SEH_EXCEPT(lstr_page_fault)
|
||||
{
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
_SEH_END;
|
||||
|
||||
return Ret;
|
||||
|
@ -318,10 +291,7 @@ lstrcatW(
|
|||
{
|
||||
Ret = wcscat(lpString1, lpString2);
|
||||
}
|
||||
_SEH_EXCEPT(lstr_page_fault)
|
||||
{
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
_SEH_END;
|
||||
|
||||
return Ret;
|
||||
|
@ -343,10 +313,7 @@ lstrlenW(
|
|||
{
|
||||
Ret = wcslen(lpString);
|
||||
}
|
||||
_SEH_EXCEPT(lstr_page_fault)
|
||||
{
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
_SEH_END;
|
||||
|
||||
return Ret;
|
||||
|
|
Loading…
Reference in a new issue