diff options
Diffstat (limited to 'src/nvim/generators/gen_char_blob.lua')
-rw-r--r-- | src/nvim/generators/gen_char_blob.lua | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/nvim/generators/gen_char_blob.lua b/src/nvim/generators/gen_char_blob.lua index 3ec1ff2caf..11f6cbcc13 100644 --- a/src/nvim/generators/gen_char_blob.lua +++ b/src/nvim/generators/gen_char_blob.lua @@ -28,16 +28,19 @@ local target = io.open(target_file, 'w') target:write('#include <stdint.h>\n\n') +local index_items = {} + local warn_on_missing_compiler = true -local varnames = {} +local modnames = {} for argi = 2, #arg, 2 do local source_file = arg[argi] - local varname = arg[argi + 1] - if varnames[varname] then - error(string.format("varname %q is already specified for file %q", varname, varnames[varname])) + local modname = arg[argi + 1] + if modnames[modname] then + error(string.format("modname %q is already specified for file %q", modname, modnames[modname])) end - varnames[varname] = source_file + modnames[modname] = source_file + local varname = string.gsub(modname,'%.','_dot_').."_module" target:write(('static const uint8_t %s[] = {\n'):format(varname)) local output @@ -78,6 +81,13 @@ for argi = 2, #arg, 2 do end target:write(' 0};\n') + if modname ~= "_" then + table.insert(index_items, ' { "'..modname..'", '..varname..', sizeof '..varname..' },\n\n') + end end +target:write('static ModuleDef builtin_modules[] = {\n') +target:write(table.concat(index_items)) +target:write('};\n') + target:close() |