[BUG_FIXED]Fix Japanese/Polish/Russian language display bug under Notepad++ Unicode version.

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@354 f5eea248-9336-0410-98b8-ebc06183d4e3
pull/343/head^2
donho 2008-11-16 22:38:30 +00:00
parent 0147313a93
commit 8bd91ca178
18 changed files with 4826 additions and 449 deletions

View File

@ -497,6 +497,14 @@ commun:
CreateDirectory "$SMPROGRAMS\Notepad++" CreateDirectory "$SMPROGRAMS\Notepad++"
CreateShortCut "$SMPROGRAMS\Notepad++\Uninstall.lnk" "$INSTDIR\uninstall.exe" CreateShortCut "$SMPROGRAMS\Notepad++\Uninstall.lnk" "$INSTDIR\uninstall.exe"
;clean
Delete "$INSTDIR\plugins\NPPTextFX\AsciiToEBCDIC.bin"
Delete "$INSTDIR\plugins\NPPTextFX\libTidy.dll"
Delete "$INSTDIR\plugins\NPPTextFX\W3C-CSSValidator.htm"
Delete "$INSTDIR\plugins\NPPTextFX\W3C-HTMLValidator.htm"
RMDir "$INSTDIR\plugins\NPPTextFX\"
; remove unstable plugins ; remove unstable plugins
IfFileExists "$INSTDIR\plugins\HexEditorPlugin.dll" 0 +3 IfFileExists "$INSTDIR\plugins\HexEditorPlugin.dll" 0 +3
MessageBox MB_OK "Due to the problem of compability with this version,$\nHexEditorPlugin.dll is about to be deleted." MessageBox MB_OK "Due to the problem of compability with this version,$\nHexEditorPlugin.dll is about to be deleted."
@ -656,11 +664,11 @@ SubSection "Plugins" Plugins
SetOutPath "$INSTDIR\plugins" SetOutPath "$INSTDIR\plugins"
File "..\bin\plugins\NPPTextFX.dll" File "..\bin\plugins\NPPTextFX.dll"
SetOutPath "$INSTDIR\plugins\NPPTextFX" SetOutPath "$INSTDIR\plugins\Config\tidy"
File "..\bin\plugins\NPPTextFX\AsciiToEBCDIC.bin" File "..\bin\plugins\Config\tidy\AsciiToEBCDIC.bin"
File "..\bin\plugins\NPPTextFX\libTidy.dll" File "..\bin\plugins\Config\tidy\libTidy.dll"
File "..\bin\plugins\NPPTextFX\W3C-CSSValidator.htm" File "..\bin\plugins\Config\tidy\W3C-CSSValidator.htm"
File "..\bin\plugins\NPPTextFX\W3C-HTMLValidator.htm" File "..\bin\plugins\Config\tidy\W3C-HTMLValidator.htm"
SetOutPath "$INSTDIR\plugins\doc" SetOutPath "$INSTDIR\plugins\doc"
File "..\bin\plugins\doc\NPPTextFXdemo.TXT" File "..\bin\plugins\doc\NPPTextFXdemo.TXT"
@ -883,12 +891,12 @@ SubSection un.Plugins
Delete "$INSTDIR\plugins\NPPTextFX.dll" Delete "$INSTDIR\plugins\NPPTextFX.dll"
Delete "$INSTDIR\plugins\NPPTextFX.ini" Delete "$INSTDIR\plugins\NPPTextFX.ini"
Delete "$APPDATA\Notepad++\NPPTextFX.ini" Delete "$APPDATA\Notepad++\NPPTextFX.ini"
Delete "$INSTDIR\plugins\NPPTextFX\AsciiToEBCDIC.bin"
Delete "$INSTDIR\plugins\NPPTextFX\libTidy.dll"
Delete "$INSTDIR\plugins\doc\NPPTextFXdemo.TXT" Delete "$INSTDIR\plugins\doc\NPPTextFXdemo.TXT"
Delete "$INSTDIR\plugins\NPPTextFX\W3C-CSSValidator.htm" Delete "$INSTDIR\plugins\Config\tidy\AsciiToEBCDIC.bin"
Delete "$INSTDIR\plugins\NPPTextFX\W3C-HTMLValidator.htm" Delete "$INSTDIR\plugins\Config\tidy\libTidy.dll"
RMDir "$INSTDIR\plugins\NPPTextFX\" Delete "$INSTDIR\plugins\Config\tidy\W3C-CSSValidator.htm"
Delete "$INSTDIR\plugins\Config\tidy\W3C-HTMLValidator.htm"
RMDir "$INSTDIR\plugins\tidy\"
RMDir "$INSTDIR\plugins\" RMDir "$INSTDIR\plugins\"
SectionEnd SectionEnd

View File

