winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
November 2020
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
1 participants
851 discussions
Start a n
N
ew thread
Kevin Puetz : winegcc: Implement -Wl,--out-implib.
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: 9faa5eeddd24a057d9ff522259c9dbdc6203c098 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=9faa5eeddd24a057d9ff5222…
Author: Kevin Puetz <PuetzKevinA(a)JohnDeere.com> Date: Wed Nov 25 13:41:43 2020 -0600 winegcc: Implement -Wl,--out-implib. This allows a CMake toolchain (or other caller) to treat winegcc like MinGW, specifying that it produce a separate file for imports, e.g. set(CMAKE_IMPORT_LIBRARY_PREFIX lib) set(CMAKE_IMPORT_LIBRARY_SUFFIX .a) string(APPEND CMAKE_C_CREATE_SHARED_LIBRARY " -Wl,--out-implib,<TARGET_IMPLIB>") Signed-off-by: Kevin Puetz <PuetzKevinA(a)JohnDeere.com> Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- tools/winegcc/winegcc.c | 39 ++++++++++++++++++++++++++++++++++++++- tools/winegcc/winegcc.man.in | 2 ++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index 9268a5dfd1d..e9707a73774 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -141,6 +141,7 @@ static const char* app_loader_template = static const char *output_file_name; static const char *output_debug_file; +static const char *output_implib; static int keep_generated = 0; static strarray* tmp_files; #ifdef HAVE_SIGSET_T @@ -231,6 +232,7 @@ struct options const char* entry_point; const char* prelink; const char* debug_file; + const char* out_implib; strarray* prefix; strarray* lib_dirs; strarray* args; @@ -273,6 +275,7 @@ static void cleanup_output_files(void) { if (output_file_name) unlink( output_file_name ); if (output_debug_file) unlink( output_debug_file ); + if (output_implib) unlink( output_implib ); } static void clean_temp_files(void) @@ -522,6 +525,9 @@ static strarray *get_link_args( struct options *opts, const char *output_name ) if (opts->debug_file && strendswith(opts->debug_file, ".pdb")) strarray_add(link_args, strmake("-Wl,-pdb,%s", opts->debug_file)); + if (opts->out_implib) + strarray_add(link_args, strmake("-Wl,--out-implib,%s", opts->out_implib)); + if (!try_link( opts->prefix, link_args, "-Wl,--file-alignment,0x1000" )) strarray_add( link_args, strmake( "-Wl,--file-alignment,%s", opts->file_align ? opts->file_align : "0x1000" )); @@ -554,6 +560,10 @@ static strarray *get_link_args( struct options *opts, const char *output_name ) strarray_add(link_args, "-Wl,-debug"); strarray_add(link_args, strmake("-Wl,-pdb:%s", opts->debug_file)); } + + if (opts->out_implib) + strarray_add(link_args, strmake("-Wl,-implib:%s", opts->out_implib)); + else if (!opts->strip) strarray_add(link_args, "-Wl,-debug:dwarf"); strarray_add( link_args, strmake( "-Wl,-filealign:%s", opts->file_align ? opts->file_align : "0x1000" )); @@ -1085,7 +1095,7 @@ static void add_library( struct options *opts, strarray *lib_dirs, strarray *fil static void build(struct options* opts) { strarray *lib_dirs, *files; - strarray *spec_args, *link_args, *tool; + strarray *spec_args, *link_args, *implib_args, *tool; char *output_file, *output_path; const char *spec_o_name, *libgcc = NULL; const char *output_name, *spec_file, *lang; @@ -1430,6 +1440,7 @@ static void build(struct options* opts) output_file_name = output_path; output_debug_file = opts->debug_file; + output_implib = opts->out_implib; atexit( cleanup_output_files ); spawn(opts->prefix, link_args, 0); @@ -1460,6 +1471,26 @@ static void build(struct options* opts) strarray_free(tool); } + if (opts->out_implib && !is_pe) + { + if (!spec_file) + error("--out-implib requires a .spec or .def file\n"); + + implib_args = get_winebuild_args( opts ); + if ((tool = build_tool_name( opts, TOOL_CC ))) strarray_add( implib_args, strmake( "--cc-cmd=%s", strarray_tostring( tool, " " ))); + if ((tool = build_tool_name( opts, TOOL_LD ))) strarray_add( implib_args, strmake( "--ld-cmd=%s", strarray_tostring( tool, " " ))); + + strarray_add(implib_args, "--implib"); + strarray_add(implib_args, "-o"); + strarray_add(implib_args, opts->out_implib); + strarray_add(implib_args, "--export"); + strarray_add(implib_args, spec_file); + strarray_addall(implib_args, opts->winebuild_args); + + spawn(opts->prefix, implib_args, 0); + strarray_free (implib_args); + } + /* set the base address with prelink if linker support is not present */ if (opts->prelink && !opts->target) { @@ -1972,6 +2003,11 @@ int main(int argc, char **argv) strarray_add( opts.files, strmake( "-Wl,%s", Wl->base[j] )); continue; } + if (!strcmp(Wl->base[j], "--out-implib")) + { + opts.out_implib = strdup( Wl->base[++j] ); + continue; + } if (!strcmp(Wl->base[j], "-static")) linking = -1; strarray_add(opts.linker_args, strmake("-Wl,%s",Wl->base[j])); } @@ -2056,5 +2092,6 @@ int main(int argc, char **argv) output_file_name = NULL; output_debug_file = NULL; + output_implib = NULL; return 0; } diff --git a/tools/winegcc/winegcc.man.in b/tools/winegcc/winegcc.man.in index 8a14dd59fd1..831a98323cf 100644 --- a/tools/winegcc/winegcc.man.in +++ b/tools/winegcc/winegcc.man.in @@ -72,6 +72,8 @@ Do not add the winecrt0 library when linking. .IP \fB-Wb,\fIoption\fR Pass an option to winebuild. If \fIoption\fR contains commas, it is split into multiple options at the commas. +.IP \fB-Wl,--out-implib,\fIlib.a\fR +When linking a dll, also create its corresponding import library. .SH ENVIRONMENT .TP .B WINEBUILD
1
0
0
0
Zebediah Figura : mp3dmod/tests: Add more tests for GetInputSizeInfo() and GetOutputSizeInfo().
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: 325248830767e959ae8b19d3b1d3023a0f673c31 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=325248830767e959ae8b19d3…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Nov 26 10:52:42 2020 -0600 mp3dmod/tests: Add more tests for GetInputSizeInfo() and GetOutputSizeInfo(). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mp3dmod/tests/mp3dmod.c | 72 +++++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 28 deletions(-) diff --git a/dlls/mp3dmod/tests/mp3dmod.c b/dlls/mp3dmod/tests/mp3dmod.c index 61002d59661..7bc691e2aa4 100644 --- a/dlls/mp3dmod/tests/mp3dmod.c +++ b/dlls/mp3dmod/tests/mp3dmod.c @@ -377,9 +377,8 @@ static void test_aggregation(void) static void test_stream_info(void) { - static const MPEGLAYER3WAVEFORMAT input_format = + MPEGLAYER3WAVEFORMAT input_format = { - .wfx.nChannels = 2, .wfx.nSamplesPerSec = 48000, }; DMO_MEDIA_TYPE input_mt = @@ -391,13 +390,9 @@ static void test_stream_info(void) .pbFormat = (BYTE *)&input_format, }; - static const WAVEFORMATEX output_format = + WAVEFORMATEX output_format = { - .nChannels = 1, .nSamplesPerSec = 48000, - .nAvgBytesPerSec = 2 * 48000, - .nBlockAlign = 2, - .wBitsPerSample = 16, }; DMO_MEDIA_TYPE output_mt = { @@ -407,6 +402,7 @@ static void test_stream_info(void) }; DWORD input_count, output_count, flags, size, lookahead, alignment; + WORD channels, depth; IMediaObject *dmo; HRESULT hr; @@ -434,29 +430,49 @@ static void test_stream_info(void) hr = IMediaObject_GetOutputSizeInfo(dmo, 0, &size, &alignment); ok(hr == DMO_E_TYPE_NOT_SET, "Got hr %#x.\n", hr); - hr = IMediaObject_SetInputType(dmo, 0, &input_mt, 0); - ok(hr == S_OK, "Got hr %#x.\n", hr); - - hr = IMediaObject_GetInputSizeInfo(dmo, 0, &size, &lookahead, &alignment); - ok(hr == DMO_E_TYPE_NOT_SET, "Got hr %#x.\n", hr); - hr = IMediaObject_GetOutputSizeInfo(dmo, 0, &size, &alignment); - ok(hr == DMO_E_TYPE_NOT_SET, "Got hr %#x.\n", hr); - - hr = IMediaObject_SetOutputType(dmo, 0, &output_mt, 0); - ok(hr == S_OK, "Got hr %#x.\n", hr); + for (channels = 1; channels <= 2; ++channels) + { + input_format.wfx.nChannels = channels; + output_format.nChannels = channels; - size = lookahead = alignment = 0xdeadbeef; - hr = IMediaObject_GetInputSizeInfo(dmo, 0, &size, &lookahead, &alignment); - ok(hr == S_OK, "Got hr %#x.\n", hr); - ok(!size, "Got size %u.\n", size); - ok(lookahead == 0xdeadbeef, "Got lookahead %u.\n", lookahead); - ok(alignment == 1, "Got alignment %u.\n", alignment); + hr = IMediaObject_SetInputType(dmo, 0, &input_mt, 0); + ok(hr == S_OK, "Got hr %#x.\n", hr); - size = alignment = 0xdeadbeef; - hr = IMediaObject_GetOutputSizeInfo(dmo, 0, &size, &alignment); - ok(hr == S_OK, "Got hr %#x.\n", hr); - ok(size == 1152 * 4, "Got size %u.\n", size); - ok(alignment == 1, "Got alignment %u.\n", alignment); + hr = IMediaObject_GetInputSizeInfo(dmo, 0, &size, &lookahead, &alignment); + ok(hr == DMO_E_TYPE_NOT_SET, "Got hr %#x.\n", hr); + hr = IMediaObject_GetOutputSizeInfo(dmo, 0, &size, &alignment); + ok(hr == DMO_E_TYPE_NOT_SET, "Got hr %#x.\n", hr); + + for (depth = 8; depth <= 16; depth += 8) + { + output_format.wBitsPerSample = depth; + output_format.nBlockAlign = channels * depth / 8; + output_format.nAvgBytesPerSec = 48000 * output_format.nBlockAlign; + + hr = IMediaObject_SetOutputType(dmo, 0, &output_mt, 0); + ok(hr == S_OK, "Got hr %#x.\n", hr); + + size = lookahead = alignment = 0xdeadbeef; + hr = IMediaObject_GetInputSizeInfo(dmo, 0, &size, &lookahead, &alignment); + ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(!size || broken(size == output_format.nBlockAlign) /* Vista */, + "Got size %u for %u channels, depth %u.\n", size, channels, depth); + ok(lookahead == 0xdeadbeef, "Got lookahead %u.\n", lookahead); + ok(alignment == 1, "Got alignment %u.\n", alignment); + + size = alignment = 0xdeadbeef; + hr = IMediaObject_GetOutputSizeInfo(dmo, 0, &size, &alignment); + ok(hr == S_OK, "Got hr %#x.\n", hr); + /* Vista returns the expected size; all later versions act as if + * channels == 2 for some reason. */ + ok(size >= channels * 1152 * depth / 8, + "Got size %u for %u channels, depth %u.\n", size, channels, depth); + ok(alignment == 1, "Got alignment %u.\n", alignment); + } + + hr = IMediaObject_SetOutputType(dmo, 0, &output_mt, DMO_SET_TYPEF_CLEAR); + ok(hr == S_OK, "Got hr %#x.\n", hr); + } IMediaObject_Release(dmo); }
1
0
0
0
Gabriel Ivăncescu : msvcrt: Fix signature of _mbscmp.
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: 33af64c57c9515d9bd292617d618a463fedaf6d3 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=33af64c57c9515d9bd292617…
Author: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Date: Thu Nov 26 15:58:09 2020 +0200 msvcrt: Fix signature of _mbscmp. This function doesn't take a locale argument. Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcrt/mbcs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 0d7a5c8f643..af5ab698f23 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -931,7 +931,7 @@ int CDECL _mbscmp_l(const unsigned char* str, const unsigned char* cmp, _locale_ /********************************************************************* * _mbscmp(MSVCRT.@) */ -int CDECL _mbscmp(const unsigned char* str, const unsigned char* cmp, _locale_t locale) +int CDECL _mbscmp(const unsigned char* str, const unsigned char* cmp) { return _mbscmp_l(str, cmp, NULL); }
1
0
0
0
Piotr Caban : msvcrt: Remove MSVCRT prefix from locale functions.
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: 17f3f548861dc2c7502690b7d3183e3b9b8a5510 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=17f3f548861dc2c7502690b7…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Nov 26 19:19:24 2020 +0100 msvcrt: Remove MSVCRT prefix from locale functions. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/crtdll/crtdll.spec | 2 +- dlls/msvcr100/msvcr100.spec | 14 +++++++------- dlls/msvcr110/msvcr110.spec | 14 +++++++------- dlls/msvcr120/msvcr120.spec | 14 +++++++------- dlls/msvcr70/msvcr70.spec | 2 +- dlls/msvcr71/msvcr71.spec | 2 +- dlls/msvcr80/msvcr80.spec | 14 +++++++------- dlls/msvcr90/msvcr90.spec | 14 +++++++------- dlls/msvcrt/locale.c | 20 ++++++++++---------- dlls/msvcrt/main.c | 3 ++- dlls/msvcrt/mbcs.c | 2 +- dlls/msvcrt/msvcrt.h | 3 +-- dlls/msvcrt/msvcrt.spec | 8 ++++---- dlls/msvcrtd/msvcrtd.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 14 +++++++------- 15 files changed, 64 insertions(+), 64 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=17f3f548861dc2c75026…
1
0
0
0
Piotr Caban : msvcrt: Remove MSVCRT__locale_t type.
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: 5114c85a0365d29f49c63ca967dfd2e9159c6338 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5114c85a0365d29f49c63ca9…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Nov 26 19:19:18 2020 +0100 msvcrt: Remove MSVCRT__locale_t type. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcrt/console.c | 4 +- dlls/msvcrt/ctype.c | 32 +++++----- dlls/msvcrt/file.c | 26 ++++---- dlls/msvcrt/locale.c | 22 +++---- dlls/msvcrt/mbcs.c | 82 ++++++++++++------------ dlls/msvcrt/msvcrt.h | 67 +++++++++---------- dlls/msvcrt/printf.h | 22 +++---- dlls/msvcrt/scanf.c | 48 +++++++------- dlls/msvcrt/scanf.h | 32 +++++----- dlls/msvcrt/string.c | 56 ++++++++-------- dlls/msvcrt/time.c | 10 +-- dlls/msvcrt/wcs.c | 174 +++++++++++++++++++++++++------------------------- 12 files changed, 284 insertions(+), 291 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=5114c85a0365d29f49c6…
1
0
0
0
Piotr Caban : msvcrt: Remove MSVCRT_pthreadmbcinfo type.
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: d496099c74ba7ce4d445a14dceb22b2de2ab0ec5 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=d496099c74ba7ce4d445a14d…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Nov 26 19:19:13 2020 +0100 msvcrt: Remove MSVCRT_pthreadmbcinfo type. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcrt/locale.c | 6 +++--- dlls/msvcrt/mbcs.c | 32 ++++++++++++++++---------------- dlls/msvcrt/msvcrt.h | 16 +++++++--------- 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/dlls/msvcrt/locale.c b/dlls/msvcrt/locale.c index 6ceaa3c0ef0..86d4a2dbe8f 100644 --- a/dlls/msvcrt/locale.c +++ b/dlls/msvcrt/locale.c @@ -656,7 +656,7 @@ pthreadlocinfo CDECL get_locinfo(void) { } /* INTERNAL: returns pthreadmbcinfo struct */ -MSVCRT_pthreadmbcinfo CDECL get_mbcinfo(void) { +pthreadmbcinfo CDECL get_mbcinfo(void) { thread_data_t *data = msvcrt_get_thread_data(); update_thread_locale(data); return data->mbcinfo; @@ -1139,8 +1139,8 @@ void free_locinfo(pthreadlocinfo locinfo) MSVCRT_free(locinfo); } -/* INTERNAL: frees MSVCRT_pthreadmbcinfo struct */ -void free_mbcinfo(MSVCRT_pthreadmbcinfo mbcinfo) +/* INTERNAL: frees pthreadmbcinfo struct */ +void free_mbcinfo(pthreadmbcinfo mbcinfo) { if(!mbcinfo) return; diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 549c94ffd98..101d47dab6e 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -88,7 +88,7 @@ static const unsigned char mbctombb_932_kana[] = { static MSVCRT_wchar_t msvcrt_mbc_to_wc_l(unsigned int ch, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; MSVCRT_wchar_t chW; char mbch[2]; int n_chars; @@ -210,9 +210,9 @@ int CDECL ___mb_cur_max_l_func(MSVCRT__locale_t locale) } #endif -MSVCRT_threadmbcinfo* create_mbcinfo(int cp, LCID lcid, MSVCRT_threadmbcinfo *old_mbcinfo) +threadmbcinfo* create_mbcinfo(int cp, LCID lcid, threadmbcinfo *old_mbcinfo) { - MSVCRT_threadmbcinfo *mbcinfo; + threadmbcinfo *mbcinfo; int newcp; CPINFO cpi; BYTE *bytes; @@ -229,7 +229,7 @@ MSVCRT_threadmbcinfo* create_mbcinfo(int cp, LCID lcid, MSVCRT_threadmbcinfo *ol return old_mbcinfo; } - mbcinfo = MSVCRT_malloc(sizeof(MSVCRT_threadmbcinfo)); + mbcinfo = MSVCRT_malloc(sizeof(threadmbcinfo)); if(!mbcinfo) return NULL; mbcinfo->refcount = 1; @@ -385,7 +385,7 @@ MSVCRT_threadmbcinfo* create_mbcinfo(int cp, LCID lcid, MSVCRT_threadmbcinfo *ol int CDECL _setmbcp(int cp) { thread_data_t *data = msvcrt_get_thread_data(); - MSVCRT_threadmbcinfo *mbcinfo; + threadmbcinfo *mbcinfo; mbcinfo = create_mbcinfo(cp, -1, get_mbcinfo()); if(!mbcinfo) @@ -619,7 +619,7 @@ unsigned char* CDECL _mbsninc(const unsigned char* str, MSVCRT_size_t num) MSVCRT_size_t CDECL _mbsnlen_l(const unsigned char *str, MSVCRT_size_t maxsize, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; MSVCRT_size_t i = 0, len = 0; if(!locale) @@ -903,7 +903,7 @@ unsigned char* CDECL _mbsnbcpy(unsigned char* dst, const unsigned char* src, MSV */ int CDECL _mbscmp_l(const unsigned char* str, const unsigned char* cmp, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; if (!str || !cmp) return INT_MAX; @@ -941,7 +941,7 @@ int CDECL _mbscmp(const unsigned char* str, const unsigned char* cmp, MSVCRT__lo */ int CDECL _mbsnbicoll_l(const unsigned char *str1, const unsigned char *str2, MSVCRT_size_t len, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; if(!locale) mbcinfo = get_mbcinfo(); @@ -987,7 +987,7 @@ int CDECL _mbsicoll(const unsigned char* str, const unsigned char* cmp) */ int CDECL _mbsnbcoll_l(const unsigned char *str1, const unsigned char *str2, MSVCRT_size_t len, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; if(!locale) mbcinfo = get_mbcinfo(); @@ -1326,7 +1326,7 @@ unsigned char* CDECL _mbsrchr(const unsigned char* s, unsigned int x) unsigned char* CDECL _mbstok_s_l(unsigned char *str, const unsigned char *delim, unsigned char **ctx, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; unsigned int c; if(!MSVCRT_CHECK_PMT(delim != NULL)) return NULL; @@ -1426,7 +1426,7 @@ unsigned int CDECL _mbbtombc(unsigned int c) */ int CDECL _ismbbkana_l(unsigned int c, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; if(locale) mbcinfo = locale->mbcinfo; @@ -1640,7 +1640,7 @@ int CDECL _ismbckata(unsigned int c) */ int CDECL _ismbblead_l(unsigned int c, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; if(!locale) mbcinfo = get_mbcinfo(); @@ -1663,7 +1663,7 @@ int CDECL _ismbblead(unsigned int c) */ int CDECL _ismbbtrail_l(unsigned int c, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; if(!locale) mbcinfo = get_mbcinfo(); @@ -2723,7 +2723,7 @@ unsigned int CDECL _mbctokata(unsigned int c) */ int CDECL _ismbcl0_l(unsigned int c, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; if(!locale) mbcinfo = get_mbcinfo(); @@ -2752,7 +2752,7 @@ int CDECL _ismbcl0(unsigned int c) */ int CDECL _ismbcl1_l(unsigned int c, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; if(!locale) mbcinfo = get_mbcinfo(); @@ -2781,7 +2781,7 @@ int CDECL _ismbcl1(unsigned int c) */ int CDECL _ismbcl2_l(unsigned int c, MSVCRT__locale_t locale) { - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; if(!locale) mbcinfo = get_mbcinfo(); diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index ca6ffe5f87e..5ecffc7f8ab 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -121,7 +121,7 @@ typedef struct __lc_time_data { char data[1]; } __lc_time_data; -typedef struct MSVCRT_threadmbcinfostruct { +typedef struct threadmbcinfostruct { int refcount; int mbcodepage; int ismbcodepage; @@ -129,14 +129,12 @@ typedef struct MSVCRT_threadmbcinfostruct { unsigned short mbulinfo[6]; unsigned char mbctype[257]; unsigned char mbcasemap[256]; -} MSVCRT_threadmbcinfo; - -typedef struct MSVCRT_threadmbcinfostruct *MSVCRT_pthreadmbcinfo; +} threadmbcinfo; typedef struct MSVCRT_localeinfo_struct { pthreadlocinfo locinfo; - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; } MSVCRT__locale_tstruct, *MSVCRT__locale_t; typedef struct MSVCRT__onexit_table_t @@ -194,7 +192,7 @@ struct __thread_data { void *unk4[3]; EXCEPTION_POINTERS *xcptinfo; int fpecode; - MSVCRT_pthreadmbcinfo mbcinfo; + pthreadmbcinfo mbcinfo; pthreadlocinfo locinfo; int locale_flags; int unk5[1]; @@ -934,11 +932,11 @@ extern MSVCRT__locale_t MSVCRT_locale; MSVCRT__locale_t CDECL get_current_locale_noalloc(MSVCRT__locale_t locale) DECLSPEC_HIDDEN; void CDECL free_locale_noalloc(MSVCRT__locale_t locale) DECLSPEC_HIDDEN; pthreadlocinfo CDECL get_locinfo(void) DECLSPEC_HIDDEN; -MSVCRT_pthreadmbcinfo CDECL get_mbcinfo(void) DECLSPEC_HIDDEN; +pthreadmbcinfo CDECL get_mbcinfo(void) DECLSPEC_HIDDEN; void __cdecl MSVCRT__free_locale(MSVCRT__locale_t); -MSVCRT_threadmbcinfo* create_mbcinfo(int, LCID, MSVCRT_threadmbcinfo*) DECLSPEC_HIDDEN; +threadmbcinfo* create_mbcinfo(int, LCID, threadmbcinfo*) DECLSPEC_HIDDEN; void free_locinfo(pthreadlocinfo) DECLSPEC_HIDDEN; -void free_mbcinfo(MSVCRT_pthreadmbcinfo) DECLSPEC_HIDDEN; +void free_mbcinfo(pthreadmbcinfo) DECLSPEC_HIDDEN; int __cdecl __crtLCMapStringA(LCID, DWORD, const char*, int, char*, int, unsigned int, int) DECLSPEC_HIDDEN; int __cdecl MSVCRT__write(int,const void*,unsigned int);
1
0
0
0
Piotr Caban : msvcrt: Remove MSVCRT_pthreadlocinfo type.
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: d5c0458bd17e1759d25a94038414bf5d4f84a828 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=d5c0458bd17e1759d25a9403…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Nov 26 19:19:09 2020 +0100 msvcrt: Remove MSVCRT_pthreadlocinfo type. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcrt/ctype.c | 6 ++--- dlls/msvcrt/locale.c | 56 +++++++++++++++++++++++----------------------- dlls/msvcrt/mbcs.c | 10 ++++----- dlls/msvcrt/msvcrt.h | 58 +++++++----------------------------------------- dlls/msvcrt/scanf.h | 4 ++-- dlls/msvcrt/string.c | 26 +++++++++++----------- dlls/msvcrt/time.c | 12 +++++----- dlls/msvcrt/wcs.c | 20 ++++++++--------- include/msvcrt/corecrt.h | 17 +++++++++++++- 9 files changed, 91 insertions(+), 118 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=d5c0458bd17e1759d25a…
1
0
0
0
Piotr Caban : msvcrt: Remove MSVCRT_lconv type.
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: 70c06601e6bc44aa7b78f440b43c5accbcf32038 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=70c06601e6bc44aa7b78f440…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Nov 26 19:19:05 2020 +0100 msvcrt: Remove MSVCRT_lconv type. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcrt/locale.c | 8 ++++---- dlls/msvcrt/math.c | 1 + dlls/msvcrt/msvcrt.h | 33 +-------------------------------- dlls/msvcrt/string.c | 1 + dlls/msvcrt/wcs.c | 1 + include/msvcrt/locale.h | 10 ++++++++++ 6 files changed, 18 insertions(+), 36 deletions(-) diff --git a/dlls/msvcrt/locale.c b/dlls/msvcrt/locale.c index 52fbd9cf9c7..cca1cb9391b 100644 --- a/dlls/msvcrt/locale.c +++ b/dlls/msvcrt/locale.c @@ -199,7 +199,7 @@ static char cloc_dec_point[] = "."; static MSVCRT_wchar_t emptyW[] = {0}; static MSVCRT_wchar_t cloc_dec_pointW[] = {'.', 0}; #endif -static struct MSVCRT_lconv cloc_lconv = +static struct lconv cloc_lconv = { cloc_dec_point, empty, empty, empty, empty, empty, empty, empty, empty, empty, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, @@ -1006,7 +1006,7 @@ BOOL CDECL __crtGetStringTypeW(DWORD unk, DWORD type, /********************************************************************* * localeconv (MSVCRT.@) */ -struct MSVCRT_lconv * CDECL MSVCRT_localeconv(void) +struct lconv* CDECL MSVCRT_localeconv(void) { return get_locinfo()->lconv; } @@ -1511,7 +1511,7 @@ static MSVCRT_pthreadlocinfo create_locinfo(int category, if(locinfo->lconv_intl_refcount) InterlockedIncrement(locinfo->lconv_intl_refcount); } else if(lcid[MSVCRT_LC_MONETARY] || lcid[MSVCRT_LC_NUMERIC]) { - locinfo->lconv = MSVCRT_malloc(sizeof(struct MSVCRT_lconv)); + locinfo->lconv = MSVCRT_malloc(sizeof(struct lconv)); locinfo->lconv_intl_refcount = MSVCRT_malloc(sizeof(int)); if(!locinfo->lconv || !locinfo->lconv_intl_refcount) { MSVCRT_free(locinfo->lconv); @@ -1521,7 +1521,7 @@ static MSVCRT_pthreadlocinfo create_locinfo(int category, free_locinfo(locinfo); return NULL; } - memset(locinfo->lconv, 0, sizeof(struct MSVCRT_lconv)); + memset(locinfo->lconv, 0, sizeof(struct lconv)); *locinfo->lconv_intl_refcount = 1; } else { locinfo->lconv = &cloc_lconv; diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index dd00cc212c6..ff5654495fc 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -39,6 +39,7 @@ #include <stdio.h> #include <fenv.h> #include <fpieee.h> +#include <locale.h> #include <math.h> #include "msvcrt.h" diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 52aafcff869..f19c37ee2eb 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -148,7 +148,7 @@ typedef struct MSVCRT_threadlocaleinfostruct { int *lconv_intl_refcount; int *lconv_num_refcount; int *lconv_mon_refcount; - struct MSVCRT_lconv *lconv; + struct lconv *lconv; int *ctype1_refcount; unsigned short *ctype1; #if _MSVCR_VER < 140 @@ -382,37 +382,6 @@ typedef struct _iobuf MSVCRT_FILE; extern MSVCRT_FILE MSVCRT__iob[]; -struct MSVCRT_lconv { - char* decimal_point; - char* thousands_sep; - char* grouping; - char* int_curr_symbol; - char* currency_symbol; - char* mon_decimal_point; - char* mon_thousands_sep; - char* mon_grouping; - char* positive_sign; - char* negative_sign; - char int_frac_digits; - char frac_digits; - char p_cs_precedes; - char p_sep_by_space; - char n_cs_precedes; - char n_sep_by_space; - char p_sign_posn; - char n_sign_posn; -#if _MSVCR_VER >= 100 - MSVCRT_wchar_t* _W_decimal_point; - MSVCRT_wchar_t* _W_thousands_sep; - MSVCRT_wchar_t* _W_int_curr_symbol; - MSVCRT_wchar_t* _W_currency_symbol; - MSVCRT_wchar_t* _W_mon_decimal_point; - MSVCRT_wchar_t* _W_mon_thousands_sep; - MSVCRT_wchar_t* _W_positive_sign; - MSVCRT_wchar_t* _W_negative_sign; -#endif -}; - struct MSVCRT__exception { int type; char* name; diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c index a2e45089d8a..3c394f0a3ca 100644 --- a/dlls/msvcrt/string.c +++ b/dlls/msvcrt/string.c @@ -26,6 +26,7 @@ #include <stdio.h> #include <math.h> #include <limits.h> +#include <locale.h> #include <errno.h> #include "msvcrt.h" #include "bnum.h" diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index c46c09bedfa..0f4e72ac0f5 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -20,6 +20,7 @@ */ #include <limits.h> +#include <locale.h> #include <stdio.h> #include <math.h> #include <assert.h> diff --git a/include/msvcrt/locale.h b/include/msvcrt/locale.h index a5af1720b97..ee0d99b8e7e 100644 --- a/include/msvcrt/locale.h +++ b/include/msvcrt/locale.h @@ -53,6 +53,16 @@ struct lconv char n_sep_by_space; char p_sign_posn; char n_sign_posn; +#if _MSVCR_VER >= 100 + wchar_t* _W_decimal_point; + wchar_t* _W_thousands_sep; + wchar_t* _W_int_curr_symbol; + wchar_t* _W_currency_symbol; + wchar_t* _W_mon_decimal_point; + wchar_t* _W_mon_thousands_sep; + wchar_t* _W_positive_sign; + wchar_t* _W_negative_sign; +#endif }; #endif /* _LCONV_DEFINED */
1
0
0
0
Piotr Caban : msvcrt: Move towctrans to wcs.c file.
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: 1f5930af51c2eb2b72c3cf30df76bbbc31b6f80d URL:
https://source.winehq.org/git/wine.git/?a=commit;h=1f5930af51c2eb2b72c3cf30…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Nov 26 19:19:01 2020 +0100 msvcrt: Move towctrans to wcs.c file. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcrt/locale.c | 10 ---------- dlls/msvcrt/wcs.c | 11 +++++++++++ dlls/ucrtbase/ucrtbase.spec | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 77021438cb9..4427eb8bd3b 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -2414,7 +2414,7 @@ @ cdecl tmpnam_s(ptr long) MSVCRT_tmpnam_s @ cdecl tolower(long) MSVCRT_tolower @ cdecl toupper(long) MSVCRT_toupper -@ cdecl towctrans(long long) MSVCR120_towctrans +@ cdecl towctrans(long long) @ cdecl towlower(long) MSVCRT_towlower @ cdecl towupper(long) MSVCRT_towupper @ cdecl trunc(double) MSVCR120_trunc diff --git a/dlls/msvcrt/locale.c b/dlls/msvcrt/locale.c index 1bc540b717b..52fbd9cf9c7 100644 --- a/dlls/msvcrt/locale.c +++ b/dlls/msvcrt/locale.c @@ -2148,14 +2148,4 @@ wctrans_t CDECL MSVCR120_wctrans(const char *property) return 1; return 0; } - -/********************************************************************* - * towctrans (MSVCR120.@) - */ -MSVCRT_wint_t CDECL MSVCR120_towctrans(MSVCRT_wint_t c, wctrans_t category) -{ - if(category == 1) - return MSVCRT__towupper_l(c, NULL); - return MSVCRT__towlower_l(c, NULL); -} #endif diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index 956efcb71c1..c46c09bedfa 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -23,6 +23,7 @@ #include <stdio.h> #include <math.h> #include <assert.h> +#include <wctype.h> #include "msvcrt.h" #include "winnls.h" #include "wtypes.h" @@ -136,6 +137,16 @@ INT CDECL MSVCRT__wcsicmp_l(const MSVCRT_wchar_t *str1, const MSVCRT_wchar_t *st return c1 - c2; } +/********************************************************************* + * towctrans (MSVCR120.@) + */ +wint_t CDECL towctrans(wint_t c, wctrans_t category) +{ + if(category == 1) + return MSVCRT__towupper_l(c, NULL); + return MSVCRT__towlower_l(c, NULL); +} + /********************************************************************* * _wcsicmp (MSVCRT.@) */ diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 1f8fce6a016..4206b380897 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -2543,7 +2543,7 @@ @ cdecl tmpnam_s(ptr long) MSVCRT_tmpnam_s @ cdecl tolower(long) MSVCRT_tolower @ cdecl toupper(long) MSVCRT_toupper -@ cdecl towctrans(long long) MSVCR120_towctrans +@ cdecl towctrans(long long) @ cdecl towlower(long) MSVCRT_towlower @ cdecl towupper(long) MSVCRT_towupper @ cdecl trunc(double) MSVCR120_trunc
1
0
0
0
Piotr Caban : msvcrt: Move btowc implementation to mbcs.c file.
by Alexandre Julliard
26 Nov '20
26 Nov '20
Module: wine Branch: master Commit: 3073097d29e381dedf0a3f2c5d2480dc53edbd75 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=3073097d29e381dedf0a3f2c…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Thu Nov 26 19:18:57 2020 +0100 msvcrt: Move btowc implementation to mbcs.c file. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/locale.c | 19 ------------------- dlls/msvcrt/mbcs.c | 19 +++++++++++++++++++ dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 9 files changed, 27 insertions(+), 27 deletions(-) diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 4afdf0ff9b6..25df4c9e17e 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1642,7 +1642,7 @@ @ cdecl atol(str) MSVCRT_atol @ cdecl bsearch(ptr ptr long long ptr) MSVCRT_bsearch @ cdecl bsearch_s(ptr ptr long long ptr ptr) MSVCRT_bsearch_s -@ cdecl btowc(long) MSVCRT_btowc +@ cdecl btowc(long) @ cdecl calloc(long long) MSVCRT_calloc @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=!i386 ceilf(float) MSVCRT_ceilf diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index f69896c8307..9c70d32c539 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1999,7 +1999,7 @@ @ cdecl atol(str) MSVCRT_atol @ cdecl bsearch(ptr ptr long long ptr) MSVCRT_bsearch @ cdecl bsearch_s(ptr ptr long long ptr ptr) MSVCRT_bsearch_s -@ cdecl btowc(long) MSVCRT_btowc +@ cdecl btowc(long) @ cdecl calloc(long long) MSVCRT_calloc @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=!i386 ceilf(float) MSVCRT_ceilf diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index eb4fab5391a..77021438cb9 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -2035,7 +2035,7 @@ @ cdecl -ret64 atoll(str) MSVCRT_atoll @ cdecl bsearch(ptr ptr long long ptr) MSVCRT_bsearch @ cdecl bsearch_s(ptr ptr long long ptr ptr) MSVCRT_bsearch_s -@ cdecl btowc(long) MSVCRT_btowc +@ cdecl btowc(long) @ stub cabs @ stub cabsf @ stub cabsl diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 5b3680a503a..56542cbf273 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1325,7 +1325,7 @@ @ cdecl atol(str) MSVCRT_atol @ cdecl bsearch(ptr ptr long long ptr) MSVCRT_bsearch @ cdecl bsearch_s(ptr ptr long long ptr ptr) MSVCRT_bsearch_s -@ cdecl btowc(long) MSVCRT_btowc +@ cdecl btowc(long) @ cdecl calloc(long long) MSVCRT_calloc @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=!i386 ceilf(float) MSVCRT_ceilf diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index a9021a6dc65..b39a72725d9 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1297,7 +1297,7 @@ @ cdecl atol(str) MSVCRT_atol @ cdecl bsearch(ptr ptr long long ptr) MSVCRT_bsearch @ cdecl bsearch_s(ptr ptr long long ptr ptr) MSVCRT_bsearch_s -@ cdecl btowc(long) MSVCRT_btowc +@ cdecl btowc(long) @ cdecl calloc(long long) MSVCRT_calloc @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=!i386 ceilf(float) MSVCRT_ceilf diff --git a/dlls/msvcrt/locale.c b/dlls/msvcrt/locale.c index 73138bfd306..1bc540b717b 100644 --- a/dlls/msvcrt/locale.c +++ b/dlls/msvcrt/locale.c @@ -988,25 +988,6 @@ int CDECL __crtGetLocaleInfoEx( const WCHAR *locale, LCTYPE type, MSVCRT_wchar_t } #endif -/********************************************************************* - * btowc(MSVCRT.@) - */ -MSVCRT_wint_t CDECL MSVCRT_btowc(int c) -{ - unsigned char letter = c; - MSVCRT_wchar_t ret; - - if(c == MSVCRT_EOF) - return MSVCRT_WEOF; - if(!get_locinfo()->lc_codepage) - return c & 255; - if(!MultiByteToWideChar(get_locinfo()->lc_codepage, - MB_ERR_INVALID_CHARS, (LPCSTR)&letter, 1, &ret, 1)) - return MSVCRT_WEOF; - - return ret; -} - /********************************************************************* * __crtGetStringTypeW(MSVCRT.@) * diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index d4434209a43..89372b145a4 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2436,6 +2436,25 @@ int CDECL MSVCRT_mbtowc(MSVCRT_wchar_t *dst, const char* str, MSVCRT_size_t n) return MSVCRT_mbtowc_l(dst, str, n, NULL); } +/********************************************************************* + * btowc(MSVCRT.@) + */ +MSVCRT_wint_t CDECL btowc(int c) +{ + unsigned char letter = c; + MSVCRT_wchar_t ret; + + if(c == MSVCRT_EOF) + return MSVCRT_WEOF; + if(!get_locinfo()->lc_codepage) + return c & 255; + if(!MultiByteToWideChar(get_locinfo()->lc_codepage, + MB_ERR_INVALID_CHARS, (LPCSTR)&letter, 1, &ret, 1)) + return MSVCRT_WEOF; + + return ret; +} + /********************************************************************* * mbrtowc(MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 21fe7330113..ea53da539ba 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -1258,7 +1258,7 @@ @ cdecl atol(str) MSVCRT_atol @ cdecl bsearch(ptr ptr long long ptr) MSVCRT_bsearch @ cdecl bsearch_s(ptr ptr long long ptr ptr) MSVCRT_bsearch_s -@ cdecl btowc(long) MSVCRT_btowc +@ cdecl btowc(long) @ cdecl calloc(long long) MSVCRT_calloc @ cdecl ceil(double) MSVCRT_ceil @ cdecl -arch=!i386 ceilf(float) MSVCRT_ceilf diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 02bcad8cc8f..1f8fce6a016 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -1582,7 +1582,7 @@ @ cdecl -ret64 _o_atoll(str) MSVCRT_atoll @ cdecl _o_bsearch(ptr ptr long long ptr) MSVCRT_bsearch @ cdecl _o_bsearch_s(ptr ptr long long ptr ptr) MSVCRT_bsearch_s -@ cdecl _o_btowc(long) MSVCRT_btowc +@ cdecl _o_btowc(long) btowc @ cdecl _o_calloc(long long) MSVCRT_calloc @ cdecl _o_cbrt(double) MSVCR120_cbrt @ cdecl _o_cbrtf(float) MSVCR120_cbrtf @@ -2176,7 +2176,7 @@ @ cdecl -ret64 atoll(str) MSVCRT_atoll @ cdecl bsearch(ptr ptr long long ptr) MSVCRT_bsearch @ cdecl bsearch_s(ptr ptr long long ptr ptr) MSVCRT_bsearch_s -@ cdecl btowc(long) MSVCRT_btowc +@ cdecl btowc(long) @ stub c16rtomb @ stub c32rtomb @ stub cabs
1
0
0
0
← Newer
1
...
9
10
11
12
13
14
15
...
86
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Results per page:
10
25
50
100
200