From 700802b31be09b915487fe5cb147d8a300d5bb9e Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Thu, 30 Aug 2012 15:17:51 +0100 Subject: Untabify --- lib/clod.lua | 184 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/lib/clod.lua b/lib/clod.lua index 8f9ec7f..d9b4fde 100644 --- a/lib/clod.lua +++ b/lib/clod.lua @@ -47,7 +47,7 @@ function settings_mt:__index(subkey) end for k in pairs(confmeta.settings) do if k:sub(1,#key) == key then - return gen_settings(self, key) + return gen_settings(self, key) end end end @@ -116,23 +116,23 @@ function settings_mt:__newindex(subkey, value) if value == nil then -- removing an entry... if confmeta.settings[key] then - -- Need to remove *this* entry - local entry = confmeta.settings[key] - local prev = entry.prev - local next = entry.next - delete_entry(entry) - if prev and next then - -- Also delete 'next' if prev is also blank - if not prev.key and not next.key then - delete_entry(next) - end - elseif prev and not next then - -- Also delete prev, if it's not the zeroth sentinel - -- and it's blank, since we've removed the last line - if not prev.key and prev.lineno > 0 then - delete_entry(prev) - end - end + -- Need to remove *this* entry + local entry = confmeta.settings[key] + local prev = entry.prev + local next = entry.next + delete_entry(entry) + if prev and next then + -- Also delete 'next' if prev is also blank + if not prev.key and not next.key then + delete_entry(next) + end + elseif prev and not next then + -- Also delete prev, if it's not the zeroth sentinel + -- and it's blank, since we've removed the last line + if not prev.key and prev.lineno > 0 then + delete_entry(prev) + end + end end elseif confmeta.settings[key] then -- Replacing extant entry @@ -150,48 +150,48 @@ function settings_mt:__newindex(subkey, value) local longest_prefix_found_at = nil local entry = confmeta.entries while entry do - if entry.key then - local maxpos = 0 - for i = (#key < #entry.key and #key or #entry.key), 1, -1 do - if key:sub(1,i) == entry.key:sub(1,i) then - if key:sub(1,i):find("%.") then - maxpos = i - break - end - end - end - if maxpos > longest_prefix then - longest_prefix = maxpos - longest_prefix_found_at = entry - end - end - entry = entry.next + if entry.key then + local maxpos = 0 + for i = (#key < #entry.key and #key or #entry.key), 1, -1 do + if key:sub(1,i) == entry.key:sub(1,i) then + if key:sub(1,i):find("%.") then + maxpos = i + break + end + end + end + if maxpos > longest_prefix then + longest_prefix = maxpos + longest_prefix_found_at = entry + end + end + entry = entry.next end local insert_blank = false if longest_prefix == 0 then - local last = confmeta.entries - while last.next do - last = last.next - end - longest_prefix_found_at = last - if last.key then - insert_blank = true - end + local last = confmeta.entries + while last.next do + last = last.next + end + longest_prefix_found_at = last + if last.key then + insert_blank = true + end else - -- Starting at longest_prefix_found_at, iterate - -- until it no longer matches the prefix - local entry = longest_prefix_found_at - while entry.next and (entry.next.key and - (entry.next.key:sub(1, longest_prefix) == - longest_prefix_found_at.key:sub(1, longest_prefix))) do - entry = entry.next - end - longest_prefix_found_at = entry + -- Starting at longest_prefix_found_at, iterate + -- until it no longer matches the prefix + local entry = longest_prefix_found_at + while entry.next and (entry.next.key and + (entry.next.key:sub(1, longest_prefix) == + longest_prefix_found_at.key:sub(1, longest_prefix))) do + entry = entry.next + end + longest_prefix_found_at = entry end local before = longest_prefix_found_at if insert_blank then - insert_after(before, {}) - before = before.next + insert_after(before, {}) + before = before.next end insert_after(before, { key = key, value = value }) confmeta.settings[key] = before.next @@ -207,26 +207,26 @@ function methods:serialise() local function serialise_entry(entry) local key, value, line = entry.key, entry.value, "" if key then - local wild_prefix = key:match("^(.-)%.i_[0-9]+$") - if wild_prefix then - key = wild_prefix .. '["*"]' - end - local vtype = type(value) - assert((vtype == "string" or vtype == "number" or vtype == "boolean"), - "Unexpected " .. vtype .. " in key: " .. key) - if vtype == "string" then - line = ("%s %q"):format(key, value) - elseif vtype == "number" then - line = ("%s = %d"):format(key, value) - elseif vtype == "boolean" then - line = ("%s = %s"):format(key, value and "true" or "false") - end + local wild_prefix = key:match("^(.-)%.i_[0-9]+$") + if wild_prefix then + key = wild_prefix .. '["*"]' + end + local vtype = type(value) + assert((vtype == "string" or vtype == "number" or vtype == "boolean"), + "Unexpected " .. vtype .. " in key: " .. key) + if vtype == "string" then + line = ("%s %q"):format(key, value) + elseif vtype == "number" then + line = ("%s = %d"):format(key, value) + elseif vtype == "boolean" then + line = ("%s = %s"):format(key, value and "true" or "false") + end end retstr[#retstr+1] = line end while entries do if entries.lineno ~= 0 then - serialise_entry(entries) + serialise_entry(entries) end entries = entries.next end @@ -241,12 +241,12 @@ function methods:each(prefix) local function iterator(confmeta, prev_key) local next_key, next_value = next(confmeta.settings, prev_key) if prefix then - while next_key and not next_key:match(prefix) do - next_key, next_value = next(confmeta.settings, next_key) - end + while next_key and not next_key:match(prefix) do + next_key, next_value = next(confmeta.settings, next_key) + end end if next_key and next_value then - return next_key, next_value.value + return next_key, next_value.value end end return iterator, metadata[self], nil @@ -308,8 +308,8 @@ local function parse_config(conf, confname, migrate_lists) function parse_mt:__index(key) local prefix = keys[self] if not prefix then - -- This is a global indexing, so return a fresh entry - return gen_hook(key) + -- This is a global indexing, so return a fresh entry + return gen_hook(key) end -- A 'local' indexing, so combine with the key return gen_hook(("%s.%s"):format(prefix, key)) @@ -317,41 +317,41 @@ local function parse_config(conf, confname, migrate_lists) function parse_mt:__newindex(key, value) -- This is the equivalent of 'foo = "bar"' instead of 'foo "bar"' if migrate_lists and type(value) == "table" then - for i = 1, #value do - self[key .. ".*"](value[i],1) - end - return + for i = 1, #value do + self[key .. ".*"](value[i],1) + end + return end if type(value) == "table" or type(value) == "function" then - error("Clod does not support " .. type(value) .. "s as values") + error("Clod does not support " .. type(value) .. "s as values") end return self[key](value, 1) end function parse_mt:__call(value, offset) local key = assert(keys[self]) if migrate_lists and type(value) == "table" then - for i = 1, #value do - self["*"](value[i],2) - end - return + for i = 1, #value do + self["*"](value[i],2) + end + return end if type(value) == "table" or type(value) == "function" then - error("Clod does not support " .. type(value) .. "s as values") + error("Clod does not support " .. type(value) .. "s as values") end local wild_prefix, last_key_element = key:match("^(.-)([^.]+)$") if last_key_element == "*" then - -- Wild insert, so calculate a unique key to use - key = calculate_wild_key({settings=settings}, wild_prefix) + -- Wild insert, so calculate a unique key to use + key = calculate_wild_key({settings=settings}, wild_prefix) end local curline = getinfo(2 + (offset or 0), "Snlf").currentline local entry = { key = key, value = value, lineno = curline } while last_entry.lineno < (curline - 1) do - local empty = { - lineno = last_entry.lineno + 1, - prev = last_entry - } - last_entry.next = empty - last_entry = empty + local empty = { + lineno = last_entry.lineno + 1, + prev = last_entry + } + last_entry.next = empty + last_entry = empty end last_entry.next = entry entry.prev = last_entry -- cgit v1.2.1