diff --git a/dev/AppImageBuilder.yml b/dev/AppImageBuilder.yml index 0231e1df..69e687e4 100644 --- a/dev/AppImageBuilder.yml +++ b/dev/AppImageBuilder.yml @@ -30,6 +30,7 @@ AppDir: - libogg0 - libvorbis0a - libvorbisfile3 + - libluajit-5.1-2 exclude: - hicolor-icon-theme - sound-theme-freedesktop diff --git a/doc/ru/scripting/extensions.md b/doc/ru/scripting/extensions.md index d4502f64..d0ddd365 100644 --- a/doc/ru/scripting/extensions.md +++ b/doc/ru/scripting/extensions.md @@ -10,6 +10,12 @@ table.copy(t: table) -> table Создаёт и возвращает копию переданной таблицы путём создания новой и копирования в неё всех элементов из переданной. +```lua +table.deep_copy(t: table) -> table +``` + +Функция глубокого копирования создает полную копию исходной таблицы, включая все её вложенные таблицы. + ```lua table.count_pairs(t: table) -> integer ``` diff --git a/res/scripts/stdmin.lua b/res/scripts/stdmin.lua index 49ddec00..71fdbda2 100644 --- a/res/scripts/stdmin.lua +++ b/res/scripts/stdmin.lua @@ -63,6 +63,20 @@ function table.copy(t) return copied end +function table.deep_copy(t) + local copied = {} + + for k, v in pairs(t) do + if type(v) == "table" then + copied[k] = table.deep_copy(v) + else + copied[k] = v + end + end + + return copied +end + function table.count_pairs(t) local count = 0