These changes implement _invoke_watson and _invalid_parameter*
functions in all CRT libraries and then fix wcstok and wcstok_s
functions to work same across all CRT libraries.

Test case from the last change should validate correctness of the
wcstok_s implementation.

Pali Rohár (6):
  headers: Add definitions of _invoke_watson and _invalid_parameter*
    functions
  crt: Add support for _invoke_watson and _invalid_parameter* functions
    into all CRT import libraries
  crt: Fix mingw-w64 implementation of wcstok and wcstok_s functions
  crt: Fix wcstok for msvcr80-msvcr120 and arm msvcrt
  crt: Make mingw-w64 implementation of wcstok compatible with MS
    implementation
  crt: testcases: Add t_wcstok_s.c test

 mingw-w64-crt/Makefile.am                     |  34 +++++-
 mingw-w64-crt/def-include/crt-aliases.def.in  |   3 -
 mingw-w64-crt/lib-common/msvcr120_app.def.in  |   1 -
 mingw-w64-crt/lib-common/msvcrt.def.in        |   3 +-
 mingw-w64-crt/lib32/msvcr100.def.in           |   1 -
 mingw-w64-crt/lib32/msvcr100d.def.in          |   1 -
 mingw-w64-crt/lib32/msvcr110.def.in           |   1 -
 mingw-w64-crt/lib32/msvcr110d.def.in          |   1 -
 mingw-w64-crt/lib32/msvcr120.def.in           |   1 -
 mingw-w64-crt/lib32/msvcr120d.def.in          |   1 -
 mingw-w64-crt/lib32/msvcr80.def.in            |   1 -
 mingw-w64-crt/lib32/msvcr80d.def.in           |   1 -
 mingw-w64-crt/lib32/msvcr90.def.in            |   1 -
 mingw-w64-crt/lib32/msvcr90d.def.in           |   1 -
 mingw-w64-crt/lib64/msvcr100.def.in           |   1 -
 mingw-w64-crt/lib64/msvcr100d.def.in          |   1 -
 mingw-w64-crt/lib64/msvcr110.def.in           |   1 -
 mingw-w64-crt/lib64/msvcr110d.def.in          |   1 -
 mingw-w64-crt/lib64/msvcr120.def.in           |   1 -
 mingw-w64-crt/lib64/msvcr120d.def.in          |   1 -
 mingw-w64-crt/lib64/msvcr80.def.in            |   1 -
 mingw-w64-crt/lib64/msvcr80d.def.in           |   1 -
 mingw-w64-crt/lib64/msvcr90.def.in            |   1 -
 mingw-w64-crt/lib64/msvcr90d.def.in           |   1 -
 mingw-w64-crt/libarm32/msvcr110.def.in        |   1 -
 mingw-w64-crt/libarm32/msvcr110d.def.in       |   1 -
 mingw-w64-crt/libarm32/msvcr120.def.in        |   1 -
 mingw-w64-crt/libarm32/msvcr120d.def.in       |   1 -
 mingw-w64-crt/misc/_invalid_parameter.c       |  33 ++++++
 .../misc/_invalid_parameter_noinfo.c          |  16 +++
 .../misc/_invalid_parameter_noinfo_noreturn.c |  15 +++
 mingw-w64-crt/misc/_invoke_watson.c           | 105 ++++++++++++++++++
 mingw-w64-crt/secapi/wcstok_s.c               |  24 ++++
 mingw-w64-crt/string/msvcr80plus_wcstok.c     |  20 ++++
 .../string/{wcstok.c => msvcr80pre_wcstok.c}  |  14 +--
 mingw-w64-crt/testcases/Makefile.am           |   1 +
 mingw-w64-crt/testcases/t_wcstok_s.c          | 101 +++++++++++++++++
 mingw-w64-headers/crt/corecrt.h               |   7 ++
 38 files changed, 355 insertions(+), 46 deletions(-)
 create mode 100644 mingw-w64-crt/misc/_invalid_parameter.c
 create mode 100644 mingw-w64-crt/misc/_invalid_parameter_noinfo.c
 create mode 100644 mingw-w64-crt/misc/_invalid_parameter_noinfo_noreturn.c
 create mode 100644 mingw-w64-crt/misc/_invoke_watson.c
 create mode 100644 mingw-w64-crt/secapi/wcstok_s.c
 create mode 100644 mingw-w64-crt/string/msvcr80plus_wcstok.c
 rename mingw-w64-crt/string/{wcstok.c => msvcr80pre_wcstok.c} (62%)
 create mode 100644 mingw-w64-crt/testcases/t_wcstok_s.c

-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to