View Issue Details

IDProjectCategoryView StatusLast Update
0000588Far ManagerPlugins APIpublic2008-08-31 10:42
Reporterchupakabra Assigned ToDrKnS  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Fixed in Version1.80 alpha 1 
Summary0000588: размер буфера в MakeDirectory()
DescriptionПри вызове функции плагина MakeDirectory() параметр Name (имя каталога) должен указывать на буфер размером NM, патч прилагается.
TagsNo tags attached.
Build552

Activities

2008-08-09 12:05

 

filelist.cpp.diff (1,102 bytes)   
*** filelist.cpp	Sat Aug  9 21:53:00 2008
--- filelist.cpp.new	Sat Aug  9 21:42:01 2008
*************** int FileList::ProcessKey(int Key)
*** 1551,1557 ****
          if (PanelMode==PLUGIN_PANEL && !CtrlObject->Plugins.UseFarCommand(hPlugin,PLUGIN_FARMAKEDIRECTORY))
          {
            string strDirName;
!           int MakeCode=CtrlObject->Plugins.MakeDirectory(hPlugin,strDirName,0);
            if (!MakeCode)
              Message(MSG_DOWN|MSG_WARNING|MSG_ERRORTYPE,1,UMSG(MError),UMSG(MCannotCreateFolder),strDirName,UMSG(MOk));
            Update(UPDATE_KEEP_SELECTION);
--- 1551,1558 ----
          if (PanelMode==PLUGIN_PANEL && !CtrlObject->Plugins.UseFarCommand(hPlugin,PLUGIN_FARMAKEDIRECTORY))
          {
            string strDirName;
!           int MakeCode=CtrlObject->Plugins.MakeDirectory(hPlugin,strDirName.GetBuffer(NM),0);
!           strDirName.ReleaseBuffer();
            if (!MakeCode)
              Message(MSG_DOWN|MSG_WARNING|MSG_ERRORTYPE,1,UMSG(MError),UMSG(MCannotCreateFolder),strDirName,UMSG(MOk));
            Update(UPDATE_KEEP_SELECTION);
filelist.cpp.diff (1,102 bytes)   

DrKnS

2008-08-31 04:56

administrator   bugnote:0001776

Это он в 1.7 должен был быть NM, а здесь у нас безразмерные строки, и эту гадость надо давить :)

MakeDirectory теперь выглядит так:

int WINAPI MakeDirectory(HANDLE hPlugin, const wchar_t **Name, int OpMode);

- Name - указатель, на входе указывает на исходную строку, на выходе - или на неё же, или на буфер в плагине, который должен быть валиден после выхода из функции.

Аналогичные изменения в GetFiles.

Плагины, использующие эти функции, надо переделать.

После 552.

Issue History

Date Modified Username Field Change
2008-08-09 12:05 chupakabra New Issue
2008-08-09 12:05 chupakabra File Added: filelist.cpp.diff
2008-08-31 04:56 DrKnS Note Added: 0001776
2008-08-31 04:56 DrKnS Assigned To => DrKnS
2008-08-31 04:56 DrKnS Status new => feedback
2008-08-31 10:28 chupakabra Status feedback => resolved
2008-08-31 10:28 chupakabra Resolution open => fixed
2008-08-31 10:42 DrKnS Build => 552
2008-08-31 10:42 DrKnS Status resolved => closed
2008-08-31 10:42 DrKnS Fixed in Version => 1.80 alpha 1