@ -16,7 +16,7 @@ copy /Y SciLexer.dll .\zipped.package.release\unicode\
copy /Y ".\plugins\*.*" .\zipped.package.release\unicode\plugins\ copy /Y ".\plugins\*.*" .\zipped.package.release\unicode\plugins\
copy /Y ".\plugins\APIs\*.xml" .\zipped.package.release\unicode\plugins\APIs copy /Y ".\plugins\APIs\*.xml" .\zipped.package.release\unicode\plugins\APIs
copy /Y ".\plugins\doc\*.*" .\zipped.package.release\unicode\plugins\doc copy /Y ".\plugins\doc\*.*" .\zipped.package.release\unicode\plugins\doc
copy /Y ".\plugins\NPPTextFX\*.*" .\zipped.package.release\unicode\plugins\NPPTextFX copy /Y ".\plugins\Config\tidy\*.*" .\zipped.package.release\unicode\plugins\Config\tidy
del /F /S /Q .\zipped.package.release\ansi\config.xml del /F /S /Q .\zipped.package.release\ansi\config.xml
@ -34,6 +34,7 @@ copy /Y contextMenu.xml .\zipped.package.release\ansi\
copy /Y shortcuts.xml .\zipped.package.release\ansi\ copy /Y shortcuts.xml .\zipped.package.release\ansi\
copy /Y doLocalConf.xml .\zipped.package.release\ansi\ copy /Y doLocalConf.xml .\zipped.package.release\ansi\
copy /Y LINEDRAW.TTF .\zipped.package.release\ansi\ copy /Y LINEDRAW.TTF .\zipped.package.release\ansi\
copy /Y ".\plugins\Config\tidy\*.*" .\zipped.package.release\ansi\plugins\Config\tidy
"C:\Program Files\7-Zip\7z.exe" a -tzip -r npp.bin.zip .\zipped.package.release\* "C:\Program Files\7-Zip\7z.exe" a -tzip -r npp.bin.zip .\zipped.package.release\*
"C:\Program Files\NSIS\makensis.exe" ..\installer\nppSetup.nsi "C:\Program Files\NSIS\makensis.exe" ..\installer\nppSetup.nsi

View File

