summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2026-01-08 11:01:30 +0100
committerbfredl <bjorn.linse@gmail.com>2026-04-21 12:46:01 +0200
commit52693e7af3d3c7445761c8c0644ca437d2bf2df6 (patch)
treef1c064ddc384a417224b84f4ee8c4e33a18a6bd5 /src
parent48c37297b4187a8f499aaf63ddee65c4c93c950e (diff)
fix(build): more changes to make zig 0.16.0 work
Diffstat (limited to 'src')
-rw-r--r--src/build_lua.zig2
-rw-r--r--src/nlua0.zig28
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})");