Modul:Common: Unterschied zwischen den Versionen

deepcopy entfernt, war nicht nötig.
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
(deepcopy entfernt, war nicht nötig.)
Markierung: Manuelle Zurücksetzung
Zeile 93: Zeile 93:
end
end
return s
return s
end
function deepcopy(orig, copies)
    copies = copies or {}  -- um zyklische Referenzen zu handhaben
    if type(orig) ~= 'table' then
        return orig
    elseif copies[orig] then
        return copies[orig]  -- zyklische Referenz erkannt
    end
    local copy = {}
    copies[orig] = copy  -- merken, dass wir diese Tabelle bereits kopieren
    for k, v in pairs(orig) do
        copy[deepcopy(k, copies)] = deepcopy(v, copies)
    end
    return setmetatable(copy, getmetatable(orig))
end
end