View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000662 | Far Manager | Plugins API.Old API Wrapper | public | 2008-12-16 17:03 | 2008-12-19 06:25 |
Reporter | samlyukov | Assigned To | alexy | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Fixed in Version | 2.0 | ||||
Summary | 0000662: немного улучшил FarGetDirListA | ||||
Description | заглушка теперь выдает хоть какой-то результат. | ||||
Tags | No tags attached. | ||||
Build | 665 | ||||
2008-12-16 17:03
|
!work.diff (2,226 bytes)
Index: plugapi.cpp =================================================================== --- plugapi.cpp (revision 2280) +++ plugapi.cpp (working copy) @@ -1449,6 +1449,7 @@ { if(ItemsList) xf_free(ItemsList); + *pItemsNumber=0; return FALSE; } Index: wrap.cpp =================================================================== --- wrap.cpp (revision 2280) +++ wrap.cpp (working copy) @@ -2382,6 +2382,33 @@ int WINAPI FarGetDirListA(const char *Dir,struct oldfar::PluginPanelItem **pPanelItem,int *pItemsNumber) { + // BUGBUG!!! �������, �� ����� ��� �����-�� ��������! + + wchar_t *DirW=AnsiToUnicode(Dir); + if (!DirW) return FALSE; + + FAR_FIND_DATA *pItem; + int Number; + int ret=FarGetDirList(DirW, &pItem, &Number); + xf_free(DirW); + if (ret && Number) + { + *pPanelItem=(oldfar::PluginPanelItem *)xf_malloc(Number*sizeof(oldfar::PluginPanelItem)); + memset(*pPanelItem,0,Number*sizeof(oldfar::PluginPanelItem)); + for (*pItemsNumber=Number,Number--; Number>=0; Number--) + { + (*pPanelItem)[Number].FindData.dwFileAttributes = pItem[Number].dwFileAttributes; + (*pPanelItem)[Number].FindData.ftCreationTime = pItem[Number].ftCreationTime; + (*pPanelItem)[Number].FindData.ftLastAccessTime = pItem[Number].ftLastAccessTime; + (*pPanelItem)[Number].FindData.ftLastWriteTime = pItem[Number].ftLastWriteTime; + (*pPanelItem)[Number].FindData.nFileSizeLow = (DWORD)pItem[Number].nFileSize; + (*pPanelItem)[Number].FindData.nFileSizeHigh = (DWORD)(pItem[Number].nFileSize>>32); + UnicodeToAnsi(pItem[Number].lpwszFileName,(*pPanelItem)[Number].FindData.cFileName,MAX_PATH); + UnicodeToAnsi(pItem[Number].lpwszAlternateFileName,(*pPanelItem)[Number].FindData.cAlternateFileName,14); + apiFreeFindData(&pItem[Number]); + } + return TRUE; + } return FALSE; } @@ -2392,6 +2419,8 @@ void WINAPI FarFreeDirListA(const struct oldfar::PluginPanelItem *PanelItem) { + // BUGBUG!!! �������, �� ����� ��� �����-�� ��������! + if (PanelItem) xf_free((void*)PanelItem); } INT_PTR WINAPI FarAdvControlA(INT_PTR ModuleNumber,int Command,void *Param) |
|
А почему // BUGBUG!!! Заглушка, но выдает хоть какой-то результат! ? Вроде как делает всё что надо. |
|
очевидно потому что FAR_FIND_DATA это не всё PluginPanelItem :) |
|
В 1.7x тоже нифига кроме FindData не заполняется так что всё ок, поэтому и переделали это в FAR_FIND_DATA чтоб попусту память не тратить. |
|
ну, у меня нет исходников 1,7... ;) |
|
Ты конечно не писатель, кредит не получаешь за это. 665. |
|
Пошел писать продолжение романа Война и мир... может кредит получу... ;-) |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-12-16 17:03 | samlyukov | New Issue | |
2008-12-16 17:03 | samlyukov | Status | new => assigned |
2008-12-16 17:03 | samlyukov | Assigned To | => alexy |
2008-12-16 17:03 | samlyukov | File Added: !work.diff | |
2008-12-18 19:33 | alexy | Note Added: 0002200 | |
2008-12-18 19:42 | samlyukov | Note Added: 0002201 | |
2008-12-18 20:25 | alexy | Note Added: 0002203 | |
2008-12-18 20:35 | samlyukov | Note Added: 0002204 | |
2008-12-18 23:04 | alexy | Note Added: 0002207 | |
2008-12-18 23:06 | alexy | Status | assigned => feedback |
2008-12-19 06:03 | samlyukov | Note Added: 0002208 | |
2008-12-19 06:03 | samlyukov | Status | feedback => resolved |
2008-12-19 06:03 | samlyukov | Resolution | open => fixed |
2008-12-19 06:25 | alexy | Build | => 665 |
2008-12-19 06:25 | alexy | Status | resolved => closed |
2008-12-19 06:25 | alexy | Fixed in Version | => 2.0 |