diff options
| author | bfredl <bjorn.linse@gmail.com> | 2026-01-08 11:01:30 +0100 |
|---|---|---|
| committer | bfredl <bjorn.linse@gmail.com> | 2026-04-21 12:46:01 +0200 |
| commit | 52693e7af3d3c7445761c8c0644ca437d2bf2df6 (patch) | |
| tree | f1c064ddc384a417224b84f4ee8c4e33a18a6bd5 /src | |
| parent | 48c37297b4187a8f499aaf63ddee65c4c93c950e (diff) | |
fix(build): more changes to make zig 0.16.0 work
Diffstat (limited to 'src')
| -rw-r--r-- | src/build_lua.zig | 2 | ||||
| -rw-r--r-- | src/nlua0.zig | 28 |
2 files changed, 19 insertions, 11 deletions
diff --git a/src/build_lua.zig b/src/build_lua.zig index f1dce0f21c..a27fe01360 100644 --- a/src/build_lua.zig +++ b/src/build_lua.zig @@ -200,7 +200,7 @@ fn findLpeg(b: *std.Build, io: std.Io, target: std.Target) !?[]const u8 { "--variable=pc_system_libdirs", "--keep-system-cflags", "pkg-config", - }, &code, .Ignore), "\r\n"); + }, &code, .ignore), "\r\n"); var paths: std.ArrayList([]const u8) = try .initCapacity(b.allocator, 0); var path_it = std.mem.tokenizeAny(u8, dirs_stdout, " ,"); while (path_it.next()) |dir| { diff --git a/src/nlua0.zig b/src/nlua0.zig index cdd30506b5..3222a58c52 100644 --- a/src/nlua0.zig +++ b/src/nlua0.zig @@ -22,7 +22,7 @@ extern "c" fn luaopen_lpeg(ptr: *anyopaque) c_int; extern "c" fn luaopen_bit(ptr: *anyopaque) c_int; extern "c" fn luaopen_luv(ptr: *anyopaque) c_int; -fn init() !*Lua { +fn init_lua() !*Lua { // Initialize the Lua vm var lua = try Lua.init(std.heap.c_allocator); lua.openLibs(); @@ -69,26 +69,34 @@ fn init() !*Lua { return lua; } -pub fn main() !void { - const argv = std.os.argv; +pub fn main(init: std.process.Init) !void { + const args = init.minimal.args; - const lua = try init(); + const lua = try init_lua(); defer lua.deinit(); - if (argv.len < 2) { + if (args.vector.len < 2) { std.debug.print("USAGE: nlua0 script.lua args...\n\n", .{}); return; } - lua.createTable(@intCast(argv.len - 2), 1); - for (0.., argv[1..]) |i, arg| { - _ = lua.pushString(std.mem.span(arg)); + lua.createTable(@intCast(args.vector.len - 2), 1); + + var iter = try init.minimal.args.iterateAllocator(init.arena.allocator()); + _ = iter.skip(); + var i: u32 = 0; + var firstarg: [:0]const u8 = undefined; + while (iter.next()) |val| : (i += 1) { + _ = lua.pushString(val); + if (i == 0) { + firstarg = try lua.toString(-1); // preserved on lua heap.. + } lua.rawSetIndex(-2, @intCast(i)); } lua.setGlobal("arg"); _ = try lua.getGlobal("debug"); _ = lua.getField(-1, "traceback"); - try lua.loadFile(std.mem.span(argv[1])); + try lua.loadFile(firstarg); lua.protectedCall(.{ .msg_handler = -2 }) catch |e| { if (e == error.LuaRuntime) { const msg = try lua.toString(-1); @@ -104,7 +112,7 @@ fn do_ret1(lua: *Lua, str: [:0]const u8) !void { } test "simple test" { - const lua = try init(); + const lua = try init_lua(); defer lua.deinit(); try do_ret1(lua, "return vim.isarray({2,3})"); |
