Module: wine Branch: master Commit: dfca87db71dcade741ef95dededce37c53479578 URL: http://source.winehq.org/git/wine.git/?a=commit;h=dfca87db71dcade741ef95dede...
Author: Piotr Caban piotr@codeweavers.com Date: Fri Dec 21 13:37:47 2012 +0100
msvcrt: Added _set_fmode and _get_fmode implementation.
---
dlls/msvcr100/msvcr100.spec | 4 ++-- dlls/msvcr80/msvcr80.spec | 4 ++-- dlls/msvcr90/msvcr90.spec | 4 ++-- dlls/msvcrt/data.c | 25 +++++++++++++++++++++++++ dlls/msvcrt/msvcrt.spec | 4 ++-- 5 files changed, 33 insertions(+), 8 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 8f0ecdb..38ae28a 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 b4eaf7b..c9469e7 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 90b4b04..bf54f0a 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 94254ab..a9505ed 100644 --- a/dlls/msvcrt/data.c +++ b/dlls/msvcrt/data.c @@ -186,6 +186,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.@) */ unsigned int* CDECL __p__osver(void) { return &MSVCRT__osver; } diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 79f6511..6802104 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)