View Issue Details

IDProjectCategoryView StatusLast Update
0002908Far ManagerDescriptionspublic2015-01-18 00:13
Reporterpm_kanAssigned ToDrKnS 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx86OSWindowsOS Version8
Product Version3.0 
Target VersionFixed in Version3.0 
Summary0002908: Исключение пи попытке отображения описания при некорректном Descript.ion
DescriptionЕсли Descript.ion содержит строку, начинающуюся с кавычки, но не содержит второй кавычки, при попытке отображения описания для любого файла из каталога (Ctrl+Z) (или удаления любого файла, если в настройках "Описания файлов" выбрано "всегда обновлять") возникает исключение out_of_range.
Steps To Reproduce1. Создать файл Descript.ion содержащий строку
"aa
2. Просмотреть описание для любого файла из этого каталога (Ctrl+Z)
Additional InformationПримерный патч приложен.
TagsNo tags attached.
Build4243

Activities

pm_kan

2015-01-17 22:10

reporter  

dizlist.cpp.patch (1,030 bytes)
Index: unicode_far/dizlist.cpp
===================================================================
--- unicode_far/dizlist.cpp	(revision 12834)
+++ unicode_far/dizlist.cpp	(working copy)
@@ -171,7 +171,7 @@
 
 DizList::desc_map::iterator DizList::AddRecord(const string& DizText)
 {
-	size_t NameStart = 0, NameLength = 0;
+	size_t NameStart = 0, NameLength = 0, DescStart = 0;
 	const wchar_t* DizTextPtr = DizText.data();
 	if (*DizTextPtr == L'\"')
 	{
@@ -183,6 +183,7 @@
 			DizTextPtr++;
 			NameLength++;
 		}
+		DescStart = NameStart + NameLength + (*DizTextPtr ? 1 : 0) ;
 	}
 	else
 	{
@@ -191,9 +192,9 @@
 			DizTextPtr++;
 			NameLength++;
 		}
+		DescStart = NameLength;
 	}
-
-	return AddRecord(DizText.substr(NameStart, NameLength), DizText.substr(NameLength + (NameStart? 2: 0)));
+	return AddRecord(DizText.substr(NameStart, NameLength), DizText.substr(DescStart));
 }
 
 const wchar_t* DizList::GetDizTextAddr(const string& Name, const string& ShortName, const __int64 FileSize)
dizlist.cpp.patch (1,030 bytes)

Issue History

Date Modified Username Field Change
2015-01-17 22:10 pm_kan New Issue
2015-01-17 22:10 pm_kan File Added: dizlist.cpp.patch
2015-01-18 00:00 DrKnS Assigned To => DrKnS
2015-01-18 00:00 DrKnS Status new => assigned
2015-01-18 00:13 DrKnS Build => 4243
2015-01-18 00:13 DrKnS Status assigned => closed
2015-01-18 00:13 DrKnS Resolution open => fixed
2015-01-18 00:13 DrKnS Fixed in Version => 3.0