diff options
| author | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2026-02-02 14:14:28 -0800 |
|---|---|---|
| committer | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2026-02-02 14:14:28 -0800 |
| commit | 61dba9967975d4a48d33776449c627c11f9bd365 (patch) | |
| tree | 7a8f04177e8775e97b6ec323e5436cba777bcecf /util.lua | |
| parent | 38c20d9a76e69087d3d1fe06335d8b3dc8571295 (diff) | |
| download | mpv-iptv-menu-61dba9967975d4a48d33776449c627c11f9bd365.tar.gz mpv-iptv-menu-61dba9967975d4a48d33776449c627c11f9bd365.tar.xz | |
support config overrides
Diffstat (limited to 'util.lua')
| -rw-r--r-- | util.lua | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -125,6 +125,36 @@ function util.stable_kmerge(t, u, k) return res end +function util.flatten_table(src, dst, prefix) + local dst = dst or {} + for k, v in pairs(src) do + local k = prefix and prefix .. '.' .. k or k + if type(v) == 'table' then + util.flatten_table(v, dst, k) + else + dst[k] = v + end + end + return dst +end + +function util.unflatten_table(src, dst) + local dst = dst or {} + for k, v in pairs(src) do + local t = dst + local prev + for curr in (k .. '.'):gmatch('(.-)%.') do + if prev then + t[prev] = t[prev] or {} + t = t[prev] + end + prev = curr + end + t[prev] = v + end + return dst +end + function util.str_seek_prev_char(str, pos) return util.utf8_seek(str, pos, -1) end |
