View Issue Details

IDProjectCategoryView StatusLast Update
0000268Far Manager 1.7xEditorpublic2007-07-16 16:06
ReporterNightRomanAssigned Tovskirdin 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx86OSWindowsOS VersionXP SP2
Product Version1.71 
Target VersionFixed in Version1.71 
Summary0000268: ECTL_GETINFO может вернуть BlockStartLine = -1
DescriptionВызываю EditorControl c ECTL_SELECT и устанавливаю EditorSelect.BlockStartLine = -1 (подразумевается текущая строка, как это часто принято). Конкретно для этой операции в энциклопедии не указано, что -1 можно употребить. Но это работает (внешне). Но это, похоже, приводит к тому, что следующий вызов EditorControl с ECTL_GETINFO дает BlockStartLine = -1, и вот это уже неожиданно для остального кода, который к этому не готов.

Даже если EditorSelect.BlockStartLine = -1 недопустимо, ECTL_GETINFO не должен возвращать некорретное значение BlockStartLine.
Steps To Reproduce#include "stdafx.h"
#include "plugin.hpp"

PluginStartupInfo Info;

void TestEditor()
{
// select 1 first char in the current line
    EditorSelect es;
    es.BlockStartLine = -1;
    es.BlockStartPos = 0;
    es.BlockHeight = 1;
    es.BlockWidth = 1;
    es.BlockType = BTYPE_STREAM;
    Info.EditorControl(ECTL_SELECT, &es);

// get info - BlockStartLine = -1
    EditorInfo ei;
    Info.EditorControl(ECTL_GETINFO, &ei);

    return;
}

void WINAPI SetStartupInfo(const PluginStartupInfo* psi)
{
    Info = *psi;
}

void WINAPI GetPluginInfo(PluginInfo* pi)
{
    pi->StructSize = sizeof(*pi);
    pi->Flags = PF_EDITOR | PF_VIEWER;

    static const char* PluginMenuStrings[] = { "Test" };
    pi->PluginMenuStrings = PluginMenuStrings;
    pi->PluginMenuStringsNumber = 1;

    static const char prefix[] = "test";
    pi->CommandPrefix = prefix;
}

HANDLE WINAPI OpenPlugin(int OpenFrom, int item)
{
    switch(OpenFrom)
    {
    case OPEN_EDITOR:
        TestEditor();
        break;
    }
    return INVALID_HANDLE_VALUE;
}
TagsNo tags attached.
Build

Activities

vskirdin

2007-03-14 07:01

administrator   bugnote:0000435

Эта... простенький тестовый плагин (который показывает проблему) сюда приаттач (можно без сорцов).

vskirdin

2007-03-14 08:34

administrator   bugnote:0000436

пробуем: http://farmanager.com/farbugs/mantis268.1.rar

vskirdin

2007-03-14 11:57

administrator   bugnote:0000437

см. после 2206

Issue History

Date Modified Username Field Change
2007-02-21 19:10 NightRoman New Issue
2007-03-14 07:01 vskirdin Note Added: 0000435
2007-03-14 08:34 vskirdin Note Added: 0000436
2007-03-14 08:34 vskirdin Status new => assigned
2007-03-14 08:34 vskirdin Assigned To => vskirdin
2007-03-14 11:57 vskirdin Status assigned => resolved
2007-03-14 11:57 vskirdin Fixed in Version => 1.71
2007-03-14 11:57 vskirdin Resolution open => fixed
2007-03-14 11:57 vskirdin Note Added: 0000437
2007-07-16 16:06 alexy Status resolved => closed