-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move generation from settingtypes out of dlg_settings_advanced
Avoids unreachable code linter warning by moving generation code (of minetest.conf.example and settings_translation_file.cpp) out of dlg_settings_advanced. Due to passing the settings, also it avoids reading the settings file twice. Instead of activating the code by changing the active if-clauses, its activation is now done by uncommenting the loadfile() statement.
- Loading branch information
Showing
2 changed files
with
101 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
local settings = ... | ||
|
||
local function create_minetest_conf_example() | ||
local result = "# This file contains a list of all available settings and their default value for minetest.conf\n" .. | ||
"\n" .. | ||
"# By default, all the settings are commented and not functional.\n" .. | ||
"# Uncomment settings by removing the preceding #.\n" .. | ||
"\n" .. | ||
"# minetest.conf is read by default from:\n" .. | ||
"# ../minetest.conf\n" .. | ||
"# ../../minetest.conf\n" .. | ||
"# Any other path can be chosen by passing the path as a parameter\n" .. | ||
"# to the program, eg. \"minetest.exe --config ../minetest.conf.example\".\n" .. | ||
"\n" .. | ||
"# Further documentation:\n" .. | ||
"# http://wiki.minetest.net/\n" .. | ||
"\n" | ||
|
||
for _, entry in ipairs(settings) do | ||
if entry.type == "category" then | ||
if entry.level == 0 then | ||
result = result .. "#\n# " .. entry.name .. "\n#\n\n" | ||
else | ||
for i = 1, entry.level do | ||
result = result .. "#" | ||
end | ||
result = result .. "# " .. entry.name .. "\n\n" | ||
end | ||
else | ||
if entry.comment ~= "" then | ||
for _, comment_line in ipairs(entry.comment:split("\n", true)) do | ||
result = result .."# " .. comment_line .. "\n" | ||
end | ||
end | ||
result = result .. "# type: " .. entry.type | ||
if entry.min then | ||
result = result .. " min: " .. entry.min | ||
end | ||
if entry.max then | ||
result = result .. " max: " .. entry.max | ||
end | ||
if entry.values then | ||
result = result .. " values: " .. table.concat(entry.values, ", ") | ||
end | ||
if entry.possible then | ||
result = result .. " possible values: " .. entry.possible:gsub(",", ", ") | ||
end | ||
result = result .. "\n" | ||
local append = "" | ||
if entry.default ~= "" then | ||
append = " " .. entry.default | ||
end | ||
result = result .. "# " .. entry.name .. " =" .. append .. "\n\n" | ||
end | ||
end | ||
return result | ||
end | ||
|
||
local function create_translation_file() | ||
local result = "// This file is automatically generated\n" .. | ||
"// It conatins a bunch of fake gettext calls, to tell xgettext about the strings in config files\n" .. | ||
"// To update it, refer to the bottom of builtin/mainmenu/tab_settings.lua\n\n" .. | ||
"fake_function() {\n" | ||
|
||
for _, entry in ipairs(settings) do | ||
if entry.type == "category" then | ||
local name_escaped = entry.name:gsub("\"", "\\\"") | ||
result = result .. "\tgettext(\"" .. name_escaped .. "\");\n" | ||
else | ||
if entry.readable_name then | ||
local readable_name_escaped = entry.readable_name:gsub("\"", "\\\"") | ||
result = result .. "\tgettext(\"" .. readable_name_escaped .. "\");\n" | ||
end | ||
if entry.comment ~= "" then | ||
local comment_escaped = entry.comment:gsub("\n", "\\n") | ||
comment_escaped = comment_escaped:gsub("\"", "\\\"") | ||
result = result .. "\tgettext(\"" .. comment_escaped .. "\");\n" | ||
end | ||
end | ||
end | ||
result = result .. "}\n" | ||
return result | ||
end | ||
|
||
if false then | ||
local file = io.open("minetest.conf.example", "w") | ||
if file then | ||
file:write(create_minetest_conf_example()) | ||
file:close() | ||
end | ||
end | ||
|
||
if false then | ||
local file = io.open("src/settings_translation_file.cpp", "w") | ||
if file then | ||
file:write(create_translation_file()) | ||
file:close() | ||
end | ||
end |