View Issue Details

IDProjectCategoryView StatusLast Update
0003672WishesPlugins APIpublic2018-11-09 08:47
ReporterJohnDoe Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
Status newResolutionopen 
Platformx86OSWindowsOS VersionXP SP3
Product Version3.0 
Summary0003672: Поведение SCTL_OPENSUBKEY если ключ не существует (при доступе к историям диалогов)
DescriptionSCTL_OPENSUBKEY согласно документации открывает существующий ключ настроек.
Если ключ не существует, то поведение неконсистентно:
  1. при доступе к настройками плагина: возвращается NULL (ожидаемо)
  2. при доступе к историям диалогов: всё равно возвращается некий описатель, по которому (через SCTL_ENUM) история оказывается пустой
Поведение во втором случае неожиданно отличается (и способствует ошибкам).
Как было сказано на форуме, это потому что SCTL_OPENSUBKEY здесь имеет особое значение.

Однако, до тех пор, пока для доступа используется одна и та же функция, её поведение всё-таки ожидается одинаковым. Предлагаю:

1) При несуществующей истории возвращать NULL (имхо проще всего).
2) Или оговорить в документации случай особо.
3) Или использовать отдельную функцию.
Steps To Reproduce
local F = far.Flags
local settings = far.CreateSettings("far")
local history = settings:OpenSubkey(F.FSSF_ROOT,"SearchText1")
local items = settings:Enum(history,-1)
settings:Free()
far.Show(history,items.Count)

Выдаст:
╔════════════════╗
║  1│ 24         ║
║  2│ 0          ║
╚═ 2 arguments ══╝

Т.е. успешно открывается и несуществующий ключ.
Additional Informationhttps://api.farmanager.com/ru/service_functions/settingscontrol.html#SCTL_OPENSUBKEY
Для всех функций, кроме SCTL_CREATESUBKEY и SCTL_OPENSUBKEY, указано, что они должны вернуть при неудаче.
TagsSettingsControl
Build

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2018-11-09 08:46 JohnDoe New Issue
2018-11-09 08:46 JohnDoe Tag Attached: SettingsControl
2018-11-09 08:47 JohnDoe Additional Information Updated
2018-11-09 08:47 JohnDoe Description Updated