View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003096 | Plugins | _Common | public | 2015-10-04 10:38 | 2015-10-24 13:55 |
Reporter | michael.lukashov | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | have not tried |
Status | new | Resolution | open | ||
Product Version | 3.0 | ||||
Target Version | 3.0 | ||||
Summary | 0003096: Case-Sensitive поиск файлов на панели NetBox | ||||
Description | NetBox поддерживает Case-Sensitive файловые системы, и это следует учитывать при поиске файлов на панели плагина. Возможна ситуация, когда каталог содержит несколько файлов, имена которых различаются только регистром. Тогда становится невозможным создать в каталоге новый файл с таким же именем, но в другом регистре. Приложенный патч устраняет проблему. | ||||
Steps To Reproduce | Открыть SFTP сессию, перейти в каталог, содержащий файлы test.txt TEST.txt Попытаться создать (Shift-F4) новый файл с именем Test.txt Ожидается, что будет создан новый файл Test.txt, вместо этого в редакторе открывается уже существующий файл test.txt | ||||
Tags | No tags attached. | ||||
|
case-insensitive-findfile-for-netbox.patch (3,732 bytes)
Index: filelist.cpp =================================================================== --- filelist.cpp (revision 13432) +++ filelist.cpp (working copy) @@ -1712,7 +1712,15 @@ if (LocalKey==KEY_SHIFTF4) { - int Pos=FindFile(strFileName); + int Pos=-1; + if (m_hPlugin->pPlugin->GetGUID() == Global->Opt->KnownIDs.Netbox.Id) + { + Pos=FindFile(strFileName,FALSE,TRUE); + } + else + { + Pos=FindFile(strFileName); + } if (Pos!=-1) CurPtr = &m_ListData[Pos]; @@ -3352,7 +3360,7 @@ } -long FileList::FindFile(const string& Name,BOOL OnlyPartName) +long FileList::FindFile(const string& Name,BOOL OnlyPartName,BOOL CaseSensitive) { long II = -1; for (long I=0; I < static_cast<int>(m_ListData.size()); I++) @@ -3362,7 +3370,7 @@ if (Name == CurPtrName) return I; - if (II < 0 && !StrCmpI(Name.data(),CurPtrName)) + if (II < 0 && !CaseSensitive && !StrCmpI(Name.data(),CurPtrName)) II = I; } Index: filelist.hpp =================================================================== --- filelist.hpp (revision 13432) +++ filelist.hpp (working copy) @@ -284,7 +284,7 @@ virtual bool GetPlainString(string& Dest, int ListPos) const override; virtual int GoToFile(long idxItem) override; virtual int GoToFile(const string& Name,BOOL OnlyPartName=FALSE) override; - virtual long FindFile(const string& Name,BOOL OnlyPartName=FALSE) override; + virtual long FindFile(const string& Name,BOOL OnlyPartName=FALSE,BOOL CaseSensitive=FALSE) override; virtual int IsSelected(const string& Name) override; virtual int IsSelected(size_t idxItem) override; virtual long FindFirst(const string& Name) override; Index: panel.hpp =================================================================== --- panel.hpp (revision 13432) +++ panel.hpp (working copy) @@ -279,7 +279,7 @@ virtual bool GetPlainString(string& Dest, int ListPos) const { return false; } virtual int GoToFile(long idxItem) {return TRUE;} virtual int GoToFile(const string& Name,BOOL OnlyPartName=FALSE) {return TRUE;} - virtual long FindFile(const string& Name,BOOL OnlyPartName=FALSE) {return -1;} + virtual long FindFile(const string& Name,BOOL OnlyPartName=FALSE,BOOL CaseSensitive=FALSE) {return -1;} virtual int IsSelected(const string& Name) {return FALSE;} virtual int IsSelected(size_t indItem) {return FALSE;} virtual long FindFirst(const string& Name) {return -1;} Index: treelist.cpp =================================================================== --- treelist.cpp (revision 13432) +++ treelist.cpp (working copy) @@ -2074,7 +2074,7 @@ return GoToFile(FindFile(Name,OnlyPartName)); } -long TreeList::FindFile(const string& Name,BOOL OnlyPartName) +long TreeList::FindFile(const string& Name,BOOL OnlyPartName,BOOL CaseSensitive) { for (size_t i=0; i < m_ListData.size(); ++i) { Index: treelist.hpp =================================================================== --- treelist.hpp (revision 13432) +++ treelist.hpp (working copy) @@ -112,7 +112,7 @@ virtual void MoveToMouse(const MOUSE_EVENT_RECORD *MouseEvent) override; virtual bool GetPlainString(string& Dest, int ListPos) const override; virtual int GoToFile(long idxItem) override; - virtual long FindFile(const string& Name, BOOL OnlyPartName = FALSE) override; + virtual long FindFile(const string& Name, BOOL OnlyPartName = FALSE,BOOL CaseSensitive = FALSE) override; virtual long FindFirst(const string& Name) override; virtual long FindNext(int StartPos, const string& Name) override; virtual size_t GetFileCount() const override { return m_ListData.size(); } |
|
Так будет какой-нибудь отклик? |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-10-04 10:38 | michael.lukashov | New Issue | |
2015-10-04 10:38 | michael.lukashov | File Added: case-insensitive-findfile-for-netbox.patch | |
2015-10-24 13:55 | michael.lukashov | Note Added: 0014014 |