2013/5/21 Rafaël Carré <fun...@videolan.org>: > --- > 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
Patch is ok, thanks. Please apply. Thanks, Kai PS: I would suggest to add here _assert function, too. ------------------------------------------------------------------------------ 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