blob: 55402d193a134d303c723a609275ed3ff68f26be [file] [log] [blame] [raw]
/* A part of the Windows CE C Extra Library (celibc)
Copyright 2007-2015 PC GO Ld.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*/
#include <string.h>
#include <assert.h>
#include <windows.h>
#define FORMAT "%s:%d: Assertion `%s' failed."
void _assert(const char *msg, const char *file, int line) {
size_t len = strlen(msg) + strlen(file) + sizeof FORMAT + 2 + 8 - 6;
char text[len];
wchar_t wtext[len];
sprintf(text, FORMAT, file, line, msg);
fputs(text, stderr);
fputc('\n', stderr);
mbstowcs(wtext, text, len);
OutputDebugStringW(wtext);
MessageBoxW(NULL, wtext, L"Assertion failed", 0);
abort();
}