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
This commit is contained in:
harrybharry 2008-10-27 15:31:31 +00:00
parent a7df3063dd
commit 67499d839a
4 changed files with 33 additions and 27 deletions

View File

@ -4929,7 +4929,13 @@ void Notepad_plus::docOpenInNewInstance(FileTransferMode mode)
if (buf->isUntitled() || buf->isDirty()) if (buf->isUntitled() || buf->isDirty())
return; 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); cmd.run(_hSelf);
if (mode == TransferMove) if (mode == TransferMove)
doClose(bufferID, currentView()); doClose(bufferID, currentView());

View File

@ -74,7 +74,7 @@ BOOL CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPar
_lsArray = (NppParameters::getInstance())->getLStylerArray(); _lsArray = (NppParameters::getInstance())->getLStylerArray();
_globalStyles = (NppParameters::getInstance())->getGlobalStylers(); _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 // All the lexers
for (int i = 0 ; i < _lsArray.getNbLexer() ; i++) for (int i = 0 ; i < _lsArray.getNbLexer() ; i++)
{ {

View File

@ -25,8 +25,8 @@ FileDialog::FileDialog(HWND hwnd, HINSTANCE hInst)
: _nbCharFileExt(0), _nbExt(0) : _nbCharFileExt(0), _nbExt(0)
{ {
staticThis = this; staticThis = this;
for (int i = 0 ; i < nbExtMax ; i++) //for (int i = 0 ; i < nbExtMax ; i++)
_extArray[i][0] = '\0'; // _extArray[i][0] = '\0';
memset(_fileExt, 0x00, sizeof(_fileExt)); memset(_fileExt, 0x00, sizeof(_fileExt));
_fileName[0] = '\0'; _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. // a file name to filter. Since the nb of arguments is variable, you have to add NULL at the end.
// example : // example :
// FileDialog.setExtFilter(TEXT("c/c++ src file"), TEXT(".c"), TEXT(".cpp"), TEXT(".cxx"), TEXT(".h"), NULL); // 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, ...) void FileDialog::setExtFilter(const TCHAR *extText, const TCHAR *ext, ...)
{ {
// fill out the ext array for save as file dialog // fill out the ext array for save as file dialog
if (_nbExt < nbExtMax) //if (_nbExt < nbExtMax)
lstrcpy(_extArray[_nbExt++], ext); // lstrcpy(_extArray[_nbExt++], ext);
// //
std::generic_string extFilter = extText; std::generic_string extFilter = extText;
std::generic_string exts;
va_list pArg; va_list pArg;
va_start(pArg, ext); va_start(pArg, ext);
std::generic_string exts;
if (ext[0] == '.')
exts += TEXT("*");
exts += ext;
exts += TEXT(";");
const TCHAR *ext2Concat; const TCHAR *ext2Concat;
ext2Concat = ext;
while ((ext2Concat = va_arg(pArg, const TCHAR *))) do
{ {
if (ext2Concat[0] == '.') if (ext2Concat[0] == TEXT('.'))
exts += TEXT("*"); exts += TEXT("*");
exts += ext2Concat; exts += ext2Concat;
exts += TEXT(";"); exts += TEXT(";");
} }
while ( (ext2Concat = va_arg(pArg, const TCHAR *)) != NULL );
va_end(pArg); va_end(pArg);
// remove the last ';' // remove the last ';'
exts = exts.substr(0, exts.length()-1); exts = exts.substr(0, exts.length()-1);
extFilter += TEXT(" (L"); extFilter += TEXT(" (");
extFilter += exts + TEXT(")"); extFilter += exts + TEXT(")");
TCHAR *pFileExt = _fileExt + _nbCharFileExt; 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; _nbCharFileExt += extFilter.length() + 1;
pFileExt = _fileExt + _nbCharFileExt; 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; _nbCharFileExt += exts.length() + 1;
} }
int FileDialog::setExtsFilter(const TCHAR *extText, const TCHAR *exts) int FileDialog::setExtsFilter(const TCHAR *extText, const TCHAR *exts)
{ {
// fill out the ext array for save as file dialog // fill out the ext array for save as file dialog
if (_nbExt < nbExtMax) //if (_nbExt < nbExtMax)
lstrcpy(_extArray[_nbExt++], exts); // lstrcpy(_extArray[_nbExt++], exts);
// //
std::generic_string extFilter = extText; std::generic_string extFilter = extText;
extFilter += TEXT(" (L"); extFilter += TEXT(" (");
extFilter += exts; extFilter += exts;
extFilter += TEXT(")"); extFilter += TEXT(")");
TCHAR *pFileExt = _fileExt + _nbCharFileExt; 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; _nbCharFileExt += extFilter.length() + 1;
pFileExt = _fileExt + _nbCharFileExt; pFileExt = _fileExt + _nbCharFileExt;
memcpy(pFileExt, exts, lstrlen(exts) + 1); lstrcpy(pFileExt, exts);
//memcpy(pFileExt, exts, lstrlen(exts) + 1);
_nbCharFileExt += lstrlen(exts) + 1; _nbCharFileExt += lstrlen(exts) + 1;
return _nbExt; return _nbExt;

View File

@ -142,7 +142,7 @@ private:
winVer _winVersion; winVer _winVersion;
TCHAR _extArray[nbExtMax][extLenMax]; //TCHAR _extArray[nbExtMax][extLenMax];
int _nbExt; int _nbExt;
static FileDialog *staticThis; static FileDialog *staticThis;