View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000588 | Far Manager | Plugins API | public | 2008-08-09 12:05 | 2008-08-31 10:42 |
Reporter | chupakabra | Assigned To | DrKnS | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Fixed in Version | 1.80 alpha 1 | ||||
Summary | 0000588: размер буфера в MakeDirectory() | ||||
Description | При вызове функции плагина MakeDirectory() параметр Name (имя каталога) должен указывать на буфер размером NM, патч прилагается. | ||||
Tags | No tags attached. | ||||
Build | 552 | ||||
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); |
|
Это он в 1.7 должен был быть NM, а здесь у нас безразмерные строки, и эту гадость надо давить :) MakeDirectory теперь выглядит так: int WINAPI MakeDirectory(HANDLE hPlugin, const wchar_t **Name, int OpMode); - Name - указатель, на входе указывает на исходную строку, на выходе - или на неё же, или на буфер в плагине, который должен быть валиден после выхода из функции. Аналогичные изменения в GetFiles. Плагины, использующие эти функции, надо переделать. После 552. |
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 |