--- mingw-w64-libraries/winstorecompat/Makefile.am | 1 + mingw-w64-libraries/winstorecompat/Makefile.in | 10 ++++- mingw-w64-libraries/winstorecompat/src/_wassert.c | 50 +++++++++++++++++++++++ 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 mingw-w64-libraries/winstorecompat/src/_wassert.c
diff --git a/mingw-w64-libraries/winstorecompat/Makefile.am b/mingw-w64-libraries/winstorecompat/Makefile.am index c4ae286..769b087 100644 --- a/mingw-w64-libraries/winstorecompat/Makefile.am +++ b/mingw-w64-libraries/winstorecompat/Makefile.am @@ -5,6 +5,7 @@ AM_CFLAGS = -Wall -Wstrict-aliasing=2 -pedantic lib_LIBRARIES = libwinstorecompat.a libwinstorecompat_a_SOURCES = \ + src/_wassert.c \ src/CreateEventW.c \ src/CreateMutexW.c \ src/CreateSemaphoreW.c \ diff --git a/mingw-w64-libraries/winstorecompat/Makefile.in b/mingw-w64-libraries/winstorecompat/Makefile.in index ea4b3db..6782f1f 100644 --- a/mingw-w64-libraries/winstorecompat/Makefile.in +++ b/mingw-w64-libraries/winstorecompat/Makefile.in @@ -96,8 +96,9 @@ ARFLAGS = cru libwinstorecompat_a_AR = $(AR) $(ARFLAGS) libwinstorecompat_a_LIBADD = am__dirstamp = $(am__leading_dot)dirstamp -am_libwinstorecompat_a_OBJECTS = src/CreateEventW.$(OBJEXT) \ - src/CreateMutexW.$(OBJEXT) src/CreateSemaphoreW.$(OBJEXT) \ +am_libwinstorecompat_a_OBJECTS = src/_wassert.$(OBJEXT) \ + src/CreateEventW.$(OBJEXT) src/CreateMutexW.$(OBJEXT) \ + src/CreateSemaphoreW.$(OBJEXT) \ src/InitializeCriticalSection.$(OBJEXT) \ src/GetFileAttributes.$(OBJEXT) \ src/WaitForSingleObject.$(OBJEXT) src/LoadLibraryW.$(OBJEXT) \ @@ -236,6 +237,7 @@ AUTOMAKE_OPTIONS = foreign subdir-objects AM_CFLAGS = -Wall -Wstrict-aliasing=2 -pedantic lib_LIBRARIES = libwinstorecompat.a libwinstorecompat_a_SOURCES = \ + src/_wassert.c \ src/CreateEventW.c \ src/CreateMutexW.c \ src/CreateSemaphoreW.c \ @@ -339,6 +341,8 @@ src/$(am__dirstamp): src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/$(DEPDIR) @: > src/$(DEPDIR)/$(am__dirstamp) +src/_wassert.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) src/CreateEventW.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/CreateMutexW.$(OBJEXT): src/$(am__dirstamp) \ @@ -420,6 +424,7 @@ mostlyclean-compile: -rm -f src/UnhandledExceptionFilter.$(OBJEXT) -rm -f src/VirtualProtect.$(OBJEXT) -rm -f src/WaitForSingleObject.$(OBJEXT) + -rm -f src/_wassert.$(OBJEXT) -rm -f src/getenv.$(OBJEXT) -rm -f src/getpid.$(OBJEXT) @@ -450,6 +455,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/UnhandledExceptionFilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/VirtualProtect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/WaitForSingleObject.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/_wassert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/getenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/getpid.Po@am__quote@ diff --git a/mingw-w64-libraries/winstorecompat/src/_wassert.c b/mingw-w64-libraries/winstorecompat/src/_wassert.c new file mode 100644 index 0000000..d643b38 --- /dev/null +++ b/mingw-w64-libraries/winstorecompat/src/_wassert.c @@ -0,0 +1,50 @@ +/* + Copyright (c) 2013 mingw-w64 project + + Contributing authors: Rafaël Carré + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#define _wassert ___wassert +#include <windows.h> +#include <wchar.h> +#include <signal.h> +#undef _wassert + +extern int mingw_app_type; + +void __cdecl _wassert(const wchar_t *_Message,const wchar_t *_File,unsigned _Line) +{ + wchar_t *msgbuf = (wchar_t *) malloc (8192*sizeof(wchar_t)); + + if (!_File || _File[0] == 0) + _File = L"<unknown>"; + if (!_Message || _Message[0] == 0) + _Message = L"?"; + _snwprintf (msgbuf, 8191, + L"Assertion failed!\n\nFile: %ws, Line %u\n\nExpression: %ws", + _File,_Line, _Message); + if (mingw_app_type == 0) + fwprintf (stderr, L"%ws\n", msgbuf); + else + OutputDebugStringW(msgbuf); + + abort (); +} -- 1.8.1.2 ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public