View Issue Details

IDProjectCategoryView StatusLast Update
0001561Far ManagerInterfacepublic2013-04-06 11:29
ReporterNightDemonAssigned ToDrKnS 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx86OSWindowsOS Version7
Product Version2.0 
Target VersionFixed in Version3.0 
Summary0001561: Автозавершение приписывает лишний хвост
DescriptionЕсли у меня в истории команд есть строки ABC и ABCDEF, причем команда ABC была выполнена позднее, то при наборе ABC автозавершение не должно приписывать DEF.
Речь идет о командной строке, но то же верно и для всех других текстовых полей с автозавершением.

В настройках автозавершения стоит
  [ ] Показывать список
      [ ] Модальный режим
  [x] Подставлять первый подходящий вариант
Если включить опцию "Показывать список", то описанной баги не происходит, но список мешает, поэтому хочется, чтобы и без списка работало, как надо.

Типичный сценарий:
стоит лишь один раз выполнить команду типа hg ci somefile, то всякий раз потом, когда я хочу выполнить просто hg ci, автозавершение подставляет somefile, что очень мешает. Или, допустим, я часто использую некую консольную программу prog. Однажды я ввожу "prog /?", чтоб увидеть справку, и потом всякий раз, когда я ввожу prog<ENTER>, будет выполняться "prog /?", пока я не очищу историю команд.
Steps To Reproduce1. В настройках автозавершение включить опцию "Подставлять первый подходящий вариант" и выключить "Показывать список"
2. Набрать в командной строке abcdef<ENTER>
3. Набрать в командной строке abc<DEL><ENTER>
4. Набрать в командной строке abc
Автозавершение подставит def, чего быть, по идее, не должно и что очень мешает.
Additional InformationFAR 2.0 build 1666 x86
TagsNo tags attached.
Build0

Activities

NightDemon

2011-01-07 23:22

reporter   bugnote:0006072

Так ведет себя функция History::GetAllSimilar().
Предлагаемый ниже фикс решает описанную проблему.

Index: history.cpp
===================================================================
--- history.cpp (revision 5405)
+++ history.cpp (working copy)
@@ -895,7 +895,7 @@
        int Length=StrLength(Str);
        for (HistoryRecord *HistoryItem=HistoryList.Last();HistoryItem;HistoryItem=HistoryList.Prev(HistoryItem))
        {
- if (!StrCmpNI(Str,HistoryItem->strName,Length) && StrCmp(Str,HistoryItem->strName))
+ if (!StrCmpNI(Str,HistoryItem->strName,Length))
                {
                        HistoryMenu.AddItem(HistoryItem->strName);
                }

2useven10

2013-04-06 07:09

developer   bugnote:0010683

в тройке описанной проблемы нет.
имхо можно закрыть.

Issue History

Date Modified Username Field Change
2010-10-30 23:06 NightDemon New Issue
2011-01-07 23:22 NightDemon Note Added: 0006072
2013-04-06 07:09 2useven10 Note Added: 0010683
2013-04-06 07:58 NightDemon Status new => resolved
2013-04-06 11:29 2useven10 Build => 0
2013-04-06 11:29 2useven10 Status resolved => closed
2013-04-06 11:29 2useven10 Assigned To => DrKnS
2013-04-06 11:29 2useven10 Resolution open => fixed
2013-04-06 11:29 2useven10 Fixed in Version => 3.0