View Issue Details

IDProjectCategoryView StatusLast Update
0003663PluginsLuaMacro / Macro Browserpublic2018-11-08 13:02
ReporterJohnDoeAssigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Platformx86OSWindowsOS VersionXP SP3
Product Version3.0 
Target VersionFixed in Version 
Summary0003663: LuaFAR: возможность опустить параметры-флаги может быть нежелательна
DescriptionНесколько методов объекта Settings Control принимают параметр Root, тип которого в мануале указан как integer.
Однако если передать nil, то это не приведёт к ошибке.

Shmuel wrote

В реализации тип этого параметра не "integer", а "flag", а для "флагов" значение nil всегда является допустимым и трансформируется в 0.


На мой взгляд, пользы от возможности опустить этот параметр (в данном случае) мало, и даже напротив: так потенциальные баги с неинициализированными значениями проявляются позже.
Additional InformationС другой стороны, допускаю что точечная правка в Settings Control и не имеет большого смысла.
Shmuel wrote

В LuaFAR API есть много функций с опциональными параметрами и не обязательно последними в списке параметров.


https://forum.farmanager.com/viewtopic.php?p=151128#p151128
TagsSettingsControl

Activities

JohnDoe

2018-11-07 16:21

updater   bugnote:0016297

Last edited: 2018-11-08 13:02

View 2 revisions

Собственно, приведу реальный пример, который заставил меня обратить внимание на проблему:

local subkey = settings:OpenSubkey(F.FSSF_ROOT,"somekey")
local items = settings:Enum(subkey)

Если пользователь не убедился в успехе операции OpenSubkey, то в Enum передаётся nil.
А в результате ошибка остаётся незамеченной, потому что Enum воспринял nil как корень, и мы получили с виду нормальную таблицу items.

Или вот другой пример, из чужого кода:
local key = obj:CreateSubkey(obj:CreateSubkey(0,Author),KeysPart) -- откроем/создадим 
раздел


Issue History

Date Modified Username Field Change
2018-10-30 13:35 JohnDoe New Issue
2018-10-30 17:41 JohnDoe Tag Attached: SettingsControl
2018-11-07 16:21 JohnDoe Note Added: 0016297
2018-11-08 13:02 JohnDoe Note Edited: 0016297 View Revisions