diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 8f0ecdbfb8e..38ae28af4f0 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -868,7 +868,7 @@ @ cdecl _get_doserrno(ptr) msvcrt._get_doserrno @ stub _get_dstbias @ cdecl _get_errno(ptr) msvcrt._get_errno -@ stub _get_fmode +@ cdecl _get_fmode(ptr) msvcrt._get_fmode @ cdecl _get_heap_handle() msvcrt._get_heap_handle @ cdecl _get_invalid_parameter_handler() msvcrt._get_invalid_parameter_handler @ cdecl _get_osfhandle(long) msvcrt._get_osfhandle @@ -1266,7 +1266,7 @@ @ cdecl _set_doserrno(long) msvcrt._set_doserrno @ cdecl _set_errno(long) msvcrt._set_errno @ cdecl _set_error_mode(long) msvcrt._set_error_mode -@ stub _set_fmode +@ cdecl _set_fmode(long) msvcrt._set_fmode @ cdecl _set_invalid_parameter_handler(ptr) msvcrt._set_invalid_parameter_handler @ stub _set_malloc_crt_max_wait @ stub _set_output_format diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index b4eaf7bc54a..c9469e7d587 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -523,7 +523,7 @@ @ cdecl _get_doserrno(ptr) msvcrt._get_doserrno @ stub _get_dstbias @ cdecl _get_errno(ptr) msvcrt._get_errno -@ stub _get_fmode +@ cdecl _get_fmode(ptr) msvcrt._get_fmode @ cdecl _get_heap_handle() msvcrt._get_heap_handle @ cdecl _get_invalid_parameter_handler() msvcrt._get_invalid_parameter_handler @ cdecl _get_osfhandle(long) msvcrt._get_osfhandle @@ -928,7 +928,7 @@ @ cdecl _set_doserrno(long) msvcrt._set_doserrno @ cdecl _set_errno(long) msvcrt._set_errno @ cdecl _set_error_mode(long) msvcrt._set_error_mode -@ stub _set_fmode +@ cdecl _set_fmode(long) msvcrt._set_fmode @ cdecl _set_invalid_parameter_handler(ptr) msvcrt._set_invalid_parameter_handler @ stub _set_malloc_crt_max_wait @ stub _set_output_format diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 90b4b04e3fc..bf54f0af919 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -518,7 +518,7 @@ @ cdecl _get_doserrno(ptr) msvcrt._get_doserrno @ stub _get_dstbias @ cdecl _get_errno(ptr) msvcrt._get_errno -@ stub _get_fmode +@ cdecl _get_fmode(ptr) msvcrt._get_fmode @ cdecl _get_heap_handle() msvcrt._get_heap_handle @ cdecl _get_invalid_parameter_handler() msvcrt._get_invalid_parameter_handler @ cdecl _get_osfhandle(long) msvcrt._get_osfhandle @@ -921,7 +921,7 @@ @ cdecl _set_doserrno(long) msvcrt._set_doserrno @ cdecl _set_errno(long) msvcrt._set_errno @ cdecl _set_error_mode(long) msvcrt._set_error_mode -@ stub _set_fmode +@ cdecl _set_fmode(long) msvcrt._set_fmode @ cdecl _set_invalid_parameter_handler(ptr) msvcrt._set_invalid_parameter_handler @ stub _set_malloc_crt_max_wait @ stub _set_output_format diff --git a/dlls/msvcrt/data.c b/dlls/msvcrt/data.c index 94254aba958..a9505ed4b01 100644 --- a/dlls/msvcrt/data.c +++ b/dlls/msvcrt/data.c @@ -185,6 +185,31 @@ int CDECL _get_wpgmptr(WCHAR** p) */ unsigned int* CDECL __p__fmode(void) { return &MSVCRT__fmode; } +/*********************************************************************** + * _set_fmode (MSVCRT.@) + */ +int CDECL _set_fmode(int mode) +{ + /* TODO: support _O_WTEXT */ + if(!MSVCRT_CHECK_PMT(mode==MSVCRT__O_TEXT || mode==MSVCRT__O_BINARY)) + return MSVCRT_EINVAL; + + MSVCRT__fmode = mode; + return 0; +} + +/*********************************************************************** + * _get_fmode (MSVCRT.@) + */ +int CDECL _get_fmode(int *mode) +{ + if(!MSVCRT_CHECK_PMT(mode)) + return MSVCRT_EINVAL; + + *mode = MSVCRT__fmode; + return 0; +} + /*********************************************************************** * __p__osver (MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 79f651157ed..6802104051b 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -474,7 +474,7 @@ # stub _get_environ(ptr) @ cdecl _get_errno(ptr) # stub _get_fileinfo(ptr) -# stub _get_fmode(ptr) +@ cdecl _get_fmode(ptr) @ cdecl _get_heap_handle() @ cdecl _get_osfhandle(long) MSVCRT__get_osfhandle @ cdecl _get_osplatform(ptr) MSVCRT__get_osplatform @@ -867,7 +867,7 @@ @ cdecl _set_errno(long) @ cdecl _set_error_mode(long) # stub _set_fileinfo(long) -# stub _set_fmode(long) +@ cdecl _set_fmode(long) # stub _set_output_format(long) @ cdecl _set_sbh_threshold(long) @ cdecl _seterrormode(long)