Fix the checking of flags values in the settings tab
Changes: - Accept setting an empty flags-type value in the settings tab if the variable specification permits it - Don't accept substrings of flag values E.g. with values: 'one,two,three', 'hree', 'w', etc. used to be accepted. Not any more - Don't accept flags with random pattern-matching special characters E.g. with values: 'one,two,three', 'on.', '(o)[n]e*' etc. used to be accepted. Not any more.master
parent
58babf8b19
commit
31ac53dfd0
|
@ -506,8 +506,8 @@ local function handle_change_setting_buttons(this, fields)
|
||||||
local new_value = fields["te_setting_value"]
|
local new_value = fields["te_setting_value"]
|
||||||
for _,value in ipairs(new_value:split(",", true)) do
|
for _,value in ipairs(new_value:split(",", true)) do
|
||||||
value = value:trim()
|
value = value:trim()
|
||||||
if not value:match(CHAR_CLASSES.FLAGS .. "+")
|
local possible = "," .. setting.possible .. ","
|
||||||
or not setting.possible:match("[,]?" .. value .. "[,]?") then
|
if not possible:find("," .. value .. ",", 0, true) then
|
||||||
this.data.error_message = fgettext_ne("\"$1\" is not a valid flag.", value)
|
this.data.error_message = fgettext_ne("\"$1\" is not a valid flag.", value)
|
||||||
this.data.entered_text = fields["te_setting_value"]
|
this.data.entered_text = fields["te_setting_value"]
|
||||||
core.update_formspec(this:get_formspec())
|
core.update_formspec(this:get_formspec())
|
||||||
|
|
Loading…
Reference in New Issue