From 67499d839a5fecebfdc4c8b8663891c586725aaa Mon Sep 17 00:00:00 2001 From: harrybharry Date: Mon, 27 Oct 2008 15:31:31 +0000 Subject: [PATCH] Fixed bugs: Open in new instance not allowing spaces in paths. open in new instance uses filename of current running executable instead of 'notepad++.exe'. Filters for open/save dialog not showing or incorrectly showing 'L'. "Global Styles" string incorrectly displayed in Unicode version. Removed redundant array for extensions in file dialogs. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@349 f5eea248-9336-0410-98b8-ebc06183d4e3 --- PowerEditor/src/Notepad_plus.cpp | 8 +++- .../WinControls/ColourPicker/WordStyleDlg.cpp | 2 +- .../OpenSaveFileDialog/FileDialog.cpp | 48 +++++++++---------- .../OpenSaveFileDialog/FileDialog.h | 2 +- 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index 429999ff0..f267aaa77 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -4929,7 +4929,13 @@ void Notepad_plus::docOpenInNewInstance(FileTransferMode mode) if (buf->isUntitled() || buf->isDirty()) return; - Command cmd(TEXT("$(NPP_DIRECTORY)\\notepad++.exe $(FULL_CURRENT_PATH) -multiInst -nosession")); + TCHAR nppName[MAX_PATH]; + ::GetModuleFileName(NULL, nppName, MAX_PATH); + std::generic_string command; + command += nppName; + command += TEXT(" \"$(FULL_CURRENT_PATH)\" -multiInst -nosession"); + //Command cmd(TEXT("$(NPP_DIRECTORY)\\notepad++.exe $(FULL_CURRENT_PATH) -multiInst -nosession")); + Command cmd(command); cmd.run(_hSelf); if (mode == TransferMove) doClose(bufferID, currentView()); diff --git a/PowerEditor/src/WinControls/ColourPicker/WordStyleDlg.cpp b/PowerEditor/src/WinControls/ColourPicker/WordStyleDlg.cpp index 9bb026b1e..54842c835 100644 --- a/PowerEditor/src/WinControls/ColourPicker/WordStyleDlg.cpp +++ b/PowerEditor/src/WinControls/ColourPicker/WordStyleDlg.cpp @@ -74,7 +74,7 @@ BOOL CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPar _lsArray = (NppParameters::getInstance())->getLStylerArray(); _globalStyles = (NppParameters::getInstance())->getGlobalStylers(); - ::SendDlgItemMessage(_hSelf, IDC_LANGUAGES_LIST, LB_ADDSTRING, 0, (LPARAM)"Global Styles"); + ::SendDlgItemMessage(_hSelf, IDC_LANGUAGES_LIST, LB_ADDSTRING, 0, (LPARAM)TEXT("Global Styles")); // All the lexers for (int i = 0 ; i < _lsArray.getNbLexer() ; i++) { diff --git a/PowerEditor/src/WinControls/OpenSaveFileDialog/FileDialog.cpp b/PowerEditor/src/WinControls/OpenSaveFileDialog/FileDialog.cpp index cac5891b5..2adcf9fc5 100644 --- a/PowerEditor/src/WinControls/OpenSaveFileDialog/FileDialog.cpp +++ b/PowerEditor/src/WinControls/OpenSaveFileDialog/FileDialog.cpp @@ -25,8 +25,8 @@ FileDialog::FileDialog(HWND hwnd, HINSTANCE hInst) : _nbCharFileExt(0), _nbExt(0) { staticThis = this; - for (int i = 0 ; i < nbExtMax ; i++) - _extArray[i][0] = '\0'; + //for (int i = 0 ; i < nbExtMax ; i++) + // _extArray[i][0] = '\0'; memset(_fileExt, 0x00, sizeof(_fileExt)); _fileName[0] = '\0'; @@ -65,69 +65,69 @@ FileDialog::FileDialog(HWND hwnd, HINSTANCE hInst) // a file name to filter. Since the nb of arguments is variable, you have to add NULL at the end. // example : // FileDialog.setExtFilter(TEXT("c/c++ src file"), TEXT(".c"), TEXT(".cpp"), TEXT(".cxx"), TEXT(".h"), NULL); -// FileDialog.setExtFilter(TEXT("Makeile"), TEXT("makefile"), TEXT("GNUmakefile"), NULL); +// FileDialog.setExtFilter(TEXT("Makefile"), TEXT("makefile"), TEXT("GNUmakefile"), NULL); void FileDialog::setExtFilter(const TCHAR *extText, const TCHAR *ext, ...) { // fill out the ext array for save as file dialog - if (_nbExt < nbExtMax) - lstrcpy(_extArray[_nbExt++], ext); + //if (_nbExt < nbExtMax) + // lstrcpy(_extArray[_nbExt++], ext); // std::generic_string extFilter = extText; - + std::generic_string exts; + va_list pArg; va_start(pArg, ext); - std::generic_string exts; - - if (ext[0] == '.') - exts += TEXT("*"); - exts += ext; - exts += TEXT(";"); - const TCHAR *ext2Concat; - - while ((ext2Concat = va_arg(pArg, const TCHAR *))) + ext2Concat = ext; + do { - if (ext2Concat[0] == '.') + if (ext2Concat[0] == TEXT('.')) exts += TEXT("*"); exts += ext2Concat; exts += TEXT(";"); } + while ( (ext2Concat = va_arg(pArg, const TCHAR *)) != NULL ); + va_end(pArg); // remove the last ';' exts = exts.substr(0, exts.length()-1); - extFilter += TEXT(" (L"); + extFilter += TEXT(" ("); extFilter += exts + TEXT(")"); TCHAR *pFileExt = _fileExt + _nbCharFileExt; - memcpy(pFileExt, extFilter.c_str(), extFilter.length() + 1); + //memcpy(pFileExt, extFilter.c_str(), extFilter.length() + 1); + lstrcpy(pFileExt, extFilter.c_str()); _nbCharFileExt += extFilter.length() + 1; pFileExt = _fileExt + _nbCharFileExt; - memcpy(pFileExt, exts.c_str(), exts.length() + 1); + //memcpy(pFileExt, exts.c_str(), exts.length() + 1); + lstrcpy(pFileExt, exts.c_str()); _nbCharFileExt += exts.length() + 1; } int FileDialog::setExtsFilter(const TCHAR *extText, const TCHAR *exts) { // fill out the ext array for save as file dialog - if (_nbExt < nbExtMax) - lstrcpy(_extArray[_nbExt++], exts); + //if (_nbExt < nbExtMax) + // lstrcpy(_extArray[_nbExt++], exts); // std::generic_string extFilter = extText; - extFilter += TEXT(" (L"); + extFilter += TEXT(" ("); extFilter += exts; extFilter += TEXT(")"); TCHAR *pFileExt = _fileExt + _nbCharFileExt; - memcpy(pFileExt, extFilter.c_str(), extFilter.length() + 1); + lstrcpy(pFileExt, extFilter.c_str()); + //memcpy(pFileExt, extFilter.c_str(), extFilter.length() + 1); _nbCharFileExt += extFilter.length() + 1; pFileExt = _fileExt + _nbCharFileExt; - memcpy(pFileExt, exts, lstrlen(exts) + 1); + lstrcpy(pFileExt, exts); + //memcpy(pFileExt, exts, lstrlen(exts) + 1); _nbCharFileExt += lstrlen(exts) + 1; return _nbExt; diff --git a/PowerEditor/src/WinControls/OpenSaveFileDialog/FileDialog.h b/PowerEditor/src/WinControls/OpenSaveFileDialog/FileDialog.h index 23e9ae00f..421629e34 100644 --- a/PowerEditor/src/WinControls/OpenSaveFileDialog/FileDialog.h +++ b/PowerEditor/src/WinControls/OpenSaveFileDialog/FileDialog.h @@ -142,7 +142,7 @@ private: winVer _winVersion; - TCHAR _extArray[nbExtMax][extLenMax]; + //TCHAR _extArray[nbExtMax][extLenMax]; int _nbExt; static FileDialog *staticThis;