View Issue Details

IDProjectCategoryView StatusLast Update
0001923Far ManagerFilterspublic2012-12-14 18:34
ReporterMaximus Assigned Tovskirdin  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version3.0 
Fixed in Version3.0 
Summary0001923: Падение при попытке редактирования фильтров (CtrlI) после их фильтрации (CtrlAltF)
Description1. В работающем FAR в любой папке нажимаем Ctrl+I (меню фильтров)
2. В появившемся меню фильтров нажимаем Ctrl+Alt+F (режим фильтрации элементов меню)
3. Набираем последовательность, отсутствующую в меню, чтобы все строки "скрылись"
4. В отфильтрованном меню - пустом - нажимаем клавишу Delete (или F4, или Ctrl+Up)

баг отсюда: http://forum.farmanager.com/viewtopic.php?p=86698#p86698
TagsNo tags attached.
Build2358

Activities

Maximus

2011-11-18 06:37

reporter  

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)))
FilterTrap.111117.diff (1,498 bytes)   

vskirdin

2012-01-10 11:42

administrator   bugnote:0008341

патч не решает проблему падения.
падает в filefilterparams.cpp::1064

FF->GetColors(&Colors);

FF здесь равен nullptr

давай другой патч :-)

vskirdin

2012-01-10 11:50

administrator   bugnote:0008342

отбой... не ту версию запускал.

vskirdin

2012-01-10 11:51

administrator   bugnote:0008343

build 2358

Issue History

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