View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001923 | Far Manager | Filters | public | 2011-11-18 06:37 | 2012-12-14 18:34 |
Reporter | Maximus | Assigned To | vskirdin | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0001923: Падение при попытке редактирования фильтров (CtrlI) после их фильтрации (CtrlAltF) | ||||
Description | 1. В работающем FAR в любой папке нажимаем Ctrl+I (меню фильтров) 2. В появившемся меню фильтров нажимаем Ctrl+Alt+F (режим фильтрации элементов меню) 3. Набираем последовательность, отсутствующую в меню, чтобы все строки "скрылись" 4. В отфильтрованном меню - пустом - нажимаем клавишу Delete (или F4, или Ctrl+Up) баг отсюда: http://forum.farmanager.com/viewtopic.php?p=86698#p86698 | ||||
Tags | No tags attached. | ||||
Build | 2358 | ||||
|
FilterTrap.111117.diff (1,498 bytes)
Index: filefilter.cpp =================================================================== --- filefilter.cpp (revision 6884) +++ filefilter.cpp (working copy) @@ -221,7 +221,7 @@ { int SelPos=FilterList.GetSelectPos(); - if (SelPos==(int)FilterData.getCount()) + if (SelPos<0 || SelPos==(int)FilterData.getCount()) break; int Check=FilterList.GetCheck(SelPos); @@ -256,6 +256,8 @@ case KEY_F4: { int SelPos=FilterList.GetSelectPos(); + if (SelPos<0) + break; if (SelPos<(int)FilterData.getCount()) { @@ -287,8 +289,11 @@ case KEY_INS: case KEY_F5: { - size_t SelPos=FilterList.GetSelectPos(); - size_t SelPos2=SelPos+1; + int pos=FilterList.GetSelectPos(); + if (pos<0) + break; + size_t SelPos=pos; + size_t SelPos2=pos+1; SelPos = Min(FilterData.getCount(), SelPos); @@ -348,7 +353,9 @@ case KEY_DEL: { int SelPos=FilterList.GetSelectPos(); - + if (SelPos<0) + break; + if (SelPos<(int)FilterData.getCount()) { string strQuotedTitle=FilterData.getItem(SelPos)->GetTitle(); @@ -378,6 +385,8 @@ case KEY_RCTRLDOWN: { int SelPos=FilterList.GetSelectPos(); + if (SelPos<0) + break; if (SelPos<(int)FilterData.getCount() && !((Key==KEY_CTRLUP || Key==KEY_RCTRLUP) && !SelPos) && !((Key==KEY_CTRLDOWN || Key==KEY_RCTRLDOWN) && SelPos==(int)(FilterData.getCount()-1))) |
|
патч не решает проблему падения. падает в filefilterparams.cpp::1064 FF->GetColors(&Colors); FF здесь равен nullptr давай другой патч :-) |
|
отбой... не ту версию запускал. |
|
build 2358 |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-11-18 06:37 | Maximus | New Issue | |
2011-11-18 06:37 | Maximus | File Added: FilterTrap.111117.diff | |
2012-01-10 11:42 | vskirdin | Note Added: 0008341 | |
2012-01-10 11:50 | vskirdin | Note Added: 0008342 | |
2012-01-10 11:51 | vskirdin | Note Added: 0008343 | |
2012-01-10 11:51 | vskirdin | Assigned To | => vskirdin |
2012-01-10 11:51 | vskirdin | Status | new => feedback |
2012-12-14 17:25 | samlyukov | Status | feedback => resolved |
2012-12-14 18:34 | vskirdin | Build | => 2358 |
2012-12-14 18:34 | vskirdin | Status | resolved => closed |
2012-12-14 18:34 | vskirdin | Resolution | open => fixed |
2012-12-14 18:34 | vskirdin | Fixed in Version | => 3.0 |