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

Reply via email to