diff options
| -rw-r--r-- | plugins/CrashDumper/crshdmp_10.vcxproj | 2 | ||||
| -rw-r--r-- | plugins/CrashDumper/crshdmp_10.vcxproj.filters | 6 | ||||
| -rw-r--r-- | plugins/CrashDumper/crshdmp_11.vcxproj | 2 | ||||
| -rw-r--r-- | plugins/CrashDumper/crshdmp_11.vcxproj.filters | 6 | ||||
| -rw-r--r-- | plugins/CrashDumper/crshdmp_12.vcxproj | 2 | ||||
| -rw-r--r-- | plugins/CrashDumper/crshdmp_12.vcxproj.filters | 6 | ||||
| -rw-r--r-- | plugins/CrashDumper/src/bkstring.cpp | 188 | ||||
| -rw-r--r-- | plugins/CrashDumper/src/bkstring.h | 262 | ||||
| -rw-r--r-- | plugins/CrashDumper/src/crshdmp.cpp | 11 | ||||
| -rw-r--r-- | plugins/CrashDumper/src/dumper.cpp | 262 | ||||
| -rw-r--r-- | plugins/CrashDumper/src/exhndlr.cpp | 24 | ||||
| -rw-r--r-- | plugins/CrashDumper/src/ui.cpp | 52 | ||||
| -rw-r--r-- | plugins/CrashDumper/src/upload.cpp | 78 | ||||
| -rw-r--r-- | plugins/CrashDumper/src/utils.cpp | 332 | ||||
| -rw-r--r-- | plugins/CrashDumper/src/utils.h | 30 | 
15 files changed, 321 insertions, 942 deletions
| diff --git a/plugins/CrashDumper/crshdmp_10.vcxproj b/plugins/CrashDumper/crshdmp_10.vcxproj index 3e1345c384..ad4ae1a9b5 100644 --- a/plugins/CrashDumper/crshdmp_10.vcxproj +++ b/plugins/CrashDumper/crshdmp_10.vcxproj @@ -195,7 +195,6 @@      </ResourceCompile>
    </ItemDefinitionGroup>
    <ItemGroup>
 -    <ClCompile Include="src\bkstring.cpp" />
      <ClCompile Include="src\crshdmp.cpp" />
      <ClCompile Include="src\crshdmp_icons.cpp" />
      <ClCompile Include="src\dumper.cpp" />
 @@ -208,7 +207,6 @@      <ClCompile Include="src\utils.cpp" />
    </ItemGroup>
    <ItemGroup>
 -    <ClInclude Include="src\bkstring.h" />
      <ClInclude Include="src\resource.h" />
      <ClInclude Include="src\sdkstuff.h" />
      <ClInclude Include="src\utils.h" />
 diff --git a/plugins/CrashDumper/crshdmp_10.vcxproj.filters b/plugins/CrashDumper/crshdmp_10.vcxproj.filters index 48abea0ec4..00edb7103a 100644 --- a/plugins/CrashDumper/crshdmp_10.vcxproj.filters +++ b/plugins/CrashDumper/crshdmp_10.vcxproj.filters @@ -1,9 +1,6 @@  <?xml version="1.0" encoding="utf-8"?>
  <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
 -    <ClCompile Include="src\bkstring.cpp">
 -      <Filter>Source Files</Filter>
 -    </ClCompile>
      <ClCompile Include="src\crshdmp.cpp">
        <Filter>Source Files</Filter>
      </ClCompile>
 @@ -30,9 +27,6 @@      </ClCompile>
    </ItemGroup>
    <ItemGroup>
 -    <ClInclude Include="src\bkstring.h">
 -      <Filter>Header Files</Filter>
 -    </ClInclude>
      <ClInclude Include="src\resource.h">
        <Filter>Header Files</Filter>
      </ClInclude>
 diff --git a/plugins/CrashDumper/crshdmp_11.vcxproj b/plugins/CrashDumper/crshdmp_11.vcxproj index 2f63a900a3..b67226c012 100644 --- a/plugins/CrashDumper/crshdmp_11.vcxproj +++ b/plugins/CrashDumper/crshdmp_11.vcxproj @@ -198,7 +198,6 @@      </ResourceCompile>
    </ItemDefinitionGroup>
    <ItemGroup>
 -    <ClCompile Include="src\bkstring.cpp" />
      <ClCompile Include="src\crshdmp.cpp" />
      <ClCompile Include="src\crshdmp_icons.cpp" />
      <ClCompile Include="src\dumper.cpp" />
 @@ -211,7 +210,6 @@      <ClCompile Include="src\utils.cpp" />
    </ItemGroup>
    <ItemGroup>
 -    <ClInclude Include="src\bkstring.h" />
      <ClInclude Include="src\resource.h" />
      <ClInclude Include="src\sdkstuff.h" />
      <ClInclude Include="src\utils.h" />
 diff --git a/plugins/CrashDumper/crshdmp_11.vcxproj.filters b/plugins/CrashDumper/crshdmp_11.vcxproj.filters index 48abea0ec4..00edb7103a 100644 --- a/plugins/CrashDumper/crshdmp_11.vcxproj.filters +++ b/plugins/CrashDumper/crshdmp_11.vcxproj.filters @@ -1,9 +1,6 @@  <?xml version="1.0" encoding="utf-8"?>
  <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
 -    <ClCompile Include="src\bkstring.cpp">
 -      <Filter>Source Files</Filter>
 -    </ClCompile>
      <ClCompile Include="src\crshdmp.cpp">
        <Filter>Source Files</Filter>
      </ClCompile>
 @@ -30,9 +27,6 @@      </ClCompile>
    </ItemGroup>
    <ItemGroup>
 -    <ClInclude Include="src\bkstring.h">
 -      <Filter>Header Files</Filter>
 -    </ClInclude>
      <ClInclude Include="src\resource.h">
        <Filter>Header Files</Filter>
      </ClInclude>
 diff --git a/plugins/CrashDumper/crshdmp_12.vcxproj b/plugins/CrashDumper/crshdmp_12.vcxproj index 8b74ec6cc1..5e935553bb 100644 --- a/plugins/CrashDumper/crshdmp_12.vcxproj +++ b/plugins/CrashDumper/crshdmp_12.vcxproj @@ -198,7 +198,6 @@      </ResourceCompile>
    </ItemDefinitionGroup>
    <ItemGroup>
 -    <ClCompile Include="src\bkstring.cpp" />
      <ClCompile Include="src\crshdmp.cpp" />
      <ClCompile Include="src\crshdmp_icons.cpp" />
      <ClCompile Include="src\dumper.cpp" />
 @@ -211,7 +210,6 @@      <ClCompile Include="src\utils.cpp" />
    </ItemGroup>
    <ItemGroup>
 -    <ClInclude Include="src\bkstring.h" />
      <ClInclude Include="src\resource.h" />
      <ClInclude Include="src\sdkstuff.h" />
      <ClInclude Include="src\utils.h" />
 diff --git a/plugins/CrashDumper/crshdmp_12.vcxproj.filters b/plugins/CrashDumper/crshdmp_12.vcxproj.filters index 48abea0ec4..00edb7103a 100644 --- a/plugins/CrashDumper/crshdmp_12.vcxproj.filters +++ b/plugins/CrashDumper/crshdmp_12.vcxproj.filters @@ -1,9 +1,6 @@  <?xml version="1.0" encoding="utf-8"?>
  <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
 -    <ClCompile Include="src\bkstring.cpp">
 -      <Filter>Source Files</Filter>
 -    </ClCompile>
      <ClCompile Include="src\crshdmp.cpp">
        <Filter>Source Files</Filter>
      </ClCompile>
 @@ -30,9 +27,6 @@      </ClCompile>
    </ItemGroup>
    <ItemGroup>
 -    <ClInclude Include="src\bkstring.h">
 -      <Filter>Header Files</Filter>
 -    </ClInclude>
      <ClInclude Include="src\resource.h">
        <Filter>Header Files</Filter>
      </ClInclude>
 diff --git a/plugins/CrashDumper/src/bkstring.cpp b/plugins/CrashDumper/src/bkstring.cpp deleted file mode 100644 index b79301a036..0000000000 --- a/plugins/CrashDumper/src/bkstring.cpp +++ /dev/null @@ -1,188 +0,0 @@ -/*
 -Miranda Crash Dumper Plugin
 -Copyright (C) 2008 - 2012 Boris Krasnovskiy All Rights Reserved
 -
 -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 version 2
 -of the License.
 -
 -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.
 -
 -You should have received a copy of the GNU General Public License
 -along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -*/
 -
 -#include "utils.h"
 -
 -bkstring::~bkstring() { if (sizeAlloced) free(buf); }
 -
 -
 -void bkstring::reserve(size_type len)
 -{
 -	if (len >= sizeAlloced || sizeAlloced == 0)
 -	{
 -		if (sizeAlloced == 0) buf = NULL;
 -		buf = (value_type*)realloc(buf, (len+1) * sizeof(value_type));
 -		if (sizeAlloced == 0) buf[0] = 0;
 -		sizeAlloced = len+1;
 -	}
 -}
 -
 -void bkstring::appendfmt(const value_type *fmt, ...) 
 -{
 -	areserve(_tcslen(fmt)*2);
 -
 -	va_list vararg;
 -	va_start(vararg, fmt);
 -	for (;;) 
 -	{
 -		int len = mir_vsntprintf(buf + lenBuf, sizeAlloced - lenBuf - 1, fmt, vararg);
 -		if (len < 0)
 -			reserve(sizeAlloced + 256);
 -		else
 -		{
 -			lenBuf += len;
 -			buf[lenBuf] = 0;
 -			break;
 -		}
 -	}
 -	va_end(vararg);
 -}
 -
 -bkstring& bkstring::append(const value_type* _Ptr)
 -{
 -	size_type len = _tcslen(_Ptr);
 -	areserve(len);
 -	memcpy(buf+lenBuf, _Ptr, (len+1)*sizeof(value_type));
 -	lenBuf += len;
 -	return *this;
 -}
 -
 -bkstring& bkstring::append(const value_type* _Ptr, size_type _Count)
 -{
 -	size_type len = min(_tcslen(_Ptr), _Count);
 -	areserve(len);
 -	memcpy(buf+lenBuf, _Ptr, len*sizeof(value_type));
 -	lenBuf += len;
 -	buf[lenBuf] = 0;
 -	return *this;
 -}
 -
 -bkstring& bkstring::append(const bkstring& _Str, size_type _Off, size_type _Count)
 -{
 -	size_type len = min(_Count, _Str.size() - _Off);
 -	areserve(len);
 -	memcpy(buf+lenBuf, _Str.c_str()+_Off, len*sizeof(value_type));
 -	lenBuf += len;
 -	buf[lenBuf] = 0;
 -	return *this;
 -}
 -
 -bkstring& bkstring::append(const bkstring& _Str)
 -{
 -	size_type len = _Str.size();
 -	areserve(len);
 -	memcpy(buf+lenBuf, _Str.c_str(), len*sizeof(value_type));
 -	lenBuf += len;
 -	buf[lenBuf] = 0;
 -	return *this;
 -}
 -
 -bkstring& bkstring::append(size_type _Count, value_type _Ch)
 -{
 -	areserve(_Count);
 -	for(size_type i=0; i<_Count; ++i) buf[lenBuf+i] = _Ch;
 -	lenBuf += _Count;
 -	buf[lenBuf] = 0;
 -	return *this;
 -}
 -
 -
 -bkstring& bkstring::assign(const value_type* _Ptr, size_type _Count)
 -{
 -	reserve(_Count);
 -	memcpy(buf, _Ptr, _Count*sizeof(value_type));
 -	buf[_Count] = 0;
 -	lenBuf = _Count;
 -	return *this;
 -}
 -
 -bkstring& bkstring::assign(const bkstring& _Str, size_type _Off, size_type _Count)
 -{
 -	size_type len = min(_Count, _Str.size() - _Off);
 -	reserve(len);
 -	memcpy(buf, _Str.c_str() + _Off, len*sizeof(value_type));
 -	lenBuf = len;
 -	buf[len] = 0;
 -	return *this;
 -}
 -
 -bkstring& bkstring::assign(size_type _Count, value_type _Ch)
 -{
 -	reserve(_Count);
 -	for(size_type i=0; i<_Count; ++i) buf[i] = _Ch;
 -	buf[_Count] = 0;
 -	lenBuf = _Count;
 -	return *this;
 -}
 -
 -bkstring::size_type bkstring::find(value_type _Ch, size_type _Off) const
 -{
 -	for (size_type i=_Off; i<=lenBuf; ++i)
 -		if (buf[i] == _Ch) return i;
 -	return (size_type)npos;
 -}
 -
 -bkstring::size_type bkstring::find(const value_type* _Ptr, size_type _Off) const
 -{
 -	if (_Off > lenBuf) return (size_type)npos;
 -
 -	value_type* pstr = _tcsstr(buf+_Off, _Ptr);
 -	return pstr ? pstr - buf : npos;
 -}
 -
 -bkstring::size_type bkstring::find_last_of(value_type _Ch, size_type _Off) const
 -{
 -	for (size_type i=(_Off == npos ? lenBuf : _Off); i--;)
 -		if (buf[i] == _Ch) return i;
 -	return (size_type)npos;
 -}
 -
 -bkstring& bkstring::insert(size_type _P0, const value_type* _Ptr, size_type _Count)
 -{
 -	size_type len = _tcslen(_Ptr);
 -	if (_Count < len) len = _Count;
 -	areserve(len);
 -	value_type *p = buf + _P0;
 -	memmove(p+len, p, (lenBuf-_P0+1)*sizeof(value_type));
 -	memcpy(p, _Ptr, _Count*sizeof(value_type));
 -	lenBuf += len;
 -	return *this;
 -}
 -
 -bkstring& bkstring::insert(size_type _P0, size_type _Count, value_type _Ch)
 -{
 -	areserve(_Count);
 -	value_type *p = buf + _P0;
 -	memmove(p+_Count, p, (lenBuf-_P0+1)*sizeof(value_type));
 -	for(size_type i=0; i<_Count; ++i) p[i] = _Ch;
 -	lenBuf += _Count;
 -	return *this;
 -}
 -
 -bkstring& bkstring::erase(size_type _Pos, size_type _Count)
 -{
 -	if (_Pos < lenBuf)
 -	{
 -		const size_type len = min(lenBuf - _Pos, _Count);
 -		value_type *p = buf + _Pos;
 -		lenBuf -= len;
 -		memmove(p, p+len, (lenBuf - _Pos)*sizeof(value_type));
 -		buf[lenBuf] = 0;
 -	}
 -	return *this;
 -}
 diff --git a/plugins/CrashDumper/src/bkstring.h b/plugins/CrashDumper/src/bkstring.h deleted file mode 100644 index 8000723225..0000000000 --- a/plugins/CrashDumper/src/bkstring.h +++ /dev/null @@ -1,262 +0,0 @@ -/*
 -Miranda Crash Dumper Plugin
 -Copyright (C) 2008 - 2012 Boris Krasnovskiy All Rights Reserved
 -
 -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 version 2
 -of the License.
 -
 -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.
 -
 -You should have received a copy of the GNU General Public License
 -along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -*/
 -
 -#ifndef _BKSTRING_H_
 -#define _BKSTRING_H_
 -
 -class bkstring
 -{
 -public:
 -	typedef size_t size_type;
 -	typedef TCHAR  value_type;
 -	typedef value_type* iterator;
 -	typedef const value_type* const_iterator;
 -
 -	static const size_type npos = size_type(-1);
 -
 -private:
 -	value_type* buf;
 -	size_type sizeAlloced;
 -	size_type lenBuf;
 -
 -	void areserve(size_type len) { reserve(lenBuf + len); }
 -
 -public:
 -
 -	explicit bkstring() : buf((TCHAR*)_T("")), sizeAlloced(0), lenBuf(0) 
 -	{}
 -
 -	bkstring(const value_type* _Ptr, size_type _Count) : sizeAlloced(0), lenBuf(0)
 -	{ assign(_Ptr, _Count); }
 -
 -	bkstring(const value_type* _Ptr) : sizeAlloced(0), lenBuf(0)
 -	{ assign(_Ptr); }
 -
 -	bkstring(size_type _Count, value_type _Ch) : sizeAlloced(0), lenBuf(0)
 -	{ assign(_Count, _Ch); }
 -
 -	bkstring(const bkstring& _Str) : sizeAlloced(0), lenBuf(0)
 -	{ assign(_Str); }
 -
 -	bkstring(const bkstring& _Str, size_type _Off, size_type _Count) : sizeAlloced(0), lenBuf(0)
 -	{ assign(_Str, _Off, _Count); }
 -
 -	~bkstring();
 -
 -	size_type size(void) const { return lenBuf; }
 -	const value_type* c_str(void) const { return buf; }
 -
 -	void clear(void) { if (lenBuf) { lenBuf = 0; buf[0] = 0; } }
 -	void insert(const value_type *txt);
 -	void reserve(size_type len);
 -
 -	bkstring& assign(const value_type* _Ptr)
 -	{ return assign(_Ptr, _tcslen(_Ptr)); }
 -
 -	bkstring& assign(const bkstring& _Str)
 -	{ return assign(_Str, 0, (size_type)npos); }
 -
 -	bkstring& assign(const value_type* _Ptr, size_type _Count);
 -	bkstring& assign(const bkstring& _Str, size_type off, size_type _Count);
 -	bkstring& assign(size_type _Count, value_type _Ch);
 -
 -	bkstring& append(const value_type* _Ptr);
 -	bkstring& append(const value_type* _Ptr, size_type _Count);
 -	bkstring& append(const bkstring& _Str, size_type _Off, size_type _Count);
 -	bkstring& append(const bkstring& _Str);
 -	bkstring& append(size_type _Count, value_type _Ch);
 -
 -	int compare(const bkstring& _Str) const 
 -	{ return _tcscmp(buf, _Str.c_str()); }
 -
 -	int compare(size_type _Pos1, size_type _Num1, const bkstring& _Str) const 
 -	{ return _tcsncmp(&buf[_Pos1], _Str.c_str(), _Num1); }
 -
 -	int compare(size_type _Pos1, size_type _Num1, const bkstring& _Str, size_type _Off, size_type _Count) const
 -	{ return _tcsncmp(&buf[_Pos1], _Str.c_str()+_Off, min(_Num1, _Count)); }
 -
 -	int compare(const value_type* _Ptr) const 
 -	{ return _tcscmp(buf, _Ptr); }
 -
 -	int compare(size_type _Pos1, size_type _Num1, const value_type* _Ptr) const
 -	{ return _tcsncmp(&buf[_Pos1], _Ptr, _Num1); }
 -
 -	int compare(size_type _Pos1, size_type _Num1, const value_type* _Ptr, size_type _Num2) const
 -	{ return _tcsncmp(&buf[_Pos1], _Ptr, min(_Num1, _Num2)); }
 -
 -	int comparei(const bkstring& _Str) const 
 -	{ return _tcsicmp(buf, _Str.c_str()); }
 -
 -	int comparei(size_type _Pos1, size_type _Num1, const bkstring& _Str) const 
 -	{ return _tcsnicmp(&buf[_Pos1], _Str.c_str(), _Num1); }
 -
 -	int comparei(size_type _Pos1, size_type _Num1, const bkstring& _Str, size_type _Off, size_type _Count) const
 -	{ return _tcsnicmp(&buf[_Pos1], _Str.c_str()+_Off, min(_Num1, _Count)); }
 -
 -	int comparei(const value_type* _Ptr) const 
 -	{ return _tcsicmp(buf, _Ptr); }
 -
 -	int comparei(size_type _Pos1, size_type _Num1, const value_type* _Ptr) const
 -	{ return _tcsnicmp(&buf[_Pos1], _Ptr, _Num1); }
 -
 -	int comparei(size_type _Pos1, size_type _Num1, const value_type* _Ptr, size_type _Num2) const
 -	{ return _tcsnicmp(&buf[_Pos1], _Ptr, min(_Num1, _Num2)); }
 -
 -	bool empty(void) const { return lenBuf == 0; };
 -	bkstring& erase(size_type _Pos = 0, size_type _Count = npos);
 -
 -	size_type find(value_type _Ch, size_type _Off = 0) const;
 -	size_type find(const value_type* _Ptr, size_type _Off = 0) const;
 -	size_type find(bkstring& _Str, size_type _Off = 0) const
 -	{ return find(_Str.c_str(), _Off); }
 -
 -	size_type find_last_of(value_type _Ch, size_type _Off = npos) const;
 -
 -	bkstring& insert(size_type _P0, const value_type* _Ptr)
 -	{ return insert(_P0, _Ptr, _tcslen(_Ptr)); }
 -
 -	bkstring& insert(size_type _P0, const bkstring& _Str)
 -	{ return insert(_P0, _Str.c_str(), _Str.size()); };
 -
 -	bkstring& insert(size_type _P0, const value_type* _Ptr, size_type _Count);
 -	bkstring& insert(size_type _P0, size_type _Count, value_type _Ch);
 -
 -	bkstring substr(size_type _Off = 0, size_type _Count = npos) const
 -	{ return bkstring(*this, _Off, _Count); }
 -
 -	bkstring& operator = (const bkstring& _Str)
 -	{ return assign(_Str); }
 -
 -	bkstring& operator =(const value_type* _Ptr)
 -	{ return assign(_Ptr); }
 -
 -	bkstring& operator = (const value_type _Ch)
 -	{ return assign(1, _Ch); }
 -
 -	bkstring& operator +=(const bkstring& _Str)
 -	{ return append(_Str); }
 -
 -	bkstring& operator += (const value_type* _Ptr)
 -	{ return append(_Ptr); }
 -
 -	bkstring& operator += (const value_type _Ch)
 -	{ return append(1, _Ch); }
 -
 -	value_type& operator[] (int ind) const
 -	{ return buf[ind]; }
 -
 -	friend bkstring operator+ (const bkstring& _Str1, const bkstring& _Str2)
 -	{ bkstring s(_Str1); return s.append(_Str2); }
 -
 -	friend bkstring operator+ (const bkstring& _Str1, const value_type* _Ptr2)
 -	{ bkstring s(_Str1); return s.append(_Ptr2); }
 -
 -	friend bkstring operator+(const value_type* _Ptr1, const bkstring& _Str2)
 -	{ bkstring s(_Ptr1); return s.append(_Str2); }
 -
 -	friend bkstring operator+ (const bkstring& _Str1, const value_type _Ch)
 -	{ bkstring s(_Str1); return s.append(1, _Ch); }
 -
 -	friend bool operator==(const bkstring& _Str1, const bkstring& _Str2)
 -	{ return _Str1.compare(_Str2) == 0; }
 -
 -	friend bool operator==(const bkstring& _Str1, const value_type* _Ptr2)
 -	{ return _Str1.compare(_Ptr2) == 0; }
 -
 -	friend bool operator==(const value_type* _Ptr1, const bkstring& _Str2)
 -	{ return _Str2.compare(_Ptr1) == 0; }
 -
 -	friend bool operator!=(const bkstring& _Str1, const bkstring& _Str2)
 -	{ return _Str1.compare(_Str2) != 0; }
 -
 -	friend bool operator!=(const bkstring& _Str1, const value_type* _Ptr2)
 -	{ return _Str1.compare(_Ptr2) != 0; }
 -
 -	friend bool operator!=(const value_type* _Ptr1, const bkstring& _Str2)
 -	{ return _Str2.compare(_Ptr1) != 0; }
 -
 -	friend bool operator<(const bkstring& _Str1, const bkstring& _Str2)
 -	{ return _Str1.compare(_Str2) < 0; }
 -
 -	friend bool operator<(const bkstring& _Str1, const value_type* _Ptr2)
 -	{ return _Str1.compare(_Ptr2) < 0; }
 -
 -	friend bool operator<(const value_type* _Ptr1, const bkstring& _Str2)
 -	{ return _Str2.compare(_Ptr1) > 0; }
 -
 -	friend bool operator>(const bkstring& _Str1, const bkstring& _Str2)
 -	{ return _Str1.compare(_Str2) > 0; }
 -
 -	friend bool operator>(const bkstring& _Str1, const value_type* _Ptr2)
 -	{ return _Str1.compare(_Ptr2) > 0; }
 -
 -	friend bool operator>(const value_type* _Ptr1, const bkstring& _Str2)
 -	{ return _Str2.compare(_Ptr1) < 0; }
 -
 -	friend bool operator<=(const bkstring& _Str1, const bkstring& _Str2)
 -	{ return _Str1.compare(_Str2) <= 0; }
 -
 -	friend bool operator<=(const bkstring& _Str1, const value_type* _Ptr2)
 -	{  return _Str1.compare(_Ptr2) <= 0; }
 -
 -	friend bool  operator<=(const value_type* _Ptr1, const bkstring& _Str2)
 -	{ return _Str2.compare(_Ptr1) >= 0; }
 -
 -	friend bool  operator>=(const bkstring& _Str1, const bkstring& _Str2)
 -	{ return _Str1.compare(_Str2) >= 0; }
 -
 -	friend bool  operator>=(const bkstring& _Str1, const value_type* _Ptr2)
 -	{ return _Str1.compare(_Ptr2) >= 0; }
 -
 -	friend bool  operator>=(const value_type* _Ptr1, const bkstring& _Str2)
 -	{ return _Str2.compare(_Ptr1) <= 0; }
 -
 -	friend bool  operator==(const value_type _Ch1, const bkstring& _Str2)
 -	{  return (_Str2.size() == 1) && (_Str2[0] == _Ch1); }
 -
 -	friend bool  operator==(const bkstring& _Str1, const value_type _Ch2)
 -	{ return (_Str1.size() == 1) && (_Str1[0] == _Ch2); }
 -
 -	friend bool  operator!=(const value_type _Ch1, const bkstring& _Str2)
 -	{  return (_Str2.size() != 1) || (_Str2[0] != _Ch1); }
 -
 -	friend bool  operator!=(const bkstring& _Str1, const value_type _Ch2)
 -	{ return (_Str1.size() != 1) || (_Str1[0] != _Ch2); }
 -
 -	iterator begin(void)
 -	{ return buf; }
 -
 -	const_iterator begin(void) const
 -	{ return buf; }
 -
 -	iterator end(void)
 -	{ return buf + lenBuf; }
 -
 -	const_iterator end(void) const
 -	{ return buf + lenBuf; }
 -
 -	// Custom extentions
 -
 -	void appendfmt(const value_type *fmt, ...);
 -
 -	size_type sizebytes(void) const { return lenBuf * sizeof(value_type); }
 -};
 -
 -//const bkstring::size_type bkstring::npos = -1;
 -
 -#endif
 diff --git a/plugins/CrashDumper/src/crshdmp.cpp b/plugins/CrashDumper/src/crshdmp.cpp index 5cea6dac9a..a2992f24db 100644 --- a/plugins/CrashDumper/src/crshdmp.cpp +++ b/plugins/CrashDumper/src/crshdmp.cpp @@ -76,9 +76,7 @@ INT_PTR StoreVersionInfoToFile(WPARAM, LPARAM lParam)  	if (hDumpFile != INVALID_HANDLE_VALUE)
  	{
 -		bkstring buffer;
 -
 -		buffer.reserve(0x1800);
 +		CMString buffer;
  		PrintVersionInfo(buffer, (unsigned int)lParam | VI_FLAG_PRNVAR);
  		char* bufu = mir_utf8encodeT(buffer.c_str());
 @@ -97,9 +95,7 @@ INT_PTR StoreVersionInfoToFile(WPARAM, LPARAM lParam)  INT_PTR StoreVersionInfoToClipboard(WPARAM, LPARAM lParam)
  {
 -	bkstring buffer;
 -	buffer.reserve(0x1800);
 -
 +	CMString buffer;
  	WriteBBFile(buffer, true);
  	PrintVersionInfo(buffer, (unsigned int)lParam | VI_FLAG_PRNVAR | VI_FLAG_FORMAT);
  	WriteBBFile(buffer, false);
 @@ -111,8 +107,7 @@ INT_PTR StoreVersionInfoToClipboard(WPARAM, LPARAM lParam)  INT_PTR UploadVersionInfo(WPARAM, LPARAM lParam)
  {
 -	bkstring buffer;
 -	buffer.reserve(0x1800);
 +	CMString buffer;
  	PrintVersionInfo(buffer);
  	VerTrnsfr *trn = (VerTrnsfr*)mir_alloc(sizeof(VerTrnsfr));
 diff --git a/plugins/CrashDumper/src/dumper.cpp b/plugins/CrashDumper/src/dumper.cpp index f05f828c16..63551c2355 100644 --- a/plugins/CrashDumper/src/dumper.cpp +++ b/plugins/CrashDumper/src/dumper.cpp @@ -34,12 +34,12 @@ void CreateMiniDump(HANDLE hDumpFile, PEXCEPTION_POINTERS exc_ptr)  }
 -void WriteBBFile(bkstring& buffer, bool hdr)
 +void WriteBBFile(CMString& buffer, bool hdr)
  {
  	static const TCHAR header[] = TEXT("[quote][size=1]");
  	static const TCHAR footer[] = TEXT("[/size][/quote]");
 -	buffer.append(hdr ? header : footer);
 +	buffer.Append(hdr ? header : footer);
  }
 @@ -55,37 +55,36 @@ void WriteUtfFile(HANDLE hDumpFile, char* bufu)  BOOL CALLBACK LoadedModules64(LPCSTR, DWORD64 ModuleBase, ULONG ModuleSize, PVOID UserContext)
  {
 -	bkstring& buffer = *(bkstring*)UserContext;
 +	CMString& buffer = *(CMString*)UserContext;
  	const HMODULE hModule = (HMODULE)ModuleBase;
  	TCHAR path[MAX_PATH];
  	GetModuleFileName(hModule, path, MAX_PATH);
 -	buffer.appendfmt(TEXT("%s  %p - %p"), path, (LPVOID)ModuleBase, (LPVOID)(ModuleBase + ModuleSize));
 +	buffer.AppendFormat(TEXT("%s  %p - %p"), path, (LPVOID)ModuleBase, (LPVOID)(ModuleBase + ModuleSize));
  	GetVersionInfo(hModule, buffer);
  	TCHAR timebuf[30] = TEXT("");
  	GetLastWriteTime(path, timebuf, 30);
 -	buffer.appendfmt(TEXT(" [%s]\r\n"), timebuf);
 +	buffer.AppendFormat(TEXT(" [%s]\r\n"), timebuf);
  	return TRUE;
  }
 -typedef struct _FindData
 +struct FindData
  {
 -	DWORD64 Offset;	IMAGEHLP_MODULE64* pModule;
 -} FindData;
 -
 +	DWORD64 Offset;
 +	IMAGEHLP_MODULE64* pModule;
 +};
  BOOL CALLBACK LoadedModulesFind64(LPCSTR ModuleName, DWORD64 ModuleBase, ULONG ModuleSize, PVOID UserContext)
  {
  	FindData* data = (FindData*)UserContext;
 -	if ((DWORD)(data->Offset - ModuleBase) < ModuleSize)
 -	{
 +	if ((DWORD)(data->Offset - ModuleBase) < ModuleSize) {
  		const size_t len = SIZEOF(data->pModule->ModuleName);
  		strncpy(data->pModule->ModuleName, ModuleName, len);
  		data->pModule->ModuleName[len-1] = 0;
 @@ -101,40 +100,34 @@ BOOL CALLBACK LoadedModulesFind64(LPCSTR ModuleName, DWORD64 ModuleBase, ULONG M  }
 -void GetLinkedModulesInfo(TCHAR *moduleName, bkstring &buffer)
 +void GetLinkedModulesInfo(TCHAR *moduleName, CMString &buffer)
  {
  	HANDLE hDllFile = CreateFile(moduleName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 -	if (hDllFile == INVALID_HANDLE_VALUE) return;
 +	if (hDllFile == INVALID_HANDLE_VALUE)
 +		return;
  	HANDLE hDllMapping = CreateFileMapping(hDllFile, NULL, PAGE_READONLY, 0, 0, NULL);
 -	if (hDllMapping == INVALID_HANDLE_VALUE) 
 -	{
 +	if (hDllMapping == INVALID_HANDLE_VALUE) {
  		CloseHandle(hDllFile);
  		return;
  	}
  	LPVOID dllAddr = MapViewOfFile(hDllMapping, FILE_MAP_READ, 0, 0, 0);
 -
  	static const TCHAR format[] = TEXT("    Plugin statically linked to missing module: %S\r\n");
 -
 -	__try
 -	{
 +	__try {
  		PIMAGE_NT_HEADERS nthdrs = ImageNtHeader(dllAddr);
  		ULONG tableSize;
  		PIMAGE_IMPORT_DESCRIPTOR importData = (PIMAGE_IMPORT_DESCRIPTOR)ImageDirectoryEntryToData(dllAddr, FALSE, 
  			IMAGE_DIRECTORY_ENTRY_IMPORT, &tableSize);
 -		if (importData)
 -		{
 -			while (importData->Name)
 -			{
 +		if (importData) {
 +			while (importData->Name) {
  				char* moduleName = (char*)ImageRvaToVa(nthdrs, dllAddr, importData->Name, NULL);
  				if (!SearchPathA(NULL, moduleName, NULL, NULL, 0, NULL))
 -				{
 -					buffer.appendfmt(format, moduleName);
 -				}
 +					buffer.AppendFormat(format, moduleName);
 +
  				importData++; //go to next record
  			}
  		}
 @@ -142,22 +135,19 @@ void GetLinkedModulesInfo(TCHAR *moduleName, bkstring &buffer)  		bool found = false;
  		PIMAGE_EXPORT_DIRECTORY exportData = (PIMAGE_EXPORT_DIRECTORY)ImageDirectoryEntryToData(dllAddr, FALSE, 
  			IMAGE_DIRECTORY_ENTRY_EXPORT, &tableSize);
 -		if (exportData)
 -		{
 +		if (exportData) {
  			ULONG* funcAddr = (ULONG*)ImageRvaToVa(nthdrs, dllAddr, exportData->AddressOfNames, NULL);
 -			for(unsigned i=0; i<exportData->NumberOfNames && !found; ++i)
 -			{
 +			for(unsigned i=0; i<exportData->NumberOfNames && !found; ++i) {
  				char* funcName = (char*)ImageRvaToVa(nthdrs, dllAddr, funcAddr[i], NULL);
  				found = strcmp(funcName, "MirandaPluginInfoEx") == 0 || strcmp(funcName, "MirandaPluginInfo") == 0; 
 -				if (strcmp(funcName, "DatabasePluginInfo") == 0)
 -				{
 -					buffer.append(TEXT("    This dll is a Miranda database plugin, another database is active right now\r\n"));
 +				if (strcmp(funcName, "DatabasePluginInfo") == 0) {
 +					buffer.Append(TEXT("    This dll is a Miranda database plugin, another database is active right now\r\n"));
  					found = true;
  				}
  			}
  		}
  		if (!found) 
 -			buffer.append(TEXT("    This dll is not a Miranda plugin and should be removed from plugins directory\r\n"));
 +			buffer.Append(TEXT("    This dll is not a Miranda plugin and should be removed from plugins directory\r\n"));
  	}
  	__except(EXCEPTION_EXECUTE_HANDLER) {}
 @@ -171,13 +161,13 @@ struct ListItem  {
  	ListItem() : str(), next(NULL) {}
 -	bkstring str;
 +	CMString str;
  	ListItem *next;
  };
 -static void GetPluginsString(bkstring& buffer, unsigned& flags)
 +static void GetPluginsString(CMString& buffer, unsigned& flags)
  {
 -	buffer.appendfmt(TEXT("Service Mode: %s\r\n"), servicemode ? TEXT("Yes") : TEXT("No"));
 +	buffer.AppendFormat(TEXT("Service Mode: %s\r\n"), servicemode ? TEXT("Yes") : TEXT("No"));
  	TCHAR path[MAX_PATH];
  	GetModuleFileName(NULL, path, MAX_PATH);
 @@ -192,38 +182,32 @@ static void GetPluginsString(bkstring& buffer, unsigned& flags)  	size_t count = 0, ucount = 0;
 -	bkstring ubuffer;
 +	CMString ubuffer;
  	ListItem* dlllist = NULL;
 -
  	static const TCHAR format[] = TEXT("%c %s v.%s%d.%d.%d.%d%s [%s] - %S %s\r\n");
 -
 -	do 
 -	{
 +	do {
  		bool loaded = false;
  		mir_sntprintf(fname, MAX_PATH-(fname-path), TEXT("\\plugins\\%s"), FindFileData.cFileName);
  		HMODULE hModule = GetModuleHandle(path);
 -		if (hModule == NULL && servicemode) 
 -		{
 +		if (hModule == NULL && servicemode) {
  			hModule = LoadLibrary(path);
  			loaded = true;
  		}
 -		if (hModule == NULL) 
 -		{	
 -			if ((flags & VI_FLAG_PRNVAR) && IsPluginEnabled(FindFileData.cFileName))
 -			{
 +		if (hModule == NULL) {	
 +			if ((flags & VI_FLAG_PRNVAR) && IsPluginEnabled(FindFileData.cFileName)) {
  				TCHAR timebuf[30] = TEXT("");
  				GetLastWriteTime(&FindFileData.ftLastWriteTime, timebuf, 30);
 -				ubuffer.appendfmt(format, TEXT(' '), FindFileData.cFileName, 
 +				ubuffer.AppendFormat(format, TEXT(' '), FindFileData.cFileName, 
  					(flags & VI_FLAG_FORMAT) ? TEXT("[b]") : TEXT(""),
  					0, 0, 0, 0, 
  					(flags & VI_FLAG_FORMAT) ? TEXT("[/b]") : TEXT(""),
  					timebuf, "<unknown>", TEXT(""));
  				GetLinkedModulesInfo(path, ubuffer);
 -				ubuffer.append(TEXT("\r\n"));
 +				ubuffer.Append(TEXT("\r\n"));
  				++ucount;
  			}
 @@ -231,8 +215,7 @@ static void GetPluginsString(bkstring& buffer, unsigned& flags)  		}
  		PLUGININFOEX* pi = GetMirInfo(hModule);
 -		if (pi != NULL)
 -		{
 +		if (pi != NULL) {
  			TCHAR timebuf[30] = TEXT("");
  			GetLastWriteTime(&FindFileData.ftLastWriteTime, timebuf, 30);
 @@ -258,7 +241,7 @@ static void GetPluginsString(bkstring& buffer, unsigned& flags)  				v1 = HIBYTE(HIWORD(ver)), v2 = LOBYTE(HIWORD(ver)), v3 = HIBYTE(LOWORD(ver)), v4 = LOBYTE(LOWORD(ver));
  			}
 -			lst->str.appendfmt(format, ep ? TEXT('\xa4') : TEXT(' '), FindFileData.cFileName, 
 +			lst->str.AppendFormat(format, ep ? TEXT('\xa4') : TEXT(' '), FindFileData.cFileName, 
  				(flags & VI_FLAG_FORMAT) ? TEXT("[b]") : TEXT(""),
  				v1, v2, v3, v4, 
  				(flags & VI_FLAG_FORMAT) ? TEXT("[/b]") : TEXT(""),
 @@ -266,10 +249,10 @@ static void GetPluginsString(bkstring& buffer, unsigned& flags)  			ListItem* lsttmp = dlllist;
  			ListItem* lsttmppv = NULL;
 -			while (lsttmp != NULL)
 -			{
 -				size_t sz = min(lsttmp->str.size(), lst->str.size()) - 2;
 -				if (lsttmp->str.comparei(2, sz, lst->str, 2, sz) > 0) break;
 +			while (lsttmp != NULL) {
 +				size_t sz = min(lsttmp->str.GetLength(), lst->str.GetLength()) - 2;
 +				if (lsttmp->str.CompareNoCase(lst->str) > 0)
 +					break;
  				lsttmppv = lsttmp;
  				lsttmp = lsttmp->next;
  			}
 @@ -289,23 +272,21 @@ static void GetPluginsString(bkstring& buffer, unsigned& flags)  	while (FindNextFile(hFind, &FindFileData));
  	FindClose(hFind);
 -	buffer.appendfmt(TEXT("\r\n%sActive Plugins (%u):%s\r\n"), 
 +	buffer.AppendFormat(TEXT("\r\n%sActive Plugins (%u):%s\r\n"), 
  		(flags & VI_FLAG_FORMAT) ? TEXT("[b]") : TEXT(""), count, (flags & VI_FLAG_FORMAT) ? TEXT("[/b]") : TEXT(""));
  	ListItem* lsttmp = dlllist;
 -	while (lsttmp != NULL)
 -	{
 -		buffer.append(lsttmp->str);
 +	while (lsttmp != NULL) {
 +		buffer.Append(lsttmp->str);
  		ListItem* lsttmp1 = lsttmp->next;
  		delete lsttmp;
  		lsttmp = lsttmp1;
  	} 
 -	if (ucount)
 -	{
 -		buffer.appendfmt(TEXT("\r\n%sUnloadable Plugins (%u):%s\r\n"), 
 +	if (ucount) {
 +		buffer.AppendFormat(TEXT("\r\n%sUnloadable Plugins (%u):%s\r\n"), 
  			(flags & VI_FLAG_FORMAT) ? TEXT("[b]") : TEXT(""), ucount, (flags & VI_FLAG_FORMAT) ? TEXT("[/b]") : TEXT(""));
 -		buffer.append(ubuffer);
 +		buffer.Append(ubuffer);
  	}
  }
 @@ -317,7 +298,7 @@ struct ProtoCount  	bool nloaded;
  };
 -static void GetProtocolStrings(bkstring& buffer)
 +static void GetProtocolStrings(CMString& buffer)
  {
  	PROTOACCOUNT **accList;
  	int accCount;
 @@ -362,13 +343,13 @@ static void GetProtocolStrings(bkstring& buffer)  			}
  	for (i = 0; i < protoCountMy; i++)
 -		buffer.appendfmt(TEXT("%-24s %d - Enabled %d - Disabled  %sLoaded\r\n"), 
 +		buffer.AppendFormat(TEXT("%-24s %d - Enabled %d - Disabled  %sLoaded\r\n"), 
  			(TCHAR*)_A2T(protoListMy[i]), protos[i].countse, 
  			protos[i].countsd, protos[i].nloaded ? _T("Not ") : _T(""));
  }
 -static void GetWeatherStrings(bkstring& buffer, unsigned flags)
 +static void GetWeatherStrings(CMString& buffer, unsigned flags)
  {
  	TCHAR path[MAX_PATH];
  	GetModuleFileName(NULL, path, MAX_PATH);
 @@ -381,16 +362,14 @@ static void GetWeatherStrings(bkstring& buffer, unsigned flags)  	HANDLE hFind = FindFirstFile(path, &FindFileData);
  	if (hFind == INVALID_HANDLE_VALUE) return;
 -	do 
 -	{
 +	do {
  		if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue;
  		mir_sntprintf(fname, MAX_PATH-(fname-path), TEXT("\\plugins\\weather\\%s"), FindFileData.cFileName);
  		HANDLE hDumpFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL,
  			OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 -		if (hDumpFile != INVALID_HANDLE_VALUE) 
 -		{
 +		if (hDumpFile != INVALID_HANDLE_VALUE) {
  			char buf[8192];
  			DWORD bytes = 0;
 @@ -398,12 +377,10 @@ static void GetWeatherStrings(bkstring& buffer, unsigned flags)  			buf[bytes] = 0;
  			char* ver = strstr(buf, "Version=");
 -			if (ver != NULL)
 -			{
 +			if (ver != NULL) {
  				char *endid = strchr(ver, '\r');
  				if (endid != NULL) *endid = 0;
 -				else
 -				{
 +				else {
  					endid = strchr(ver, '\n');
  					if (endid != NULL) *endid = 0;
  				}
 @@ -411,12 +388,10 @@ static void GetWeatherStrings(bkstring& buffer, unsigned flags)  			}
  			char *id = strstr(buf, "Name=");
 -			if (id != NULL)
 -			{
 +			if (id != NULL) {
  				char *endid = strchr(id, '\r');
  				if (endid != NULL) *endid = 0;
 -				else
 -				{
 +				else {
  					endid = strchr(id, '\n');
  					if (endid != NULL) *endid = 0;
  				}
 @@ -429,7 +404,7 @@ static void GetWeatherStrings(bkstring& buffer, unsigned flags)  			static const TCHAR format[] = TEXT(" %s v.%s%S%s [%s] - %S\r\n");
 -			buffer.appendfmt(format, FindFileData.cFileName, 
 +			buffer.AppendFormat(format, FindFileData.cFileName, 
  				(flags & VI_FLAG_FORMAT) ? TEXT("[b]") : TEXT(""),
  				ver,
  				(flags & VI_FLAG_FORMAT) ? TEXT("[/b]") : TEXT(""),
 @@ -442,7 +417,7 @@ static void GetWeatherStrings(bkstring& buffer, unsigned flags)  }
 -static void GetIconStrings(bkstring& buffer)
 +static void GetIconStrings(CMString& buffer)
  {
  	TCHAR path[MAX_PATH];
  	GetModuleFileName(NULL, path, MAX_PATH);
 @@ -455,116 +430,107 @@ static void GetIconStrings(bkstring& buffer)  	HANDLE hFind = FindFirstFile(path, &FindFileData);
  	if (hFind == INVALID_HANDLE_VALUE) return;
 -	do 
 -	{
 +	do {
  		if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue;
  		TCHAR timebuf[30] = TEXT("");
  		GetLastWriteTime(&FindFileData.ftLastWriteTime, timebuf, 30);
 -		buffer.appendfmt(TEXT(" %s [%s]\r\n"), FindFileData.cFileName, timebuf);
 +		buffer.AppendFormat(TEXT(" %s [%s]\r\n"), FindFileData.cFileName, timebuf);
  	}
  	while (FindNextFile(hFind, &FindFileData));
  	FindClose(hFind);
  }
 -void PrintVersionInfo(bkstring& buffer, unsigned flags)
 +void PrintVersionInfo(CMString& buffer, unsigned flags)
  {
  	GetProcessorString(buffer);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
  	GetFreeMemoryString(buffer);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
  	GetOSDisplayString(buffer);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
  	GetInternetExplorerVersion(buffer);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
  	GetAdminString(buffer);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
  	GetLanguageString(buffer);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
  	TCHAR *profpathfull = Utils_ReplaceVarsT(profpath);
 -	if (flags & VI_FLAG_PRNVAR)
 -	{
 +	if (flags & VI_FLAG_PRNVAR) {
  		GetFreeDiskString(profpathfull, buffer);
 -		buffer.append(TEXT("\r\n"));
 +		buffer.Append(TEXT("\r\n"));
  	}
 -	buffer.appendfmt(TEXT("\r\nMiranda NG Version: %s"), vertxt); 
 +	buffer.AppendFormat(TEXT("\r\nMiranda NG Version: %s"), vertxt); 
  	GetWow64String(buffer);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
  	TCHAR path[MAX_PATH], mirtime[30];
  	GetModuleFileName(NULL, path, MAX_PATH); 
  	GetLastWriteTime(path, mirtime, 30);
 -	buffer.appendfmt(TEXT("Build time: %s\r\n"), mirtime); 
 +	buffer.AppendFormat(TEXT("Build time: %s\r\n"), mirtime); 
  	TCHAR profpn[MAX_PATH];
  	mir_sntprintf(profpn, SIZEOF(profpn), TEXT("%s\\%s"), profpathfull, profname);
 -	buffer.appendfmt(TEXT("Profile: %s\r\n"), profpn);
 +	buffer.AppendFormat(TEXT("Profile: %s\r\n"), profpn);
 -	if (flags & VI_FLAG_PRNVAR)
 -	{
 +	if (flags & VI_FLAG_PRNVAR) {
  		WIN32_FIND_DATA FindFileData;
  		HANDLE hFind = FindFirstFile(profpn, &FindFileData);
 -		if (hFind != INVALID_HANDLE_VALUE) 
 -		{
 +		if (hFind != INVALID_HANDLE_VALUE) {
  			FindClose(hFind);
  			unsigned __int64 fsize = (unsigned __int64)FindFileData.nFileSizeHigh << 32 | FindFileData.nFileSizeLow;
 -			buffer.appendfmt(TEXT("Profile size: %I64u Bytes\r\n"), fsize), 
 +			buffer.AppendFormat(TEXT("Profile size: %I64u Bytes\r\n"), fsize), 
  				GetLastWriteTime(&FindFileData.ftCreationTime, mirtime, 30);
 -			buffer.appendfmt(TEXT("Profile creation date: %s\r\n"), mirtime);
 +			buffer.AppendFormat(TEXT("Profile creation date: %s\r\n"), mirtime);
  		}
  	}
  	mir_free(profpathfull);
  	GetLanguagePackString(buffer);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
 -	// buffer.appendfmt(TEXT("Nightly: %s\r\n"), _tcsstr(vertxt, TEXT("alpha")) ? TEXT("Yes") : TEXT("No")); 
 -	// buffer.appendfmt(TEXT("Unicode: %s\r\n"), _tcsstr(vertxt, TEXT("Unicode")) ? TEXT("Yes") : TEXT("No")); 
 +	// buffer.AppendFormat(TEXT("Nightly: %s\r\n"), _tcsstr(vertxt, TEXT("alpha")) ? TEXT("Yes") : TEXT("No")); 
 +	// buffer.AppendFormat(TEXT("Unicode: %s\r\n"), _tcsstr(vertxt, TEXT("Unicode")) ? TEXT("Yes") : TEXT("No")); 
  	GetPluginsString(buffer, flags);
 -	if (flags & VI_FLAG_WEATHER)
 -	{
 -		buffer.appendfmt(TEXT("\r\n%sWeather ini files:%s\r\n-------------------------------------------------------------------------------\r\n"),
 +	if (flags & VI_FLAG_WEATHER) {
 +		buffer.AppendFormat(TEXT("\r\n%sWeather ini files:%s\r\n-------------------------------------------------------------------------------\r\n"),
  			(flags & VI_FLAG_FORMAT) ? TEXT("[b]") : TEXT(""),
  			(flags & VI_FLAG_FORMAT) ? TEXT("[/b]") : TEXT(""));
  		GetWeatherStrings(buffer, flags);
  	}
 -	if (flags & VI_FLAG_PRNVAR && !servicemode)
 -	{
 -		buffer.appendfmt(TEXT("\r\n%sProtocols and Accounts:%s\r\n-------------------------------------------------------------------------------\r\n"),
 +	if (flags & VI_FLAG_PRNVAR && !servicemode) {
 +		buffer.AppendFormat(TEXT("\r\n%sProtocols and Accounts:%s\r\n-------------------------------------------------------------------------------\r\n"),
  			(flags & VI_FLAG_FORMAT) ? TEXT("[b]") : TEXT(""),
  			(flags & VI_FLAG_FORMAT) ? TEXT("[/b]") : TEXT(""));
  		GetProtocolStrings(buffer);
  	}
 -	if (flags & VI_FLAG_PRNVAR)
 -	{
 -		buffer.appendfmt(TEXT("\r\n%sIcon Packs:%s\r\n-------------------------------------------------------------------------------\r\n"),
 +	if (flags & VI_FLAG_PRNVAR) {
 +		buffer.AppendFormat(TEXT("\r\n%sIcon Packs:%s\r\n-------------------------------------------------------------------------------\r\n"),
  			(flags & VI_FLAG_FORMAT) ? TEXT("[b]") : TEXT(""),
  			(flags & VI_FLAG_FORMAT) ? TEXT("[/b]") : TEXT(""));
  		GetIconStrings(buffer);
  	}
 -	if (flags & VI_FLAG_PRNDLL)
 -	{
 -		__try
 -		{
 -			buffer.append(TEXT("\r\nLoaded Modules:\r\n-------------------------------------------------------------------------------\r\n"));
 +	if (flags & VI_FLAG_PRNDLL) {
 +		__try {
 +			buffer.Append(TEXT("\r\nLoaded Modules:\r\n-------------------------------------------------------------------------------\r\n"));
  			EnumerateLoadedModules64(GetCurrentProcess(), LoadedModules64, &buffer);
  		}
  		__except(EXCEPTION_EXECUTE_HANDLER) {}
 @@ -604,21 +570,19 @@ void CreateCrashReport(HANDLE hDumpFile, PEXCEPTION_POINTERS exc_ptr, const TCHA  	const PLUGININFOEX *pluginInfoEx = GetPluginInfoEx();
 -	bkstring buffer;
 -	buffer.reserve(0x5000);
 -
  	TCHAR curtime[30];
  	GetISO8061Time(NULL, curtime, 30);
 -	buffer.appendfmt(TEXT("Miranda Crash Report from %s. Crash Dumper v.%d.%d.%d.%d\r\n"),
 +	CMString buffer;
 +	buffer.AppendFormat(TEXT("Miranda Crash Report from %s. Crash Dumper v.%d.%d.%d.%d\r\n"),
  		curtime, 
  		HIBYTE(HIWORD(pluginInfoEx->version)), LOBYTE(HIWORD(pluginInfoEx->version)), 
  		HIBYTE(LOWORD(pluginInfoEx->version)), LOBYTE(LOWORD(pluginInfoEx->version)));
 -	size_t crashpos = buffer.size();
 +	int crashpos = buffer.GetLength();
  	ReadableExceptionInfo(exc_ptr->ExceptionRecord, buffer);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
  	const HANDLE hProcess = GetCurrentProcess();
 @@ -626,17 +590,9 @@ void CreateCrashReport(HANDLE hDumpFile, PEXCEPTION_POINTERS exc_ptr, const TCHA  		SymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS | SYMOPT_LOAD_LINES);
  	SymInitialize(hProcess, NULL, TRUE);
 -	buffer.append(TEXT("\r\nStack Trace:\r\n---------------------------------------------------------------\r\n"));
 -
 -	for (int i=81; --i;)
 -	{
 -		/*
 -		char symbuf[sizeof(SYMBOL_INFO) + MAX_SYM_NAME * sizeof(TCHAR) + 4] = {0};
 -		PSYMBOL_INFO pSym = (PSYMBOL_INFO)symbuf;
 -		pSym->SizeOfStruct = sizeof(SYMBOL_INFO);
 -		pSym->MaxNameLen = MAX_SYM_NAME;
 -		*/
 +	buffer.Append(TEXT("\r\nStack Trace:\r\n---------------------------------------------------------------\r\n"));
 +	for (int i=81; --i;) {
  		char symbuf[sizeof(IMAGEHLP_SYMBOL64) + MAX_SYM_NAME * sizeof(TCHAR) + 4] = {0};
  		PIMAGEHLP_SYMBOL64 pSym = (PIMAGEHLP_SYMBOL64)symbuf;
  		pSym->SizeOfStruct = sizeof(IMAGEHLP_SYMBOL64);
 @@ -659,19 +615,15 @@ void CreateCrashReport(HANDLE hDumpFile, PEXCEPTION_POINTERS exc_ptr, const TCHA  		if (frame.AddrPC.Offset == frame.AddrReturn.Offset) break;
 -		if (frame.AddrPC.Offset != 0)
 -		{
 -			if (SymGetSymFromAddr64(hProcess, frame.AddrPC.Offset, &offsetFromSmybol, pSym))
 -				//			if (SymFromAddr(hProcess, frame.AddrPC.Offset, &offsetFromSmybol, pSym))
 -			{
 +		if (frame.AddrPC.Offset != 0) {
 +			if (SymGetSymFromAddr64(hProcess, frame.AddrPC.Offset, &offsetFromSmybol, pSym)) {
  				UnDecorateSymbolName(pSym->Name, undName, MAX_SYM_NAME, UNDNAME_NAME_ONLY);
  				UnDecorateSymbolName(pSym->Name, undFullName, MAX_SYM_NAME, UNDNAME_COMPLETE);
  			}
  			SymGetLineFromAddr64(hProcess, frame.AddrPC.Offset, &offsetFromLine, &Line);
  			SymGetModuleInfo64(hProcess, frame.AddrPC.Offset, &Module);
 -			if (Module.ModuleName[0] == 0)
 -			{
 +			if (Module.ModuleName[0] == 0) {
  				FindData data;
  				data.Offset = frame.AddrPC.Offset;
  				data.pModule = &Module;
 @@ -692,20 +644,16 @@ void CreateCrashReport(HANDLE hDumpFile, PEXCEPTION_POINTERS exc_ptr, const TCHA  		const char *lineFileName = Line.FileName ? Line.FileName : "(filename not available)";
  		const char *moduleName = Module.ModuleName[0] ? Module.ModuleName : "(module-name not available)";
 -		if (crashpos != 0)
 -		{
 +		if (crashpos != 0) {
  			HMODULE hModule = (HMODULE)Module.BaseOfImage;
  			PLUGININFOEX *pi = GetMirInfo(hModule);
 -			if (pi != NULL)
 -			{
 -
 +			if (pi != NULL) {
  				static const TCHAR formatc[] = TEXT("\r\nLikely cause of the crash plugin: %S\r\n\r\n");
 -				if (pi->shortName)
 -				{
 -					bkstring crashcause;
 -					crashcause.appendfmt(formatc, pi->shortName);
 -					buffer.insert(crashpos, crashcause);
 +				if (pi->shortName) {
 +					CMString crashcause;
 +					crashcause.AppendFormat(formatc, pi->shortName);
 +					buffer.Insert(crashpos, crashcause);
  				}
  				crashpos = 0;
  			}
 @@ -714,12 +662,12 @@ void CreateCrashReport(HANDLE hDumpFile, PEXCEPTION_POINTERS exc_ptr, const TCHA  		static const TCHAR formatd[] = TEXT("%p (%S %p): %S (%d): %S\r\n");
 -		buffer.appendfmt(formatd, 
 +		buffer.AppendFormat(formatd, 
  			(LPVOID)frame.AddrPC.Offset, moduleName, (LPVOID)Module.BaseOfImage, 
  			lineFileName, Line.LineNumber, name);
  	}
  	SymCleanup(hProcess);
 -	buffer.append(TEXT("\r\n"));
 +	buffer.Append(TEXT("\r\n"));
  	PrintVersionInfo(buffer, VI_FLAG_PRNDLL);
 diff --git a/plugins/CrashDumper/src/exhndlr.cpp b/plugins/CrashDumper/src/exhndlr.cpp index cf7ceb308d..253ffec924 100644 --- a/plugins/CrashDumper/src/exhndlr.cpp +++ b/plugins/CrashDumper/src/exhndlr.cpp @@ -54,20 +54,17 @@ void myfilterWorker(PEXCEPTION_POINTERS exc_ptr, bool notify)  	GetLocalTime(&st);
  	CreateDirectoryTree(CrashLogFolder);
 -	__try
 -	{
 -		if (dtsubfldr)
 -		{
 +	__try {
 +		if (dtsubfldr) {
  			mir_sntprintf(path, MAX_PATH, TEXT("%s\\%02d.%02d.%02d"), CrashLogFolder, st.wYear, st.wMonth, st.wDay);
  			CreateDirectory(path, NULL);
  			mir_sntprintf(path, MAX_PATH, TEXT("%s\\%02d.%02d.%02d\\crash%02d%02d%02d%02d%02d%02d.mdmp"), CrashLogFolder,
  				st.wYear, st.wMonth, st.wDay, st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
  		}
  		else
 -		{
  			mir_sntprintf(path, MAX_PATH, TEXT("%s\\crash%02d%02d%02d%02d%02d%02d.mdmp"), CrashLogFolder,
  				st.wYear, st.wMonth, st.wDay, st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
 -		}
 +
  		hDumpFile = CreateFile(path, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
  		if (hDumpFile != INVALID_HANDLE_VALUE)
  			CreateMiniDump(hDumpFile, exc_ptr);
 @@ -82,20 +79,17 @@ void myfilterWorker(PEXCEPTION_POINTERS exc_ptr, bool notify)  	CloseHandle(hDumpFile);
  	if (empty) DeleteFile(path);
 -	__try
 -	{
 -		if (dtsubfldr)
 -		{
 +	__try {
 +		if (dtsubfldr) {
  			mir_sntprintf(path, MAX_PATH, TEXT("%s\\%02d.%02d.%02d"), CrashLogFolder, st.wYear, st.wMonth, st.wDay);
  			CreateDirectory(path, NULL);
  			mir_sntprintf(path, MAX_PATH, TEXT("%s\\%02d.%02d.%02d\\crash%02d%02d%02d%02d%02d%02d.txt"), CrashLogFolder,
  				st.wYear, st.wMonth, st.wDay, st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
  		}
  		else
 -		{
  			mir_sntprintf(path, MAX_PATH, TEXT("%s\\crash%02d%02d%02d%02d%02d%02d.txt"), CrashLogFolder,
  				st.wYear, st.wMonth, st.wDay, st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
 -		}
 +
  		hDumpFile = CreateFile(path, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
  		mir_sntprintf(path, MAX_PATH, TranslateT("Miranda crashed. Crash report stored in the folder:\n %s\n\n Would you like store it in the clipboard as well?"), CrashLogFolder);
 @@ -122,8 +116,7 @@ LONG WINAPI myfilter(PEXCEPTION_POINTERS exc_ptr)  LONG WINAPI myfilterv(PEXCEPTION_POINTERS exc_ptr)
  {
 -	if (0xC0000000L <= exc_ptr->ExceptionRecord->ExceptionCode && 0xC0000500L >= exc_ptr->ExceptionRecord->ExceptionCode)
 -	{
 +	if (0xC0000000L <= exc_ptr->ExceptionRecord->ExceptionCode && 0xC0000500L >= exc_ptr->ExceptionRecord->ExceptionCode) {
  		if (exc_ptr == lastptr) return EXCEPTION_EXECUTE_HANDLER;
  		lastptr = exc_ptr;
 @@ -134,8 +127,7 @@ LONG WINAPI myfilterv(PEXCEPTION_POINTERS exc_ptr)  DWORD MirandaThreadFilter(DWORD code, EXCEPTION_POINTERS* info)
  {
 -	if (info != lastptr)
 -	{
 +	if (info != lastptr) {
  		lastptr = info;
  		myfilterWorker(info, true);
  	}
 diff --git a/plugins/CrashDumper/src/ui.cpp b/plugins/CrashDumper/src/ui.cpp index d2eb282b3f..d8a616c370 100644 --- a/plugins/CrashDumper/src/ui.cpp +++ b/plugins/CrashDumper/src/ui.cpp @@ -60,11 +60,9 @@ BOOL MyResizeGetOffset(HWND hwndCtrl, int nWidth, int nHeight, int* nDx, int* nD  INT_PTR CALLBACK DlgProcView(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) 
  {
 -	switch (msg) 
 -	{
 +	switch (msg) {
  	case WM_INITDIALOG:
 -		if (hViewWnd == NULL)
 -		{
 +		if (hViewWnd == NULL) {
  			hViewWnd = hwndDlg;
  			TranslateDialogDefault(hwndDlg);
  			SendMessage(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)LoadIconEx(IDI_VI, true));
 @@ -76,22 +74,18 @@ INT_PTR CALLBACK DlgProcView(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPara  			_tcscpy(chf.szFaceName, TEXT("Courier New"));
  			SendDlgItemMessage(hwndDlg, IDC_VIEWVERSIONINFO, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&chf);
 -			bkstring buffer;
 -			buffer.reserve(0x1800);
 +			CMString buffer;
  			PrintVersionInfo(buffer, (unsigned int)lParam);
  			SetDlgItemText(hwndDlg, IDC_VIEWVERSIONINFO, buffer.c_str());
  			SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam);
  			if(lParam & VI_FLAG_PRNDLL)
 -			{
  				SetWindowText(hwndDlg,TranslateT("View Version Information (with DLLs)"));
 -			}
  			Utils_RestoreWindowPositionNoMove(hwndDlg, NULL, PluginName, "ViewInfo_");
  			ShowWindow(hwndDlg, SW_SHOW);
  		}
 -		else
 -			DestroyWindow(hwndDlg);
 +		else DestroyWindow(hwndDlg);
  		break;
  	case WM_SIZE: 
 @@ -103,9 +97,7 @@ INT_PTR CALLBACK DlgProcView(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPara  			GetWindowRect(GetDlgItem(hwndDlg, IDC_FILEVER), &rc);
  			bsz = rc.bottom - rc.top;
 -			if (MyResizeGetOffset(GetDlgItem(hwndDlg, IDC_VIEWVERSIONINFO), 
 -				LOWORD(lParam)-20, HIWORD(lParam)-30-bsz, &dx, &dy))
 -			{
 +			if (MyResizeGetOffset(GetDlgItem(hwndDlg, IDC_VIEWVERSIONINFO), LOWORD(lParam)-20, HIWORD(lParam)-30-bsz, &dx, &dy)) {
  				hDwp = BeginDeferWindowPos(4);
  				hDwp = MyResizeWindow(hDwp, hwndDlg, GetDlgItem(hwndDlg, IDC_FILEVER), 0, dy, 0, 0);
  				hDwp = MyResizeWindow(hDwp, hwndDlg, GetDlgItem(hwndDlg, IDC_CLIPVER), dx/2, dy, 0, 0);
 @@ -119,17 +111,13 @@ INT_PTR CALLBACK DlgProcView(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPara  	case WM_GETMINMAXINFO: 
  		{
  			LPMINMAXINFO mmi = (LPMINMAXINFO)lParam;
 -
 -			// The minimum width in points
 -			mmi->ptMinTrackSize.x = 350;
 -			// The minimum height in points
 -			mmi->ptMinTrackSize.y = 300;
 +			mmi->ptMinTrackSize.x = 350; // The minimum width in points
 +			mmi->ptMinTrackSize.y = 300; // The minimum height in points
  		}
  		break;
  	case WM_COMMAND:
 -		switch(LOWORD(wParam)) 
 -		{
 +		switch(LOWORD(wParam)) {
  		case IDC_CLIPVER:
  			CallService(MS_CRASHDUMPER_STORETOCLIP, 0, GetWindowLongPtr(hwndDlg, GWLP_USERDATA));
  			break;
 @@ -166,8 +154,7 @@ INT_PTR CALLBACK DlgProcView(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPara  				if (sel.cpMin == sel.cpMax)
  					EnableMenuItem(hSubMenu, IDM_COPY, MF_BYCOMMAND | MF_GRAYED);
 -				switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, NULL)) 
 -				{
 +				switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, NULL)) {
  				case IDM_COPY:
  					SendMessage(hView, WM_COPY, 0, 0);
  					break;
 @@ -208,20 +195,16 @@ void DestroyAllWindows(void)  INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) 
  {
 -	switch (msg) 
 -	{
 +	switch (msg) {
  	case WM_INITDIALOG:
 +		TranslateDialogDefault(hwndDlg);
  		{
 -			TranslateDialogDefault(hwndDlg);
 -
  			DBVARIANT dbv;
 -			if (db_get_s(NULL, PluginName, "Username", &dbv) == 0)
 -			{
 +			if (db_get_s(NULL, PluginName, "Username", &dbv) == 0) {
  				SetDlgItemTextA(hwndDlg, IDC_USERNAME, dbv.pszVal);
  				db_free(&dbv);
  			}
 -			if (db_get_s(NULL, PluginName, "Password", &dbv) == 0)
 -			{
 +			if (db_get_s(NULL, PluginName, "Password", &dbv) == 0) {
  				CallService(MS_DB_CRYPT_DECODESTRING, strlen(dbv.pszVal)+1, (LPARAM)dbv.pszVal);
  				SetDlgItemTextA(hwndDlg, IDC_PASSWORD, dbv.pszVal);
  				db_free(&dbv);
 @@ -238,8 +221,7 @@ INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP  		break;
  	case WM_NOTIFY:
 -		if (((LPNMHDR)lParam)->code == (unsigned)PSN_APPLY)
 -		{
 +		if (((LPNMHDR)lParam)->code == (unsigned)PSN_APPLY) {
  			char szSetting[100];
  			GetDlgItemTextA(hwndDlg, IDC_USERNAME, szSetting, SIZEOF(szSetting));
  			db_set_s(NULL, PluginName, "Username", szSetting);
 @@ -314,8 +296,7 @@ void ShowMessage(int type, const TCHAR* format, ...)  	pi.lptzText[len] = 0;
  	va_end(va);
 -	if (ServiceExists(MS_POPUP_ADDPOPUPT))
 -	{
 +	if (ServiceExists(MS_POPUP_ADDPOPUPT)) {
  		_tcscpy(pi.lptzContactName, TEXT(PluginName));
  		pi.lchIcon = LoadIconEx(IDI_VI);
  		pi.PluginWindowProc = DlgProcPopup;
 @@ -323,6 +304,5 @@ void ShowMessage(int type, const TCHAR* format, ...)  		PUAddPopupT(&pi);
  	}
 -	else
 -		MessageBox(NULL, pi.lptzText, TEXT(PluginName), MB_OK | MB_ICONINFORMATION);
 +	else MessageBox(NULL, pi.lptzText, TEXT(PluginName), MB_OK | MB_ICONINFORMATION);
  }
 diff --git a/plugins/CrashDumper/src/upload.cpp b/plugins/CrashDumper/src/upload.cpp index 437a5f55a0..da280a1959 100644 --- a/plugins/CrashDumper/src/upload.cpp +++ b/plugins/CrashDumper/src/upload.cpp @@ -23,8 +23,7 @@ HANDLE hNetlibUser;  static void arrayToHex(BYTE* data, size_t datasz, char* res)
  {
  	char* resptr = res;
 -	for (unsigned i=0; i<datasz ; i++)
 -	{
 +	for (unsigned i=0; i<datasz ; i++) {
  		const BYTE ch = data[i];
  		const char ch0 = (char)(ch >> 4);
 @@ -40,16 +39,13 @@ void GetLoginStr(char* user, size_t szuser, char* pass)  {
  	DBVARIANT dbv;
 -	if (db_get_s(NULL, PluginName, "Username", &dbv) == 0)
 -	{
 +	if (db_get_s(NULL, PluginName, "Username", &dbv) == 0) {
  		mir_snprintf(user, szuser, "%s", dbv.pszVal);
  		db_free(&dbv);
  	}
 -	else
 -		user[0] = 0;
 +	else user[0] = 0;
 -	if (db_get_s(NULL, PluginName, "Password", &dbv) == 0)
 -	{
 +	if (db_get_s(NULL, PluginName, "Password", &dbv) == 0) {
  		CallService(MS_DB_CRYPT_DECODESTRING, strlen(dbv.pszVal)+1, (LPARAM)dbv.pszVal);
  		BYTE hash[16];
 @@ -63,8 +59,7 @@ void GetLoginStr(char* user, size_t szuser, char* pass)  		db_free(&dbv);
  	}
 -	else
 -		pass[0] = 0;
 +	else pass[0] = 0;
  }
  void OpenAuthUrl(const char* url)
 @@ -125,31 +120,23 @@ bool InternetDownloadFile(const char *szUrl, VerTrnsfr* szReq)  	nlhr.pData = szReq->buf;
  	nlhr.dataLength = (int)strlen(szReq->buf);
 -	while (result == 0xBADBAD)
 -	{
 +	while (result == 0xBADBAD) {
  		// download the page
 -		NETLIBHTTPREQUEST *nlhrReply = (NETLIBHTTPREQUEST*)CallService(MS_NETLIB_HTTPTRANSACTION,
 -			(WPARAM)hNetlibUser,(LPARAM)&nlhr);
 -
 -		if (nlhrReply) 
 -		{
 +		NETLIBHTTPREQUEST *nlhrReply = (NETLIBHTTPREQUEST*)CallService(MS_NETLIB_HTTPTRANSACTION, (WPARAM)hNetlibUser,(LPARAM)&nlhr);
 +		if (nlhrReply) {
  			int i;
  			// if the recieved code is 200 OK
 -			switch(nlhrReply->resultCode)
 -			{
 +			switch(nlhrReply->resultCode) {
  			case 200: 
  				if (db_get_b(NULL, PluginName, "UploadChanged", 0))
  					ProcessVIHash(true);
  				for (i=nlhrReply->headersCount; i--; )
 -				{
 -					if (_stricmp(nlhrReply->headers[i].szName, "OldPlugins") == 0)
 -					{
 +					if (_stricmp(nlhrReply->headers[i].szName, "OldPlugins") == 0) {
  						i = atoi(nlhrReply->headers[i].szValue);
  						break;
  					}
 -				}
  				ShowMessage(1, TranslateT("VersionInfo upload successful,\n %d old plugins"), i);
  				result = 0;
 @@ -175,13 +162,10 @@ bool InternetDownloadFile(const char *szUrl, VerTrnsfr* szReq)  			case 307:
  				// get the url for the new location and save it to szInfo
  				// look for the reply header "Location"
 -				for (i=0; i<nlhrReply->headersCount; i++) 
 -				{
 -					if (!strcmp(nlhrReply->headers[i].szName, "Location")) 
 -					{
 +				for (i=0; i<nlhrReply->headersCount; i++) {
 +					if (!strcmp(nlhrReply->headers[i].szName, "Location")) {
  						size_t rlen = 0;
 -						if (nlhrReply->headers[i].szValue[0] == '/')
 -						{
 +						if (nlhrReply->headers[i].szValue[0] == '/') {
  							const char* szPath;
  							const char* szPref = strstr(szUrl, "://");
  							szPref = szPref ? szPref + 3 : szUrl;
 @@ -206,8 +190,7 @@ bool InternetDownloadFile(const char *szUrl, VerTrnsfr* szReq)  				ShowMessage(0, TranslateT("Cannot upload VersionInfo. Unknown error"));
  			}
  		}
 -		else 
 -		{
 +		else {
  			result = 1;
  			ShowMessage(0, TranslateT("Cannot upload VersionInfo. Host unreachable."));
  		}
 @@ -229,11 +212,9 @@ void __cdecl VersionInfoUploadThread(void* arg)  	mir_free(trn);
  }
 -
  void UploadInit(void) 
  {
 -	NETLIBUSER nlu = {0};
 -	nlu.cbSize = sizeof(nlu);
 +	NETLIBUSER nlu = { sizeof(nlu) };
  	nlu.flags = NUF_OUTGOING | NUF_HTTPCONNS | NUF_NOHTTPSOPTION | NUF_TCHAR;
  	nlu.szSettingsModule = (char*)PluginName;
  	nlu.ptszDescriptiveName = TranslateT("Crash Dumper HTTP connections");
 @@ -247,36 +228,27 @@ void UploadClose(void)  bool ProcessVIHash(bool store)
  {
 -	bkstring buffer;
 -	buffer.reserve(0x1800);
 +	CMString buffer;
  	PrintVersionInfo(buffer, 0);
  	BYTE hash[16];
  	mir_md5_state_t context;
  	mir_md5_init(&context);
 -	mir_md5_append(&context, (PBYTE)buffer.c_str(), (int)buffer.sizebytes());
 +	mir_md5_append(&context, (PBYTE)buffer.c_str(), buffer.GetLength()*sizeof(TCHAR));
  	mir_md5_finish(&context, hash);
  	char hashstr[40];
  	arrayToHex(hash, sizeof(hash), hashstr);
 -	bool result;
 -	if (store)
 -	{
 +	if (store) {
  		db_set_s(NULL, PluginName, "VIHash", hashstr);
 -		result = true;
 +		return true;
  	}
 -	else
 -	{
 -		DBVARIANT dbv;
 -		if (db_get_s(NULL, PluginName, "VIHash", &dbv) == 0)
 -		{
 -			result = strcmp(hashstr, dbv.pszVal) == 0;
 -			db_free(&dbv);
 -		}
 -		else
 -			result = false;
 -	}
 -	return result;
 +
 +	ptrA VIHash(db_get_sa(NULL, PluginName, "VIHash"));
 +	if (VIHash == NULL)
 +		return false;
 +
 +	return strcmp(hashstr, VIHash) == 0;
  }
 diff --git a/plugins/CrashDumper/src/utils.cpp b/plugins/CrashDumper/src/utils.cpp index c60ea9a5e1..2542c3d30d 100644 --- a/plugins/CrashDumper/src/utils.cpp +++ b/plugins/CrashDumper/src/utils.cpp @@ -37,7 +37,7 @@ void CheckForOtherCrashReportingPlugins(void)  		TEXT("Miranda Crash Dumper"), MB_OK | MB_ICONERROR | MB_TASKMODAL | MB_TOPMOST);
  }
 -void GetOSDisplayString(bkstring& buffer)
 +void GetOSDisplayString(CMString& buffer)
  {
  	OSVERSIONINFOEX osvi = {0};
  	SYSTEM_INFO si = {0};
 @@ -56,30 +56,30 @@ void GetOSDisplayString(bkstring& buffer)  	GetNativeSystemInfo(&si);
  	if (VER_PLATFORM_WIN32_NT == osvi.dwPlatformId && osvi.dwMajorVersion > 4) {
 -		buffer.append(TEXT("Operating System: Microsoft "));
 +		buffer.Append(TEXT("Operating System: Microsoft "));
  		// Test for the specific product.
  		if (osvi.dwMajorVersion == 6) {
  			switch (osvi.dwMinorVersion) {
  			case 0:
  				if (osvi.wProductType == VER_NT_WORKSTATION)
 -					buffer.append(TEXT("Windows Vista "));
 +					buffer.Append(TEXT("Windows Vista "));
  				else 
 -					buffer.append(TEXT("Windows Server 2008 "));
 +					buffer.Append(TEXT("Windows Server 2008 "));
  				break;
  			case 1:
  				if (osvi.wProductType == VER_NT_WORKSTATION)
 -					buffer.append(TEXT("Windows 7 "));
 +					buffer.Append(TEXT("Windows 7 "));
  				else 
 -					buffer.append(TEXT("Windows Server 2008 R2 "));
 +					buffer.Append(TEXT("Windows Server 2008 R2 "));
  				break;
  			default:
  				if (osvi.wProductType == VER_NT_WORKSTATION)
 -					buffer.append(TEXT("Windows 8 "));
 +					buffer.Append(TEXT("Windows 8 "));
  				else 
 -					buffer.append(TEXT("Windows Server 2012 "));
 +					buffer.Append(TEXT("Windows Server 2012 "));
  				break;
  			}
 @@ -88,163 +88,163 @@ void GetOSDisplayString(bkstring& buffer)  			switch(dwType) {
  			case PRODUCT_ULTIMATE:
 -				buffer.append(TEXT("Ultimate Edition"));
 +				buffer.Append(TEXT("Ultimate Edition"));
  				break;
  			case PRODUCT_HOME_PREMIUM:
 -				buffer.append(TEXT("Home Premium Edition"));
 +				buffer.Append(TEXT("Home Premium Edition"));
  				break;
  			case PRODUCT_HOME_BASIC:
 -				buffer.append(TEXT("Home Basic Edition"));
 +				buffer.Append(TEXT("Home Basic Edition"));
  				break;
  			case PRODUCT_ENTERPRISE:
 -				buffer.append(TEXT("Enterprise Edition"));
 +				buffer.Append(TEXT("Enterprise Edition"));
  				break;
  			case PRODUCT_BUSINESS:
 -				buffer.append(TEXT("Business Edition"));
 +				buffer.Append(TEXT("Business Edition"));
  				break;
  			case PRODUCT_STARTER:
 -				buffer.append(TEXT("Starter Edition"));
 +				buffer.Append(TEXT("Starter Edition"));
  				break;
  			case PRODUCT_CLUSTER_SERVER:
 -				buffer.append(TEXT("Cluster Server Edition"));
 +				buffer.Append(TEXT("Cluster Server Edition"));
  				break;
  			case PRODUCT_DATACENTER_SERVER:
 -				buffer.append(TEXT("Datacenter Edition"));
 +				buffer.Append(TEXT("Datacenter Edition"));
  				break;
  			case PRODUCT_DATACENTER_SERVER_CORE:
 -				buffer.append(TEXT("Datacenter Edition (core installation)"));
 +				buffer.Append(TEXT("Datacenter Edition (core installation)"));
  				break;
  			case PRODUCT_ENTERPRISE_SERVER:
 -				buffer.append(TEXT("Enterprise Edition"));
 +				buffer.Append(TEXT("Enterprise Edition"));
  				break;
  			case PRODUCT_ENTERPRISE_SERVER_CORE:
 -				buffer.append(TEXT("Enterprise Edition (core installation)"));
 +				buffer.Append(TEXT("Enterprise Edition (core installation)"));
  				break;
  			case PRODUCT_ENTERPRISE_SERVER_IA64:
 -				buffer.append(TEXT("Enterprise Edition for Itanium-based Systems"));
 +				buffer.Append(TEXT("Enterprise Edition for Itanium-based Systems"));
  				break;
  			case PRODUCT_SMALLBUSINESS_SERVER:
 -				buffer.append(TEXT("Small Business Server"));
 +				buffer.Append(TEXT("Small Business Server"));
  				break;
  			case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM:
 -				buffer.append(TEXT("Small Business Server Premium Edition"));
 +				buffer.Append(TEXT("Small Business Server Premium Edition"));
  				break;
  			case PRODUCT_STANDARD_SERVER:
 -				buffer.append(TEXT("Standard Edition"));
 +				buffer.Append(TEXT("Standard Edition"));
  				break;
  			case PRODUCT_STANDARD_SERVER_CORE:
 -				buffer.append(TEXT("Standard Edition (core installation)"));
 +				buffer.Append(TEXT("Standard Edition (core installation)"));
  				break;
  			case PRODUCT_WEB_SERVER:
 -				buffer.append(TEXT("Web Server Edition"));
 +				buffer.Append(TEXT("Web Server Edition"));
  				break;
  			}
  			if (si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64)
 -				buffer.append(TEXT(", 64-bit"));
 +				buffer.Append(TEXT(", 64-bit"));
  			else if (si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_INTEL)
 -				buffer.append(TEXT(", 32-bit"));
 +				buffer.Append(TEXT(", 32-bit"));
  		}
  		if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2) {
  			if (GetSystemMetrics(SM_SERVERR2))
 -				buffer.append(TEXT("Windows Server 2003 R2, "));
 +				buffer.Append(TEXT("Windows Server 2003 R2, "));
  			else if (osvi.wSuiteMask==VER_SUITE_STORAGE_SERVER)
 -				buffer.append(TEXT("Windows Storage Server 2003"));
 +				buffer.Append(TEXT("Windows Storage Server 2003"));
  			else if (osvi.wProductType == VER_NT_WORKSTATION && 
  				si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)
 -				buffer.append(TEXT("Windows XP Professional x64 Edition"));
 -			else buffer.append(TEXT("Windows Server 2003, "));
 +				buffer.Append(TEXT("Windows XP Professional x64 Edition"));
 +			else buffer.Append(TEXT("Windows Server 2003, "));
  			// Test for the server type.
  			if (osvi.wProductType != VER_NT_WORKSTATION) {
  				if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64) {
  					if(osvi.wSuiteMask & VER_SUITE_DATACENTER)
 -						buffer.append(TEXT("Datacenter Edition for Itanium-based Systems"));
 +						buffer.Append(TEXT("Datacenter Edition for Itanium-based Systems"));
  					else if(osvi.wSuiteMask & VER_SUITE_ENTERPRISE)
 -						buffer.append(TEXT("Enterprise Edition for Itanium-based Systems"));
 +						buffer.Append(TEXT("Enterprise Edition for Itanium-based Systems"));
  				}
  				else if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) {
  					if(osvi.wSuiteMask & VER_SUITE_DATACENTER)
 -						buffer.append(TEXT("Datacenter x64 Edition"));
 +						buffer.Append(TEXT("Datacenter x64 Edition"));
  					else if(osvi.wSuiteMask & VER_SUITE_ENTERPRISE)
 -						buffer.append(TEXT("Enterprise x64 Edition"));
 -					else buffer.append(TEXT("Standard x64 Edition"));
 +						buffer.Append(TEXT("Enterprise x64 Edition"));
 +					else buffer.Append(TEXT("Standard x64 Edition"));
  				}
  				else {
  					if (osvi.wSuiteMask & VER_SUITE_COMPUTE_SERVER)
 -						buffer.append(TEXT("Compute Cluster Edition"));
 +						buffer.Append(TEXT("Compute Cluster Edition"));
  					else if(osvi.wSuiteMask & VER_SUITE_DATACENTER)
 -						buffer.append(TEXT("Datacenter Edition"));
 +						buffer.Append(TEXT("Datacenter Edition"));
  					else if(osvi.wSuiteMask & VER_SUITE_ENTERPRISE)
 -						buffer.append(TEXT("Enterprise Edition"));
 +						buffer.Append(TEXT("Enterprise Edition"));
  					else if (osvi.wSuiteMask & VER_SUITE_BLADE)
 -						buffer.append(TEXT("Web Edition"));
 -					else buffer.append(TEXT("Standard Edition"));
 +						buffer.Append(TEXT("Web Edition"));
 +					else buffer.Append(TEXT("Standard Edition"));
  				}
  			}
  		}
  		if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) {
 -			buffer.append(TEXT("Windows XP "));
 +			buffer.Append(TEXT("Windows XP "));
  			if (osvi.wSuiteMask & VER_SUITE_PERSONAL)
 -				buffer.append(TEXT("Home Edition"));
 +				buffer.Append(TEXT("Home Edition"));
  			else 
 -				buffer.append(TEXT("Professional"));
 +				buffer.Append(TEXT("Professional"));
  		}
  		if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0) {
 -			buffer.append(TEXT("Windows 2000 "));
 +			buffer.Append(TEXT("Windows 2000 "));
  			if (osvi.wProductType == VER_NT_WORKSTATION)
 -				buffer.append(TEXT("Professional"));
 +				buffer.Append(TEXT("Professional"));
  			else {
  				if(osvi.wSuiteMask & VER_SUITE_DATACENTER)
 -					buffer.append(TEXT("Datacenter Server"));
 +					buffer.Append(TEXT("Datacenter Server"));
  				else if(osvi.wSuiteMask & VER_SUITE_ENTERPRISE)
 -					buffer.append(TEXT("Advanced Server"));
 -				else buffer.append(TEXT("Server"));
 +					buffer.Append(TEXT("Advanced Server"));
 +				else buffer.Append(TEXT("Server"));
  			}
  		}
  		if (osvi.szCSDVersion[0] != 0) {
 -			buffer.append(TEXT(" "));
 -			buffer.append(osvi.szCSDVersion);
 +			buffer.Append(TEXT(" "));
 +			buffer.Append(osvi.szCSDVersion);
  		}
 -		buffer.appendfmt(TEXT(" (build %d)"), osvi.dwBuildNumber);
 +		buffer.AppendFormat(TEXT(" (build %d)"), osvi.dwBuildNumber);
  	}
  	else {
  		if (VER_PLATFORM_WIN32_NT == osvi.dwPlatformId) {
 -			buffer.append(TEXT("Microsoft Windows NT "));
 +			buffer.Append(TEXT("Microsoft Windows NT "));
  			if (osvi.wProductType == VER_NT_WORKSTATION)
 -				buffer.append(TEXT("Workstation 4.0 "));
 +				buffer.Append(TEXT("Workstation 4.0 "));
  			else if (osvi.wSuiteMask & VER_SUITE_ENTERPRISE)
 -				buffer.append(TEXT("Server 4.0, Enterprise Edition "));
 +				buffer.Append(TEXT("Server 4.0, Enterprise Edition "));
  			else 
 -				buffer.append(TEXT("Server 4.0 "));
 +				buffer.Append(TEXT("Server 4.0 "));
  		}
  		if (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS && osvi.dwMajorVersion == 4) {
  			if (osvi.dwMinorVersion == 0) {
 -				buffer.append(TEXT("Microsoft Windows 95 "));
 +				buffer.Append(TEXT("Microsoft Windows 95 "));
  				if (osvi.szCSDVersion[1]==TEXT('C') || osvi.szCSDVersion[1]==TEXT('B'))
 -					buffer.append(TEXT("OSR2 "));
 +					buffer.Append(TEXT("OSR2 "));
  			} 
  			if (osvi.dwMinorVersion == 10) {
 -				buffer.append(TEXT("Microsoft Windows 98 "));
 +				buffer.Append(TEXT("Microsoft Windows 98 "));
  				if (osvi.szCSDVersion[1]==TEXT('A') || osvi.szCSDVersion[1]==TEXT('B'))
 -					buffer.append(TEXT("SE "));
 +					buffer.Append(TEXT("SE "));
  			} 
  			if (osvi.dwMinorVersion == 90)
 -				buffer.append(TEXT("Microsoft Windows Millennium Edition"));
 +				buffer.Append(TEXT("Microsoft Windows Millennium Edition"));
 -			buffer.appendfmt(TEXT("(build %d)"), LOWORD(osvi.dwBuildNumber));
 +			buffer.AppendFormat(TEXT("(build %d)"), LOWORD(osvi.dwBuildNumber));
  		}
  		else if (osvi.dwPlatformId == VER_PLATFORM_WIN32s)
 -			buffer.append(TEXT("Microsoft Win32s"));
 +			buffer.Append(TEXT("Microsoft Win32s"));
  	}
  }
 @@ -274,20 +274,17 @@ int GetTZOffset(void)  void GetISO8061Time(SYSTEMTIME* stLocal, LPTSTR lpszString, DWORD dwSize)
  {
  	SYSTEMTIME loctime;
 -	if (stLocal == NULL) 
 -	{
 +	if (stLocal == NULL) {
  		stLocal = &loctime;
  		GetLocalTime(stLocal);
  	}
 -	if (clsdates)
 -	{
 +	if (clsdates) {
  		GetDateFormat(LOCALE_INVARIANT, 0, stLocal, TEXT("d MMM yyyy"), lpszString, dwSize);
  		int dlen = (int)_tcslen(lpszString);
  		GetTimeFormat(LOCALE_INVARIANT, 0, stLocal, TEXT(" H:mm:ss"), lpszString+dlen, dwSize-dlen);
  	}
 -	else
 -	{
 +	else {
  		int offset = GetTZOffset();
  		// Build a string showing the date and time.
 @@ -332,8 +329,7 @@ PLUGININFOEX* GetMirInfo(HMODULE hModule)  	return bpi(mirandaVersion);
  }
 -
 -void GetInternetExplorerVersion(bkstring& buffer)
 +void GetInternetExplorerVersion(CMString& buffer)
  {
  	HKEY hKey;
  	DWORD size;
 @@ -342,9 +338,7 @@ void GetInternetExplorerVersion(bkstring& buffer)  	TCHAR ieBuild[512] = {0};
  	TCHAR iVer[64] = {0};
 -	if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Internet Explorer"), 0, 
 -		KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
 -	{
 +	if (!RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Internet Explorer"), 0, KEY_QUERY_VALUE, &hKey)) {
  		size = SIZEOF(ieBuild);
  		if (RegQueryValueEx(hKey, TEXT("Build"), NULL, NULL, (LPBYTE) ieBuild, &size) != ERROR_SUCCESS)
  			ieBuild[0] = 0;
 @@ -360,48 +354,38 @@ void GetInternetExplorerVersion(bkstring& buffer)  		RegCloseKey(hKey);
  	}
 -	buffer.append(TEXT("Internet Explorer: "));
 -	if (ieVersion[0] == 0)
 -	{
 +	buffer.Append(TEXT("Internet Explorer: "));
 +	if (ieVersion[0] == 0) {
  		if (iVer[0] == 0)
 -			buffer.append(TEXT("<not installed>"));
 +			buffer.Append(TEXT("<not installed>"));
  		else if (_tcscmp(iVer, TEXT("100")) == 0)
 -			buffer.append(TEXT("1.0"));
 +			buffer.Append(TEXT("1.0"));
  		else if (_tcscmp(iVer, TEXT("101")) == 0)
 -			buffer.append(TEXT("NT"));
 +			buffer.Append(TEXT("NT"));
  		else if (_tcscmp(iVer, TEXT("102")) == 0)
 -			buffer.append(TEXT("2.0"));
 +			buffer.Append(TEXT("2.0"));
  		else if (_tcscmp(iVer, TEXT("103")) == 0)
 -			buffer.append(TEXT("3.0"));
 -	}
 -	else
 -	{
 -		buffer.append(ieVersion);
 +			buffer.Append(TEXT("3.0"));
  	}
 +	else buffer.Append(ieVersion);
 +
  	if (ieBuild[0] != 0)
 -	{
 -		buffer.appendfmt(TEXT(" (build %s)"), ieBuild);
 -	}
 +		buffer.AppendFormat(TEXT(" (build %s)"), ieBuild);
  }
 -
  void TrimMultiSpaces(TCHAR* str)
  {
  	TCHAR *src = str, *dest = str;
  	bool trimst = false;
 -	for (;;)
 -	{
 -		if (*src == TEXT(' '))
 -		{
 -			if (!trimst)
 -			{
 +	for (;;) {
 +		if (*src == TEXT(' ')) {
 +			if (!trimst) {
  				trimst = true;
  				*dest++ = *src;
  			}
  		}
 -		else
 -		{
 +		else {
  			trimst = false;
  			*dest++ = *src;
  		}
 @@ -409,7 +393,7 @@ void TrimMultiSpaces(TCHAR* str)  	}
  }				
 -void GetProcessorString(bkstring& buffer)
 +void GetProcessorString(CMString& buffer)
  {
  	HKEY hKey;
  	DWORD size;
 @@ -417,9 +401,7 @@ void GetProcessorString(bkstring& buffer)  	TCHAR cpuIdent[512] = {0};
  	TCHAR cpuName[512] = {0};
 -	if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("Hardware\\Description\\System\\CentralProcessor\\0"), 0, 
 -		KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
 -	{
 +	if (!RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("Hardware\\Description\\System\\CentralProcessor\\0"), 0, KEY_QUERY_VALUE, &hKey)) {
  		size = SIZEOF(cpuName);
  		if (RegQueryValueEx(hKey, TEXT("ProcessorNameString"), NULL, NULL, (LPBYTE) cpuName, &size) != ERROR_SUCCESS)
  			_tcscpy(cpuName, TEXT("Unknown"));
 @@ -432,170 +414,163 @@ void GetProcessorString(bkstring& buffer)  		RegCloseKey(hKey);
  	}
  	TrimMultiSpaces(cpuName);
 -	buffer.appendfmt(TEXT("CPU: %s [%s]"), cpuName, cpuIdent);
 +	buffer.AppendFormat(TEXT("CPU: %s [%s]"), cpuName, cpuIdent);
  	if (IsProcessorFeaturePresent(PF_NX_ENABLED))
 -		buffer.append(TEXT(" [DEP Enabled]"));
 +		buffer.Append(TEXT(" [DEP Enabled]"));
  	SYSTEM_INFO si = {0};
  	GetSystemInfo(&si);
  	if (si.dwNumberOfProcessors > 1)
 -		buffer.appendfmt(TEXT(" [%u CPUs]"), si.dwNumberOfProcessors);
 +		buffer.AppendFormat(TEXT(" [%u CPUs]"), si.dwNumberOfProcessors);
  }
 -void GetFreeMemoryString(bkstring& buffer)
 +void GetFreeMemoryString(CMString& buffer)
  {
  	unsigned ram;
  	MEMORYSTATUSEX ms = {0};
  	ms.dwLength = sizeof(ms);
  	GlobalMemoryStatusEx(&ms);
  	ram = (unsigned int) ((ms.ullTotalPhys / (1024 * 1024)) + 1);
 -	buffer.appendfmt(TEXT("Installed RAM: %u MBytes"), ram);
 +	buffer.AppendFormat(TEXT("Installed RAM: %u MBytes"), ram);
  }
 -void GetFreeDiskString(LPCTSTR dirname, bkstring& buffer)
 +void GetFreeDiskString(LPCTSTR dirname, CMString& buffer)
  {
  	ULARGE_INTEGER tnb, tfb, fs = {0};
  	GetDiskFreeSpaceEx(dirname, &fs, &tnb, &tfb);
  	fs.QuadPart /= (1024*1024);
 -	buffer.appendfmt(TEXT("Free disk space on Miranda partition: %u MBytes"), fs.LowPart);
 +	buffer.AppendFormat(TEXT("Free disk space on Miranda partition: %u MBytes"), fs.LowPart);
  }
 -void ReadableExceptionInfo(PEXCEPTION_RECORD excrec, bkstring& buffer)
 +void ReadableExceptionInfo(PEXCEPTION_RECORD excrec, CMString& buffer)
  {
 -	buffer.append(TEXT("Exception: "));
 +	buffer.Append(TEXT("Exception: "));
 -	switch (excrec->ExceptionCode)
 -	{
 +	switch (excrec->ExceptionCode) {
  	case EXCEPTION_BREAKPOINT:
 -		buffer.append(TEXT("User Defined Breakpoint"));
 +		buffer.Append(TEXT("User Defined Breakpoint"));
  		break;
  	case EXCEPTION_ACCESS_VIOLATION:
 -		buffer.append(TEXT("Access Violation"));
 +		buffer.Append(TEXT("Access Violation"));
  		break;
  	case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
 -		buffer.append(TEXT("Array Bounds Exceeded"));
 +		buffer.Append(TEXT("Array Bounds Exceeded"));
  		break;
  	case EXCEPTION_DATATYPE_MISALIGNMENT:
 -		buffer.append(TEXT("Datatype Misalignment"));
 +		buffer.Append(TEXT("Datatype Misalignment"));
  		break;
  	case EXCEPTION_FLT_DENORMAL_OPERAND:
 -		buffer.append(TEXT("Floating Point denormlized operand"));
 +		buffer.Append(TEXT("Floating Point denormlized operand"));
  		break;
  	case EXCEPTION_FLT_DIVIDE_BY_ZERO:
 -		buffer.append(TEXT("Floating Point divide by 0"));
 +		buffer.Append(TEXT("Floating Point divide by 0"));
  		break;
  	case EXCEPTION_FLT_INEXACT_RESULT:
 -		buffer.append(TEXT("Floating Point inexact result"));
 +		buffer.Append(TEXT("Floating Point inexact result"));
  		break;
  	case EXCEPTION_FLT_INVALID_OPERATION:
 -		buffer.append(TEXT("Floating Point invalid operation"));
 +		buffer.Append(TEXT("Floating Point invalid operation"));
  		break;
  	case EXCEPTION_FLT_OVERFLOW:
 -		buffer.append(TEXT("Floating Point overflow"));
 +		buffer.Append(TEXT("Floating Point overflow"));
  		break;
  	case EXCEPTION_FLT_STACK_CHECK:
 -		buffer.append(TEXT("Floating Point stack overflow/underflow"));
 +		buffer.Append(TEXT("Floating Point stack overflow/underflow"));
  		break;
  	case EXCEPTION_FLT_UNDERFLOW:
 -		buffer.append(TEXT("Floating Point underflow"));
 +		buffer.Append(TEXT("Floating Point underflow"));
  		break;
  	case EXCEPTION_ILLEGAL_INSTRUCTION:
 -		buffer.append(TEXT("Invalid instruction executed"));
 +		buffer.Append(TEXT("Invalid instruction executed"));
  		break;
  	case EXCEPTION_IN_PAGE_ERROR:
 -		buffer.append(TEXT("Access to the not present page"));
 +		buffer.Append(TEXT("Access to the not present page"));
  		break;
  	case EXCEPTION_INT_DIVIDE_BY_ZERO:
 -		buffer.append(TEXT("Integer divide by zero"));
 +		buffer.Append(TEXT("Integer divide by zero"));
  		break;
  	case EXCEPTION_INT_OVERFLOW:
 -		buffer.append(TEXT("Integer overflow"));
 +		buffer.Append(TEXT("Integer overflow"));
  		break;
  	case EXCEPTION_PRIV_INSTRUCTION:
 -		buffer.append(TEXT("Priveleged instruction executed"));
 +		buffer.Append(TEXT("Priveleged instruction executed"));
  		break;
  	case EXCEPTION_STACK_OVERFLOW:
 -		buffer.append(TEXT("Stack overflow"));
 +		buffer.Append(TEXT("Stack overflow"));
  		break;
  	case 0xe06d7363:
 -		buffer.append(TEXT("Unhandled C++ software exception"));
 +		buffer.Append(TEXT("Unhandled C++ software exception"));
  		break;
  	default:
 -		buffer.appendfmt(TEXT("%x"), excrec->ExceptionCode); 
 +		buffer.AppendFormat(TEXT("%x"), excrec->ExceptionCode); 
  		break;
  	}
 -	buffer.appendfmt(TEXT(" at address %p."), excrec->ExceptionAddress); 
 +	buffer.AppendFormat(TEXT(" at address %p."), excrec->ExceptionAddress); 
 -	if (excrec->ExceptionCode == EXCEPTION_ACCESS_VIOLATION || 
 -		excrec->ExceptionCode == EXCEPTION_IN_PAGE_ERROR)
 -	{
 -		switch(excrec->ExceptionInformation[0])
 -		{
 +	if (excrec->ExceptionCode == EXCEPTION_ACCESS_VIOLATION || excrec->ExceptionCode == EXCEPTION_IN_PAGE_ERROR) {
 +		switch(excrec->ExceptionInformation[0]) {
  		case 0:
 -			buffer.appendfmt(TEXT(" Reading from address %p."), (LPVOID)excrec->ExceptionInformation[1]);
 +			buffer.AppendFormat(TEXT(" Reading from address %p."), (LPVOID)excrec->ExceptionInformation[1]);
  			break;
  		case 1:
 -			buffer.appendfmt(TEXT(" Writing to address %p."), (LPVOID)excrec->ExceptionInformation[1]);
 +			buffer.AppendFormat(TEXT(" Writing to address %p."), (LPVOID)excrec->ExceptionInformation[1]);
  			break;
  		case 8:
 -			buffer.appendfmt(TEXT(" DEP at address %p."), (LPVOID)excrec->ExceptionInformation[1]);
 +			buffer.AppendFormat(TEXT(" DEP at address %p."), (LPVOID)excrec->ExceptionInformation[1]);
  			break;
  		}
  	}
  }
 -void GetAdminString(bkstring& buffer)
 +void GetAdminString(CMString& buffer)
  {
  	BOOL b;
 -	__try
 -	{
 +	__try {
  		SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
  		PSID AdministratorsGroup; 
  		b = AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
  			DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &AdministratorsGroup); 
 -		if (b) 
 -		{
 +		if (b) {
  			if (!CheckTokenMembership(NULL, AdministratorsGroup, &b))
  				b = FALSE;
  			FreeSid(AdministratorsGroup); 
  		}
 -		else
 -			b = GetLastError() == ERROR_CALL_NOT_IMPLEMENTED;
 +		else b = GetLastError() == ERROR_CALL_NOT_IMPLEMENTED;
  	}
  	__except(EXCEPTION_EXECUTE_HANDLER) 
  	{
  		b = TRUE;
  	}
 -	buffer.appendfmt(TEXT("Administrator privileges: %s"), b ? TEXT("Yes") : TEXT ("No"));
 +	buffer.AppendFormat(TEXT("Administrator privileges: %s"), b ? TEXT("Yes") : TEXT ("No"));
  }
 -void GetLanguageString(bkstring& buffer)
 +void GetLanguageString(CMString& buffer)
  {
  	TCHAR name1[256], name2[256], name3[256], name4[256];
 @@ -605,22 +580,21 @@ void GetLanguageString(bkstring& buffer)  	GetLocaleInfo(MAKELCID(GetUserDefaultUILanguage(), SORT_DEFAULT), LOCALE_SENGLANGUAGE, name3, 256);
  	GetLocaleInfo(MAKELCID(GetSystemDefaultUILanguage(), SORT_DEFAULT), LOCALE_SENGLANGUAGE, name4, 256);
 -	buffer.appendfmt(TEXT("OS Languages: (UI | Locale (User/System)) : %s/%s | %s/%s"), name3, name4, name1, name2);
 +	buffer.AppendFormat(TEXT("OS Languages: (UI | Locale (User/System)) : %s/%s | %s/%s"), name3, name4, name1, name2);
  }
 -void GetLanguagePackString(bkstring& buffer)
 +void GetLanguagePackString(CMString& buffer)
  {
 -	buffer.append(TEXT("Language pack: ")); 
 +	buffer.Append(TEXT("Language pack: ")); 
  	if (packlcid == LOCALE_USER_DEFAULT)
 -		buffer.append(TEXT("No language pack installed"));
 -	else
 -	{
 +		buffer.Append(TEXT("No language pack installed"));
 +	else {
  		TCHAR path[MAX_PATH] = TEXT("Locale id invalid");
  		GetLocaleInfo(packlcid, LOCALE_SENGLANGUAGE, path, MAX_PATH);
 -		buffer.append(path);
 +		buffer.Append(path);
  		GetLocaleInfo(packlcid, LOCALE_SISO3166CTRYNAME, path, MAX_PATH);
 -		buffer.appendfmt(TEXT(" (%s) [%04x]"), path, packlcid);
 +		buffer.AppendFormat(TEXT(" (%s) [%04x]"), path, packlcid);
  		GetModuleFileName(NULL, path, MAX_PATH);
 @@ -634,11 +608,8 @@ void GetLanguagePackString(bkstring& buffer)  		FindClose(hFind);
  		mir_sntprintf(fname, MAX_PATH-(fname-path), TEXT("\\%s"), FindFileData.cFileName);
 -		HANDLE hDumpFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL,
 -			OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 -
 -		if (hDumpFile != INVALID_HANDLE_VALUE) 
 -		{
 +		HANDLE hDumpFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 +		if (hDumpFile != INVALID_HANDLE_VALUE) {
  			char buf[8192];
  			DWORD bytes = 0;
 @@ -646,8 +617,7 @@ void GetLanguagePackString(bkstring& buffer)  			buf[bytes] = 0;
  			char *id = strstr(buf, "FLID:");
 -			if (id != NULL)
 -			{
 +			if (id != NULL) {
  				char *endid = strchr(id, '\r');
  				if (endid != NULL) *endid = 0;
 @@ -659,21 +629,20 @@ void GetLanguagePackString(bkstring& buffer)  				TCHAR* tid;
  				crsi_a2t(tid, id+5);
 -				buffer.appendfmt(TEXT(", %s, modified: %s"), tid, mirtime);
 +				buffer.AppendFormat(TEXT(", %s, modified: %s"), tid, mirtime);
  			}
  			CloseHandle(hDumpFile);
  		}
  	}
  }
 -void GetWow64String(bkstring& buffer)
 +void GetWow64String(CMString& buffer)
  {
  	BOOL wow64 = 0;
  	if (!IsWow64Process(GetCurrentProcess(), &wow64))
 -	{
  		wow64 = 0;
 -	}
 -	if (wow64) buffer.append(TEXT(" [running inside WOW64]")); 
 +
 +	if (wow64) buffer.Append(TEXT(" [running inside WOW64]")); 
  }
 @@ -696,25 +665,21 @@ bool CreateDirectoryTree(LPTSTR szDir)  	return res;
  }
 -void GetVersionInfo(HMODULE hLib, bkstring& buffer)
 +void GetVersionInfo(HMODULE hLib, CMString& buffer)
  {
  	HRSRC hVersion = FindResource(hLib, MAKEINTRESOURCE(VS_VERSION_INFO), RT_VERSION);
 -	if (hVersion != NULL)
 -	{
 +	if (hVersion != NULL) {
  		HGLOBAL hGlobal = LoadResource(hLib, hVersion); 
 -		if (hGlobal != NULL)  
 -		{  
 +		if (hGlobal != NULL) {  
  			LPVOID versionInfo  = LockResource(hGlobal);  
 -			if (versionInfo != NULL)
 -			{
 +			if (versionInfo != NULL) {
  				int vl = *(unsigned short*)versionInfo;
  				unsigned *res = (unsigned*)versionInfo;
  				while (*res != 0xfeef04bd && ((char*)res - (char*)versionInfo) < vl) ++res;
 -				if (((char*)res - (char*)versionInfo) < vl)
 -				{
 +				if (((char*)res - (char*)versionInfo) < vl) {
  					VS_FIXEDFILEINFO *vsInfo = (VS_FIXEDFILEINFO*)res;
 -					buffer.appendfmt(TEXT(" v.%u.%u.%u.%u"), 
 +					buffer.AppendFormat(TEXT(" v.%u.%u.%u.%u"), 
  						HIWORD(vsInfo->dwFileVersionMS), LOWORD(vsInfo->dwFileVersionMS),
  						HIWORD(vsInfo->dwFileVersionLS), LOWORD(vsInfo->dwFileVersionLS));
  				}
 @@ -724,12 +689,13 @@ void GetVersionInfo(HMODULE hLib, bkstring& buffer)  	}
  }
 -void StoreStringToClip(bkstring& buffer)
 +void StoreStringToClip(CMString& buffer)
  {
 -	HANDLE hData = GlobalAlloc(GMEM_MOVEABLE, buffer.sizebytes() + sizeof(TCHAR));
 +	int bufLen = (buffer.GetLength() + 1) * sizeof(TCHAR);
 +	HANDLE hData = GlobalAlloc(GMEM_MOVEABLE, bufLen);
  	LPSTR buf = (LPSTR)GlobalLock(hData);
 -	memcpy(buf, buffer.c_str(), buffer.sizebytes() + sizeof(TCHAR));
 +	memcpy(buf, buffer.c_str(), bufLen);
  	GlobalUnlock(hData);
 diff --git a/plugins/CrashDumper/src/utils.h b/plugins/CrashDumper/src/utils.h index d736b42d9b..5696458da3 100644 --- a/plugins/CrashDumper/src/utils.h +++ b/plugins/CrashDumper/src/utils.h @@ -35,13 +35,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include <m_options.h>
  #include <m_popup.h>
  #include <m_netlib.h>
 +#include <m_string.h>
  #include "m_folders.h"
  #include "m_toptoolbar.h"
  #include "sdkstuff.h"
  #include "version.h"
 -#include "bkstring.h"
  #include "resource.h"
  #define MS_PROTO_ENUMPROTOS        "Proto/EnumProtos"
 @@ -100,32 +100,32 @@ extern bool dtsubfldr;  extern TCHAR CrashLogFolder[MAX_PATH];
  extern TCHAR VersionInfoFolder[MAX_PATH];
 -void WriteBBFile(bkstring& buffer, bool hdr);
 +void WriteBBFile(CMString& buffer, bool hdr);
  void WriteUtfFile(HANDLE hDumpFile, char* bufu);
  LONG WINAPI myfilter(PEXCEPTION_POINTERS exc_ptr);
  LONG WINAPI myfilterv(PEXCEPTION_POINTERS exc_ptr);
  DWORD MirandaThreadFilter(DWORD code, EXCEPTION_POINTERS* info);
 -void GetOSDisplayString(bkstring& buffer);
 -void GetInternetExplorerVersion(bkstring& buffer);
 -void GetProcessorString(bkstring& buffer);
 -void GetFreeMemoryString(bkstring& buffer);
 -void GetFreeDiskString(LPCTSTR dirname, bkstring& buffer);
 -void GetAdminString(bkstring& buffer);
 -void GetLanguageString(bkstring& buffer);
 -void GetLanguagePackString(bkstring& buffer);
 -void GetWow64String(bkstring& buffer);
 -void GetVersionInfo(HMODULE hLib, bkstring& buffer);
 +void GetOSDisplayString(CMString& buffer);
 +void GetInternetExplorerVersion(CMString& buffer);
 +void GetProcessorString(CMString& buffer);
 +void GetFreeMemoryString(CMString& buffer);
 +void GetFreeDiskString(LPCTSTR dirname, CMString& buffer);
 +void GetAdminString(CMString& buffer);
 +void GetLanguageString(CMString& buffer);
 +void GetLanguagePackString(CMString& buffer);
 +void GetWow64String(CMString& buffer);
 +void GetVersionInfo(HMODULE hLib, CMString& buffer);
  void GetISO8061Time(SYSTEMTIME* stLocal, LPTSTR lpszString, DWORD dwSize);
 -void ReadableExceptionInfo(PEXCEPTION_RECORD excrec, bkstring& buffer);
 +void ReadableExceptionInfo(PEXCEPTION_RECORD excrec, CMString& buffer);
  void GetLastWriteTime(LPCTSTR fileName, LPTSTR lpszString, DWORD dwSize);
  void GetLastWriteTime(FILETIME* ftime, LPTSTR lpszString, DWORD dwSize);
  bool CreateDirectoryTree(LPTSTR szDir);
 -void StoreStringToClip(bkstring& buffer);
 +void StoreStringToClip(CMString& buffer);
  void ShowMessage(int type, const TCHAR* format, ...);
  bool IsPluginEnabled(TCHAR* filename);
 @@ -134,7 +134,7 @@ const PLUGININFOEX* GetPluginInfoEx(void);  void CreateMiniDump   (HANDLE hDumpFile, PEXCEPTION_POINTERS exc_ptr);
  void CreateCrashReport(HANDLE hDumpFile, PEXCEPTION_POINTERS exc_ptr, const TCHAR* msg);
 -void PrintVersionInfo(bkstring& buffer, unsigned flags = VI_FLAG_PRNVAR);
 +void PrintVersionInfo(CMString& buffer, unsigned flags = VI_FLAG_PRNVAR);
  bool ProcessVIHash(bool store);
  void InitExceptionHandler(void);
 | 
