From ab92c2a5cd5427bf8a33d06afdb64b88d2d640ed Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Wed, 6 Jun 2012 20:17:58 +0000 Subject: Twitter updated git-svn-id: http://svn.miranda-ng.org/main/trunk@337 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Twitter/Debug.c | 129 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 protocols/Twitter/Debug.c (limited to 'protocols/Twitter/Debug.c') diff --git a/protocols/Twitter/Debug.c b/protocols/Twitter/Debug.c new file mode 100644 index 0000000000..cfc5c7fd4f --- /dev/null +++ b/protocols/Twitter/Debug.c @@ -0,0 +1,129 @@ +/* + +Copyright (c) 2010 Brook Miles + +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 WIN32_LEAN_AND_MEAN +#include +#include +#include +#include + +#include "Debug.h" + +#define MESSAGEBOXFMT_BUF_SIZE 256 + +#define DEBUG_REPORT_BUF_SIZE 128 +#define DEBUG_ABORT_CODE 0xBADD061E + +#define DEBUG_TRACE_BUF_SIZE 1024 +#define DEBUG_TRACE_FMT_SIZE 128 + +#define SIZEOF(x) (sizeof(x)/sizeof(*x)) + +UINT MessageBoxFmt(HWND hwnd, LPCTSTR pszTextFmt, LPCTSTR pszTitle, UINT uType, ...) +{ + TCHAR buf[MESSAGEBOXFMT_BUF_SIZE]; + va_list args; + va_start(args, uType); + _vsntprintf_s(buf, SIZEOF(buf), _TRUNCATE, pszTextFmt, args); + va_end(args); + return MessageBox(hwnd, buf, pszTitle, uType); +} + +#if defined(_DEBUG) +///////////////////////////////////////////////////////////////////////////// +// _DebugReport is used by the ASSERTE macro. Since the preprocessor +// constants __FILE__ and __LINE__ are always ANSI, it takes LPCSTR +// instead of LPCTSTR, and then converts to wide strings. +// + +int _DebugReport(LPCSTR pszFile, int iLine, LPCSTR pszExpr, UINT gle, BOOL bConsoleOnly) +{ + char buf[DEBUG_REPORT_BUF_SIZE]; + wchar_t wbuf[DEBUG_REPORT_BUF_SIZE]; + wchar_t wbufTitle[DEBUG_REPORT_BUF_SIZE]; + UINT ret; + + size_t tmp = 0; + + _snprintf_s(buf, DEBUG_REPORT_BUF_SIZE, _TRUNCATE, "Assertion Failed! (0x%08X)", gle); + mbstowcs_s(&tmp, wbufTitle, SIZEOF(wbufTitle), buf, _TRUNCATE); + + _snprintf_s(buf, DEBUG_REPORT_BUF_SIZE, _TRUNCATE, "%s:%d\r\n%s", + strrchr(pszFile, '\\') + 1, iLine, pszExpr); + mbstowcs_s(&tmp, wbuf, SIZEOF(wbuf), buf, _TRUNCATE); + + OutputDebugString(wbufTitle); + OutputDebugString(_T("\r\n")); + OutputDebugString(wbuf); + OutputDebugString(_T("\r\n")); + + if(!bConsoleOnly) + { + ret = MessageBox(NULL, wbuf, wbufTitle, MB_ICONERROR | MB_ABORTRETRYIGNORE); + if(ret == IDABORT) + ExitThread(DEBUG_ABORT_CODE); + return (ret == IDRETRY); + } + else + { + return TRUE; + } +} + +void _TRACE(LPCSTR fmt, ...) +{ + int len; + TCHAR buf[DEBUG_TRACE_BUF_SIZE + 3] = _T(""); + va_list va; + +#ifndef UNICODE + char* tfmt = fmt; +#else + wchar_t tfmt[DEBUG_TRACE_FMT_SIZE]; + size_t tmp = 0; + mbstowcs_s(&tmp, tfmt, SIZEOF(tfmt), fmt, _TRUNCATE); +#endif + + va_start(va, fmt); + len = _vsntprintf_s(buf, SIZEOF(buf), _TRUNCATE, tfmt, va); + va_end(va); + + if(len >= -1) + { + if(len == -1) + { + len = DEBUG_TRACE_BUF_SIZE; + } + _tcscpy_s(&buf[len], SIZEOF(buf) - len, _T("\r\n")); + } + else + { + _tcscpy_s(buf, SIZEOF(buf), _T("_DEBUG FORMATTING ERROR\r\n")); + } + + //_tprintf(buf); + OutputDebugString(buf); +} + +#endif//defined(_DEBUG) \ No newline at end of file -- cgit v1.2.3