mirror of
https://github.com/reactos/reactos.git
synced 2024-09-05 02:07:06 +00:00
![Timo Kreuzer](/assets/img/avatar_default.png)
We previously used 2 different versions: one from wine and one from mingw-w64. The former was used in msvcrt, the latter was statically compiled into the executable. When using MS libs, there is only one _matherr, which is statically linked into the executable and does nothing (it's not really a function for users to be called). _setusermatherror should only exist in msvcrt and not statically, which wouldn't work at all.
37 lines
743 B
C
37 lines
743 B
C
/*
|
|
* PROJECT: ReactOS CRT library
|
|
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
|
* PURPOSE: Implementation of __setusermatherr and _invoke_user_matherr
|
|
* COPYRIGHT: Copyright 2021 Timo Kreuzer <timo.kreuzer@reactos.org>
|
|
*/
|
|
|
|
// DO NOT SYNC WITH WINE OR MINGW32
|
|
|
|
#include <math.h>
|
|
|
|
/* MS headers have this in corecrt_startup.h */
|
|
typedef int (*_UserMathErrorFunctionPointer)(struct _exception *);
|
|
|
|
static _UserMathErrorFunctionPointer user_matherr = NULL;;
|
|
|
|
void
|
|
__cdecl
|
|
__setusermatherr(_UserMathErrorFunctionPointer func)
|
|
{
|
|
user_matherr = func;
|
|
}
|
|
|
|
int
|
|
__cdecl
|
|
_invoke_user_matherr(struct _exception *e)
|
|
{
|
|
if (user_matherr != NULL)
|
|
{
|
|
return user_matherr(e);
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|