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 |