@ -147,45 +147,45 @@ int filter(unsigned int code, struct _EXCEPTION_POINTERS *ep)
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_CONTINUE_SEARCH;
} }
int getCpFromStringValue(const TCHAR * encodingStr) int getCpFromStringValue(const char * encodingStr)
{ {
if (!encodingStr) if (!encodingStr)
return CP_ACP; return CP_ACP;
if (generic_stricmp(TEXT("windows-1250"), encodingStr) == 0) if (stricmp("windows-1250", encodingStr) == 0)
return 1250; return 1250;
if (generic_stricmp(TEXT("windows-1251"), encodingStr) == 0) if (stricmp("windows-1251", encodingStr) == 0)
return 1251; return 1251;
if (generic_stricmp(TEXT("windows-1252"), encodingStr) == 0) if (stricmp("windows-1252", encodingStr) == 0)
return 1252; return 1252;
if (generic_stricmp(TEXT("windows-1253"), encodingStr) == 0) if (stricmp("windows-1253", encodingStr) == 0)
return 1253; return 1253;
if (generic_stricmp(TEXT("windows-1254"), encodingStr) == 0) if (stricmp("windows-1254", encodingStr) == 0)
return 1254; return 1254;
if (generic_stricmp(TEXT("windows-1255"), encodingStr) == 0) if (stricmp("windows-1255", encodingStr) == 0)
return 1255; return 1255;
if (generic_stricmp(TEXT("windows-1256"), encodingStr) == 0) if (stricmp("windows-1256", encodingStr) == 0)
return 1256; return 1256;
if (generic_stricmp(TEXT("windows-1257"), encodingStr) == 0) if (stricmp("windows-1257", encodingStr) == 0)
return 1257; return 1257;
if (generic_stricmp(TEXT("windows-1258"), encodingStr) == 0) if (stricmp("windows-1258", encodingStr) == 0)
return 1258; return 1258;
if (generic_stricmp(TEXT("big5"), encodingStr) == 0) if (stricmp("big5", encodingStr) == 0)
return 950; return 950;
if (generic_stricmp(TEXT("gb2312"), encodingStr) == 0) if (stricmp("gb2312", encodingStr) == 0)
return 936; return 936;
if (generic_stricmp(TEXT("shift_jis"), encodingStr) == 0) if (stricmp("shift_jis", encodingStr) == 0)
return 932; return 932;
if (generic_stricmp(TEXT("euc-kr"), encodingStr) == 0) if (stricmp("euc-kr", encodingStr) == 0)
return 51949; return 51949;
if (generic_stricmp(TEXT("tis-620"), encodingStr) == 0) if (stricmp("tis-620", encodingStr) == 0)
return 874; return 874;
if (generic_stricmp(TEXT("iso-8859-8"), encodingStr) == 0) if (stricmp("iso-8859-8", encodingStr) == 0)
return 28598; return 28598;
if (generic_stricmp(TEXT("utf-8"), encodingStr) == 0) if (stricmp("utf-8", encodingStr) == 0)
return 65001; return 65001;
return CP_ACP; return CP_ACP;

View File

@ -90,7 +90,7 @@ void printInt(int int2print);
void printStr(const TCHAR *str2print); void printStr(const TCHAR *str2print);
void writeLog(const TCHAR *logFileName, const TCHAR *log2write); void writeLog(const TCHAR *logFileName, const TCHAR *log2write);
int filter(unsigned int code, struct _EXCEPTION_POINTERS *ep); int filter(unsigned int code, struct _EXCEPTION_POINTERS *ep);
int getCpFromStringValue(const TCHAR * encodingStr); int getCpFromStringValue(const char * encodingStr);
std::generic_string purgeMenuItemString(const TCHAR * menuItemStr, bool keepAmpersand = false); std::generic_string purgeMenuItemString(const TCHAR * menuItemStr, bool keepAmpersand = false);
void ClientRectToScreenRect(HWND hWnd, RECT* rect); void ClientRectToScreenRect(HWND hWnd, RECT* rect);

File diff suppressed because it is too large Load Diff

View File

@ -75,7 +75,7 @@ enum Views {
*/ */
struct TaskListInfo; struct TaskListInfo;
static TiXmlNode * searchDlgNode(TiXmlNode *node, const TCHAR *dlgTagName); static TiXmlNodeA * searchDlgNode(TiXmlNodeA *node, const char *dlgTagName);
struct iconLocator { struct iconLocator {
int listIndex; int listIndex;
@ -161,11 +161,13 @@ public:
const TCHAR * fileSaveSession(size_t nbFile, TCHAR ** fileNames, const TCHAR *sessionFile2save); const TCHAR * fileSaveSession(size_t nbFile, TCHAR ** fileNames, const TCHAR *sessionFile2save);
const TCHAR * fileSaveSession(size_t nbFile = 0, TCHAR ** fileNames = NULL); const TCHAR * fileSaveSession(size_t nbFile = 0, TCHAR ** fileNames = NULL);
bool changeDlgLang(HWND hDlg, const TCHAR *dlgTagName, TCHAR *title = NULL); bool changeDlgLang(HWND hDlg, const char *dlgTagName, char *title = NULL);
void changeConfigLang(); void changeConfigLang();
void changeUserDefineLang(); void changeUserDefineLang();
void changeMenuLang(generic_string & pluginsTrans, generic_string & windowTrans); void changeMenuLang(generic_string & pluginsTrans, generic_string & windowTrans);
//void changeMenuLangTmp(generic_string & pluginsTrans, generic_string & windowTrans);
void changePrefereceDlgLang(); void changePrefereceDlgLang();
void changeShortcutLang(); void changeShortcutLang();
void changeShortcutmapperLang(ShortcutMapper * sm); void changeShortcutmapperLang(ShortcutMapper * sm);
@ -201,7 +203,9 @@ private:
SmartHighlighter _smartHighlighter; SmartHighlighter _smartHighlighter;
TiXmlNode *_nativeLang, *_toolIcons; TiXmlNode *_toolIcons;
TiXmlNodeA *_nativeLangA;
int _nativeLangEncoding; int _nativeLangEncoding;
DocTabView _mainDocTab; DocTabView _mainDocTab;
@ -676,7 +680,7 @@ private:
void autoCompFromCurrentFile(bool autoInsert = true); void autoCompFromCurrentFile(bool autoInsert = true);
void showFunctionComp(); void showFunctionComp();
void changeStyleCtrlsLang(HWND hDlg, int *idArray, const TCHAR **translatedText); void changeStyleCtrlsLang(HWND hDlg, int *idArray, const char **translatedText);
bool replaceAllFiles(); bool replaceAllFiles();
bool findInOpenedFiles(); bool findInOpenedFiles();

View File

@ -418,7 +418,7 @@ winVer getWindowsVersion()
NppParameters * NppParameters::_pSelf = new NppParameters; NppParameters * NppParameters::_pSelf = new NppParameters;
int FileDialog::_dialogFileBoxId = (NppParameters::getInstance())->getWinVersion() < WV_W2K?edt1:cmb13; int FileDialog::_dialogFileBoxId = (NppParameters::getInstance())->getWinVersion() < WV_W2K?edt1:cmb13;
NppParameters::NppParameters() : _pXmlDoc(NULL),_pXmlUserDoc(NULL), _pXmlUserStylerDoc(NULL),\ NppParameters::NppParameters() : _pXmlDoc(NULL),_pXmlUserDoc(NULL), _pXmlUserStylerDoc(NULL),\
_pXmlUserLangDoc(NULL), _pXmlNativeLangDoc(NULL),\ _pXmlUserLangDoc(NULL), /*_pXmlNativeLangDoc(NULL), */_pXmlNativeLangDocA(NULL),\
_nbLang(0), _nbFile(0), _nbMaxFile(10), _pXmlToolIconsDoc(NULL),\ _nbLang(0), _nbFile(0), _nbMaxFile(10), _pXmlToolIconsDoc(NULL),\
_pXmlShortcutDoc(NULL), _pXmlContextMenuDoc(NULL), _pXmlSessionDoc(NULL),\ _pXmlShortcutDoc(NULL), _pXmlContextMenuDoc(NULL), _pXmlSessionDoc(NULL),\
_nbUserLang(0), _nbExternalLang(0), _hUser32(NULL), _hUXTheme(NULL),\ _nbUserLang(0), _nbExternalLang(0), _hUser32(NULL), _hUXTheme(NULL),\
@ -688,6 +688,7 @@ bool NppParameters::load()
PathAppend(nativeLangPath, TEXT("nativeLang.xml")); PathAppend(nativeLangPath, TEXT("nativeLang.xml"));
} }
/*
_pXmlNativeLangDoc = new TiXmlDocument(nativeLangPath); _pXmlNativeLangDoc = new TiXmlDocument(nativeLangPath);
loadOkay = _pXmlNativeLangDoc->LoadFile(); loadOkay = _pXmlNativeLangDoc->LoadFile();
if (!loadOkay) if (!loadOkay)
@ -695,8 +696,27 @@ bool NppParameters::load()
delete _pXmlNativeLangDoc; delete _pXmlNativeLangDoc;
_pXmlNativeLangDoc = NULL; _pXmlNativeLangDoc = NULL;
isAllLaoded = false; isAllLaoded = false;
} }
*/
#ifdef UNICODE
WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance();
const char * nativeLangPathA = wmc->wchar2char(nativeLangPath, CP_ANSI_LATIN_1);
_pXmlNativeLangDocA = new TiXmlDocumentA(nativeLangPathA);
#else
_pXmlNativeLangDocA = new TiXmlDocumentA(nativeLangPath);
#endif
loadOkay = _pXmlNativeLangDocA->LoadFile();
if (!loadOkay)
{
delete _pXmlNativeLangDocA;
_pXmlNativeLangDocA = NULL;
isAllLaoded = false;
}
//---------------------------------// //---------------------------------//
// toolbarIcons.xml : for per user // // toolbarIcons.xml : for per user //
//---------------------------------// //---------------------------------//
@ -818,8 +838,8 @@ void NppParameters::destroyInstance()
if (_pXmlUserLangDoc) if (_pXmlUserLangDoc)
delete _pXmlUserLangDoc; delete _pXmlUserLangDoc;
if (_pXmlNativeLangDoc) if (_pXmlNativeLangDocA)
delete _pXmlNativeLangDoc; delete _pXmlNativeLangDocA;
if (_pXmlToolIconsDoc) if (_pXmlToolIconsDoc)
delete _pXmlToolIconsDoc; delete _pXmlToolIconsDoc;

View File

@ -19,7 +19,9 @@
#define PARAMETERS_H #define PARAMETERS_H
#include <string> #include <string>
#include "tinyxmlA.h"
#include "tinyxml.h" #include "tinyxml.h"
//#include "ScintillaEditView.h" //#include "ScintillaEditView.h"
#include "Scintilla.h" #include "Scintilla.h"
#include "ScintillaRef.h" #include "ScintillaRef.h"
@ -996,8 +998,11 @@ public:
}; };
int addExternalLangToEnd(ExternalLangContainer * externalLang); int addExternalLangToEnd(ExternalLangContainer * externalLang);
TiXmlDocument * getNativeLang() const {return _pXmlNativeLangDoc;}; //TiXmlDocument * getNativeLang() const {return _pXmlNativeLangDoc;};
TiXmlDocumentA * getNativeLangA() const {return _pXmlNativeLangDocA;};
TiXmlDocument * getToolIcons() const {return _pXmlToolIconsDoc;}; TiXmlDocument * getToolIcons() const {return _pXmlToolIconsDoc;};
bool isTransparentAvailable() const { bool isTransparentAvailable() const {
@ -1070,39 +1075,39 @@ public:
FindDlgTabTitiles & getFindDlgTabTitiles() { return _findDlgTabTitiles;}; FindDlgTabTitiles & getFindDlgTabTitiles() { return _findDlgTabTitiles;};
const TCHAR * getNativeLangMenuString(int itemID) { const char * getNativeLangMenuStringA(int itemID) {
if (!_pXmlNativeLangDoc) if (!_pXmlNativeLangDocA)
return NULL; return NULL;
TiXmlNode * node = _pXmlNativeLangDoc->FirstChild(TEXT("NotepadPlus")); TiXmlNodeA * node = _pXmlNativeLangDocA->FirstChild("NotepadPlus");
if (!node) return NULL; if (!node) return NULL;
node = node->FirstChild(TEXT("Native-Langue")); node = node->FirstChild("Native-Langue");
if (!node) return NULL; if (!node) return NULL;
node = node->FirstChild(TEXT("Menu")); node = node->FirstChild("Menu");
if (!node) return NULL; if (!node) return NULL;
node = node->FirstChild(TEXT("Main")); node = node->FirstChild("Main");
if (!node) return NULL; if (!node) return NULL;
node = node->FirstChild(TEXT("Commands")); node = node->FirstChild("Commands");
if (!node) return NULL; if (!node) return NULL;
for (TiXmlNode *childNode = node->FirstChildElement(TEXT("Item")); for (TiXmlNodeA *childNode = node->FirstChildElement("Item");
childNode ; childNode ;
childNode = childNode->NextSibling(TEXT("Item")) ) childNode = childNode->NextSibling("Item") )
{ {
TiXmlElement *element = childNode->ToElement(); TiXmlElementA *element = childNode->ToElement();
int id; int id;
if (element->Attribute(TEXT("id"), &id) && (id == itemID)) if (element->Attribute("id", &id) && (id == itemID))
{ {
return element->Attribute(TEXT("name")); return element->Attribute("name");
} }
} }
return NULL; return NULL;
}; };
bool asNotepadStyle() const {return _asNotepadStyle;}; bool asNotepadStyle() const {return _asNotepadStyle;};
bool reloadPluginCmds() { bool reloadPluginCmds() {
@ -1119,9 +1124,11 @@ private:
static NppParameters *_pSelf; static NppParameters *_pSelf;
TiXmlDocument *_pXmlDoc, *_pXmlUserDoc, *_pXmlUserStylerDoc, *_pXmlUserLangDoc, *_pXmlNativeLangDoc,\ TiXmlDocument *_pXmlDoc, *_pXmlUserDoc, *_pXmlUserStylerDoc, *_pXmlUserLangDoc,\
*_pXmlToolIconsDoc, *_pXmlShortcutDoc, *_pXmlContextMenuDoc, *_pXmlSessionDoc; *_pXmlToolIconsDoc, *_pXmlShortcutDoc, *_pXmlContextMenuDoc, *_pXmlSessionDoc;
TiXmlDocumentA *_pXmlNativeLangDocA;
vector<TiXmlDocument *> _pXmlExternalLexerDoc; vector<TiXmlDocument *> _pXmlExternalLexerDoc;
NppGUI _nppGUI; NppGUI _nppGUI;

View File

@ -0,0 +1,303 @@
/*
www.sourceforge.net/projects/tinyxml
Original file by Yves Berquin.
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any
damages arising from the use of this software.
Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product documentation
would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include "tinyxmlA.h"
#ifndef TIXMLA_USE_STL
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "tinystrA.h"
// TiXmlStringA constructor, based on a C string
TiXmlStringA::TiXmlStringA (const char* instring)
{
unsigned newlen;
char * newstring;
if (!instring)
{
allocated = 0;
cstring = NULL;
current_length = 0;
return;
}
newlen = strlen (instring) + 1;
newstring = new char [newlen];
memcpy (newstring, instring, newlen);
// strcpy (newstring, instring);
allocated = newlen;
cstring = newstring;
current_length = newlen - 1;
}
// TiXmlStringA copy constructor
TiXmlStringA::TiXmlStringA (const TiXmlStringA& copy)
{
unsigned newlen;
char * newstring;
// Prevent copy to self!
if ( &copy == this )
return;
if (! copy . allocated)
{
allocated = 0;
cstring = NULL;
current_length = 0;
return;
}
newlen = copy . length () + 1;
newstring = new char [newlen];
// strcpy (newstring, copy . cstring);
memcpy (newstring, copy . cstring, newlen);
allocated = newlen;
cstring = newstring;
current_length = newlen - 1;
}
// TiXmlStringA = operator. Safe when assign own content
void TiXmlStringA ::operator = (const char * content)
{
unsigned newlen;
char * newstring;
if (! content)
{
empty_it ();
return;
}
newlen = strlen (content) + 1;
newstring = new char [newlen];
// strcpy (newstring, content);
memcpy (newstring, content, newlen);
empty_it ();
allocated = newlen;
cstring = newstring;
current_length = newlen - 1;
}
// = operator. Safe when assign own content
void TiXmlStringA ::operator = (const TiXmlStringA & copy)
{
unsigned newlen;
char * newstring;
if (! copy . length ())
{
empty_it ();
return;
}
newlen = copy . length () + 1;
newstring = new char [newlen];
// strcpy (newstring, copy . c_str ());
memcpy (newstring, copy . c_str (), newlen);
empty_it ();
allocated = newlen;
cstring = newstring;
current_length = newlen - 1;
}
//// Checks if a TiXmlStringA contains only whitespace (same rules as isspace)
//bool TiXmlStringA::isblank () const
//{
// char * lookup;
// for (lookup = cstring; * lookup; lookup++)
// if (! isspace (* lookup))
// return false;
// return true;
//}
// append a const char * to an existing TiXmlStringA
void TiXmlStringA::append( const char* str, int len )
{
char * new_string;
unsigned new_alloc, new_size, size_suffix;
size_suffix = strlen (str);
if (len < (int) size_suffix)
size_suffix = len;
if (! size_suffix)
return;
new_size = length () + size_suffix + 1;
// check if we need to expand
if (new_size > allocated)
{
// compute new size
new_alloc = assign_new_size (new_size);
// allocate new buffer
new_string = new char [new_alloc];
new_string [0] = 0;
// copy the previous allocated buffer into this one
if (allocated && cstring)
// strcpy (new_string, cstring);
memcpy (new_string, cstring, length ());
// append the suffix. It does exist, otherwize we wouldn't be expanding
// strncat (new_string, str, len);
memcpy (new_string + length (),
str,
size_suffix);
// return previsously allocated buffer if any
if (allocated && cstring)
delete [] cstring;
// update member variables
cstring = new_string;
allocated = new_alloc;
}
else
{
// we know we can safely append the new string
// strncat (cstring, str, len);
memcpy (cstring + length (),
str,
size_suffix);
}
current_length = new_size - 1;
cstring [current_length] = 0;
}
// append a const char * to an existing TiXmlStringA
void TiXmlStringA::append( const char * suffix )
{
char * new_string;
unsigned new_alloc, new_size;
new_size = length () + strlen (suffix) + 1;
// check if we need to expand
if (new_size > allocated)
{
// compute new size
new_alloc = assign_new_size (new_size);
// allocate new buffer
new_string = new char [new_alloc];
new_string [0] = 0;
// copy the previous allocated buffer into this one
if (allocated && cstring)
memcpy (new_string, cstring, 1 + length ());
// strcpy (new_string, cstring);
// append the suffix. It does exist, otherwize we wouldn't be expanding
// strcat (new_string, suffix);
memcpy (new_string + length (),
suffix,
strlen (suffix) + 1);
// return previsously allocated buffer if any
if (allocated && cstring)
delete [] cstring;
// update member variables
cstring = new_string;
allocated = new_alloc;
}
else
{
// we know we can safely append the new string
// strcat (cstring, suffix);
memcpy (cstring + length (),
suffix,
strlen (suffix) + 1);
}
current_length = new_size - 1;
}
// Check for TiXmlStringA equuivalence
//bool TiXmlStringA::operator == (const TiXmlStringA & compare) const
//{
// return (! strcmp (c_str (), compare . c_str ()));
//}
//unsigned TiXmlStringA::length () const
//{
// if (allocated)
// // return strlen (cstring);
// return current_length;
// return 0;
//}
unsigned TiXmlStringA::find (char tofind, unsigned offset) const
{
char * lookup;
if (offset >= length ())
return (unsigned) notfound;
for (lookup = cstring + offset; * lookup; lookup++)
if (* lookup == tofind)
return lookup - cstring;
return (unsigned) notfound;
}
bool TiXmlStringA::operator == (const TiXmlStringA & compare) const
{
if ( allocated && compare.allocated )
{
assert( cstring );
assert( compare.cstring );
return ( strcmp( cstring, compare.cstring ) == 0 );
}
return false;
}
bool TiXmlStringA::operator < (const TiXmlStringA & compare) const
{
if ( allocated && compare.allocated )
{
assert( cstring );
assert( compare.cstring );
return ( strcmp( cstring, compare.cstring ) > 0 );
}
return false;
}
bool TiXmlStringA::operator > (const TiXmlStringA & compare) const
{
if ( allocated && compare.allocated )
{
assert( cstring );
assert( compare.cstring );
return ( strcmp( cstring, compare.cstring ) < 0 );
}
return false;
}
#endif // TIXMLA_USE_STL

View File

@ -0,0 +1,236 @@
/*
www.sourceforge.net/projects/tinyxml
Original file by Yves Berquin.
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any
damages arising from the use of this software.
Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product documentation
would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include "tinyxmlA.h"
#ifndef TIXMLA_USE_STL
#ifndef _INCLUDED
#define TIXMLA_STRING_INCLUDED
#pragma warning( disable : 4514 )
#include <assert.h>
/*
TiXmlStringA is an emulation of the std::string template.
Its purpose is to allow compiling TinyXML on compilers with no or poor STL support.
Only the member functions relevant to the TinyXML project have been implemented.
The buffer allocation is made by a simplistic power of 2 like mechanism : if we increase
a string and there's no more room, we allocate a buffer twice as big as we need.
*/
class TiXmlStringA
{
public :
// TiXmlStringA constructor, based on a string
TiXmlStringA (const char * instring);
// TiXmlStringA empty constructor
TiXmlStringA ()
{
allocated = 0;
cstring = NULL;
current_length = 0;
}
// TiXmlStringA copy constructor
TiXmlStringA (const TiXmlStringA& copy);
// TiXmlStringA destructor
~ TiXmlStringA ()
{
empty_it ();
}
// Convert a TiXmlStringA into a classical char *
const char * c_str () const
{
if (allocated)
return cstring;
return "";
}
// Return the length of a TiXmlStringA
unsigned length () const
{
return ( allocated ) ? current_length : 0;
}
// TiXmlStringA = operator
void operator = (const char * content);
// = operator
void operator = (const TiXmlStringA & copy);
// += operator. Maps to append
TiXmlStringA& operator += (const char * suffix)
{
append (suffix);
return *this;
}
// += operator. Maps to append
TiXmlStringA& operator += (char single)
{
append (single);
return *this;
}
// += operator. Maps to append
TiXmlStringA& operator += (TiXmlStringA & suffix)
{
append (suffix);
return *this;
}
bool operator == (const TiXmlStringA & compare) const;
bool operator < (const TiXmlStringA & compare) const;
bool operator > (const TiXmlStringA & compare) const;
// Checks if a TiXmlStringA is empty
bool empty () const
{
return length () ? false : true;
}
// Checks if a TiXmlStringA contains only whitespace (same rules as isspace)
// Not actually used in tinyxml. Conflicts with a C macro, "isblank",
// which is a problem. Commenting out. -lee
// bool isblank () const;
// single char extraction
const char& at (unsigned index) const
{
assert( index < length ());
return cstring [index];
}
// find a char in a string. Return TiXmlStringA::notfound if not found
unsigned find (char lookup) const
{
return find (lookup, 0);
}
// find a char in a string from an offset. Return TiXmlStringA::notfound if not found
unsigned find (char tofind, unsigned offset) const;
/* Function to reserve a big amount of data when we know we'll need it. Be aware that this
function clears the content of the TiXmlStringA if any exists.
*/
void reserve (unsigned size)
{
empty_it ();
if (size)
{
allocated = size;
TIXMLA_STRING cstring = new char [size];
cstring [0] = 0;
current_length = 0;
}
}
// [] operator
char& operator [] (unsigned index) const
{
assert( index < length ());
return cstring [index];
}
// Error value for find primitive
enum { notfound = 0xffffffff,
npos = notfound };
void append (const char *str, int len );
protected :
// The base string
char * cstring;
// Number of chars allocated
unsigned allocated;
// Current string size
unsigned current_length;
// New size computation. It is simplistic right now : it returns twice the amount
// we need
unsigned assign_new_size (unsigned minimum_to_allocate)
{
return minimum_to_allocate * 2;
}
// Internal function that clears the content of a TiXmlStringA
void empty_it ()
{
if (cstring)
delete [] cstring;
cstring = NULL;
allocated = 0;
current_length = 0;
}
void append (const char *suffix );
// append function for another TiXmlStringA
void append (const TiXmlStringA & suffix)
{
append (suffix . c_str ());
}
// append for a single char. This could be improved a lot if needed
void append (char single)
{
char smallstr [2];
smallstr [0] = single;
smallstr [1] = 0;
append (smallstr);
}
} ;
/*
TiXmlOutStreamA is an emulation of std::ostream. It is based on TiXmlStringA.
Only the operators that we need for TinyXML have been developped.
*/
class TiXmlOutStreamA : public TiXmlStringA
{
public :
TiXmlOutStreamA () : TiXmlStringA () {}
// TiXmlOutStreamA << operator. Maps to TiXmlStringA::append
TiXmlOutStreamA & operator << (const char * in)
{
append (in);
return (* this);
}
// TiXmlOutStreamA << operator. Maps to TiXmlStringA::append
TiXmlOutStreamA & operator << (const TiXmlStringA & in)
{
append (in . c_str ());
return (* this);
}
} ;
#endif // TIXMLA_STRING_INCLUDED
#endif // TIXMLA_USE_STL

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,50 @@
/*
www.sourceforge.net/projects/tinyxml
Original code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com)
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any
damages arising from the use of this software.
Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product documentation
would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include "tinyxmlA.h"
// The goal of the seperate error file is to make the first
// step towards localization. tinyxml (currently) only supports
// latin-1, but at least the error messages could now be translated.
//
// It also cleans up the code a bit.
//
const char* TiXmlBaseA::errorString[ TIXMLA_ERROR_STRING_COUNT ] =
{
"No error",
"Error",
"Failed to open file",
"Memory allocation failed.",
"Error parsing Element.",
"Failed to read Element name",
"Error reading Element value.",
"Error reading Attributes.",
"Error: empty tag.",
"Error reading end tag.",
"Error parsing Unknown.",
"Error parsing Comment.",
"Error parsing Declaration.",
"Error document empty."
};

File diff suppressed because it is too large Load Diff

View File

@ -378,7 +378,7 @@ void WindowsDlg::updateButtonState()
EnableWindow(GetDlgItem(_hSelf, IDC_WINDOWS_SORT), _isSorted); EnableWindow(GetDlgItem(_hSelf, IDC_WINDOWS_SORT), _isSorted);
} }
int WindowsDlg::doDialog(TiXmlNode *dlgNode) int WindowsDlg::doDialog(TiXmlNodeA *dlgNode)
{ {
_dlgNode = dlgNode; _dlgNode = dlgNode;
return ::DialogBoxParam(_hInst, MAKEINTRESOURCE(IDD_WINDOWS), _hParent, (DLGPROC)dlgProc, (LPARAM)this); return ::DialogBoxParam(_hInst, MAKEINTRESOURCE(IDD_WINDOWS), _hParent, (DLGPROC)dlgProc, (LPARAM)this);
@ -391,21 +391,20 @@ bool WindowsDlg::changeDlgLang()
#ifdef UNICODE #ifdef UNICODE
WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance(); WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance();
int nativeLangEncoding = CP_ACP; int nativeLangEncoding = CP_ACP;
TiXmlDeclaration *declaration = _dlgNode->GetDocument()->FirstChild()->ToDeclaration(); TiXmlDeclarationA *declaration = _dlgNode->GetDocument()->FirstChild()->ToDeclaration();
if (declaration) if (declaration)
{ {
const TCHAR * encodingStr = declaration->Encoding(); const char * encodingStr = declaration->Encoding();
nativeLangEncoding = getCpFromStringValue(encodingStr); nativeLangEncoding = getCpFromStringValue(encodingStr);
} }
#endif #endif
// Set Title // Set Title
const TCHAR *titre = (_dlgNode->ToElement())->Attribute(TEXT("title")); const char *titre = (_dlgNode->ToElement())->Attribute("title");
if (titre && titre[0]) if (titre && titre[0])
{ {
#ifdef UNICODE #ifdef UNICODE
const char *pCharStrA = wmc->wchar2char(titre, CP_ANSI_LATIN_1); const wchar_t *nameW = wmc->char2wchar(titre, nativeLangEncoding);
const wchar_t *nameW = wmc->char2wchar(pCharStrA, nativeLangEncoding);
::SetWindowText(_hSelf, nameW); ::SetWindowText(_hSelf, nameW);
#else #else
::SetWindowText(_hSelf, titre); ::SetWindowText(_hSelf, titre);
@ -413,22 +412,21 @@ bool WindowsDlg::changeDlgLang()
} }
// Set the text of child control // Set the text of child control
for (TiXmlNode *childNode = _dlgNode->FirstChildElement(TEXT("Item")); for (TiXmlNodeA *childNode = _dlgNode->FirstChildElement("Item");
childNode ; childNode ;
childNode = childNode->NextSibling(TEXT("Item")) ) childNode = childNode->NextSibling("Item") )
{ {
TiXmlElement *element = childNode->ToElement(); TiXmlElementA *element = childNode->ToElement();
int id; int id;
const TCHAR *sentinel = element->Attribute(TEXT("id"), &id); const char *sentinel = element->Attribute("id", &id);
const TCHAR *name = element->Attribute(TEXT("name")); const char *name = element->Attribute("name");
if (sentinel && (name && name[0])) if (sentinel && (name && name[0]))
{ {
HWND hItem = ::GetDlgItem(_hSelf, id); HWND hItem = ::GetDlgItem(_hSelf, id);
if (hItem) if (hItem)
{ {
#ifdef UNICODE #ifdef UNICODE
const char *pCharStrA = wmc->wchar2char(name, CP_ANSI_LATIN_1); const wchar_t *nameW = wmc->char2wchar(name, nativeLangEncoding);
const wchar_t *nameW = wmc->char2wchar(pCharStrA, nativeLangEncoding);
::SetWindowText(hItem, nameW); ::SetWindowText(hItem, nameW);
#else #else
::SetWindowText(hItem, name); ::SetWindowText(hItem, name);

View File

@ -61,7 +61,7 @@ class WindowsDlg : public SizeableDlg
public : public :
WindowsDlg(); WindowsDlg();
int doDialog(TiXmlNode *dlgNode); int doDialog(TiXmlNodeA *dlgNode);
virtual void init(HINSTANCE hInst, HWND parent, DocTabView *pTab); virtual void init(HINSTANCE hInst, HWND parent, DocTabView *pTab);
void doRefresh(bool invalidate = false); void doRefresh(bool invalidate = false);
@ -90,7 +90,7 @@ protected :
std::vector<int> _idxMap; std::vector<int> _idxMap;
int _lastSort; int _lastSort;
bool _isSorted; bool _isSorted;
TiXmlNode *_dlgNode; TiXmlNodeA *_dlgNode;
private: private:
virtual void init(HINSTANCE hInst, HWND parent); virtual void init(HINSTANCE hInst, HWND parent);

View File

@ -30,18 +30,28 @@ void LastRecentFileList::initMenu(HMENU hMenu, int idBase, int posBase) {
void LastRecentFileList::updateMenu() { void LastRecentFileList::updateMenu() {
if (!_hasSeparators && _size > 0) { //add separators if (!_hasSeparators && _size > 0) { //add separators
const TCHAR * nativeLangOpenAllFiles = (NppParameters::getInstance())->getNativeLangMenuString(IDM_OPEN_ALL_RECENT_FILE); const char * nativeLangOpenAllFiles = (NppParameters::getInstance())->getNativeLangMenuStringA(IDM_OPEN_ALL_RECENT_FILE);
const TCHAR * nativeLangCleanFilesList = (NppParameters::getInstance())->getNativeLangMenuString(IDM_CLEAN_RECENT_FILE_LIST); const char * nativeLangCleanFilesList = (NppParameters::getInstance())->getNativeLangMenuStringA(IDM_CLEAN_RECENT_FILE_LIST);
const TCHAR * openAllFileStr = nativeLangOpenAllFiles?nativeLangOpenAllFiles:TEXT("Open All Recent Files"); const char * openAllFileStr = nativeLangOpenAllFiles?nativeLangOpenAllFiles:"Open All Recent Files";
const TCHAR * cleanFileListStr = nativeLangCleanFilesList?nativeLangCleanFilesList:TEXT("Clean Recent Files List"); const char * cleanFileListStr = nativeLangCleanFilesList?nativeLangCleanFilesList:"Clean Recent Files List";
::InsertMenu(_hMenu, _posBase + 0, MF_BYPOSITION, UINT(-1), 0); ::InsertMenu(_hMenu, _posBase + 0, MF_BYPOSITION, UINT(-1), 0);
#ifdef UNICODE
WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance();
const wchar_t * openAllFileStrW = wmc->char2wchar(openAllFileStr, CP_ANSI_LATIN_1);
::InsertMenu(_hMenu, _posBase + 1, MF_BYPOSITION, IDM_OPEN_ALL_RECENT_FILE, openAllFileStrW);
const wchar_t * cleanFileListStrW = wmc->char2wchar(cleanFileListStr, CP_ANSI_LATIN_1);
::InsertMenu(_hMenu, _posBase + 2, MF_BYPOSITION, IDM_CLEAN_RECENT_FILE_LIST, cleanFileListStrW);
#else
::InsertMenu(_hMenu, _posBase + 1, MF_BYPOSITION, IDM_OPEN_ALL_RECENT_FILE, openAllFileStr); ::InsertMenu(_hMenu, _posBase + 1, MF_BYPOSITION, IDM_OPEN_ALL_RECENT_FILE, openAllFileStr);
::InsertMenu(_hMenu, _posBase + 2, MF_BYPOSITION, IDM_CLEAN_RECENT_FILE_LIST, cleanFileListStr); ::InsertMenu(_hMenu, _posBase + 2, MF_BYPOSITION, IDM_CLEAN_RECENT_FILE_LIST, cleanFileListStr);
#endif
::InsertMenu(_hMenu, _posBase + 3, MF_BYPOSITION, UINT(-1), 0); ::InsertMenu(_hMenu, _posBase + 3, MF_BYPOSITION, UINT(-1), 0);
_hasSeparators = true; _hasSeparators = true;
} else if (_hasSeparators && _size == 0) { //remove separators }
else if (_hasSeparators && _size == 0) //remove separators
{
::RemoveMenu(_hMenu, _posBase + 3, MF_BYPOSITION); ::RemoveMenu(_hMenu, _posBase + 3, MF_BYPOSITION);
::RemoveMenu(_hMenu, IDM_CLEAN_RECENT_FILE_LIST, MF_BYCOMMAND); ::RemoveMenu(_hMenu, IDM_CLEAN_RECENT_FILE_LIST, MF_BYCOMMAND);
::RemoveMenu(_hMenu, IDM_OPEN_ALL_RECENT_FILE, MF_BYCOMMAND); ::RemoveMenu(_hMenu, IDM_OPEN_ALL_RECENT_FILE, MF_BYCOMMAND);

View File

@ -42,8 +42,8 @@
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
FavorSizeOrSpeed="0" FavorSizeOrSpeed="0"
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common" AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL"
MinimalRebuild="true" MinimalRebuild="true"
ExceptionHandling="2" ExceptionHandling="2"
BasicRuntimeChecks="0" BasicRuntimeChecks="0"
@ -135,8 +135,8 @@
FavorSizeOrSpeed="1" FavorSizeOrSpeed="1"
OmitFramePointers="false" OmitFramePointers="false"
WholeProgramOptimization="false" WholeProgramOptimization="false"
AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common" AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL"
StringPooling="true" StringPooling="true"
ExceptionHandling="2" ExceptionHandling="2"
RuntimeLibrary="0" RuntimeLibrary="0"
@ -374,18 +374,34 @@
RelativePath="..\src\TinyXml\tinystr.cpp" RelativePath="..\src\TinyXml\tinystr.cpp"
> >
</File> </File>
<File
RelativePath="..\src\TinyXml\tinyXmlA\tinystrA.cpp"
>
</File>
<File <File
RelativePath="..\src\TinyXml\tinyxml.cpp" RelativePath="..\src\TinyXml\tinyxml.cpp"
> >
</File> </File>
<File
RelativePath="..\src\TinyXml\tinyXmlA\tinyxmlA.cpp"
>
</File>
<File <File
RelativePath="..\src\TinyXml\tinyxmlerror.cpp" RelativePath="..\src\TinyXml\tinyxmlerror.cpp"
> >
</File> </File>
<File
RelativePath="..\src\TinyXml\tinyXmlA\tinyxmlerrorA.cpp"
>
</File>
<File <File
RelativePath="..\src\TinyXml\tinyxmlparser.cpp" RelativePath="..\src\TinyXml\tinyxmlparser.cpp"
> >
</File> </File>
<File
RelativePath="..\src\TinyXml\tinyXmlA\tinyxmlparserA.cpp"
>
</File>
<File <File
RelativePath="..\src\WinControls\ToolBar\ToolBar.cpp" RelativePath="..\src\WinControls\ToolBar\ToolBar.cpp"
> >
@ -683,10 +699,18 @@
RelativePath="..\src\TinyXml\tinystr.h" RelativePath="..\src\TinyXml\tinystr.h"
> >
</File> </File>
<File
RelativePath="..\src\TinyXml\tinyXmlA\tinystrA.h"
>
</File>
<File <File
RelativePath="..\src\TinyXml\tinyxml.h" RelativePath="..\src\TinyXml\tinyxml.h"
> >
</File> </File>
<File
RelativePath="..\src\TinyXml\tinyXmlA\tinyxmlA.h"
>
</File>
<File <File
RelativePath="..\src\WinControls\ToolBar\ToolBar.h" RelativePath="..\src\WinControls\ToolBar\ToolBar.h"
> >